Skip to content

Pass isolation: run every phase as a delegated pass from records, not conversation - #16

Draft
jussi-modernpath wants to merge 1 commit into
mainfrom
process/pass-isolation
Draft

Pass isolation: run every phase as a delegated pass from records, not conversation#16
jussi-modernpath wants to merge 1 commit into
mainfrom
process/pass-isolation

Conversation

@jussi-modernpath

@jussi-modernpath jussi-modernpath commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Why

A delivery loop run under rdd-deliver accumulated one long conversation across planning and build until a single request timed out mid-build (a ~30-minute turn), and the scope stopped short of IN_REVIEW. No skill text can retry a killed request; that is a harness matter. What the process can do is keep every request small, and today it does not say how:

  • PROCESS.md says session working notes are not authoritative and every skill opens by reading the store, but nothing says a pass must be re-enterable without the conversation that preceded it.
  • Nothing bounds what one pass may take on, so a delegate handed "the epic" churns exactly like the parent did.
  • Nothing shapes the brief an orchestrator hands to a delegate, so briefs bloat with transcripts, earlier reports, and packet bodies. A fork of a bloated conversation is just as bloated.
  • Only rdd-cold-review asks for an independent context, and it does not say a copy of the authoring conversation fails that test.

What

  • PROCESS.md §Development loop → new "Pass isolation" — every phase pass and inner-loop iteration is re-enterable from the store, the repository at a named revision, and its skill file alone. A long loop runs each pass as a delegated pass in an independent context; the orchestrator keeps only scope, fingerprint, phase, current item, and each pass's report, and writes anything else a pass needs into the store first. The pass brief is a six-row table of pointers (skill, scope, reading, boundary, exit, stop rule), never a payload. One skill, one item, one revision per pass; on a stop-rule exit, split at the next natural boundary instead of enlarging the brief. A pass returns only its Report fields and resumes from the last waypoint commit if interrupted.
  • rdd-deliver — new "Run each pass in its own context": names this skill as the orchestrator and lists what it delegates, what it writes to the store before delegating, what it accepts back, and that it never delegates to a copy of its own conversation. Inner-loop step 2 runs rdd-build/rdd-verify as one delegated pass per SR.
  • rdd-plan — step 4: for scope wider than a single SR, reconnaissance is delegated per surface as read-only passes returning DOC:/CODE:/TEST: citations; the packet author assembles citations rather than reading every surface itself. This is where the timed-out turn lived.
  • rdd-build — states the per-SR pass, the resume-from-waypoint rule (re-establish RED/passing from the repository, not memory), and the stop rule instead of pressing on with a larger attempt.
  • rdd-start — a session that ended by environment failure re-enters like any other; routing to the earliest unmet phase is the recovery.
  • rdd-cold-review — its independent context is a delegated pass under the same rule; a copy of the authoring conversation does not qualify.

Skill wording stays agent-neutral ("independent context", "delegated pass"); a consuming workspace's AGENTS.md maps that onto its agent's fresh-subagent vs fork primitives and its request-timeout settings.

Not in scope

  • Retry after a transport timeout — a harness/settings concern, not process text.
  • A file-state/ shape for briefs — a brief is a session working note, not a record.

… conversation

A long delivery loop ran a single ever-growing conversation until a request
timed out mid-build, and the work stopped short of its exit. The process
already says session notes are not authoritative and every skill already
opens by reading the store, but nothing said that a pass must be re-enterable
without the preceding conversation, nothing bounded what one pass may take
on, and nothing shaped the brief an orchestrator hands to a delegate.

PROCESS.md gains a Pass isolation subsection under Development loop: each
pass is re-enterable from the store, the repository at a revision, and its
skill file; a loop runs each pass in an independent context; the pass brief
is a table of pointers (skill, scope, reading, boundary, exit, stop rule);
one skill, one item, one revision per pass; split at the next boundary
rather than enlarging a failed brief; return only the Report fields.

rdd-deliver becomes the orchestrator explicitly. rdd-plan delegates
reconnaissance per surface for scope wider than one SR. rdd-build states its
per-SR pass and resume-from-waypoint rule. rdd-start names environment
failure as an ordinary re-entry. rdd-cold-review aligns its independent
context with the same rule.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XB5Fxdc7Yjd2VksvEt1VVW
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant