Overview
The pull request is where a shared vault’s quality is enforced. Keep the flow light enough to be used: one branch per work session, the auditor as the automated check, and human attention only on what the auditor cannot see. The coordination rules it protects are in team-vaults; PR mechanics are in github-pr-workflow.
Branch per session, not per note
A branch per atom makes dozens of one-file PRs nobody reviews. A session’s atoms, sources, and link edits (alice/2026-06-aml-reading) is the reviewable unit: big enough to show the shape of the work, small enough to read in one sitting.
Run the auditor as the merge check
Let the exit code decide in the PR workflow (github-actions):
python3 99-Tools/audit.py --format jsonExit 2 (criticals) blocks merge; exit 1 (warnings) is advisory. Map severities onto the grading scale the team already uses for code, so one vocabulary covers notes and software.
| Review grade | Auditor rules |
|---|---|
| BLOCKER | C000 unparseable frontmatter, C005 hindsight edit, C011 under-corroborated publishable claim |
| MAJOR | C001 orphan, C008 missing required field, C002 broken link |
| MINOR or NIT | C010 stale seedling, S009 naked link dump, C006 undigested source |
Lead the review comment with counts (“1 BLOCKER, 3 MAJOR”). Rule definitions are in vault-audit.
Spend human review on what the auditor cannot check
The script has verified structure and schema. The reviewer reads for the semantic tier: is the title a real claim, is the atom one idea, is the linked source the right one for the claim (semantic-audit).
Label each finding’s confidence. A reviewer who read the linked source and found it does not support the claim reports a verified problem. One who has not read it says the claim looks unsourced, pending a read. Never promote a heuristic to a merge blocker; the auditor’s criticals are the only default blockers.
Comment on a pre-decision section; never rewrite it
Decision notes have one owner, and the section written at decision time is frozen (decision-journals). A reviewer may question an assumption or flag a missing alternative in a comment. Editing the section destroys what the note exists to preserve.
Squash atoms; keep decision history
Atom PRs can squash-merge; the final note is what matters. Do not squash decision-note commits. The timeline of when each section was written is the hindsight-bias defense, and a squash collapses it into one timestamp that proves nothing.
Audit main on a schedule as well
Merge checks catch what a branch introduces, not what time does to notes already on main: expiring verification dates, stale seedlings, decisions passing their resolution date. Run the auditor weekly against main, append each run to the log, and surface the delta in the weekly review (“four orphans resolved, two unsourced atoms introduced”). The log format is in vault-audit.