Pass isolation: run every phase as a delegated pass from records, not conversation - #16
Draft
jussi-modernpath wants to merge 1 commit into
Draft
Pass isolation: run every phase as a delegated pass from records, not conversation#16jussi-modernpath wants to merge 1 commit into
jussi-modernpath wants to merge 1 commit into
Conversation
… 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A delivery loop run under
rdd-deliveraccumulated one long conversation across planning and build until a single request timed out mid-build (a ~30-minute turn), and the scope stopped short ofIN_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.mdsays 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.rdd-cold-reviewasks 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 runsrdd-build/rdd-verifyas 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 returningDOC:/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.mdmaps that onto its agent's fresh-subagent vs fork primitives and its request-timeout settings.Not in scope
file-state/shape for briefs — a brief is a session working note, not a record.