@@ -30,7 +30,7 @@ Where the dev workflow stops for a human today:
3030| ------------| --------| --------------| ------------------|
3131| Plan approval | write plan to the issue, proceed | write plan to the issue, proceed | present + wait |
3232| Ship PR sign-off | proceed through the autonomous-ship gate; end at PR-open | park (` awaiting-input ` ), question to the issue, continue elsewhere | present + wait |
33- | Heart YELLOW | park — human checkpoint at ** every ** level | park | present + wait |
33+ | Heart YELLOW | park, unless the reason set was human-acknowledged at launch (see the autonomous-ship gate) | same as ` safe ` | present + wait |
3434| Heart RED | stop, report | stop, report | stop, report |
3535| Merge / close | human, always | human, always | human, always |
3636| Version ask | n/a — release is always ` human-required ` | n/a | ask |
@@ -69,19 +69,36 @@ evidence.
6969
7070## The autonomous-ship gate
7171
72- An unattended ship (checkpoint 2 at ` safe ` ) requires ** all four** , no
73- substitutions:
74-
75- 1 . worktree pytest on the affected repos (full suite),
76- 2 . the curated smoke-test subset,
77- 3 . review-faculty verdict ** CLEAN** ,
78- 4 . Heart ** GREEN** .
79-
80- The gate's audit and precise composition are ` PyAutoMind/feature/autonomy/ `
81- task 3; the review faculty is task 2. ** Until both land, no run ships
82- unattended** — ` --auto ` ends at ship sign-off regardless of level. A failed
83- gate downgrades the run to a human checkpoint: state written to the issue,
84- nothing force-shipped.
72+ An unattended ship (checkpoint 2 at ` safe ` ) requires ** all four legs** , no
73+ substitutions. Audited 2026-07-08 (issue #38 ); each leg carries an
74+ applicability rule so "n/a" is a stated fact, never an assumption:
75+
76+ 1 . ** Tests** — worktree pytest (full suite, ` -x ` ) on every ** shipped** repo,
77+ * plus* every downstream library repo when the diff touches public API
78+ (review-surface ` python-source ` flag with Removed/Renamed/Changed-Signature
79+ entries). The audit found the shipped-repos-only contract papers over
80+ downstream breakage with human PR review — an autonomous run doesn't have
81+ that reviewer, so it runs the dependents' suites too. Repos with no test
82+ dir (organism/doc repos): leg is n/a, stated in the PR body.
83+ 2 . ** Smoke** — the curated ` smoke_tests.txt ` subsets (Heart's ` smoke_test `
84+ skill, all six workspaces by default) run with the task worktree's
85+ ` activate.sh ` sourced, so they exercise the branch. Applies where the
86+ changed repo has a downstream script surface; organism/doc-only changes:
87+ n/a, stated in the PR body. Never grow the curated lists to make this leg
88+ feel stronger.
89+ 3 . ** Review** — review-faculty verdict ** CLEAN**
90+ (` agents/faculties/review/AGENTS.md ` ). FINDINGS → resolve and re-review, or
91+ park to a human checkpoint; BLOCKED → park.
92+ 4 . ** Heart** — verdict ** GREEN** , or ** YELLOW whose reason set is contained
93+ in the set the human acknowledged at launch** . Heart observes organism
94+ state, not the branch (the audit confirmed its legs never see feature
95+ branches), and chronic staleness reasons would otherwise dead-end all
96+ autonomy. The acknowledgement binds to the * exact reason list* at launch,
97+ for that launch only — any new reason, or RED, parks the run. Never
98+ ambient, never carried across sessions.
99+
100+ A failed leg downgrades the run to a human checkpoint: state written to the
101+ issue, nothing force-shipped, never modify code to make a leg pass.
85102
86103## Calibration log
87104
@@ -103,7 +120,9 @@ calibration, not by optimism.
103120- ** Autonomous runs end at PR-open** , with the PR body carrying the plan, the
104121 review verdict, test/smoke counts, and a validation checklist.
105122- ** Never modify code to make tests or smoke tests pass.**
106- - ** Heart YELLOW/RED is never acknowledged autonomously.**
123+ - ** Heart YELLOW/RED is never acknowledged autonomously.** A launch-time
124+ human acknowledgement of a named reason set is a human acknowledgement — it
125+ binds to that exact set, for that launch, and never extends to new reasons.
107126- ** Never rewrite history** (` AGENTS.md ` rules apply verbatim to autonomous
108127 runs).
109128- The ` Autonomy: ` header is a model's own estimate. The caps, the explicit
0 commit comments