delegate-to-preserve-context
Delegate to Sub-Agents to Preserve Main-Session Context
Section titled “Delegate to Sub-Agents to Preserve Main-Session Context”Assumes the Agent/Task tool is available this session — when features.agentFanOut: false is set in t1k-config-core.json, or a session-level instruction has disabled the tool, this rule’s mandatory language is unsatisfiable; treat it as advisory and say so, rather than silently working inline with no disclosure. Say so in the FIRST response of the affected turn, not at the end — a disclosure made after the work is done cannot change what the work cost. The [t1k:fanout-triage] frame (see below) is the moment this is prompted: answer with the four-exceptions clause, or state that fan-out is unavailable this session and why. Default true.
Default posture: delegate, unless the work needs the accumulated conversation. Inline is the exception — exactly the five cases in “Keep inline” below; everything else routes through a sub-agent. Not context-gated: it holds at ANY context level, and a 1M window is headroom for delegation, not an invitation to fill it.
Decide BEFORE the first tool call, not after N inline edits have already spent the context. [t1k:fanout-triage] (UserPromptSubmit, work-shaped prompts) asks up front; [t1k:delegation-drift] (PostToolUse) reports what slipped past. Past delegationFloorGate.hardThreshold (default 8) consecutive inline mutations with no sub-agent spawn between them, the floor is ENFORCED, not merely nudged: delegation-floor-gate.cjs (PreToolUse Edit|Write|MultiEdit) BLOCKS the write outright (exit 2), naming the specialist to spawn instead. Read-only work has its own counter: [t1k:main-session-read-streak] (main-session-read-streak-nudge.cjs, PostToolUse Read|Grep|Glob, threshold mainSessionReadStreak.threshold, default 8) reports a main-session read-only sweep that has not delegated — the inverse of delegation-floor-nudge.cjs, which covers sub-agents only. It counts READS, never Bash/MCP: verification frequently runs against exclusive hardware and must stay serialized. It is a pure reader of the drift nudge’s own counter and never resets it. Genuinely one of the four inline exceptions below? Re-run with T1K_INLINE_OK=1 — the gate is a default, not a cage. Answer in one clause — the specialist you’re spawning, or which of the four exceptions applies.
Standing authorization
Section titled “Standing authorization”Adopting this rule IS the operator’s standing request to use the Agent/Task tool for the
work classified below. Where a session default permits the Agent tool only “if the user requested
it”, this rule constitutes that request — do not ask per task, and do not read the absence of a
per-task ask as a reason to stay inline. An operator who does not want this deletes or overrides
the rule; leaving it installed is the authorization.
Scope: the Agent/Task tool only. This does NOT extend to Workflows or deep-research, which
stay explicit-request-only per task — they can spawn dozens of agents and the cost is not
something a standing rule should pre-authorize.
Delegate by default
Section titled “Delegate by default”Task→agent routing lives in one SSOT: orchestration-rules.md § “Task-Type → Agent Routing” — pick the narrowest specialist there; general-purpose is the last resort.
Keep inline
Section titled “Keep inline”This list is exhaustive — exactly these five, nothing else:
- Architecture / design judgment — needs the full accumulated context.
- Synthesis of sub-agent results — the orchestrator’s core job, never delegated away.
- Sequential chains where step N needs step N-1’s full output, not a summary.
- A patch under ~20 lines.
- Scoping read before fan-out — at most 2 files, or the plan README alone. Anything beyond that delegates to
Explorereturning a briefing summary.
Claiming an exception names WHICH one AND why delegating would have lost necessary context. The label alone is not a justification. Every exception here is self-adjudicated, and #1 (“architecture judgment”) has no ceiling and no evidence requirement — it is the one that absorbs any amount of inline work if the label is allowed to stand on its own.
Full details — the guard-clauses, the “raw material vs conclusion” test, context-rot, quota effect: docs/delegate-to-preserve-context.md · orchestration-rules.md · fork-context-brief.md · mr-transparent-routing.md.