Skip to content

fix: harden cleanup and quota dispatch resolution - #5028

Closed
Ivory2024 wants to merge 19 commits into
kunchenguid:mainfrom
Ivory2024:fm/firstmate-nomistakes-jev-review-assist-20260920
Closed

Ivory2024 wants to merge 19 commits into
kunchenguid:mainfrom
Ivory2024:fm/firstmate-nomistakes-jev-review-assist-20260920

Conversation

@Ivory2024

Copy link
Copy Markdown

Intent

Document how to correctly enable no-mistakes v1.79.0+'s opt-in jev.review_assist advisory pre-brief for the review step. Investigation during this task discovered jev.review_assist is global-only and has no effect when set in a repo's tracked .no-mistakes.yaml (confirmed against no-mistakes' own e2e tests and upstream PR #1120), so the originally planned repo-config change is a no-op and has been reverted. Instead this documents in docs/configuration.md: the real per-operator activation path (~/.no-mistakes/config.yaml plus TYPESAFE_API_KEY in the daemon environment), exactly what data is sent (diff of reviewable files plus up to 40 candidate file paths, paths only, never content, never project name/PR body/brief text), why this repo's gitignored/captain-private paths (.env, data/, state/, config/, projects/, .no-mistakes/) can never reach Jev (they are untracked and never appear in a git diff), and that the review step log is the audit trail for whether a pre-brief was requested/used. The ordinary cold complete review remains authoritative; Jev is advisory only and never gates delivery. This change must never be delivered to kunchenguid/firstmate upstream, only to the Ivory2024/firstmate fork.

What Changed

  • Require backend-specific post-close endpoint proofs and defer inactive/secondmate terminal reporting until cleanup is confirmed across tmux, Herdr, Zellij, Orca, and cmux.
  • Keep candidates rankable when provider-level quota status is unknown but effective availability is known, while rejecting malformed quota rows.
  • Add internal layout, steering, and specialist-routing skills; remove automatic CLAUDE.md pointer creation; and document global-only Jev review assist activation, data boundaries, fallbacks, and audit logs.

Risk Assessment

⚠️ Medium: No source-verifiable defect was substantiated; the branch contains broad lifecycle and backend changes beyond the Jev documentation, so dedicated downstream validation remains material.

Testing

Inspected the target documentation diff and confirmed the requested Jev consumer, credentials, payload boundary, and audit trail are external to this repository. No live product scenario, UI artifact, or external daemon evidence could be produced in this assigned phase.

  • Live validation: ⚠️ no-surface - 0 of 4 scenarios driven live against the product
Scenario Result Live Evidence
Operator enables Jev globally and review uses the advisory pre-brief ⏸️ untested no The no-mistakes daemon and global ~/.no-mistakes/config.yaml consumer are outside this repository. Provide no-mistakes v1.79.0+ with permitted TYPESAFE_API_KEY.
Tracked repo configuration cannot enable Jev and cold review remains authoritative ⏸️ untested no The global-only behavior is implemented by the external no-mistakes review step, not firstmate code in this worktree. Provide its e2e environment.
Review sends only the permitted diff and path-only candidate list ⏸️ untested no Payload inspection requires the external no-mistakes daemon/e2e harness and permitted TYPESAFE_API_KEY. No Jev client or request fixture exists here.
Missing key or Jev failure falls back to cold review with an audit reason ⏸️ untested no Fallback and audit-log behavior belong to the external no-mistakes daemon. Provide no-mistakes v1.79.0+ and its review-step log access.
  • Outcome: ⚠️ 2 warnings across 1 run (1m12s)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

⚠️ **Rebase** - 1 warning

Confirm these commits belong in this PR before approving, or manually separate the intended work onto origin/main before gating.

⚠️ **Review** - medium risk

✅ No issues found.

⚠️ **Test** - 2 warnings
  • ⚠️ docs/configuration.md:233 - No live-validatable surface exists in this worktree for the documented Jev behavior. Validation requires no-mistakes v1.79.0+ with its daemon, permitted TYPESAFE_API_KEY, and review-step audit logs.
  • ⚠️ this change has no live-validatable surface; proceed without live validation? (0 of 4 scenarios were driven live against the product); Operator enables Jev globally and review uses the advisory pre-brief: The no-mistakes daemon and global ~/.no-mistakes/config.yaml consumer are outside this repository. Provide no-mistakes v1.79.0+ with permitted TYPESAFE_API_KEY.; Tracked repo configuration cannot enable Jev and cold review remains authoritative: The global-only behavior is implemented by the external no-mistakes review step, not firstmate code in this worktree. Provide its e2e environment.; Review sends only the permitted diff and path-only candidate list: Payload inspection requires the external no-mistakes daemon/e2e harness and permitted TYPESAFE_API_KEY. No Jev client or request fixture exists here.; Missing key or Jev failure falls back to cold review with an audit reason: Fallback and audit-log behavior belong to the external no-mistakes daemon. Provide no-mistakes v1.79.0+ and its review-step log access.
  • Live validation: ⚠️ no-surface - 0 of 4 scenarios driven live against the product
Scenario Result Live Evidence
Operator enables Jev globally and review uses the advisory pre-brief ⏸️ untested no The no-mistakes daemon and global ~/.no-mistakes/config.yaml consumer are outside this repository. Provide no-mistakes v1.79.0+ with permitted TYPESAFE_API_KEY.
Tracked repo configuration cannot enable Jev and cold review remains authoritative ⏸️ untested no The global-only behavior is implemented by the external no-mistakes review step, not firstmate code in this worktree. Provide its e2e environment.
Review sends only the permitted diff and path-only candidate list ⏸️ untested no Payload inspection requires the external no-mistakes daemon/e2e harness and permitted TYPESAFE_API_KEY. No Jev client or request fixture exists here.
Missing key or Jev failure falls back to cold review with an audit reason ⏸️ untested no Fallback and audit-log behavior belong to the external no-mistakes daemon. Provide no-mistakes v1.79.0+ and its review-step log access.
  • git diff 1bb72cc5f88014c86e3d03244efa0bb26c22d001 0cec3eefe515a5396c42e1cf39a105d9a9179c93 -- docs/configuration.md
  • rg -n -C 3 "jev|review_assist|TYPESAFE_API_KEY|candidate file|audit trail" docs/configuration.md .no-mistakes.yaml
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

irene and others added 19 commits September 19, 2026 08:04
…ate-20260919

feat: gate fresh CLAUDE.md pointer creation on Claude Code version >= 2.1.277
…tage 2) (#2)

* feat(bin): complete stage 2 CLAUDE.md pointer removal

* no-mistakes(review): Restore column-0 heredoc regression fixture with generic content

* no-mistakes(review): Remove stale CLAUDE.md pointer claim from updatefirstmate skill

---------

Co-authored-by: irene <irene@ireneui-MacBookPro.local>
Prior commits on this branch regressed past stage2, restoring the
unconditional CLAUDE.md pointer-write logic stage2 removed. Reset to
fork/main (stage2's merged head) and redo stage3 correctly: delete the
now-dead fm_version_at_least/claude_supports_native_agents_md functions
and their header-comment reference, and drop the now-vestigial
with_mock_claude/with_no_claude test helpers (the script no longer
reads claude --version at all).

Co-authored-by: irene <irene@ireneui-MacBookPro.local>
…eering skills (#4)

* feat: add lazy specialist tool routing

Expose ECC, paperthin, and ultrawork as captain-approved specialist paths while keeping Firstmate intake and lifecycle authority. Load only the selected skill or mode and keep ECC hooks, MCP, and legacy sync opt-in.

* docs(agents): recover firstmate-layout and task-steering skills

These two skills existed only on an orphaned local branch, never pushed.
firstmate-layout is re-extracted from AGENTS.md section 2's current
(much larger) layout tree rather than reusing the stale 2026-09-14
snapshot. task-steering's underlying AGENTS.md paragraph was byte-identical
to the 2026-09-14 extraction, so it is reused as-is. Both get a one-line
trigger in section 13 and a documentation-audiences.json entry, matching
how specialist-tools (recovered earlier on this branch) is registered.

---------

Co-authored-by: irene <irene@ireneui-MacBookPro.local>
Co-authored-by: irene <irene@ireneui-MacBookPro.local>
.treehouse/ holds only runtime pool bookkeeping (treehouse-state.json,
treehouse-state.lock), never captain work, but its absence from
.gitignore makes it show up as an untracked dirty-tree blocker for
bin/fm-update.sh's self-update fast-forward check.

Co-authored-by: irene <irene@ireneui-MacBookPro.local>
Verified against no-mistakes v1.79.0's own e2e tests and upstream PR kunchenguid#1120:
jev.review_assist is global-only and has no effect when set in a repo's
tracked .no-mistakes.yaml. Revert that no-op change and document the real
activation path, data sent, and data-boundary guidance instead.
@Ivory2024

Copy link
Copy Markdown
Author

Closing: opened against the wrong base by mistake, not an intended contribution to this repo. Re-targeting to the correct fork.

@Ivory2024 Ivory2024 closed this Sep 20, 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.

1 participant