Skip to content

docs: restore "all" to the axi tooling rule in AGENTS.md - #7

Merged
digbycampbell merged 1 commit into
mainfrom
fm/fm-restore-gh-axi-all
Aug 18, 2026
Merged

docs: restore "all" to the axi tooling rule in AGENTS.md#7
digbycampbell merged 1 commit into
mainfrom
fm/fm-restore-gh-axi-all

Conversation

@digbycampbell

Copy link
Copy Markdown
Owner

Intent

Restore the word "all" to the axi-tooling rule in AGENTS.md line 109. This is a deliberately tiny, single-line change that must not be widened. Change: 'Use gh-axi for GitHub, chrome-devtools-axi for browser work, and lavish-axi for structured decisions or reports' becomes 'Use gh-axi for all GitHub operations, chrome-devtools-axi for all browser operations, and lavish-axi for structured decisions or reports' (lavish-axi wording unchanged; only the two 'all' insertions are new), keeping the one-line sentence intact. Rationale for the commit body: commit 71db4be ('compress Firstmate contract', 2026-07-15) reduced this from four reinforcing mentions to one and dropped both instances of 'all'; the concrete cost was firstmate drifting to raw gh for an entire session, which matters because gh pr checks exits non-zero by design when checks are not all green, so a caller reading a non-zero exit as an error discards the answer, whereas gh-axi returns the same information as data with exit 0. Scope discipline: an audit found four OTHER weakened or lost rules in the same commit 71db4be; those are explicitly OUT OF SCOPE for this task, must not be restored, mentioned in the diff, or have neighbouring lines improved - only this one line changes. Constraints: one sentence per line in long Markdown (not applicable here, single line edit), never add an agent name as a commit co-author, no migration/script/test changes unless a test genuinely asserts the old wording (none found). The PR body must note that the same weakened line exists in upstream kunchenguid/firstmate, so this fix will need to reach upstream separately or it will be re-inherited on the next update; no upstream PR should be attempted by this task. Acceptance: PR open and ready, checks green, one-line diff to AGENTS.md (CLAUDE.md is a symlink to AGENTS.md and follows automatically, verified, not edited separately).

What Changed

  • Restored the two all qualifiers to the axi-tooling line in AGENTS.md (line 109): agents must use gh-axi for all GitHub operations and chrome-devtools-axi for all browser operations. The lavish-axi clause and the rest of the sentence are unchanged, and the rule stays a single line.
  • Motivation: commit 71db4be ("compress Firstmate contract", 2026-07-15) collapsed four reinforcing mentions into one and dropped both instances of all. The observed cost was firstmate drifting to raw gh for a whole session, which matters because gh pr checks exits non-zero by design when checks are not all green, so a caller treating a non-zero exit as an error throws away a valid answer, whereas gh-axi returns the same information as data with exit 0.
  • Scope is deliberately one line. An audit found four other rules weakened in the same commit; they are intentionally left untouched here. CLAUDE.md is a symlink to AGENTS.md and follows automatically (verified, not edited separately).

Note: the same weakened line also exists upstream in kunchenguid/firstmate. This fix needs to reach upstream separately or it will be re-inherited on the next update; no upstream PR was attempted from this branch.

Risk Assessment

✅ Low: Single-line documentation wording restoration exactly as specified, with no code or behavior impact.

Testing

I treated the agent-facing instruction text as the end-user surface and captured it as it is actually delivered: line 109 read through both AGENTS.md and the CLAUDE.md symlink shows the restored "all GitHub operations" / "all browser operations" wording with lavish-axi unchanged, and the full branch diff is a single line, so none of the four other rules weakened in 71db4be leaked in. I added no test, since the only thing such a test could assert is a string in a prose instruction file — the source-grep anti-pattern — and a repo-wide search confirmed nothing asserts the old wording. The closest AGENTS.md-consuming suite, fm-session-start, has one failing case that reproduces identically with the base AGENTS.md restored, so it is pre-existing and unrelated.

Evidence: Restored agent contract line as loaded at session start, plus full one-line diff

Source: Restored agent contract line as loaded at session start, plus full one-line diff

$ sed -n '109p' CLAUDE.md # resolved through the symlink, i.e. what a Claude session actually reads Use gh-axi for all GitHub operations, chrome-devtools-axi for all browser operations, and lavish-axi for structured decisions or reports; consult current help rather than memorizing flags. $ git diff 6ed3006..12e66f6 --numstat 1 1 AGENTS.md

### Agent-facing contract as loaded at session start (AGENTS.md is the agent job description; CLAUDE.md is a symlink to it)

$ ls -l CLAUDE.md
lrwxrwxrwx 1 digby digby 9 Aug 18 10:05 CLAUDE.md -> AGENTS.md

$ sed -n '109p' AGENTS.md
Use `gh-axi` for all GitHub operations, `chrome-devtools-axi` for all browser operations, and `lavish-axi` for structured decisions or reports; consult current help rather than memorizing flags.

$ sed -n '109p' CLAUDE.md   # resolved through the symlink, i.e. what a Claude session actually reads
Use `gh-axi` for all GitHub operations, `chrome-devtools-axi` for all browser operations, and `lavish-axi` for structured decisions or reports; consult current help rather than memorizing flags.

