FO auto-continues after a completed non-gated stage#303
Merged
clkao merged 3 commits intoJun 5, 2026
Conversation
Make the lifecycle invariant explicit on three FO contract surfaces, each backed by a section-scoped presence oracle, plus a failable live regression. - first-officer-shared-core.md `## Completion and Gates`: a completed non-gated, non-terminal stage is not a stopping point — advance/dispatch before ending the turn, with named halt exceptions (gate/terminal/ blocker/captain decision). Host-neutral. - docs/dev/README.md `### implementation`: completion routes immediately to fresh `validation` dispatch unless gated/blocked/terminal. - pi-first-officer-runtime.md `## Awaiting Completion`: same-turn continuation after a pi-subagents completion. AC-1/2/3 presence oracles (skills/integration) scope to each clause's section and red on a meaning-inverting paraphrase. AC-5 is a live scenario on the internal/livescenario primitive (Claude adapter, //go:build live) plus an offline state-oriented negative that reds on a hand-built status: implementation end-state with no validation report — both grading on the shared assertAutoContinue durable-state assertion. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per captain proof-policy f8b257c: a string-match over an LLM-ingested instruction file never satisfies a behavioral AC. Remove the section-scoped presence oracles; keep the three contract clauses (real authoring) and the offline state-grader negative (grades produced durable state). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Cycle-2 rework: the entity's proof is now the behavior reproduced live plus the offline state-grader negative — no presence oracles (dropped per f8b257c). - Claude leg (TestLiveAutoContinueAfterImplementation): a real FO, given an implementation-ready dev entity under a NEUTRAL runbook, advances to validation, dispatches a fresh validator, and the durable `## Stage Report: validation` lands. PASSED against a real credential (session e59d1f3b). In single-entity mode the FO runs to terminal and archives, so the grade reads the entity from the original path or `_archive/` and accepts status validation|done — over-run more than proves the FO did not stop. - Pi leg (TestLivePiAutoContinueAfterImplementation): the origin runtime where the bug bit, split-root via pi-subagents. Authored, vet -tags live clean. Launch FAILS in this env — pi-subagents@0.28.0 cannot load: peer dep @earendil-works/pi-coding-agent is not installed (pi CLI 0.68.0 ships it under the old @mariozechner scope). The existing proven Pi smoke fails identically → environment packaging gap, not a test defect. Ready to run once provisioned. - livescenario primitive: post-run read is now tolerant of a vanished entity (an agent archiving a terminalized entity is a legitimate durable OUTCOME the Assert grades, not a Run-level read error). Covered by TestScenarioVanishedEntityReachesAssert. Offline `go test ./...` green (1111). assertAutoContinue (shared state-grader) and its offline negative are unchanged and kept. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
clkao
added a commit
that referenced
this pull request
Jun 5, 2026
clkao
added a commit
that referenced
this pull request
Jun 5, 2026
…303 merging; hwk/ev3e in flight; xa+3c0b roadmapped
clkao
added a commit
that referenced
this pull request
Jun 5, 2026
clkao
added a commit
that referenced
this pull request
Jun 5, 2026
…e+timeout saga, API-overload reckoning, 0.19.6 slate filed
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.
Forbid the FO silently stopping after a completed non-gated stage: make the auto-continue lifecycle invariant explicit on three contract surfaces, proven by a live regression rather than a substring check.
What changed
## Completion and Gates), the dev-README### implementation, and the pi-runtime## Awaiting Completion.internal/livescenario-based auto-continue regression (+ a tolerant post-run read) and its offline negative.Evidence
go test ./...green (14 packages); the offline negative reds on a stop-end-state that narrates advancement while durable state stayed at implementation.pi-subagentspeer-dep gap → provisioning follow-up.wm