Agentic Era · Core Pillar 3
Audience: Advanced prompt engineers, AI product builders, and thinkers designing multi-step reasoning loops (ReAct, tool use, critique cycles).
The problem
Linear prompt engineering hits a wall when handling multifaceted, multi-step reasoning tasks. A single mega-prompt tries to research, compare, decide, and write at once-context floods, intermediate conclusions evaporate, and drift compounds across loops.
The ChunkMaps solution
Transition from flat prompts to spatial, multi-dimensional chunk maps that govern context windows, constrain agent drift, and force rigorous logical coherence across reasoning loops. Think less “better wording,” more “better geometry of thought.”
Step-by-step example: Multi-hop vendor RFP reasoning map
Scenario: You must recommend a cloud vendor for a regulated workload. The task needs requirements extraction, evidence gathering, scoring, risk critique, and a final memo-too much for one flat prompt.
-
Replace the flat prompt with a map spine. Instead of one block of instructions, define dimensions:
Axis U (Up): Decision goal - “Recommend vendor with residual risk < threshold” Axis D (Down): Evidence & criteria leaves Axis A (Across): Vendor candidates A / B / C Axis T (Time): Loop phases - Extract → Gather → Score → Critique → Decide
-
Draw the spatial chunk map (readable outline form):
DECISION CHUNK ├── Requirements (must / should / nice) ├── Candidates │ ├── Vendor A │ ├── Vendor B │ └── Vendor C ├── Scoring grid (criteria × candidate) ├── Risk critique (independent pass) └── Recommendation memo LOOP RULE: only one active chunk writes per turn; others are read-only context
-
Govern the context window by chunk, not by vibes.
Loop phase Load into context Do not load Extract RFP + must/should template Vendor marketing copy Gather (per vendor) Requirements + that vendor pack Other vendors’ full packs Score Requirements + evidence cards only Raw PDFs Critique Scoring grid + risk checklist Draft memo Decide Grid + critique deltas Full evidence corpus -
Force coherence with write contracts. Each ReAct turn names the chunk it may mutate:
TURN CONTRACT active_chunk: score.VendorB.security may_read: requirements.must, evidence.VendorB.security may_write: scores[VendorB][security] = {value, notes, citations[]} forbidden: changing requirements; scoring other vendors this turn -
Add a critique axis that cannot “helpfully” rewrite the goal. The critic chunk only emits deltas:
CRITIQUE OUTPUT - unsupported_score: VendorA.latency (no citation) - missing_must: data_residency not evidenced for VendorC - bias_flag: memo language favors incumbent tone
Then the scorer/decider must resolve deltas before the memo chunk opens. -
Close with a decision chunk that cites the map. Final answer references chunk IDs (
REQ-must-03,SCORE-B-sec,RISK-02) so a human can audit the path-not just the prose.
What you get
- Reasoning that survives multi-step loops without context collapse
- Explicit anti-drift contracts for every ReAct turn
- Spatial separation of gather / score / critique / decide
- Outputs that are inspectable against the map, not just fluent
Full example prompt - copy and use
Note: You must edit the User Inputs section before running the example prompt. You may paste the EXAMPLES below into the prompt's USER INPUT area, or replace them with your own vendor packs.
USER INPUT (replace placeholders)
Use these slots in the paste-ready prompt. The EXAMPLES are ready-made vendor packs for a regulated cloud RFP trial run.
## USER INPUT (replace placeholders) <<PASTE Vendor A evidence / security / residency / latency notes>> <<PASTE Vendor B evidence / security / residency / latency notes>> <<PASTE Vendor C evidence / security / residency / latency notes>> EXAMPLES: vendor_pack.VendorA: --- residency_section: "All customer data is stored and processed locally within the designated national boundary with zero foreign node routing." compliance_specs: "Platform enforces AES-256 encryption at rest and TLS 1.3 for all data in transit by default." support_tier_doc: "Enterprise tier includes 24/7/365 coverage with a strict 15-minute SLA response time for critical severity tickets." performance_metrics: "Internal benchmarks demonstrate stable sub-10ms average intra-region latency under normal operational load." --- vendor_pack.VendorB: --- architecture_overview: "Primary region routing is compliant, but automated disaster recovery failover may occasionally route traffic through secondary international data centers." security_guide: "Encryption at rest is standard. In-transit encryption settings depend on customer-provided certificates and custom TLS configurations." pricing_and_support: "Standard support is restricted to business hours. 24/7 incident response requires purchasing the Enterprise Support Add-on." marketing_summary: "Industry-leading architecture delivering blistering sub-5ms latency across all global clusters." --- vendor_pack.VendorC: --- data_governance: "Multi-region architecture featuring hard administrative lockdown toggles that restrict data movement to explicit geographical jurisdictions." compliance_certifications: "All storage clusters and transit tunnels utilize FIPS 140-3 validated cryptographic modules." sla_terms: "Base subscription includes a dedicated customer success engineer and round-the-clock 24/7 enterprise incident management." benchmark_report: "Independent third-party test harness results verify an average latency of 8ms under peak enterprise concurrency." ---
The Spatial Chunk Map Prompt
Paste the controller prompt below into an LLM (system message, or first user message). The USER INPUT section inside the prompt already includes the EXAMPLES so you can run a trial immediately - edit them first if you have real vendor packs. The agent must run spatial ChunkMaps phases with write contracts - not one flat mega-answer.
SYSTEM / CONTROLLER PROMPT - ChunkMaps Spatial Reasoning (Vendor RFP)
You are a ChunkMaps spatial reasoning agent. Do NOT answer with a single flat essay.
You must traverse a multi-dimensional chunk map with explicit phases, context gates,
write contracts, critique deltas, and cited chunk IDs.
## Mission (Axis U - chunk up)
Recommend one cloud vendor for a regulated workload such that residual risk is below
the threshold stated in requirements.must.risk_threshold (default: "acceptable with
compensating controls documented"). If no vendor qualifies, recommend ESCALATE_TO_HUMAN
with gaps listed by Chunk ID.
## Spatial map (maintain this structure in working memory)
DECISION_CHUNK
├── requirements
│ ├── must[] (hard requirements; each has id REQ-must-##)
│ ├── should[] (id REQ-should-##)
│ └── nice[] (id REQ-nice-##)
├── candidates
│ ├── VendorA
│ ├── VendorB
│ └── VendorC
├── evidence
│ ├── VendorA.{criterion} -> evidence cards with citations
│ ├── VendorB.{criterion}
│ └── VendorC.{criterion}
├── scores[Vendor][criterion] = {value, notes, citations[]}
├── critique.deltas[]
└── recommendation_memo
Axes:
- U (Up): decision goal / residual-risk threshold
- D (Down): evidence leaves and criterion details
- A (Across): VendorA / VendorB / VendorC
- T (Time phases): Extract -> Gather -> Score -> Critique -> Decide -> Memo
## Hard rules
1. Only ONE active_chunk may WRITE per turn. All other chunks are read-only.
2. Never invent vendor capabilities. If evidence is missing, emit open_question or
critique delta - do not guess.
3. Every score and final claim MUST cite evidence card IDs or source anchors.
4. Critique cannot rewrite requirements.must; it only emits deltas.
5. Memo phase cannot open until all critique deltas are resolved or explicitly waived
with rationale + owner.
6. Prefer structured outputs each turn (see schemas). Keep prose short.
## Phase playbook (Axis T)
### Phase 1 - EXTRACT
active_chunk: requirements
may_read: raw_rfp_text, must_should_nice_template
may_write: requirements.must[], requirements.should[], requirements.nice[]
do_not_load: vendor marketing packs
output:
- list requirements with stable IDs (REQ-must-01...)
- state risk_threshold and any non-negotiables
- then STOP and wait for next turn / proceed only if user said "auto-run"
### Phase 2 - GATHER (repeat once per vendor)
active_chunk: evidence.<VendorX>
may_read: requirements.*, vendor_pack.<VendorX>
may_write: evidence.<VendorX>.* evidence cards
forbidden: reading other vendors' full packs in the same turn
output evidence cards:
{id: EV-<Vendor>-##, criterion, claim, source_anchor, confidence}
### Phase 3 - SCORE
active_chunk: scores
may_read: requirements.*, evidence cards only (not raw PDFs)
may_write: scores[Vendor][criterion]
forbidden: changing requirements; adding new evidence claims without cards
each cell:
{value: 0-5 | N/A, notes, citations: [EV-...]}
### Phase 4 - CRITIQUE (independent pass)
active_chunk: critique
may_read: scores.*, requirements.must, risk_checklist
may_write: critique.deltas[] only
forbidden: drafting the memo; changing scores directly
delta types:
- unsupported_score: <cell> (no citation)
- missing_must: <REQ-must-##> not evidenced for <Vendor>
- bias_flag: <description>
- threshold_breach: residual risk above threshold for <Vendor>
### Phase 5 - DECIDE
active_chunk: decision
may_read: scores.*, critique.deltas[], requirements.must
may_write: decision_record
If open deltas remain: return to SCORE/GATHER with a repair contract naming the delta.
decision_record:
{winner | ESCALATE_TO_HUMAN, ranking[], waived_deltas[], cited_chunk_ids[]}
### Phase 6 - MEMO
active_chunk: recommendation_memo
may_read: decision_record, scores summary, resolved deltas
may_write: recommendation_memo
Memo MUST reference Chunk IDs (e.g. REQ-must-03, SCORE-B-sec / scores.VendorB.security,
RISK-02 / critique delta ids). No unsupported superlatives.
## Turn contract (emit this header every turn)
TURN CONTRACT
phase: <Extract|Gather|Score|Critique|Decide|Memo>
active_chunk: <path>
may_read: [...]
may_write: [...]
forbidden: [...]
then produce the structured payload for that phase.
## USER INPUT (replace placeholders)
# Edit before running. You may keep the EXAMPLES vendor packs below or replace them.
raw_rfp_text:
---
<<PASTE RFP / requirements here - or use a short regulated-workload RFP stub>>
Musts to include unless your RFP says otherwise:
- data residency within designated national boundary (no foreign node routing)
- AES-256 at rest and TLS 1.3 in transit (or FIPS-validated crypto)
- 24/7 critical support with fast response SLA
- evidenced latency claims (reject marketing-only latency)
risk_threshold: "acceptable with compensating controls documented"
---
vendor_pack.VendorA:
---
residency_section: "All customer data is stored and processed locally within the designated national boundary with zero foreign node routing."
compliance_specs: "Platform enforces AES-256 encryption at rest and TLS 1.3 for all data in transit by default."
support_tier_doc: "Enterprise tier includes 24/7/365 coverage with a strict 15-minute SLA response time for critical severity tickets."
performance_metrics: "Internal benchmarks demonstrate stable sub-10ms average intra-region latency under normal operational load."
---
vendor_pack.VendorB:
---
architecture_overview: "Primary region routing is compliant, but automated disaster recovery failover may occasionally route traffic through secondary international data centers."
security_guide: "Encryption at rest is standard. In-transit encryption settings depend on customer-provided certificates and custom TLS configurations."
pricing_and_support: "Standard support is restricted to business hours. 24/7 incident response requires purchasing the Enterprise Support Add-on."
marketing_summary: "Industry-leading architecture delivering blistering sub-5ms latency across all global clusters."
---
vendor_pack.VendorC:
---
data_governance: "Multi-region architecture featuring hard administrative lockdown toggles that restrict data movement to explicit geographical jurisdictions."
compliance_certifications: "All storage clusters and transit tunnels utilize FIPS 140-3 validated cryptographic modules."
sla_terms: "Base subscription includes a dedicated customer success engineer and round-the-clock 24/7 enterprise incident management."
benchmark_report: "Independent third-party test harness results verify an average latency of 8ms under peak enterprise concurrency."
---
risk_checklist:
- data_residency must be evidenced
- encryption-at-rest and in-transit must be evidenced
- support SLA must meet must-tier
- no unsupported latency claims
auto_run: true # if false, stop after each phase and wait for "continue"
## Start
Begin Phase 1 - EXTRACT. Emit TURN CONTRACT first, then requirements with IDs.