Skip to content

Test-rule context audit

Read all 197 lines / 133 nonblank lines, 24,802 UTF-8 bytes. Persona: main-session — craftsperson. No repository edits.

Delivery

Canonical body is present exactly in tests/AGENTS.md lines90–279, .claude/rules/tests.md lines7–196, and packaged src/gzkit/rules/tests.md lines8–197. tests/CLAUDE.md imports sibling AGENTS. Codex receives the tests AGENTS through its starting-directory chain; Claude also has the paths-scoped rule mirror. These observations do not establish duplicate runtime injection by Claude.

The prior native delivery audit measured only 17,025 / 30,284 bytes of tests/AGENTS after the 48,511-byte root, cutting in mutation doctrine. Later exit-status, TASK and REQ-channel material was not reached. This is the earlier snapshot; root publication is in progress, so no current delivery claim is made. See /tmp/gz-context-audit-delivery.md.

Canonical .gzkit/rules/tests.md; exact packaged copy src/gzkit/rules/tests.md and generated tests/AGENTS.md and .claude/rules/tests.md observed. No tests corpus stream exists in current .gzkit/corpus inventory; do not invent CMS entry ownership. Main session owns publication/onboarding choice.

Strongest exact candidates

Combined literal savings: 3,451 bytes per complete generated body. No tested condensed rendition or sum across different vendors is claimed.

Lift version and incident history — line 12

2,075 → 118 bytes; save 1,957.

No unique operational rule is lost:22 carries Git boundary;82-109 carry mutation/verifier obligations. Archive displaced text in existing tests history section.

Row90 Mechanical isolation clause remains unchanged at22. This exact proposal changes no rule version; actual publication must apply the governing version/scorecard workflow.

Exact before:

Markdown
> **Rule version:** `0.23.0` — GHI #977 adds § Isolation *Git fixture isolation*: every `git` a test spawns passes `env=_isolated_git_env()`, git's own repo-local variable set (`local_repo_env`) scrubbed at the fixture boundary. Measured 2026-09-07: a push from a linked worktree ran the pre-push `gz check`, the fixtures inherited the hook's absolute `GIT_DIR`, and `git init` in a temp dir re-initialised the hosting repository as bare while `git config` wrote the fixture identity into its shared config. MECHANICAL from the first landing — `tests/commands/test_common_fixtures.py::TestEveryGitSpawnIsInsideTheBoundary` fences every literal `git` argv under `tests/**`. Prior `0.22.0` — GHI #970 extends § Verification exit-code integrity to the `||` BRANCH: the branch announces a failure in output and replaces it in status, and the gate had honoured the announcement as if it were the report. Names the branch-local remedy (`set -e` is suppressed left of `||`), and tracks the two limits it declares rather than closes — the aggregate status (GHI #969) and the caught `&&` chain (GHI #971). Prior `0.21.0` — GHI #940 extends § Verification exit-code integrity to the SEQUENCE form: the clause was scoped to the pipe character while the shell reports the last *statement* just as it reports the last *stage*, so `verifier > log; tail log` read as compliant. Names the two non-interchangeable remedies (`pipefail` for a pipe, `set -e` for a sequence), the immediacy requirement on a `$?` read, and — declared rather than hidden — that the aggregate status is a floor a shell-level rule cannot lift. Prior `0.20.0` — adds § Mutation-sweep integrity (GHI #963): a failing mutant run is not a kill, sweeps report four outcomes, and every mutant runs with its own bytecode cache. Prior `0.19.0` diet pass under GHI #921 (operator ruling 2026-08-29, *"we are compressing everything and anything that the agent can consume"*). Version history lifted to [Rule Version History](../../docs/governance/rule-version-history.md#testsmd). Binding rules unchanged.

Proposed after:

