Skip to content

fix(bin): distinguish validation handoff from terminal completion - #2958

Open
connectwithclayton wants to merge 7 commits into
kunchenguid:mainfrom
connectwithclayton:fm/fm-brief-done-wording
Open

fix(bin): distinguish validation handoff from terminal completion#2958
connectwithclayton wants to merge 7 commits into
kunchenguid:mainfrom
connectwithclayton:fm/fm-brief-done-wording

Conversation

@connectwithclayton

Copy link
Copy Markdown

What changed

  • Generated no-mistakes briefs now use needs-validation: {summary} for the committed implementation handoff and reserve done: PR {url} checks green for terminal completion.
  • Centralized status classification treats the new marker as actionable and non-terminal, so supervisors can distinguish the two states by verb alone.
  • Supervision keeps the two-phase flow intact: workers still stop after the implementation commit, and firstmate still triggers validation before the terminal PR completion report.

Defect

Worker instructions reused the done: prefix for both "implementation committed, start validation" and "PR open, checks green, finished."
A supervisor reading a status log therefore could not distinguish the opposite lifecycle states mechanically.

Before, both states appeared as done::

  • done: implementation committed
  • done: PR https://example.test/pr/7 checks green

After, the handoff and terminal state are distinct:

  • needs-validation: implementation committed
  • done: PR https://example.test/pr/7 checks green

Validation

At shipping head 3db189f8, the test phase reported:

Targeted behavioral suites and an end-to-end generator/classifier transcript completed successfully, proving the worker handoff remains non-terminal, active validation supersedes the handoff, terminal PR completion remains done:, and heartbeat fail-safe behavior remains covered; lint was intentionally not run under the test-phase prohibition.

The outer lint phase subsequently ran bin/fm-lint.sh successfully with pinned ShellCheck 0.11.0 and actionlint 1.7.12.

@greptile-apps

greptile-apps Bot commented Aug 24, 2026

Copy link
Copy Markdown

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains; the previously reported legacy FM_CAPTAIN_RE override path now recognizes the validation handoff before applying the override regex.

Reviews (2): Last reviewed commit: "fix(classify): preserve validation hando..." | Re-trigger Greptile

Comment thread bin/fm-classify-lib.sh Outdated
@connectwithclayton

Copy link
Copy Markdown
Author

Addressed the review finding in 1afa3dc. status_is_captain_relevant now recognizes the configured needs-validation handoff before applying FM_CAPTAIN_RE, so a legacy operator regex cannot silently suppress the validation trigger; regression coverage includes both a realistic legacy regex and an overridden handoff verb. I audited every vocabulary consumer: watcher, daemon, stale and signal scans, and push-transition handling all route through the shared classifier, so no other override-blind path remains. Full local runner on the exact committed tree contents: FM_TEST_SUMMARY total=160 failed=12 skipped_gate=27 duration_ms=6472283; all changed-path tests and lint passed, while the 12 failures were unrelated existing baseline cases.

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