Skip to content

fix(skills): trigger no-mistakes validation via CLI instead of skill invocation - #2869

Open
pramendra wants to merge 5 commits into
kunchenguid:mainfrom
pramendra:fm/harness-adapters-no-mistakes-invocation
Open

fix(skills): trigger no-mistakes validation via CLI instead of skill invocation#2869
pramendra wants to merge 5 commits into
kunchenguid:mainfrom
pramendra:fm/harness-adapters-no-mistakes-invocation

Conversation

@pramendra

Copy link
Copy Markdown

Intent

harness-adapters still told firstmate to trigger no-mistakes validation via a skill-invocation form (/no-mistakes or $no-mistakes) sent into a spawned worker's pane. Spawned claude crewmates inherit firstmate's own CLAUDE_CONFIG_DIR (bin/fm-spawn.sh), and a non-default store commonly has no skills/ directory, so /no-mistakes reliably fails to resolve - the same failure already fixed for bin/fm-brief.sh's crew brief scaffold, though that fm-brief.sh fix lives only on a separate unmerged branch so this branch's doc wording must not assert it is already present here. Fix harness-adapters' no-mistakes-triggering guidance (and AGENTS.md's Validate-section pointer to it) to route the validation trigger through the CLI (no-mistakes axi run) instead of a skill name, while preserving per-harness skill-invocation facts that have no other home in the document. Do not commit .serena/ or any other local IDE/tool state - it is unrelated to this fix.

What Changed

  • Replaced harness-adapters' "no-mistakes skill invocation" guidance with a "Triggering no-mistakes validation" section that forbids sending a skill-invocation form (/no-mistakes, $no-mistakes, or equivalent) into a spawned worker's pane — since claude crewmates inherit firstmate's own CLAUDE_CONFIG_DIR via bin/fm-spawn.sh and a non-default store commonly has no skills/ directory — and instead directs a short natural-language instruction telling the crewmate to drive validation itself via no-mistakes axi run.
  • Preserved the per-harness skill-invocation facts that had no other home in the document by moving opencode's and pi/pi-signed's "no separate verified skill invocation" notes into their existing per-harness reference tables, and generalized the codex $-popup timing note to describe $<skill> invocations generically rather than asserting $no-mistakes is still the active validation trigger.
  • Updated AGENTS.md's Validate section to point at harness-adapters' "trigger procedure" instead of its "harness invocation" when describing how a no-mistakes ship is triggered on a worker.

Risk Assessment

✅ Low: The fix commit (b80a3d3) cleanly removes the previously-flagged .serena/project.yml and .serena/.gitignore with no unrelated changes, and the underlying documentation fix correctly routes no-mistakes triggering through the CLI while relocating per-harness skill-invocation facts into their own harness tables (verified against bin/fm-spawn.sh's actual CLAUDE_CONFIG_DIR forwarding), fully satisfying the stated user intent.

Testing

This change is a documentation-only fix (SKILL.md prose plus one AGENTS.md pointer sentence) with no executable code path, so no unit test applies; I manually verified the doc content instead. The new "Triggering no-mistakes validation" section correctly forbids the skill-invocation form and routes triggering through no-mistakes axi run via natural language, the per-harness skill-invocation facts that were removed from the old shared bullet list are still present via each harness's own table (with opencode and pi gaining new table rows to replace them), the AGENTS.md Validate-section pointer now references the "trigger procedure" rather than "harness invocation," and the previously-flagged false claim that bin/fm-brief.sh already warns about the unreachable skill was removed in the follow-up review commit — confirmed against the actual bin/fm-brief.sh content, which still says /no-mistakes unmodified on this branch. No committed .serena/ files were found (only an untracked directory), satisfying that constraint. No transient artifacts were created during this read-only verification.

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

🔧 **Review** - 1 issue found → auto-fixed ✅
  • 🚨 .serena/project.yml:1 - The target commit (33c9bff, current HEAD) still adds and commits .serena/project.yml (169 lines of local Serena MCP tool config, including a machine-specific project_name) and .serena/.gitignore. This directly violates the user intent's explicit forbidden constraint: 'Do not commit .serena/ or any other local IDE/tool state - it is unrelated to this fix.' It also contradicts this exact round's own recorded fix instructions (Round 2: 'Remove .serena/project.yml and .serena/.gitignore from the fix-round commit'), which were never actually applied - the files are present, not removed, in the diff between base and target.

🔧 Fix: Remove committed .serena local tool state files
✅ Re-checked - no issues remain.

✅ **Test** - passed

✅ No issues found.

  • Read git diff 505c8195..33c9bff4 for .agents/skills/harness-adapters/SKILL.md and AGENTS.md to confirm the trigger-mechanism change and preserved per-harness facts
  • grep -n 'Skill invocation|no-mistakes|fm-brief' .agents/skills/harness-adapters/SKILL.md to confirm each harness (claude, codex, grok, cursor, kimi, opencode, pi) still documents its skill-invocation form in its own table, with opencode and pi gaining new rows to replace the removed shared bullet list
  • git show 33c9bff -- SKILL.md to confirm the false claim that bin/fm-brief.sh already warns about the unreachable skill was removed
  • grep -n 'no-mistakes|axi run' bin/fm-brief.sh and git diff base..HEAD -- bin/fm-brief.sh (no diff) to confirm fm-brief.sh still says '/no-mistakes' in this branch, validating that the SKILL.md doc correctly does not claim that fix is already present here
  • git ls-files | grep -i serena (no tracked files) and git status (only untracked .serena/) to confirm no local IDE/tool state is committed
  • grep -rn 'AGENTS.md|harness-adapters' across tests/*.test.sh to confirm no existing automated test asserts on this specific doc wording (none found, so manual doc review is the appropriate evidence for this prose-only change)
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Your Name added 4 commits August 23, 2026 19:45
…through a skill name

CLAUDE_CONFIG_DIR is forwarded to claude crewmates for credential parity
(bin/fm-spawn.sh), but a non-default store commonly has no skills/
directory, so /no-mistakes reliably fails to resolve there - the same
failure already routed around in bin/fm-brief.sh's crew brief. Firstmate
now tells the worker in natural language to drive no-mistakes through its
own CLI instead, uniformly across every harness.
@greptile-apps

greptile-apps Bot commented Aug 23, 2026

Copy link
Copy Markdown

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Reviews (2): Last reviewed commit: "no-mistakes: apply CI fixes" | Re-trigger Greptile

Comment thread .agents/skills/harness-adapters/SKILL.md Outdated
Comment thread .serena/project.yml Outdated
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