Markdown
> **Rule version:** `0.23.0`. History: [Rule Version History](../../docs/governance/rule-version-history.md#testsmd).

Keep full-tier facts; lift dated benchmark — line 19

687 → 114 bytes; save 573.

The fixed budget belongs to smoke, while full-unit ceiling absence and parallel permission are the enduring facts. Benchmark and ratchet explanation do not need repeated delivery.

Row87 Mechanical smoke rule remains unchanged at18. Preserve historical measurements in on-demand history/rationale; proposal introduces no new performance threshold.

Exact before:

Markdown
- **Full unit tier: no fixed ceiling.** Its runtime grows with the REQ set by design — every BEHAVIOR REQ owes a covering test and § Coverage Floor requires it — so a constant ceiling over a ratcheting workload can only be breached, never held. That is why the 60s budget belongs to the `@smoke` subset, and the reason is the ratchet, NOT a ruling against parallel execution: the canonical "Tests pass" invocation runs `unittest-parallel` (GHI #856). Dated record, 2026-08-27 at `2c81cb7d`, 10-core host, 8,912 tests, both exit 0: **144.23s serial, 41.34s parallel** — illustrative of the gap, never a threshold; the enforced budget is whatever `uv run gz smoke` fails closed on.

Proposed after:

Markdown
- **Full unit tier: no fixed ceiling.** The 60s budget applies only to `@smoke`; parallel execution is permitted.

Delete repeated TDD rhythm paragraph — line 78

921 → 0 bytes; save 921.

The repeating per-behavior cycle remains at58 and60-62; no second admonition or causal essay is necessary.

Rows72 and75 are Judgment. Operator selects deleting this repetition; record that horizontal-batch discussion remains in tests-rationale33-41, while the standing per-behavior cycle remains binding. This does not authorize dropping RED evidence at80.

Exact before:

Markdown
**Per-increment rhythm:** One test → one observed RED → minimum code to GREEN → next increment. **Do not slice horizontally** — authoring every test for a brief and then every implementation is not TDD with a long cycle, it is a different activity that produces tests insensitive to change. Written against an implementation you are *about to* write, assertions record the shape you already intend rather than the behavior the REQ demands, and none is ever observed failing for the right reason: the RED that arrives with ten other REDs is noise, not a signal about any one of them. Slice vertically — one REQ carried from failing test to passing code before the next begins. This is § The discriminator applied at authoring time rather than review time: a test batch-written alongside its implementation is the shape most likely to answer "no" to *if behavior changed but text did not, would this test fail?*

Proposed after:

Markdown
<delete this paragraph>

Project facts to preserve

  • unittest only; runner boundaries; @smoke and its budget; coverage floor.
  • Exact Git isolation helper and package environment boundary; temp DB and cleanup restrictions.
  • REQ-derived BEHAVIOR proof versus SUPPORT and STRUCTURAL-FENCE channels, including path-specific SUPPORT exception.
  • Output-contract declarations/advisory disposition, RED versus GREEN receipt channels, Task trailer forms and direct-fix eligibility.

Conditional mutation and shell-verifier procedures should be loaded with their workflow, preserving full evidence obligations. The naming corollary, assertion-target list, and generic fixture/pass encouragement are DELETE/ON-DEMAND candidates, not project facts every test task needs.

Reconciliation needed before broader edits

  • Line64: every test outside pipeline must locate OBPI vs direct-fix authority.
  • Lines125–127: inline TASK recipe must not initiate operator-owned machinery or substitute old threshold routing.
  • Lines140–142: unconditional subprocess mock rule versus the real-Git fixture tests explicitly named by line22 and scorecard90.
  • Lines160 and176: qualified SUPPORT disk-existence alternative versus unconditional ledger matrix.
  • Existing tests-rationale TASK section cannot safely serve as an unchanged authoritative replacement.

These are editorial conflict dispositions, not newly filed issues or runtime defect verdicts.

Every nonblank line

Line Disposition Reading
1 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
2 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
3 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
4 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
5 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
6 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
8 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
10 KEEP binding Delivery metadata, version marker and title; paths tests/** selects this rule.
12 LIFT rationale-history Version and incident history belongs in the existing version-history document. Isolation and verifier/mutation rules are separately stated below.
14 KEEP binding Project-specific unittest-only boundary; scorecard row 36 Mechanical.
16 KEEP binding Project-specific unittest-only boundary; scorecard row 36 Mechanical.
17 VERIFY conflict No-network boundary is specific; table-driven preference is optional coaching and can be removed independently.
18 KEEP binding Smoke subset, 60s and empty-tier behavior are specific; row 87 Mechanical.
19 LIFT rationale-history Keep absence of full-tier ceiling and parallel permission; lift ratchet explanation and dated benchmark.
20 DELETE Generic fixture-size coaching; local reproducible isolation is covered concretely at 21-23 and 140-142.
21 KEEP binding Concrete temp-DB, Git environment chokepoint and cleanup boundaries; preserve Git helper/path facts, lift incident narrative in a later selected edit. Row 90 Mechanical.
22 KEEP binding Concrete temp-DB, Git environment chokepoint and cleanup boundaries; preserve Git helper/path facts, lift incident narrative in a later selected edit. Row 90 Mechanical.
23 KEEP binding Concrete temp-DB, Git environment chokepoint and cleanup boundaries; preserve Git helper/path facts, lift incident narrative in a later selected edit. Row 90 Mechanical.
25 KEEP binding Coverage floor and nonregression are policy facts; floor is row 38 Mechanical.
27 KEEP binding Coverage floor and nonregression are policy facts; floor is row 38 Mechanical.
28 KEEP binding Coverage floor and nonregression are policy facts; floor is row 38 Mechanical.
30 ON-DEMAND Task-specific command recipe; route actual gate claims through current verification/ARB skill rather than another competing command roster.
32 ON-DEMAND Task-specific command recipe; route actual gate claims through current verification/ARB skill rather than another competing command roster.
33 ON-DEMAND Task-specific command recipe; route actual gate claims through current verification/ARB skill rather than another competing command roster.
34 ON-DEMAND Task-specific command recipe; route actual gate claims through current verification/ARB skill rather than another competing command roster.
35 ON-DEMAND Task-specific command recipe; route actual gate claims through current verification/ARB skill rather than another competing command roster.
37 DELETE All tests PASS is generic success coaching, not a project-specific discriminator.
38 DUPLICATE Smoke outcome duplicates 18; 40% floor duplicates 27. Exact row 38 Mechanical text needs retained-wording/scorecard review if removed.
39 DUPLICATE Smoke outcome duplicates 18; 40% floor duplicates 27. Exact row 38 Mechanical text needs retained-wording/scorecard review if removed.
41 KEEP binding Specific @smoke marker, import and prohibition on a third test directory.
43 KEEP binding Specific @smoke marker, import and prohibition on a third test directory.
44 KEEP binding Specific @smoke marker, import and prohibition on a third test directory.
45 KEEP binding Specific @smoke marker, import and prohibition on a third test directory.
46 KEEP binding Specific @smoke marker, import and prohibition on a third test directory.
48 ON-DEMAND Live-source enumeration is useful test-design judgment; four-line persuasion belongs in test-design rationale.
49 ON-DEMAND Live-source enumeration is useful test-design judgment; four-line persuasion belongs in test-design rationale.
50 ON-DEMAND Live-source enumeration is useful test-design judgment; four-line persuasion belongs in test-design rationale.
51 ON-DEMAND Live-source enumeration is useful test-design judgment; four-line persuasion belongs in test-design rationale.
53 KEEP binding No subprocess work in smoke is a concrete membership restriction; remove explanatory last sentence only after selection.
54 KEEP binding No subprocess work in smoke is a concrete membership restriction; remove explanatory last sentence only after selection.
56 VERIFY conflict TDD sequence includes generic coaching; retain requirement derivation once. Line 64 requires every outside-pipeline test to locate an OBPI, which needs reconciliation with operator-authorized GHI/direct fixes rather than implying new OBPI work.
58 VERIFY conflict TDD sequence includes generic coaching; retain requirement derivation once. Line 64 requires every outside-pipeline test to locate an OBPI, which needs reconciliation with operator-authorized GHI/direct fixes rather than implying new OBPI work.
60 VERIFY conflict TDD sequence includes generic coaching; retain requirement derivation once. Line 64 requires every outside-pipeline test to locate an OBPI, which needs reconciliation with operator-authorized GHI/direct fixes rather than implying new OBPI work.
61 VERIFY conflict TDD sequence includes generic coaching; retain requirement derivation once. Line 64 requires every outside-pipeline test to locate an OBPI, which needs reconciliation with operator-authorized GHI/direct fixes rather than implying new OBPI work.
62 VERIFY conflict TDD sequence includes generic coaching; retain requirement derivation once. Line 64 requires every outside-pipeline test to locate an OBPI, which needs reconciliation with operator-authorized GHI/direct fixes rather than implying new OBPI work.
64 VERIFY conflict TDD sequence includes generic coaching; retain requirement derivation once. Line 64 requires every outside-pipeline test to locate an OBPI, which needs reconciliation with operator-authorized GHI/direct fixes rather than implying new OBPI work.
66 KEEP binding Retain one explicit semantic-proof criterion; scorecard 70/72 Judgment, not mechanically guaranteed.
68 DUPLICATE Unit-test purpose reiterates 16,17,66,70,72 and the rendering carve-out76; delete generic explanatory definition once unique contract requirements remain.
70 KEEP binding Project BEHAVIOR versus SUPPORT proof discrimination; shorten rhetorical question and repetition only while retaining proof-channel distinction.
72 ON-DEMAND Generic assertion-target preference; rendering exception is covered at76. Row70 Judgment.
74 ON-DEMAND Audit-helper naming coaching and promotion history already have an on-demand rationale section; no justified need for every test task. Row71 Judgment; deletion from binding context requires selected canon disposition.
76 KEEP binding Keep output-contract marker syntax, class suffixes, separate fixture classes, BEHAVIOR classification and settled advisory status. Lift promotion-history rationale, not those project facts. Row69 Judgment.
78 DUPLICATE The per-behavior cycle is already stated at58 and60-62; this repeats it with speculative causal coaching. Keep that cycle and remove the repeated paragraph. Rows72/75 Judgment.
80 KEEP binding RED receipt schema/verb versus GREEN ARB step distinction is not generic testing knowledge. Row67 Mechanical; detailed invocation may be on-demand only with deliberate retention decision.
82 ON-DEMAND Mutation-sweep procedure is conditional on performing a sweep. Retain a discovery pointer and method identity; move four outcomes, cache isolation and evidence obligations together, preserving them in the selected on-demand workflow. Row89 Judgment.
84 ON-DEMAND Mutation-sweep procedure is conditional on performing a sweep. Retain a discovery pointer and method identity; move four outcomes, cache isolation and evidence obligations together, preserving them in the selected on-demand workflow. Row89 Judgment.
86 ON-DEMAND Mutation-sweep procedure is conditional on performing a sweep. Retain a discovery pointer and method identity; move four outcomes, cache isolation and evidence obligations together, preserving them in the selected on-demand workflow. Row89 Judgment.
88 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
89 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
90 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
91 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
92 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
93 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
94 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
95 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
96 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
97 ON-DEMAND Executable mutation example belongs beside the mutation procedure, not every testing session.
99 ON-DEMAND Conclusive-sweep evidence rule must travel with mutation procedure, not be deleted as generic coaching.
101 ON-DEMAND Verifier exit-status semantics and known shell/hook limits belong in verification/ARB workflow. Keep concise current result-channel boundary in always-loaded context if needed; row66 Mechanical prevents calling ordinary relocation retention-safe. Preserve receipt truth and do not treat echoed status as aggregate success.
103 ON-DEMAND Verifier exit-status semantics and known shell/hook limits belong in verification/ARB workflow. Keep concise current result-channel boundary in always-loaded context if needed; row66 Mechanical prevents calling ordinary relocation retention-safe. Preserve receipt truth and do not treat echoed status as aggregate success.
105 ON-DEMAND Verifier exit-status semantics and known shell/hook limits belong in verification/ARB workflow. Keep concise current result-channel boundary in always-loaded context if needed; row66 Mechanical prevents calling ordinary relocation retention-safe. Preserve receipt truth and do not treat echoed status as aggregate success.
107 ON-DEMAND Verifier exit-status semantics and known shell/hook limits belong in verification/ARB workflow. Keep concise current result-channel boundary in always-loaded context if needed; row66 Mechanical prevents calling ordinary relocation retention-safe. Preserve receipt truth and do not treat echoed status as aggregate success.
109 ON-DEMAND Verifier exit-status semantics and known shell/hook limits belong in verification/ARB workflow. Keep concise current result-channel boundary in always-loaded context if needed; row66 Mechanical prevents calling ordinary relocation retention-safe. Preserve receipt truth and do not treat echoed status as aggregate success.
111 DUPLICATE Governance-spine explanation already in root contract; retaining TASK trailer fact below does not need anatomical metaphor/history.
113 DUPLICATE Governance-spine explanation already in root contract; retaining TASK trailer fact below does not need anatomical metaphor/history.
115 KEEP binding Concrete mandatory Task trailer and non-substitution boundary; row68 Mechanical.
117 ON-DEMAND Keep availability of direct-fix slug/no mandatory GHI filing discoverable; detailed form table belongs in git-sync/task instructions. Do not move to stale tests-rationale TASK section without reconciliation.
119 ON-DEMAND Keep availability of direct-fix slug/no mandatory GHI filing discoverable; detailed form table belongs in git-sync/task instructions. Do not move to stale tests-rationale TASK section without reconciliation.
120 ON-DEMAND Keep availability of direct-fix slug/no mandatory GHI filing discoverable; detailed form table belongs in git-sync/task instructions. Do not move to stale tests-rationale TASK section without reconciliation.
121 ON-DEMAND Keep availability of direct-fix slug/no mandatory GHI filing discoverable; detailed form table belongs in git-sync/task instructions. Do not move to stale tests-rationale TASK section without reconciliation.
122 ON-DEMAND Keep availability of direct-fix slug/no mandatory GHI filing discoverable; detailed form table belongs in git-sync/task instructions. Do not move to stale tests-rationale TASK section without reconciliation.
123 ON-DEMAND Keep availability of direct-fix slug/no mandatory GHI filing discoverable; detailed form table belongs in git-sync/task instructions. Do not move to stale tests-rationale TASK section without reconciliation.
125 VERIFY conflict Inline lifecycle recipe risks initiating operator-owned OBPI machinery, puts @covers after completion, and imports superseded direct-fix thresholds. Replace with current skill routing only after authority reconciliation; do not execute it.
127 VERIFY conflict Inline lifecycle recipe risks initiating operator-owned OBPI machinery, puts @covers after completion, and imports superseded direct-fix thresholds. Replace with current skill routing only after authority reconciliation; do not execute it.
129 KEEP binding Project-specific unittest/tests versus behave/features map and both-runner check contract; row37 Mechanical.
131 KEEP binding Project-specific unittest/tests versus behave/features map and both-runner check contract; row37 Mechanical.
132 KEEP binding Project-specific unittest/tests versus behave/features map and both-runner check contract; row37 Mechanical.
133 KEEP binding Project-specific unittest/tests versus behave/features map and both-runner check contract; row37 Mechanical.
134 KEEP binding Project-specific unittest/tests versus behave/features map and both-runner check contract; row37 Mechanical.
136 KEEP binding Project-specific unittest/tests versus behave/features map and both-runner check contract; row37 Mechanical.
138 VERIFY conflict Keep helper identities and E2E destination. Blanket mock-every-subprocess/<200ms claim requires reconciliation with rule22/row90 explicitly witnessed real-Git isolation test; not safe to flatten into an absolute without a documented exception.
140 VERIFY conflict Keep helper identities and E2E destination. Blanket mock-every-subprocess/<200ms claim requires reconciliation with rule22/row90 explicitly witnessed real-Git isolation test; not safe to flatten into an absolute without a documented exception.
141 VERIFY conflict Keep helper identities and E2E destination. Blanket mock-every-subprocess/<200ms claim requires reconciliation with rule22/row90 explicitly witnessed real-Git isolation test; not safe to flatten into an absolute without a documented exception.
142 VERIFY conflict Keep helper identities and E2E destination. Blanket mock-every-subprocess/<200ms claim requires reconciliation with rule22/row90 explicitly witnessed real-Git isolation test; not safe to flatten into an absolute without a documented exception.
144 KEEP binding REQ tag spelling, lifecycle scope, waiver path and kind-aware exemption are project facts. Compress prose only while preserving these distinctions; row39 Mechanical is narrower/older than paragraph148, so row text alone cannot be treated as whole intent.
146 KEEP binding REQ tag spelling, lifecycle scope, waiver path and kind-aware exemption are project facts. Compress prose only while preserving these distinctions; row39 Mechanical is narrower/older than paragraph148, so row text alone cannot be treated as whole intent.
148 KEEP binding REQ tag spelling, lifecycle scope, waiver path and kind-aware exemption are project facts. Compress prose only while preserving these distinctions; row39 Mechanical is narrower/older than paragraph148, so row text alone cannot be treated as whole intent.
150 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
152 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
153 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
155 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
157 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
158 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
159 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
160 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
161 KEEP binding Keep three-kind taxonomy once, case-insensitive reader/uppercase-new/no rewrite rule, exact proof channels and SUPPORT path-specific artifact_edited exception. Row59 Mechanical and59a Judgment.
163 ON-DEMAND Three authoring examples belong in brief-authoring skill/reference; syntax already stated153.
165 ON-DEMAND Three authoring examples belong in brief-authoring skill/reference; syntax already stated153.
166 ON-DEMAND Three authoring examples belong in brief-authoring skill/reference; syntax already stated153.
167 ON-DEMAND Three authoring examples belong in brief-authoring skill/reference; syntax already stated153.
168 ON-DEMAND Three authoring examples belong in brief-authoring skill/reference; syntax already stated153.
169 ON-DEMAND Three authoring examples belong in brief-authoring skill/reference; syntax already stated153.
171 VERIFY conflict Duplicate proof matrix also overstates SUPPORT event requirement compared with artifact_edited disk-existence alternative at160; preserve the precise taxonomy, not both simplified and qualified versions.
173 VERIFY conflict Duplicate proof matrix also overstates SUPPORT event requirement compared with artifact_edited disk-existence alternative at160; preserve the precise taxonomy, not both simplified and qualified versions.
174 VERIFY conflict Duplicate proof matrix also overstates SUPPORT event requirement compared with artifact_edited disk-existence alternative at160; preserve the precise taxonomy, not both simplified and qualified versions.
175 VERIFY conflict Duplicate proof matrix also overstates SUPPORT event requirement compared with artifact_edited disk-existence alternative at160; preserve the precise taxonomy, not both simplified and qualified versions.
176 VERIFY conflict Duplicate proof matrix also overstates SUPPORT event requirement compared with artifact_edited disk-existence alternative at160; preserve the precise taxonomy, not both simplified and qualified versions.
177 VERIFY conflict Duplicate proof matrix also overstates SUPPORT event requirement compared with artifact_edited disk-existence alternative at160; preserve the precise taxonomy, not both simplified and qualified versions.
179 LIFT rationale-history Historical pre-ADR figures and repeated SUPPORT explanation already have an explicit canonical expansion at193-195.
181 LIFT rationale-history Historical pre-ADR figures and repeated SUPPORT explanation already have an explicit canonical expansion at193-195.
182 LIFT rationale-history Historical pre-ADR figures and repeated SUPPORT explanation already have an explicit canonical expansion at193-195.
183 LIFT rationale-history Historical pre-ADR figures and repeated SUPPORT explanation already have an explicit canonical expansion at193-195.
184 LIFT rationale-history Historical pre-ADR figures and repeated SUPPORT explanation already have an explicit canonical expansion at193-195.
185 LIFT rationale-history Historical pre-ADR figures and repeated SUPPORT explanation already have an explicit canonical expansion at193-195.
187 DUPLICATE Non-BEHAVIOR proof-channel prohibition follows exact one-channel taxonomy above; retain once in condensed taxonomy instead of another explanation.
188 DUPLICATE Non-BEHAVIOR proof-channel prohibition follows exact one-channel taxonomy above; retain once in condensed taxonomy instead of another explanation.
189 DUPLICATE Non-BEHAVIOR proof-channel prohibition follows exact one-channel taxonomy above; retain once in condensed taxonomy instead of another explanation.
190 DUPLICATE Non-BEHAVIOR proof-channel prohibition follows exact one-channel taxonomy above; retain once in condensed taxonomy instead of another explanation.
191 DUPLICATE Non-BEHAVIOR proof-channel prohibition follows exact one-channel taxonomy above; retain once in condensed taxonomy instead of another explanation.
193 KEEP binding On-demand discovery references; existing tests-rationale TASK workflow is stale and must not silently become authoritative merely because detail is moved there.
194 KEEP binding On-demand discovery references; existing tests-rationale TASK workflow is stale and must not silently become authoritative merely because detail is moved there.
195 KEEP binding On-demand discovery references; existing tests-rationale TASK workflow is stale and must not silently become authoritative merely because detail is moved there.
197 KEEP binding On-demand discovery references; existing tests-rationale TASK workflow is stale and must not silently become authoritative merely because detail is moved there.

Limits

  • No repository edits, issue filing, locks, TASKs, corpus onboarding, OBPI work or validators run.
  • No assertion that modern-model quality improves by the measured byte count; this is editorial and delivery analysis.
  • Mechanical/Promotable scorecard retention constraints govern ordinary diet path; operator may explicitly revise canon.
  • Only the canonical tests rule was read end-to-end; adjacent delivery audit and directly relevant scorecard/rationale passages were consulted. Runtime implementations were not re-audited.
  • Selected version-history lift must preserve the displaced current history; existing history section predates versions0.20-0.23.
  • Do not move workflow instructions verbatim into docs/governance/tests-rationale.md: its TASK section says every GHI decomposes through gz task, conflicting with direct-fix slug and operator-only OBPI initiation.