You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document subject soft ≤50, blank line, and body lines hard
≤72 in SPECIFYING §2.8, AGENTS, CONTRIBUTING,
FAMILIARIZATION, and the operator skill. Enforce via
scripts/check-bitcode-commit-msg.mjs (commit-msg hook).
Copy file name to clipboardExpand all lines: .docs/AGENTS.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,8 +13,12 @@
13
13
-`(impl-only)` — Impl only (code, tests, tooling, scripts)
14
14
-`(spec-impl)` — Spec + Impl in lockstep
15
15
-**Never** write `(specification-only)`, `(implementation-only)`, or `(specification-implementation)` in a subject
16
-
Examples: `V48 Gate 3 (impl-only): Rename deposit input to Obfuscations` or `V48 Gate 3 (spec-only): Record SDIVF in V48 notes`. A change that touches both kinds is one `(spec-impl)` commit or a split into `(spec-only)` + `(impl-only)` — never an unlabeled mix. This keeps Complete Implementation Derivability (`.specifications/BITCODE_SPECIFYING.md` §2.8) auditable commit by commit.
17
-
-**Commit subject length:** keep the first line under **72 characters** (git default soft limit). Prefer a short imperative subject; put proof commands, file lists, and rationale in the **commit body** when needed. Do not stuff the subject with long parentheticals or run-on clauses.
16
+
Examples: `V48 Gate 3 (impl-only): Rename Obfuscations` or `V48 Gate 3 (spec-only): Record SDIVF in notes`. A change that touches both kinds is one `(spec-impl)` commit or a split into `(spec-only)` + `(impl-only)` — never an unlabeled mix. This keeps Complete Implementation Derivability (`.specifications/BITCODE_SPECIFYING.md` §2.8) auditable commit by commit.
17
+
-**Commit message shape (50/72 law)** — required for every commit and gate PR subject/body (see `.specifications/BITCODE_SPECIFYING.md` §2.8):
18
+
-**Subject (first line) ≤ 50 characters** (soft) — keep the summary readable in compact logs
19
+
-**Blank line** after the subject whenever a body follows
20
+
-**Body lines ≤ 72 characters** each (hard) — wrap proof commands, file lists, and rationale
21
+
Prefer a short imperative subject; do not stuff the subject with long parentheticals or run-on clauses.
18
22
- Any inline code comment that cites an accepted QA finding shorthand must always carry the fully-qualified tag `[VERSION]-Gate[N]-F[ID]` (e.g. `V48-Gate3-F26-B`), never a bare `F26-B`-style tag. The same fully-qualified tag must always be discoverable in the specification/QA ledger file(s) (e.g. the finding's own `### V48-Gate3-F26` heading in `.qa/BITCODE_V48_QA.md`), so a reader can go from either direction — code comment to spec entry, or spec entry to every citing code comment — with a single grep. This keeps finding-to-fix traceability intact without requiring the surrounding file or commit to already establish which version/gate is active.
19
23
- Once implementation starts on a gate branch, do not stop at partial progress unless blocked by missing external input or explicit user pause. A gate branch is ready to stop only when the gate's acceptance criteria are implemented, specified, tested, documented, committed, pushed, and pull-requested for closure into the version branch.
20
24
- Treat gate and promotion workflow health as part of gate closure. Gate pull requests into version branches must be green through the maintained gate-quality checks, and repository-wide canon-quality checks must remain greenable during draft work. Version pull requests into `main` must pass the version promotion workflow, which performs promotion-grade validations and commits the standalone `BITCODE_SPEC.txt` pointer change only after those validations pass.
0 commit comments