Acceptance Test Matrix — Implementation Package DOT v0.1 (future MVP, design only, 2026-06-09)
Acceptance Test Matrix — Implementation Package DOT v0.1
Nature: the acceptance matrix the future read/report-only MVP must pass before it can be called ready. Each test gives the input condition, the expected verdict, the report section it lands in, whether it is in v0.1 or DEFERRED, and the pass/fail criterion. This is a DESIGN artifact: no test is executed here, nothing is built or run. Date: 2026-06-09 Production mutation: NO. Design only; no execution; no mutation. Governing authority: Gap-only Scope Spec
designs/implementation-package-dot-v0-1-gap-only-scope-spec-2026-06-09.md(verdict vocab §6, failure modes §7). Verdicts use the §6 vocabulary; v0.1 can never emit proof-of-run.
1. Verdict legend
- Per-dossier:
READ_REPORT_PASS·READ_REPORT_FLAG·READ_REPORT_BLOCKED·NOT_APPLICABLE. - Per-claim/artifact:
RESOLVED·UNRESOLVED·AMBIGUOUS·EVIDENCE_PRESENT (not proof-of-run)·EVIDENCE_ABSENT·EVIDENCE_UNVERIFIED. - Master rule: any doubt → FLAG/BLOCK, never PASS.
2. Matrix
| # | Test | Input condition | Expected verdict | Expected report section | v0.1 / deferred | Pass/fail criterion |
|---|---|---|---|---|---|---|
| 1 | Missing dossier identity | dossier with no document_id/path |
READ_REPORT_BLOCKED |
Dossier identity | v0.1 | PASS iff blocked + no further inspection + no PASS emitted |
| 2 | Missing blueprint ref | dossier present, no blueprint_ref | READ_REPORT_BLOCKED |
Dossier identity | v0.1 | PASS iff blocked with reason "missing blueprint_ref" |
| 3 | Missing revision anchor | doc present, no revision |
READ_REPORT_BLOCKED |
Dossier identity | v0.1 | PASS iff blocked; never infer a revision |
| 4 | Executable claim without artifact evidence | "canonicalizer exists/runs" + no resolvable executable artifact | EVIDENCE_ABSENT → READ_REPORT_FLAG |
Claim/evidence inventory | v0.1 | PASS iff claim flagged EVIDENCE_ABSENT; never EVIDENCE_PRESENT |
| 5 | Selftest claim without evidence | "selftest 22/22 PASS" + no log/exit/hash artifact | EVIDENCE_ABSENT → READ_REPORT_FLAG |
Claim/evidence inventory | v0.1 | PASS iff flagged; tool does NOT run selftest |
| 6 | Hash claim without evidence | "reproduces hash f2bda8…" + no pinned hash artifact | EVIDENCE_ABSENT → READ_REPORT_FLAG |
Claim/evidence inventory | v0.1 | PASS iff flagged; tool does NOT recompute the hash |
| 7 | Exit-code claim without evidence | "exit 0" + no exit-code record artifact | EVIDENCE_ABSENT → READ_REPORT_FLAG |
Claim/evidence inventory | v0.1 | PASS iff flagged; never assume exit 0 |
| 8 | Command-run claim without call contract | "command X ran safely" + no Call Contract (none exists in v0.1) | EVIDENCE_ABSENT + DEFERRED: Call Contract → READ_REPORT_FLAG |
Claim/evidence inventory + Deferred carve-outs | v0.1 (flag) / run-half DEFERRED | PASS iff flagged + routed to Call Contract; tool makes no call |
| 9 | Collapsed denominator | report cites one canonical DOT number | READ_REPORT_BLOCKED |
Denominator ledger | v0.1 | PASS iff blocked (disguised hardcode); ≥2 denominators must stay separate |
| 10 | TAC/IU chosen instead of dual-report | dossier joins/chooses IU or TAC as canonical | READ_REPORT_BLOCKED |
Dual-corpus report | v0.1 | PASS iff blocked; joined:false enforced; 219/102 shown separately |
| 11 | Registry mismatch not reported | reconciliation omits a both-direction diff | READ_REPORT_FLAG |
Registry↔FS reconciliation | v0.1 | PASS iff missing diff flagged; canonical (4) + diagnostic (41) both shown |
| 12 | Stale/unverified source not marked | actual_count=163 (or stale _recon) used as a denominator |
READ_REPORT_FLAG / EVIDENCE_UNVERIFIED |
Unverified/stale | v0.1 | PASS iff held out + marked stale/unverified; never a denominator |
| 13 | Prose-only PASS | prose asserts success, no evidence artifact | READ_REPORT_FLAG |
Claim/evidence inventory | v0.1 | PASS iff flagged; tool never re-asserts the prose PASS |
| 14 | Attempt to invoke filesystem DOT | dossier/design path would call a FS DOT | READ_REPORT_BLOCKED |
Verdict + Deferred carve-outs | v0.1 (refusal) | PASS iff blocked; no invoke capability exists in the module set |
| 15 | Attempt to write system_issues |
a code path would sink to system_issues |
READ_REPORT_BLOCKED |
Verdict | v0.1 (refusal) | PASS iff blocked; only KB report triplet is writable |
| 16 | Attempt to mutate PG/Directus/registry | any non-KB-report write target | READ_REPORT_BLOCKED |
Verdict | v0.1 (refusal) | PASS iff blocked; no mutation capability exists |
| 17 | Graph resolver creation attempt | design would build a new graph/duplicate/orphan resolver | READ_REPORT_BLOCKED |
Verdict + Deferred carve-outs | v0.1 (refusal) | PASS iff blocked; only existing result surfaces read; no detector executed |
| 18 | Missing JSON summary | inspection emits md but no report.json |
READ_REPORT_FLAG |
(output completeness) | v0.1 | PASS iff flagged incomplete; the triplet is mandatory |
| 19 | Missing checkpoint | inspection emits md+json but no checkpoint | READ_REPORT_FLAG |
(output completeness) | v0.1 | PASS iff flagged incomplete; checkpoint mandatory |
| 20 | FIX7 Recheck-8 sample (stripped) | FIX7 dossier with executable claims, evidence artifacts removed (pilot Fixture B) | READ_REPORT_FLAG (C1/C2/C4 EVIDENCE_ABSENT) |
Claim/evidence inventory (FIX7 pilot) | v0.1 | PASS iff Article-14 class caught at read level; no canonicalizer/command run |
3. Cross-cutting acceptance invariants (all tests)
- I1: no test path invokes a command, FS DOT, IU command, or detector.
- I2: no test path mutates PG/Directus/registry/filesystem/
system_issues. - I3: every emitted count carries full provenance; no bare counts.
- I4: every positive claim verdict carries
is_proof_of_run:false. - I5: denominators stay separate in every report; TAC/IU never joined.
- I6: "any doubt → FLAG/BLOCK" holds; no silent PASS.
4. Deferred tests (NOT in v0.1 — listed for completeness, gated on future contracts)
- D1 — actual command run + exit-code capture (Call Contract).
- D2 — claim bound to a real execution result / re-run determinism (Call Contract).
- D3 — generic
package_manifestschema validation (lineage decision + Codex schema review). - D4 —
--selftest N/Nself-report +module_sha256self-pin (post-spec build). - D5 —
audit_dead_links()engine sinking tosystem_issues(system_issueswrite contract). - D6 — Directus write-path verification (Directus DOT-control proof contract).
- D7 — OPA/Conftest/Squawk/CI/Git-hook gating (CI/policy-gate integration contract).
5. Acceptance verdict for the matrix
ACCEPTANCE_MATRIX_v0_1_READY_FOR_CODEX_CHECKPOINT — 20 in-scope tests defined with deterministic fail-closed criteria; 7 deferred tests carved out behind named future contracts. Routed with the spec to one Codex checkpoint.
Cross-references
- Gap-only Scope Spec:
designs/implementation-package-dot-v0-1-gap-only-scope-spec-2026-06-09.{md,json} - FIX7 pilot design (test #20):
designs/fix7-read-report-pilot-design-for-implementation-package-dot-v0-1-2026-06-09.md - MVP plan (negative test plan §9):
planning/mvp-read-report-inspector-implementation-plan-no-code-2026-06-09.md - Future contracts queue (deferred tests):
planning/future-contracts-queue-after-v0-1-2026-06-09.md