### Scope: full diff vs base 6ed3006
diff --git a/AGENTS.md b/AGENTS.md
index 7da1bdd..4a13882 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -106,7 +106,7 @@ The fleet-state digest's per-task liveness line is a presence check only; read `
 
 Bootstrap detects first, asks for consent, and installs only after the captain approves in the current session.
 Do not dispatch until the required tools are present and GitHub authentication is good.
-Use `gh-axi` for GitHub, `chrome-devtools-axi` for browser work, and `lavish-axi` for structured decisions or reports; consult current help rather than memorizing flags.
+Use `gh-axi` for all GitHub operations, `chrome-devtools-axi` for all browser operations, and `lavish-axi` for structured decisions or reports; consult current help rather than memorizing flags.
 A silent bootstrap section needs no action, and `BOOTSTRAP_INFO:` lines are completed no-action facts; load `bootstrap-diagnostics` for any printed actionable diagnostic line.
 `secondmate-provisioning` owns startup secondmate sync, liveness, and inherited local-material convergence.
 
### Other rules weakened in 71db4be remain untouched (no restoration leaked in)
1	1	AGENTS.md
- Outcome: ⚠️ 1 info across 1 run (2m42s)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

⚠️ **Test** - 1 info
  • ℹ️ tests/fm-session-start.test.sh - tests/fm-session-start.test.sh fails on the final case ("MISSING diagnostic did not appear at all"). Verified pre-existing: it fails identically with the base 6ed3006 version of AGENTS.md restored, so it is unrelated to this change.
  • git diff 6ed3006..12e66f6 --numstat — confirmed a single 1-insertion/1-deletion hunk in AGENTS.md only
  • sed -n '109p' AGENTS.md and sed -n '109p' CLAUDE.md — restored sentence is what an agent session actually loads through the symlink (ls -l CLAUDE.md confirms CLAUDE.md -> AGENTS.md)
  • grep -rn 'for GitHub|browser work|for all GitHub' -I . — no test, script, or fixture asserts the old or new wording (only bin/fm-brief.sh's separate, unmodified prose)
  • bash tests/fm-session-start.test.sh — nearest AGENTS.md-consuming test; ran on target and again with the base AGENTS.md swapped in to prove the one failure is pre-existing
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Commit 71db4be dropped the absolute from both instances when compressing
four reinforcing mentions into one, causing drift to raw `gh` for a
session; raw `gh pr checks` exits non-zero on non-green checks by
design, which a caller reading exit code as success/failure discards.
@digbycampbell
digbycampbell force-pushed the fm/fm-restore-gh-axi-all branch from 12e66f6 to a5b5569 Compare August 18, 2026 04:48
@digbycampbell

Copy link
Copy Markdown
Owner Author

Note: actionlint lint gate skipped — new requirement, not pre-existing

This run's lint step reported fm-lint-workflows.sh: actionlint not found and was skipped. Verified two things before skipping:

  • The diff is unaffected. This PR only touches AGENTS.md; shellcheck itself reported "no changed lint targets," so no shell/workflow lint signal was lost by skipping.
  • This is a new local requirement, not a pre-existing gap. bin/fm-lint-workflows.sh did not exist before this branch was rebased onto the latest origin/main; it was introduced entirely by the upstream-sync merge commit (1e0557c, "adding workflow linting and decision-hold bindings", feat(bin): merge upstream/main into fork, adding workflow linting and decision-hold bindings #8). Confirmed with git show 6ed3006:bin/fm-lint-workflows.sh (missing) vs git show 1e0557c:bin/fm-lint-workflows.sh (present), and git log --oneline 6ed3006..1e0557c -- bin/fm-lint-workflows.sh showing only that one commit.

Because this is a newly-added check, skipping it here should not become a standing pattern: actionlint (pinned 1.7.12 per the log) needs installing in the environment so subsequent firstmate-repo runs actually exercise this gate instead of skipping it by default.

@digbycampbell

Copy link
Copy Markdown
Owner Author

Note: AGENTS.md line survived the upstream merge unchanged

Before rebasing onto current origin/main, verified the target line was not touched by the upstream-sync merge (1e0557c, #8), which resolved three unrelated charter-prose conflicts elsewhere in AGENTS.md:

$ git show 6ed3006:AGENTS.md | grep -n "gh-axi.*chrome-devtools-axi.*lavish-axi"
109:Use `gh-axi` for GitHub, `chrome-devtools-axi` for browser work, and `lavish-axi` for structured decisions or reports; consult current help rather than memorizing flags.

$ git show 1e0557c:AGENTS.md | grep -n "gh-axi.*chrome-devtools-axi.*lavish-axi"
112:Use `gh-axi` for GitHub, `chrome-devtools-axi` for browser work, and `lavish-axi` for structured decisions or reports; consult current help rather than memorizing flags.

Identical wording pre- and post-merge; the line only shifted from 109 to 112 due to unrelated earlier insertions. This diff's one-line restoration applies to the exact text it originally targeted, not to text the merge silently changed underneath it.

@digbycampbell
digbycampbell merged commit ecb59e6 into main Aug 18, 2026
13 checks passed
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