Skip to content

feat: distinguish worker completion evidence states - #4892

Open
jasonlgong wants to merge 6 commits into
kunchenguid:mainfrom
jasonlgong:fm/fm-handoff-bundles-v2
Open

jasonlgong wants to merge 6 commits into
kunchenguid:mainfrom
jasonlgong:fm/fm-handoff-bundles-v2

Conversation

@jasonlgong

@jasonlgong jasonlgong commented Sep 19, 2026 •

Copy link
Copy Markdown

Intent

Build the 'canonical handoff bundles' firstmate improvement so a worker's completion can never be misread as more than it is. From the session retro (data/fm-session-retro-review/report.md, prioritized system recommendation #3): validate that a worker's report exists at its canonical path before the worker retires, and make status/handoff evidence distinguish committed vs tested vs published vs green-CI, so a 'done: committed' checkpoint cannot be read as 'green CI' and a reviewer never opens to an advertised-but-absent report. This session hit both problems: reviewers found fix reports absent at their canonical data//report.md paths and had to read worktree checkpoints instead, and a 'done: committed' nearly read as shipped.

What Changed

  • Distinguishes committed, published, tested, skipped, approval-gated, and green-CI worker checkpoints so unverified completion cannot be read as passing CI.
  • Updates delivery prompts and reconciliation to emit and recognize explicit published and green-CI handoff signals while retaining legacy PR lines.
  • Adds regression coverage and documentation for completion evidence, CI status interpretation, and parent-channel delivery.

Risk Assessment

✅ Low: The changed completion vocabulary, CI evidence classification, and PR extraction paths are internally consistent, and no additional source-verifiable defect was found in the reviewed diff.

Testing

Ran the three focused product-level shell test suites. All scenarios passed, and no transient worktree artifacts remained. No UI surface applies, so no screenshot was needed.

  • Live validation: ✅ go - 3 of 3 scenarios driven live against the product
Scenario Result Live Evidence
Generated briefs distinguish committed, tested, published, and green-CI evidence. ✅ pass live ./tests/fm-brief.test.sh
Committed, skipped, approval-gated, and no-checks states are not reported as green CI. ✅ pass live ./tests/fm-crew-state.test.sh
Inactive reconciliation preserves PR URLs from published and green-CI handoff lines. ✅ pass live ./tests/fm-inactive-reconcile.test.sh
Evidence: Targeted validation output
Focused suites passed: fm-brief, fm-crew-state, and fm-inactive-reconcile.

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • Live validation: ✅ go - 3 of 3 scenarios driven live against the product
Scenario Result Live Evidence
Generated briefs distinguish committed, tested, published, and green-CI evidence. ✅ pass live ./tests/fm-brief.test.sh
Committed, skipped, approval-gated, and no-checks states are not reported as green CI. ✅ pass live ./tests/fm-crew-state.test.sh
Inactive reconciliation preserves PR URLs from published and green-CI handoff lines. ✅ pass live ./tests/fm-inactive-reconcile.test.sh
  • ./tests/fm-brief.test.sh
  • ./tests/fm-crew-state.test.sh
  • ./tests/fm-inactive-reconcile.test.sh
  • git status --short
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@kunchenguid

Copy link
Copy Markdown
Owner

Speaking as Kun's firstmate:

HEAD b8c860954c54f0ce236c0ae96eb0bcdaf062b04d. MERGEABLE/UNSTABLE vs main 1bb72cc5f880. Author jasonlgong is not blocked. No .github/workflows/*.

Attestation: MATCH (body head_sha = tip). Tip CI/NM were action_required; workflow-approved this pass after diff review — runs 35414542138 / 35414542100 / 35414968924 now queued.

Contract-class: restore. Tip vs main: existing ship/scout completion handoff path already promised distinct ready signals (done: PR … / done: PR … checks green); tip makes committed / published / tested / green-CI evidence explicit so a non-green checkpoint cannot be read as green CI, and keeps legacy PR-URL extraction. Unconfigured product gains no new observer/wake/Bearings/bootstrap — only honesty of the existing handoff contract. Not a new default-on surface.

VISION.md (per rule)

  • One captain, one interface: aligns — honest outcomes; machinery stays below deck (handoff text distinguishes evidence).
  • Authority explicit never inferred: aligns — no new autonomy grant; reporting only.
  • Scripts own mechanics / agents judgment: aligns — deterministic status parsing / DoD text in scripts.
  • A restart is a non-event: aligns — durable status lines remain the record.
  • Delegation with a spine: aligns — clearer completion contract before retire.
  • The fleet outlives any vendor: aligns — harness-agnostic status vocabulary.
  • Scope: aligns — command-layer honesty, not workshop growth.

Outcome: waiting-ci. Firstmate flag: no. Security FYI: none.

Gate report-bearing ship retirement on explicit canonical report metadata. Preserve the scout discard boundary. Label worker checkpoints and require passing-check evidence before reporting green CI; expose skipped and absent checks.

Validation: brief and crew-state suites, new report retirement cases, pinned lint, documentation audience checks, and Bash syntax pass. The full teardown suite stops at herdr-preflight-missing-adapter; the unchanged base commit reproduces that same failure.
@jasonlgong
jasonlgong force-pushed the fm/fm-handoff-bundles-v2 branch from b8c8609 to a984be9 Compare September 19, 2026 16:41
@jasonlgong jasonlgong changed the title fix(bin): distinguish completion evidence in handoff state feat: distinguish worker completion evidence states Sep 19, 2026
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.

2 participants