docs(agents): require succinct status reports - #3486
Conversation
The captain's own instruction on how he wants status reported, placed in section 1 with the rest of the captain-address contract. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J1X21dTYpwtn7KxoKF69Ji
Confidence Score: 5/5The PR appears safe to merge with no actionable issues identified. The single documentation addition matches the stated wording and placement requirements, and its concise reporting guidance does not require disclosure of internal progress or mechanics. Reviews (1): Last reviewed commit: "docs(agents): require succinct status re..." | Re-trigger Greptile |
|
Speaking as Kun's firstmate: HEAD Contract-class: new-default. Always-on AGENTS.md speech rule for every unconfigured agent — not opt-in, not restoring a prior promise. No auto-merge even when CI is green; that needs a captain default-behavior decision (shared voice vs personal preference; Document also notes GROK_BOT.md does not carry this line). Fork CI approved this pass: CI Waiting on green CI for this HEAD (serial 3 must finish inside the 20m budget, or the known pre-existing timeout must clear). Not a captain hold yet. VISION.md per-rule
|
Intent
Add exactly ONE line the captain wrote himself to firstmate's AGENTS.md, in section 1, immediately after 'Do not force it into every sentence, but never send a response with zero direct address.' and immediately before 'Use light nautical seasoning only when it fits: ...'. The inserted line is verbatim:
'Be very succinct in report status: state the problem/current status in a short 1-2 line sentence, list options/proposals/recommendations as a bulleted list always using short sentences. Avoid being verbose.'
PROVENANCE AND CONSTRAINTS, which govern review of this change: the captain wrote this sentence himself. It is his own instruction about how he wants to be spoken to, and it ships as he wrote it. The only authorised edits were two spelling corrections already applied ('succint'->'succinct', 'bulletted'->'bulleted'). Deliberate, explicit, captain-imposed exclusions - do NOT flag these as defects and do NOT change them:
Acceptance criteria set by the captain: git diff shows exactly one added line and zero other changes; the line reads exactly as written above; the repo's own checks pass. The test suite has KNOWN pre-existing failures unrelated to this change, being fixed by a separate worker in parallel - those are out of scope and must not be chased or fixed here. Before/after evidence was measured in this worktree: bin/fm-lint.sh, bin/fm-doc-audience-check.sh, and the six AGENTS.md-content-sensitive suites (startup-memory-budget, documentation-audiences, supervision-instructions, harness-adapter-references, ensure-agents-md, session-start) all pass identically before and after the edit.
If review believes the wording is wrong, that is a decision for the captain, not something to fix in the diff.
What Changed
AGENTS.mddirecting agents to keep status reports succinct: state the problem or current status in a 1-2 line sentence and list options, proposals, and recommendations as a bulleted list of short sentences.AGENTS.mdwas touched.Risk Assessment
✅ Low: The change is a single added documentation line in AGENTS.md that matches the authoritative intent verbatim and in the required position, with no code paths, generated artifacts, or size/lint-sensitive consumers affected.
Testing
Verified the three acceptance criteria directly — the diff is exactly one added line with zero other changes, the line matches the captain's text byte for byte, and the six AGENTS.md-content-sensitive suites (startup-memory-budget, documentation-audiences, supervision-instructions, harness-adapter-references, ensure-agents-md, session-start) pass with zero failures. Because this change ships prompt text rather than code, I demonstrated it end-to-end through its real delivery path: two paired
claude -pruns in sandbox directories holding only theCLAUDE.md@AGENTS.md pointer and AGENTS.md, differing only in base versus target AGENTS.md. The added line measurably takes effect, cutting responses from 444 to 161 words and from 331 to 173 words and reshaping them into a short status sentence plus short bulleted options; the second trial ran with all tools disabled so both sides had identical information and the difference is attributable to the line alone. Captured a side-by-side screenshot and the full transcripts as reviewer-visible evidence. I did not runbin/fm-lint.shorbin/fm-doc-audience-check.shdirectly, since this phase excludes linters and static analysis and the outer lint phase owns them; the doc-audience checker's behavior is covered by the documentation-audiences suite, which passed. No findings.Evidence: Rendered HTML evidence page (diff, shipped line in place, paired live transcripts)
Source: Rendered HTML evidence page (diff, shipped line in place, paired live transcripts)
Evidence: Full evidence transcript: diff, placement, and both before/after claude -p runs
Source: Full evidence transcript: diff, placement, and both before/after claude -p runs
Evidence: Live delivery contrast, trial 2 (tools disabled, identical information both sides)
Evidence: Acceptance check: exactly one added line, byte-exact match
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.
git diff --stat f42a6291d4335cc7e169660bd7114239c3830a08 88f2e4a91b32deb1972d12e8dadb9d8a9e3fc212— confirmed exactly one added line, zero other changesByte-exact Python string comparison ofAGENTS.mdline 10 against the captain's intended text (returnedTrue)sed -n '7,13p' AGENTS.md— confirmed placement immediately after 'Do not force it into every sentence...' and immediately before 'Use light nautical seasoning...'bin/fm-test-run.sh tests/fm-startup-memory-budget.test.sh tests/fm-documentation-audiences.test.sh tests/fm-supervision-instructions.test.sh tests/fm-harness-adapter-references.test.sh tests/fm-ensure-agents-md.test.sh tests/fm-session-start.test.sh—FM_TEST_SUMMARY total=6 failed=0 skipped_gate=0Manual end-to-end delivery check, trial 1:claude -p 'The herdr CI lane is failing...'run in two sandbox dirs each holding onlyCLAUDE.md(@AGENTS.md pointer) + AGENTS.md, one with basef42a629AGENTS.md and one with target88f2e4aAGENTS.mdManual end-to-end delivery check, trial 2: same paired setup with--disallowedTools "Bash,Read,Grep,Glob,Edit,Write,WebFetch,WebSearch,Task,Agent"and a fully self-contained status prompt, so both sides reasoned from identical informationRendered the paired transcripts and the in-place AGENTS.md section 1 to an HTML page and captured a full-page screenshot via headless Chromegit status --porcelain— worktree clean, all temp sandboxes and browser profiles removedGROK_BOT.md:22- GROK_BOT.md's "How you talk" section (lines 22-24) is a parallel captain-facing voice contract for the Grok deployment: it mirrors AGENTS.md section 1's mandatory "captain" address and nautical-seasoning rules but does not carry the new status-report succinctness rule. It is a separate runtime's system prompt rather than a doc copy of the AGENTS.md contract, so it is not made stale by this change in the strict sense, and the captain's acceptance criteria require the diff to contain exactly one added line and zero other changes. Whether the captain wants this preference propagated to the Grok bot prompt is his call, as a separate change.✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.