feat(brief): add PR-body Intent contract to PR-producing ship briefs#278
Open
Bre77 wants to merge 1 commit into
Open
feat(brief): add PR-body Intent contract to PR-producing ship briefs#278Bre77 wants to merge 1 commit into
Bre77 wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
bin/fm-brief.sh) now emits a# PR bodycontract section for both PR-producing modes (no-mistakes and direct-PR).## Intent/## Whatsection a scannable tree (typically 3-8 top-level bullets, nested 2-3 levels), restructuring withgh-axi pr editwhen the auto-generated body needs it.<details>block.AGENTS.mdsection 11 gains one pointer sentence naming the scaffold as the contract owner (one-owner rule; the rule text is not duplicated there).Testing
bash tests/fm-brief.test.sh- 4/4 pass, including the newtest_pr_body_contract_by_mode(section present for no-mistakes and direct-PR, absent for local-only).shellcheck bin/*.sh bin/backends/*.sh tests/*.sh(v0.10.0) - clean, invoked exactly as CI does.$(cat <<EOF)pattern with no apostrophes, so the existingbash -nregression guard for issue firstmate's fm-brief.sh scaffold script has a bug #166 covers it.Full narrative / original brief
Captain's rule (2026-07-06): the PR body's opening section (
## Intent, or## Whaton direct-PR bodies) must open with a scannable tree, not prose walls - top-level bullets for the issues addressed, sub-bullets for fix approach, implications, and scope boundaries, typically 3-8 top-level bullets nested 2-3 levels max.The structure flexes with the change type (bug fix: issue -> root cause -> fix -> implication; feature: goal -> approach -> limits; ops: what -> why -> blast radius).
Long-form narrative and/or the original task prompt are permitted but must sit at the bottom of the body inside a collapsed details block, never at the top.
All other sections (What Changed, Risk Assessment, Testing, evidence details, post-deploy ops notes) are preserved as-is.
Captain's addendum: the tree-Intent contract applies only where we own the PR template; repos with their own strict upstream PR template follow that template instead, and those descriptions stay concise and human - explain why and toward what goal, not a line-by-line tour of the diff.
🤖 Generated with Claude Code