@research-engineering/agentic-proofkit 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ADOPTION.md CHANGED
@@ -163,7 +163,7 @@ caller-owned capability or test observations
163
163
 
164
164
  Use `test-evidence-inventory --projection discovery-draft` only for explicit
165
165
  caller-owned test discovery facts. The command does not scan repositories,
166
- execute tests, emit `semantic_falsifier` evidence, or close coverage. It emits
166
+ execute tests, emit execution-backed semantic evidence, or close coverage. It emits
167
167
  candidate inventory guidance with a non-strict candidate authority so an agent
168
168
  can ask the right owner questions and materialize strict inventory rows later.
169
169
  Candidate inventory diagnostics are rejected by strict inventory admission until
@@ -42,7 +42,7 @@ owner boundaries. It is not a second command-family inventory.
42
42
  | Adoption and scaffolding | `init`, `adoption-contract-envelope`, `adoption-workflow-plan`, `adoption-checklist`, `adoption-doctor`, `gradual-adoption`, `gradual-adoption-bootstrap`, `gradual-adoption-guidance`, `capability-map-admission`, `pilot-admission`, `scaffold-profile-plan`, `scaffold-project-structure`, `stack-preset` | adoption intent, aggregate adoption contract envelope, checklist facts, target paths, owner routes, caller-extracted stale authority vocabulary facts, explicit pre-spec capability observations, pilot records, stack preset id, optional init preset id | dry-run route selection, aggregate contract-envelope admission, deterministic starter plans, checklist/report admission, bounded guidance envelopes, dry-run manifests, pre-spec trust-mode admission, adoption gap and stale-authority classification, pilot shape admission | final files, final requirements, rollout policy, text extraction from files, code observation extraction, pilot truth | selected child output, plan, report, seed packet, or agent envelope |
43
43
  | Requirement source | `capability-map-admission`, `requirement-authoring-plan`, `requirement-source-admission`, `requirement-source-transition`, `spec-overview-claims`, `requirement-spec-tree`, `requirement-spec-tree-view`, `requirement-source-view`, `requirement-browser-server` | `requirements.v1.json`, caller-owned capability maps, caller-owned authoring facts, overview claim extraction, explicit spec hierarchy, view options | candidate seed admission, candidate-only authoring packets, source-shape admission, lifecycle checks, explicit tree topology/source-ref admission, shared safe renderer fragments, presentation-only views | requirement meaning, extraction completeness, Markdown extraction completeness, hierarchy ownership, proof adequacy, file materialization | capability map report, authoring packet, source report, spec-tree report, rendered view, or browser presentation |
44
44
  | Requirement proof binding | `requirement-bindings`, `binding-partition`, `proof-slice`, `evidence-graph`, `requirement-proof-resolver`, `requirement-proof-source-set`, `requirement-proof-view`, `spec-proof-bundle-admission` | requirement records, bindings, witness commands, source-set facts, receipt reports, partition policy | graph validation, binding partition projection, compact slices, typed compact proof contract projections, resolver projections, bundle linkage checks | test semantics, witness execution, proof freshness, merge policy | proof report, partition report, slice, lookup graph, or view |
45
- | Test inventory and coverage | `test-evidence-inventory`, `test-evidence-inventory --projection discovery-draft`, `test-evidence-inventory --normalized-inventory`, `requirement-coverage-input-compose`, `requirement-coverage-view`, `requirement-browser-server --view coverage` | caller-owned direct or source-set test inventory, caller-owned explicit test discovery facts, declared quality findings, requirement source, proof binding or compact proof contract, coverage universe, optional owner-invariant registry, aggregate coverage compose input | strict inventory/source-set admission, candidate-only discovery draft projection, fail-closed normalized inventory projection, deterministic coverage-view input composition from explicit facts, weak-oracle and declared-quality classification, bounded agent action guidance, requirement/test/command/owner-invariant joins, nonsemantic command-evidence classification, stable coverage failure/warning classifications, presentation-only coverage view | inventory completeness, weak-test truth, test discovery extraction, native test execution, receipt freshness, producer trust, merge policy | candidate inventory guidance, inventory report, normalized inventory data product, coverage-view input, coverage view, or browser presentation |
45
+ | Test inventory and coverage | `test-evidence-inventory`, `test-evidence-inventory --projection discovery-draft`, `test-evidence-inventory --normalized-inventory`, `requirement-coverage-input-compose`, `requirement-coverage-view`, `requirement-browser-server --view coverage` | caller-owned direct or source-set test inventory, caller-owned explicit test discovery facts, declared quality findings, requirement source, proof binding or compact proof contract, coverage universe, optional owner-invariant registry, aggregate coverage compose input | strict inventory/source-set admission, candidate-only discovery draft projection, fail-closed normalized inventory projection, deterministic coverage-view input composition from explicit facts, missing declared assertion-signal and declared-quality classification, bounded agent action guidance, requirement/test/command/owner-invariant joins, nonsemantic command-evidence classification, stable coverage failure/warning classifications, presentation-only coverage view | inventory completeness, oracle quality, test quality, test discovery extraction, native test execution, receipt freshness, producer trust, merge policy | candidate inventory guidance, inventory report, normalized inventory data product, coverage-view input, coverage view, or browser presentation |
46
46
  | Selective planning | `changed-path-set`, `requirement-impact-input-compose`, `impact`, `selective-gate-plan`, `selective-gate-evidence`, `selective-gate-obligation-decision-input`, `proof-obligation-algebra`, `obligation-decision` | changed paths, base/current requirement sources, base/current single-binding-per-requirement proof contracts, generated-artifact policy, local environment policy, proof-like path policy, scan obligation ownership, planned receipts, obligation routes, obligation algebra records | fail-closed impact input composition, fail-closed planning, receipt comparison, obligation algebra admission, bounded agent packets | git diff truth, repository scanning, command execution, producer trust, final admission | composed impact input, plan, evidence report, obligation algebra report, or obligation input |
47
47
  | Receipts and producers | `proof-receipt-admission`, `receipt-producer-admission`, `receipt-currentness-scope`, `receipt-trust-class`, `producer-policy-self-proof` | receipt sets, producer policy, scope/currentness facts, trust classes | receipt shape, producer/receipt compatibility, self-proof diagnostics | producer authentication, freshness policy, CI trust roots | receipt/provenance report |
48
48
  | Release and deployment | `release-authority`, `external-consumer`, `registry-consumer-proof-input-compose`, `registry-consumer`, `deployment-evidence-admission`, `completion-criteria`, `branch-authority`, `readiness-closeout` | package facts, tarball/registry facts, explicit primitive registry/install/smoke facts, deployment evidence, criteria, branch facts | artifact/channel boundary checks, registry-consumer input composition, release diagnostics, falsifiable criteria shape | package publication, registry fetch, package-manager execution, deployment, rollback, approval | composed input, release/deployment/readiness report |
@@ -131,7 +131,7 @@ Semantic context routes are `requirement-context-compose`,
131
131
  | An agent needs a bounded semantic subset instead of whole specification files. | `requirement-context-compose --repo-root <caller-selected-root>` over an explicit catalog, then `requirement-context-slice` over the materialized snapshot. | The snapshot and slice are content-bound derived projections. Stop before inferring hierarchy, scanning ambient paths, treating omissions as absence, or promoting the slice to requirement, proof, freshness, or merge authority. |
132
132
  | Overview prose may contain durable claims. | `spec-overview-claims` | Escalate when normative claims are not tied to `REQ-*` records. |
133
133
  | Requirements have no verified proof route. | `requirement-bindings`, `witness-plan` from either an explicit `witness_command_catalog` or a complete `binding_witness_plan_input`, `proof-slice`, or `requirement-proof-resolver` | Stop before claiming proof adequacy; native witness semantics stay with the consumer. A binding-derived witness plan still needs caller-owned vocabulary and conservative command policy. |
134
- | Tests or proof evidence need inventory. | `test-evidence-inventory`; use `--projection discovery-draft` only for explicit discovered-test facts, then `requirement-coverage-input-compose` when an aggregate `coverage_compose_input` exists, then `requirement-coverage-view` when a `coverage_view_input` exists | Compose only from explicit caller-owned facts. Discovery drafts are candidate-only and cannot close coverage. Use `failureClassifications[]`, `warningClassifications[]`, and `agentActionPlan[]` for machine routing. Escalate when tests are route-only, weak-oracle, unbound, or outside the caller-owned coverage universe. |
134
+ | Tests or proof evidence need inventory. | `test-evidence-inventory`; use `--projection discovery-draft` only for explicit discovered-test facts, then `requirement-coverage-input-compose` when an aggregate `coverage_compose_input` exists, then `requirement-coverage-view` when a `coverage_view_input` exists | Compose only from explicit caller-owned facts. Discovery drafts are candidate-only and cannot close coverage. Use `failureClassifications[]`, `warningClassifications[]`, and `agentActionPlan[]` for machine routing. Escalate when tests are route-only, lack a declared assertion signal, are unbound, or are outside the caller-owned coverage universe. Proofkit reports declared signals; the consumer owns oracle-quality and test-quality conclusions. |
135
135
  | A change set is known. | `changed-path-set`, optionally `requirement-impact-input-compose`, `impact`, then `selective-gate-plan --agent-envelope` | Raw `knownChangedPaths` in `agent-route` are diagnostic only. Materialize a caller-owned `changed_path_set`, compose a caller-owned `impact_input` before `impact`, and compose a caller-owned `selective_gate_plan_input` before `selective-gate-plan`. Use `scanObligation` to name whether a `text-policy`, `secret-scan`, or caller-owned external scanner is required. Fail closed on unknown scope, dynamic edges, missing owner routes, unbound proof-like paths, or full-gate escalation. |
136
136
  | Caller-owned file contents need secret-like text detection. | `secret-scan` | Provide explicit sorted file inventory with content. Stop before claiming repository-wide discovery, credential validity, provider ingestion, merge readiness, or replacement of GitHub secret scanning. |
137
137
  | Does a TypeScript package public API match a caller-owned manifest? | `agent-route` with `goal: "verify_typescript_public_api"` and explicit `typescript_public_api_manifest` plus `typescript_public_api_repo_root`, then `typescript-public-api-surfaces --repo-root <caller-selected-root>` | The manifest must name each referenced `package.json`, sorted-unique export conditions, and a non-JSX `.ts`, `.mts`, or `.cts` `sourcePath` whose canonical target has the same admitted extension class. The bounded scanner accepts only the fail-closed export grammar in `proofkit/cli-contract.v2.json`; it does not parse unrestricted TypeScript or TSX, infer conventional layouts, or prove compiler output provenance, checkout freshness, package-manager truth, or merge readiness. |
@@ -30,9 +30,11 @@ approval, rollout approval, and production decisions.
30
30
  gradual adoption, and release-channel scenarios to existing Proofkit
31
31
  primitives through bounded structured command refs.
32
32
  - `REQ-PROOFKIT-RETIRE-006`: migration parity admission validates
33
- caller-provided parity evidence shape, source/target closure, typed
34
- equivalence dimensions, and matched digest equality without owning evidence
35
- authenticity, freshness, semantic correctness, or retirement approval.
33
+ caller-provided parity-claim shape, source/target closure, typed equivalence
34
+ dimensions, consistency between caller-declared status and supplied digests,
35
+ and lossless record-level non-claim projection without owning digest
36
+ computation, evidence authenticity, freshness, semantic correctness, or
37
+ retirement approval.
36
38
  - `REQ-PROOFKIT-RETIRE-007`: gradual adoption guidance keeps caller-provided
37
39
  candidate boundaries advisory, exposes owner-review questions, routes mode
38
40
  and checked-scope semantics through one private owner, and fails closed for
@@ -143,7 +143,7 @@
143
143
  {
144
144
  "requirementId": "REQ-PROOFKIT-RETIRE-006",
145
145
  "ownerId": "proofkit.consumer-infra-retirement",
146
- "invariant": "Migration parity admission validates caller-provided parity evidence shape, source/target closure, typed equivalence dimensions, and matched digest equality without owning evidence authenticity, freshness, semantic correctness, or retirement approval.",
146
+ "invariant": "Migration parity admission validates caller-provided parity-claim shape, source/target closure, typed equivalence dimensions, consistency between caller-declared status and caller-supplied digests, and lossless record-level non-claim projection; statuses, admitted parity claim refs, and status-derived parity counters remain explicitly caller-declared, structural and failure counts remain Proofkit-computed admission facts, and the report does not own digest computation, evidence authenticity, freshness, semantic correctness, or retirement approval.",
147
147
  "claimLevel": "blocking",
148
148
  "riskClass": "high",
149
149
  "proofBindingRefs": [
@@ -49,8 +49,21 @@ execution receipts, and merge policy.
49
49
  owners, scope widening, fabricated normalized inventory, non-strict
50
50
  discovery candidate inventory, nonsemantic command evidence, and declared
51
51
  dead zones in selected-owner or full-repository scopes, and do not treat
52
- proof routes, discovery drafts, nonsemantic command evidence, normalized
53
- projections, composed inputs, or rendered views as semantic test coverage.
52
+ caller-authored route, falsifier, oracle-signal, or falsifier-supersession
53
+ metadata as selector resolution, oracle review, execution, freshness, trust,
54
+ sensitivity, dominance proof, verified coverage, or assurance closure;
55
+ discovery classifies only declared assertion-signal presence and coverage
56
+ re-admission requires the versioned exact root and row shapes, canonical row
57
+ order, exact row metadata, command-owned non-claims, exact missing-inventory
58
+ diagnostics, owner-scoped compact scenario identities, and a coverage basis
59
+ that commits to selected owners, full-repository out-of-scope source
60
+ identities, and the complete retained inventory projection; it retains
61
+ complete inventory entries without selected parents, replays owner-scope and
62
+ inventory-owned failure semantics, and rejects missing projection fields,
63
+ contradictory repeated projections, one-sided retained parent references,
64
+ compact scenario-to-route drift, and unowned or inconsistent state/class
65
+ vocabulary. The coverage basis proves internal projection consistency, not
66
+ source authenticity or producer identity.
54
67
  - `REQ-PROOFKIT-SPEC-007`: caller-owned inputs are admitted into canonical
55
68
  immutable records before any proof, policy, route, rendering, or report
56
69
  decision consumes them.
@@ -80,9 +93,10 @@ execution receipts, and merge policy.
80
93
  policy.
81
94
  - `REQ-PROOFKIT-SPEC-012`: requirement authoring plans package caller-provided
82
95
  design, implementation, PR, code, test, and clarification facts into
83
- candidate-only requirement updates, delegate structural checks to requirement
84
- source admission and transition, and keep owner review/materialization outside
85
- Proofkit.
96
+ candidate-only requirement updates, preserve complete canonically ordered
97
+ admitted authoring references, consume requirement records only through
98
+ canonical owner projections, delegate structural checks to requirement source
99
+ admission and transition, and keep owner review/materialization outside Proofkit.
86
100
  - `REQ-PROOFKIT-SPEC-013`: repeated cross-command proof vocabulary has one
87
101
  private owner for proof and selective-edge state while command-local and
88
102
  caller-owned vocabularies stay outside the shared owner.
@@ -143,7 +143,7 @@
143
143
  {
144
144
  "requirementId": "REQ-PROOFKIT-SPEC-006",
145
145
  "ownerId": "proofkit.spec-proof-core",
146
- "invariant": "Test evidence inventory, explicit test-discovery draft projections, proof-binding-derived inventory projections, normalized inventory projections, coverage-view input composition, and requirement coverage views classify or assemble caller-owned test-to-requirement, command, witness, owner-invariant, quality-finding, and declared-surface routes with stable machine-readable failure and warning classifications plus bounded agent action guidance while preserving source-set entry provenance, failing closed on structured selector/sourcePath drift, command-ref collisions, missing requirement owners, scope widening, fabricated normalized inventory, non-strict discovery candidate inventory, nonsemantic command evidence, and declared dead zones in selected-owner or full-repository scopes, and without treating proof routes, discovery drafts, nonsemantic command evidence, normalized projections, composed inputs, generated guidance, or rendered views as semantic test coverage.",
146
+ "invariant": "Test evidence inventory, explicit test-discovery draft projections, proof-binding-derived inventory projections, normalized inventory projections, coverage-view input composition, and requirement coverage views classify or assemble caller-owned test-to-requirement, command, witness, owner-invariant, quality-finding, and declared-surface routes with stable machine-readable failure and warning classifications plus bounded agent action guidance while preserving source-set entry provenance, failing closed on structured selector/sourcePath drift, command-ref collisions, missing requirement owners, scope widening, fabricated normalized inventory, non-strict discovery candidate inventory, nonsemantic command evidence, and declared dead zones in selected-owner or full-repository scopes; caller-authored route, falsifier, oracle-signal, and falsifier-supersession metadata emits only explicit declaration or mapping states, discovery classifies only the presence of admitted assertion-signal categories, coverage output re-admission requires the versioned exact root and row shapes, canonical row order, exact row metadata, command-owned non-claims, exact missing-inventory diagnostics, owner-scoped compact scenario identities, and a coverage basis committing to selected owners, full-repository out-of-scope source identities, and the complete retained inventory projection, retains complete inventory entries even when no selected parent references them, replays owner-scope and inventory-owned failure semantics, and rejects missing projected fields, contradictory repeated projections, one-sided retained parent references, compact scenario-to-route projection drift, and unowned or inconsistent state/class vocabulary, and no such metadata or coverage-basis commitment can emit source authenticity, producer identity, selector-resolution, oracle-review, execution, freshness, trust, sensitivity, dominance-proof, verified, covered, or assurance-closure facts.",
147
147
  "claimLevel": "blocking",
148
148
  "riskClass": "high",
149
149
  "proofBindingRefs": [
@@ -153,7 +153,7 @@
153
153
  "NC-PROOFKIT-SPEC-006"
154
154
  ],
155
155
  "nonClaims": [
156
- "This requirement does not claim repository scanning, native test execution, proof freshness, receipt authenticity, merge approval, or global coverage completeness outside the caller-provided universe."
156
+ "This requirement does not claim repository scanning, source authenticity, producer identity, selector resolution, oracle quality, native test execution, proof freshness, receipt authenticity, trust, sensitivity, assurance closure, merge approval, or global coverage completeness outside the caller-provided universe."
157
157
  ],
158
158
  "lifecycle": {
159
159
  "state": "active",
@@ -305,7 +305,7 @@
305
305
  {
306
306
  "requirementId": "REQ-PROOFKIT-SPEC-012",
307
307
  "ownerId": "proofkit.spec-proof-core",
308
- "invariant": "Requirement authoring plans admit caller-provided design, implementation, pull request, code, test, and clarification facts into candidate-only requirement updates, delegate candidate source and lifecycle checks to requirement-source admission and transition, and emit owner-review plans without reading repositories, writing files, inferring requirement meaning, or approving promotion.",
308
+ "invariant": "Requirement authoring plans admit caller-provided design, implementation, pull request, code, test, and clarification facts into candidate-only requirement updates, preserve every admitted authoring reference as a canonically ordered lossless projection of refId, kind, path, optional digest, summary, and nonClaims, consume current and candidate requirement records only through canonical requirement-source owner projections, delegate candidate source and lifecycle checks to requirement-source admission and transition, and emit owner-review plans without reading repositories, writing files, inferring requirement meaning, or approving promotion.",
309
309
  "claimLevel": "blocking",
310
310
  "riskClass": "high",
311
311
  "proofBindingRefs": [
@@ -102,7 +102,12 @@ vulnerability absence, or consumer rollout safety by itself.
102
102
  fields after validation.
103
103
  - `REQ-PROOFKIT-QUALITY-015`: the package gate includes an admitted release
104
104
  closeout completion-criteria report so unit tests alone cannot satisfy
105
- release closeout.
105
+ release closeout, and coverage-metric re-admission uses overflow-safe exact
106
+ producer relations plus the complete command inventory, and compares both
107
+ coverage command projections with the actual `cli-contract.v2.json` command
108
+ inventory from the same source snapshot, so neither an impossible count
109
+ partition nor a coordinated same-size command substitution can satisfy
110
+ closeout.
106
111
  - `REQ-PROOFKIT-QUALITY-016`: release platform targets use one private owner
107
112
  that projects platform suffixes, Go build targets, npm OS/CPU metadata,
108
113
  package tar entries, Python wheel tags, PyPI candidate completeness,
@@ -129,7 +129,7 @@
129
129
  {
130
130
  "requirementId": "REQ-PROOFKIT-QUALITY-010",
131
131
  "ownerId": "proofkit.supply-chain-quality",
132
- "invariant": "Coverage metrics report requirement, binding, witness, CLI inventory linkage, and descriptor-owned command proof-route candidates from admitted test-evidence-inventory rows, failing closed independently for each requirement/proof linkage dead-zone class and each missing-candidate, unknown-candidate-ref, unknown-semantic-ref, contract-only, or route-only command-route class; source-checkout witness selectors must resolve to valid functions in active Go test files with exact executable commands and a failure-capable assertion candidate outside literal-dead branches, uninvoked closures, and skip-bearing helper paths, critical anti-vacuity scenarios must retain their exact closed selector inventories, and failed command-route inventory admission also fails closed, while static route metadata, prose, source markers, test existence, and failure-capable syntax remain candidate evidence and cannot satisfy semantic_falsifier coverage.",
132
+ "invariant": "Coverage metrics report requirement, binding, witness, CLI inventory linkage, and descriptor-owned command proof-route candidates from admitted test-evidence-inventory rows, failing closed independently for each requirement/proof linkage dead-zone class and each missing-candidate, unknown-candidate-ref, unknown-declared-semantic-route-ref, contract-only, or route-only command-route class; source-checkout witness selectors must resolve to valid functions in active Go test files with exact executable commands and a failure-capable assertion candidate outside literal-dead branches, uninvoked closures, and skip-bearing helper paths, critical anti-vacuity scenarios must retain their exact closed selector inventories, and failed command-route inventory admission also fails closed, while static route metadata, prose, source markers, test existence, and failure-capable syntax remain candidate evidence and cannot become execution-backed semantic evidence.",
133
133
  "claimLevel": "blocking",
134
134
  "riskClass": "medium",
135
135
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -194,7 +194,7 @@
194
194
  {
195
195
  "requirementId": "REQ-PROOFKIT-QUALITY-015",
196
196
  "ownerId": "proofkit.supply-chain-quality",
197
- "invariant": "The package gate includes an admitted release closeout completion-criteria report that classifies package artifacts, Python wrappers, release manifest, SBOM, channel scope, and self-hosting evidence instead of allowing unit tests alone to satisfy release closeout.",
197
+ "invariant": "The package gate includes an admitted release closeout completion-criteria report that classifies package artifacts, Python wrappers, release manifest, SBOM, channel scope, and self-hosting evidence instead of allowing unit tests alone to satisfy release closeout; coverage-metric re-admission uses overflow-safe relations to require the exact producer projection between admitted entries, routes, route classes, proof-route candidates, the complete command inventory, and commands missing declaration-only routes, and compares both coverage command projections with the actual cli-contract.v2.json command inventory from the same source snapshot.",
198
198
  "claimLevel": "blocking",
199
199
  "riskClass": "high",
200
200
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@research-engineering/agentic-proofkit",
3
3
  "description": "Reusable proof profile, report, graph, and witness-planning primitives.",
4
- "version": "0.2.1",
4
+ "version": "0.3.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
@@ -510,7 +510,7 @@
510
510
  "rootDefinitionDigest": "sha256:fd1121285d1b357ed848febc248700a75417d06619e22ed36991631d7526375b",
511
511
  "nativeSource": {
512
512
  "path": "internal/command/agentroute",
513
- "canonicalDigest": "sha256:bcbf099540f203e32c0b6d9cb38dff0dc20e8018644569d647d2979d0d74ac15",
513
+ "canonicalDigest": "sha256:21ffaf8d53060e31f3dec92d7f39cf6e7654cc2268bde47599211d1d914acfeb",
514
514
  "evidenceClass": "source_checkout"
515
515
  },
516
516
  "nativeAdmissionWitnessSelector": {
@@ -586,7 +586,7 @@
586
586
  "rootDefinitionDigest": "sha256:db7d5b29083a939eea0f23253632394212b0d73b5f1b6206d0811d236d6a84ca",
587
587
  "nativeSource": {
588
588
  "path": "internal/command/agentroute",
589
- "canonicalDigest": "sha256:bcbf099540f203e32c0b6d9cb38dff0dc20e8018644569d647d2979d0d74ac15",
589
+ "canonicalDigest": "sha256:21ffaf8d53060e31f3dec92d7f39cf6e7654cc2268bde47599211d1d914acfeb",
590
590
  "evidenceClass": "source_checkout"
591
591
  },
592
592
  "nativeOutputWitnessSelector": {
@@ -1276,7 +1276,7 @@
1276
1276
  "rootDefinitionDigest": "sha256:7ffe236ab203cf411dbfda6008ec8c10cc15691261031d4ed9ed90d81525dc12",
1277
1277
  "nativeSource": {
1278
1278
  "path": "internal/command/requirementbinding",
1279
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
1279
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
1280
1280
  "evidenceClass": "source_checkout"
1281
1281
  },
1282
1282
  "nativeAdmissionWitnessSelector": {
@@ -1304,7 +1304,7 @@
1304
1304
  "rootDefinitionDigest": "sha256:2be3545f9329bb4e4ba4971fc04bf5811959cf0087fd7ab3a7c2c8b45b8d714a",
1305
1305
  "nativeSource": {
1306
1306
  "path": "internal/command/requirementbinding",
1307
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
1307
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
1308
1308
  "evidenceClass": "source_checkout"
1309
1309
  },
1310
1310
  "nativeOutputWitnessSelector": {
@@ -1840,7 +1840,7 @@
1840
1840
  "inputContract": {
1841
1841
  "contractId": "proofkit.migration-parity-admission.input.v1",
1842
1842
  "schemaVersion": 1,
1843
- "authority": "caller-owned migration parity evidence",
1843
+ "authority": "caller-owned migration parity claims",
1844
1844
  "requiredFields": [
1845
1845
  "nonClaims",
1846
1846
  "parityRecords",
@@ -1856,13 +1856,13 @@
1856
1856
  "rootDefinitionDigest": "sha256:a1f8ab777249d7ff613bfb3256cd96514235ac90d02ad39ce8720330cbd71d38",
1857
1857
  "nativeSource": {
1858
1858
  "path": "internal/command/migrationparityadmission",
1859
- "canonicalDigest": "sha256:e6d7db500dea081cbf5c50a0b56051c3f5f193d5dbcc314871cd2bae0c0b3e6a",
1859
+ "canonicalDigest": "sha256:37ea4422b751635bfd27f1afef8e7815b3efec2a8f71f96a7074e6185a18ee5b",
1860
1860
  "evidenceClass": "source_checkout"
1861
1861
  },
1862
1862
  "nativeAdmissionWitnessSelector": {
1863
1863
  "path": "internal/command/migrationparityadmission/migrationparityadmission_test.go",
1864
- "test": "TestBuildAdmitsMatchedParityAndRejectsDigestDrift",
1865
- "command": "go test ./internal/command/migrationparityadmission -run '^TestBuildAdmitsMatchedParityAndRejectsDigestDrift$'",
1864
+ "test": "TestBuildAdmitsCallerDeclaredMatchAndRejectsDigestDrift",
1865
+ "command": "go test ./internal/command/migrationparityadmission -run '^TestBuildAdmitsCallerDeclaredMatchAndRejectsDigestDrift$'",
1866
1866
  "evidenceClass": "source_checkout"
1867
1867
  },
1868
1868
  "compatibilitySummary": [
@@ -1888,13 +1888,13 @@
1888
1888
  "rootDefinitionDigest": "sha256:aaea5c7d9d12e1fbc406d080dcda5aca84351c5a2048d40535a1b3895cc37440",
1889
1889
  "nativeSource": {
1890
1890
  "path": "internal/command/migrationparityadmission",
1891
- "canonicalDigest": "sha256:e6d7db500dea081cbf5c50a0b56051c3f5f193d5dbcc314871cd2bae0c0b3e6a",
1891
+ "canonicalDigest": "sha256:37ea4422b751635bfd27f1afef8e7815b3efec2a8f71f96a7074e6185a18ee5b",
1892
1892
  "evidenceClass": "source_checkout"
1893
1893
  },
1894
1894
  "nativeOutputWitnessSelector": {
1895
1895
  "path": "internal/command/migrationparityadmission/migrationparityadmission_test.go",
1896
- "test": "TestBuildAdmitsMatchedParityAndRejectsDigestDrift",
1897
- "command": "go test ./internal/command/migrationparityadmission -run '^TestBuildAdmitsMatchedParityAndRejectsDigestDrift$'",
1896
+ "test": "TestBuildProjectsEveryCallerDeclaredStatusAndSummaryField",
1897
+ "command": "go test ./internal/command/migrationparityadmission -run '^TestBuildProjectsEveryCallerDeclaredStatusAndSummaryField$'",
1898
1898
  "evidenceClass": "source_checkout"
1899
1899
  },
1900
1900
  "compatibilitySummary": [
@@ -2231,7 +2231,7 @@
2231
2231
  "nativeSources": [
2232
2232
  {
2233
2233
  "path": "internal/app",
2234
- "canonicalDigest": "sha256:0bea47d33304e528ffbe087688ea2dee07cf42e55632eda3b479732e221841d9",
2234
+ "canonicalDigest": "sha256:b106e4c87900417f84f8bd999ddc67ac1d47bc54c2cb0bcb0e85993433761c82",
2235
2235
  "evidenceClass": "source_checkout"
2236
2236
  },
2237
2237
  {
@@ -2486,7 +2486,7 @@
2486
2486
  "rootDefinitionDigest": "sha256:71914c95c70dbace0ebce1dc4609624e3b91c994cd8c5adc20ed84d4200f0ac9",
2487
2487
  "nativeSource": {
2488
2488
  "path": "internal/command/requirementbinding",
2489
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
2489
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
2490
2490
  "evidenceClass": "source_checkout"
2491
2491
  },
2492
2492
  "nativeAdmissionWitnessSelector": {
@@ -2514,7 +2514,7 @@
2514
2514
  "rootDefinitionDigest": "sha256:5fbdf25c90a2020525f97453c9d9fe5a774fe0e2eacf00d1b2aea3ff5f4fa0f0",
2515
2515
  "nativeSource": {
2516
2516
  "path": "internal/command/requirementbinding",
2517
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
2517
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
2518
2518
  "evidenceClass": "source_checkout"
2519
2519
  },
2520
2520
  "nativeOutputWitnessSelector": {
@@ -3196,7 +3196,7 @@
3196
3196
  "rootDefinitionDigest": "sha256:86f8f4913b5316caa63c40d79125199b282d108cbd8b9711db21c2023d1a4ca4",
3197
3197
  "nativeSource": {
3198
3198
  "path": "internal/command/requirementauthoringplan",
3199
- "canonicalDigest": "sha256:91d82aa48a4c10b33f89b7b2db7443182b7702de4b0c2763a8104f2b0a997bdf",
3199
+ "canonicalDigest": "sha256:ec094da2d08e360992266402ec87fc361ef6b34023a91139015493d277bd3e76",
3200
3200
  "evidenceClass": "source_checkout"
3201
3201
  },
3202
3202
  "nativeAdmissionWitnessSelector": {
@@ -3216,26 +3216,26 @@
3216
3216
  ]
3217
3217
  },
3218
3218
  "outputContract": {
3219
- "contractId": "proofkit.requirement-authoring-plan.output.v1",
3220
- "schemaVersion": 1,
3219
+ "contractId": "proofkit.requirement-authoring-plan.output.v2",
3220
+ "schemaVersion": 2,
3221
3221
  "rootType": "object",
3222
3222
  "closed": true,
3223
- "rootDefinitionRef": "proofkit.requirement-authoring-plan.output.v1.root-shape",
3224
- "rootDefinitionDigest": "sha256:019c920b72a4d2fba8f6364bff554442b0194ac42364d645d5b0b71f28df24b1",
3223
+ "rootDefinitionRef": "proofkit.requirement-authoring-plan.output.v2.root-shape",
3224
+ "rootDefinitionDigest": "sha256:c2264058757e40789005b7cf7417906461f064b9b9bca0c5ddda86704e3b36cc",
3225
3225
  "nativeSource": {
3226
3226
  "path": "internal/command/requirementauthoringplan",
3227
- "canonicalDigest": "sha256:91d82aa48a4c10b33f89b7b2db7443182b7702de4b0c2763a8104f2b0a997bdf",
3227
+ "canonicalDigest": "sha256:ec094da2d08e360992266402ec87fc361ef6b34023a91139015493d277bd3e76",
3228
3228
  "evidenceClass": "source_checkout"
3229
3229
  },
3230
3230
  "nativeOutputWitnessSelector": {
3231
- "path": "internal/command/requirementauthoringplan/requirement_authoring_plan_test.go",
3232
- "test": "TestBuildRejectsCandidateSourceAdmissionFailure",
3233
- "command": "go test ./internal/command/requirementauthoringplan -run '^TestBuildRejectsCandidateSourceAdmissionFailure$'",
3231
+ "path": "internal/app/cli_abi_test.go",
3232
+ "test": "TestRequirementAuthoringPlanOutputUsesVersionedRootShape",
3233
+ "command": "go test ./internal/app -run '^TestRequirementAuthoringPlanOutputUsesVersionedRootShape$'",
3234
3234
  "evidenceClass": "source_checkout"
3235
3235
  },
3236
3236
  "compatibilitySummary": [
3237
- "schemaVersion=1",
3238
- "root-shape-only definition proofkit.requirement-authoring-plan.output.v1.root-shape; nested fields, types, and cardinalities are non-claims"
3237
+ "schemaVersion=2",
3238
+ "root-shape-only definition proofkit.requirement-authoring-plan.output.v2.root-shape; nested fields, types, and cardinalities are non-claims"
3239
3239
  ],
3240
3240
  "ownerRequirementRefs": [
3241
3241
  "REQ-PROOFKIT-PACKAGE-002",
@@ -3266,7 +3266,7 @@
3266
3266
  "rootDefinitionDigest": "sha256:e7da70a2267f2ca13771e864bba6a1a0416132c2d56decb5db9f9694de021daf",
3267
3267
  "nativeSource": {
3268
3268
  "path": "internal/command/requirementbinding",
3269
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
3269
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
3270
3270
  "evidenceClass": "source_checkout"
3271
3271
  },
3272
3272
  "nativeAdmissionWitnessSelector": {
@@ -3294,7 +3294,7 @@
3294
3294
  "rootDefinitionDigest": "sha256:f31dd686f28fce4bf74265b557dc25428179cbc282753b4bea01439cd98f73c2",
3295
3295
  "nativeSource": {
3296
3296
  "path": "internal/command/requirementbinding",
3297
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
3297
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
3298
3298
  "evidenceClass": "source_checkout"
3299
3299
  },
3300
3300
  "nativeOutputWitnessSelector": {
@@ -3878,8 +3878,8 @@
3878
3878
  "--format"
3879
3879
  ],
3880
3880
  "outputContract": {
3881
- "contractId": "proofkit.requirement-coverage-view.output.v1",
3882
- "schemaVersion": 1,
3881
+ "contractId": "proofkit.requirement-coverage-view.output.v2",
3882
+ "schemaVersion": 2,
3883
3883
  "authority": "requirement coverage view output contract",
3884
3884
  "classificationRecords": {
3885
3885
  "failureClassifications": {
@@ -3895,15 +3895,18 @@
3895
3895
  "declared_dead_zone",
3896
3896
  "failed_test_inventory",
3897
3897
  "missing_requirement_binding",
3898
- "missing_semantic_test",
3898
+ "missing_declared_test_route",
3899
3899
  "nonsemantic_command_evidence",
3900
3900
  "nonsemantic_governance_evidence",
3901
3901
  "not_applicable_with_reason",
3902
3902
  "owner_scope_violation",
3903
+ "proof_route_candidate_only",
3903
3904
  "routing_smoke_only",
3905
+ "unclassified_gap",
3904
3906
  "unknown_reference"
3905
3907
  ],
3906
3908
  "requiredFields": [
3909
+ "coverageBasis",
3907
3910
  "failureClassifications",
3908
3911
  "failures",
3909
3912
  "ownerInvariantCoverage",
@@ -3912,15 +3915,16 @@
3912
3915
  "warnings"
3913
3916
  ],
3914
3917
  "nonClaims": [
3915
- "Classification records describe Proofkit coverage diagnostics only; consumer repositories own severity policy, merge admission, escalation, and native witness execution."
3918
+ "Classification records describe Proofkit coverage diagnostics only; consumer repositories own severity policy, merge admission, escalation, and native witness execution.",
3919
+ "Coverage basis commitments prove internal projection consistency only; they do not authenticate source inputs or producer identity."
3916
3920
  ],
3917
3921
  "rootType": "object",
3918
3922
  "closed": true,
3919
- "rootDefinitionRef": "proofkit.requirement-coverage-view.output.v1.root-shape",
3920
- "rootDefinitionDigest": "sha256:697d24d12d4772b67283f24da2f265372de241bd4741ac23f7b984ca96023818",
3923
+ "rootDefinitionRef": "proofkit.requirement-coverage-view.output.v2.root-shape",
3924
+ "rootDefinitionDigest": "sha256:71a3a1245159e03eb3f81e2b117e1d1690c99e7e84625670a1fd42530b53684c",
3921
3925
  "nativeSource": {
3922
3926
  "path": "internal/command/requirementcoverageview",
3923
- "canonicalDigest": "sha256:c2a999a43db2e7b9ed65a599865bd291c7a0a4daf64973aefb40e684dee34c5a",
3927
+ "canonicalDigest": "sha256:a6f804ad55b0101c934c782468c217ab8f3ce0cc42828975fbc35621bd43bc97",
3924
3928
  "evidenceClass": "source_checkout"
3925
3929
  },
3926
3930
  "nativeOutputWitnessSelector": {
@@ -3930,13 +3934,14 @@
3930
3934
  "evidenceClass": "source_checkout"
3931
3935
  },
3932
3936
  "compatibilitySummary": [
3937
+ "coverageBasis",
3933
3938
  "failureClassifications",
3934
3939
  "failures",
3935
3940
  "ownerInvariantCoverage",
3936
3941
  "state",
3937
3942
  "warningClassifications",
3938
3943
  "warnings",
3939
- "root-shape-only definition proofkit.requirement-coverage-view.output.v1.root-shape; nested fields, types, and cardinalities are non-claims"
3944
+ "root-shape-only definition proofkit.requirement-coverage-view.output.v2.root-shape; nested fields, types, and cardinalities are non-claims"
3940
3945
  ],
3941
3946
  "ownerRequirementRefs": [
3942
3947
  "REQ-PROOFKIT-PACKAGE-002",
@@ -3953,7 +3958,7 @@
3953
3958
  "rootDefinitionDigest": "sha256:b5ddab0a55a381f002b39ece0f5727171f7984856e553200bbb62a49821ff6ac",
3954
3959
  "nativeSource": {
3955
3960
  "path": "internal/command/requirementcoverageview",
3956
- "canonicalDigest": "sha256:c2a999a43db2e7b9ed65a599865bd291c7a0a4daf64973aefb40e684dee34c5a",
3961
+ "canonicalDigest": "sha256:a6f804ad55b0101c934c782468c217ab8f3ce0cc42828975fbc35621bd43bc97",
3957
3962
  "evidenceClass": "source_checkout"
3958
3963
  },
3959
3964
  "nativeAdmissionWitnessSelector": {
@@ -4111,7 +4116,7 @@
4111
4116
  "rootDefinitionDigest": "sha256:68ade17ac7e9fb3496ad0e7ea8ae9fbcf734afa4e6b8a44442e1af3c4f87bf15",
4112
4117
  "nativeSource": {
4113
4118
  "path": "internal/command/requirementbinding",
4114
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
4119
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
4115
4120
  "evidenceClass": "source_checkout"
4116
4121
  },
4117
4122
  "nativeAdmissionWitnessSelector": {
@@ -4138,7 +4143,7 @@
4138
4143
  "rootDefinitionDigest": "sha256:750c75c08376a986a18e8739b7476d58af4133c19c40f43d216ee009607be225",
4139
4144
  "nativeSource": {
4140
4145
  "path": "internal/command/requirementbinding",
4141
- "canonicalDigest": "sha256:90bada8c868751cef16683475839174de48dd18936e3d79a74e24febcda1e09b",
4146
+ "canonicalDigest": "sha256:c1382a5e461974baf8e5a45d95e99552c241ea16590b1e1a781748c331cb5ffe",
4142
4147
  "evidenceClass": "source_checkout"
4143
4148
  },
4144
4149
  "nativeOutputWitnessSelector": {
@@ -4464,7 +4469,7 @@
4464
4469
  "rootDefinitionDigest": "sha256:b2b3982ca053794da607673db6258933960a4f67653871205ff03caab2012a9f",
4465
4470
  "nativeSource": {
4466
4471
  "path": "internal/command/requirementsourceadmission",
4467
- "canonicalDigest": "sha256:5767016688b34b4843a4c2da3f817b354c2ade0e9dfcfae5009b8fbf7cf5f76d",
4472
+ "canonicalDigest": "sha256:d68c56d1566166937da8ca3f2e0afe302d21a9349a0b520322a434ab88270b30",
4468
4473
  "evidenceClass": "source_checkout"
4469
4474
  },
4470
4475
  "nativeAdmissionWitnessSelector": {
@@ -4491,7 +4496,7 @@
4491
4496
  "rootDefinitionDigest": "sha256:2527a19394b22efb4b14e39bf3b1f14283f179592c369b9c2ae34b612c7c69af",
4492
4497
  "nativeSource": {
4493
4498
  "path": "internal/command/requirementsourceadmission",
4494
- "canonicalDigest": "sha256:5767016688b34b4843a4c2da3f817b354c2ade0e9dfcfae5009b8fbf7cf5f76d",
4499
+ "canonicalDigest": "sha256:d68c56d1566166937da8ca3f2e0afe302d21a9349a0b520322a434ab88270b30",
4495
4500
  "evidenceClass": "source_checkout"
4496
4501
  },
4497
4502
  "nativeOutputWitnessSelector": {
@@ -5465,7 +5470,7 @@
5465
5470
  "rootDefinitionDigest": "sha256:3c842174dff5361e7f83166469b832805e05aa314b073c16234b5b64e346281e",
5466
5471
  "nativeSource": {
5467
5472
  "path": "internal/app",
5468
- "canonicalDigest": "sha256:0bea47d33304e528ffbe087688ea2dee07cf42e55632eda3b479732e221841d9",
5473
+ "canonicalDigest": "sha256:b106e4c87900417f84f8bd999ddc67ac1d47bc54c2cb0bcb0e85993433761c82",
5469
5474
  "evidenceClass": "source_checkout"
5470
5475
  },
5471
5476
  "nativeAdmissionWitnessSelector": {
@@ -5494,7 +5499,7 @@
5494
5499
  "rootDefinitionDigest": "sha256:0ea95e277ebe44cd2de42c29b47c38686ac0b6b390d8965367437b3fe138e209",
5495
5500
  "nativeSource": {
5496
5501
  "path": "internal/app",
5497
- "canonicalDigest": "sha256:0bea47d33304e528ffbe087688ea2dee07cf42e55632eda3b479732e221841d9",
5502
+ "canonicalDigest": "sha256:b106e4c87900417f84f8bd999ddc67ac1d47bc54c2cb0bcb0e85993433761c82",
5498
5503
  "evidenceClass": "source_checkout"
5499
5504
  },
5500
5505
  "nativeOutputWitnessSelector": {
@@ -5770,7 +5775,7 @@
5770
5775
  "candidateKind": "proofkit.test-inventory-discovery-draft.candidate-inventory",
5771
5776
  "strictInventoryAdmission": "rejected_until_owner_materialized"
5772
5777
  },
5773
- "nonClaim": "Discovery draft reports candidate-only guidance from explicit caller-owned facts; it does not scan repositories, execute tests, emit semantic_falsifier evidence, or close coverage."
5778
+ "nonClaim": "Discovery draft reports candidate-only guidance from explicit caller-owned facts; it does not scan repositories, execute tests, emit execution-backed semantic evidence, or close coverage."
5774
5779
  },
5775
5780
  "proof-binding-derived": {
5776
5781
  "authority": "proof-binding-derived test inventory projection admission",
@@ -5845,14 +5850,14 @@
5845
5850
  },
5846
5851
  {
5847
5852
  "path": "internal/command/testevidenceinventory",
5848
- "canonicalDigest": "sha256:04febdd7e002567d50bb16fded119ef6ca0ce0d2eb063c92b1664312652ac395",
5853
+ "canonicalDigest": "sha256:95618ec2824e5510d55d2c6bb86da69b057679a39404cca5f2ab5c8fd4826c6a",
5849
5854
  "evidenceClass": "source_checkout"
5850
5855
  }
5851
5856
  ],
5852
5857
  "nativeAdmissionWitnessSelector": {
5853
5858
  "path": "internal/command/testevidenceinventory/testevidenceinventory_test.go",
5854
- "test": "TestBuildRejectsWeakOracleAndDuplicateFalsifier",
5855
- "command": "go test ./internal/command/testevidenceinventory -run '^TestBuildRejectsWeakOracleAndDuplicateFalsifier$'",
5859
+ "test": "TestBuildRejectsIncompleteDeclaredOracleMetadataAndDuplicateFalsifier",
5860
+ "command": "go test ./internal/command/testevidenceinventory -run '^TestBuildRejectsIncompleteDeclaredOracleMetadataAndDuplicateFalsifier$'",
5856
5861
  "evidenceClass": "source_checkout"
5857
5862
  },
5858
5863
  "compatibilitySummary": [
@@ -5899,7 +5904,7 @@
5899
5904
  "invalid_falsifier_supersession",
5900
5905
  "missing_edge",
5901
5906
  "missing_executable_command_ref",
5902
- "missing_semantic_anchor",
5907
+ "missing_declared_route_anchor",
5903
5908
  "mock_tests_mock",
5904
5909
  "over_broad_integration",
5905
5910
  "proof_route_candidate",
@@ -5908,7 +5913,7 @@
5908
5913
  "snapshot_without_oracle",
5909
5914
  "tautology",
5910
5915
  "unasserted_diagnostic",
5911
- "weak_or_empty_oracle",
5916
+ "incomplete_declared_oracle_metadata",
5912
5917
  "wrong_boundary",
5913
5918
  "wrong_evidence_boundary"
5914
5919
  ],
@@ -5921,8 +5926,8 @@
5921
5926
  "severity": "failure|warning"
5922
5927
  },
5923
5928
  "oracleFields": {
5924
- "assertionSummary": "non-empty assertion summary for semantic_falsifier, contract_admission, and property_or_fuzz entries",
5925
- "expectedPublicOutcome": "non-empty expected public outcome for semantic_falsifier, contract_admission, and property_or_fuzz entries",
5929
+ "assertionSummary": "non-empty caller-authored assertion summary for declared semantic-falsifier, contract-admission, and property-or-fuzz routes",
5930
+ "expectedPublicOutcome": "non-empty caller-authored expected public outcome for declared semantic-falsifier, contract-admission, and property-or-fuzz routes",
5926
5931
  "oracleId": "stable rule id",
5927
5932
  "oracleKind": "stable rule id"
5928
5933
  },
@@ -5942,14 +5947,14 @@
5942
5947
  },
5943
5948
  {
5944
5949
  "path": "internal/command/testevidenceinventory",
5945
- "canonicalDigest": "sha256:04febdd7e002567d50bb16fded119ef6ca0ce0d2eb063c92b1664312652ac395",
5950
+ "canonicalDigest": "sha256:95618ec2824e5510d55d2c6bb86da69b057679a39404cca5f2ab5c8fd4826c6a",
5946
5951
  "evidenceClass": "source_checkout"
5947
5952
  }
5948
5953
  ],
5949
5954
  "nativeOutputWitnessSelector": {
5950
5955
  "path": "internal/command/testevidenceinventory/testevidenceinventory_test.go",
5951
- "test": "TestBuildRejectsWeakOracleAndDuplicateFalsifier",
5952
- "command": "go test ./internal/command/testevidenceinventory -run '^TestBuildRejectsWeakOracleAndDuplicateFalsifier$'",
5956
+ "test": "TestBuildRejectsIncompleteDeclaredOracleMetadataAndDuplicateFalsifier",
5957
+ "command": "go test ./internal/command/testevidenceinventory -run '^TestBuildRejectsIncompleteDeclaredOracleMetadataAndDuplicateFalsifier$'",
5953
5958
  "evidenceClass": "source_checkout"
5954
5959
  },
5955
5960
  "compatibilitySummary": [
@@ -11109,8 +11114,8 @@
11109
11114
  "canonicalDigest": "sha256:86f8f4913b5316caa63c40d79125199b282d108cbd8b9711db21c2023d1a4ca4"
11110
11115
  },
11111
11116
  {
11112
- "definitionId": "proofkit.requirement-authoring-plan.output.v1.root-shape",
11113
- "schemaVersion": 1,
11117
+ "definitionId": "proofkit.requirement-authoring-plan.output.v2.root-shape",
11118
+ "schemaVersion": 2,
11114
11119
  "rootType": "object",
11115
11120
  "closed": true,
11116
11121
  "definitionRefs": [],
@@ -11124,6 +11129,7 @@
11124
11129
  {
11125
11130
  "allowedFields": [
11126
11131
  "authoringPlanId",
11132
+ "authoringRefs",
11127
11133
  "candidateChangeSet",
11128
11134
  "mode",
11129
11135
  "nonAuthoritativeAdmissionPreview",
@@ -11138,6 +11144,7 @@
11138
11144
  ],
11139
11145
  "requiredFields": [
11140
11146
  "authoringPlanId",
11147
+ "authoringRefs",
11141
11148
  "candidateChangeSet",
11142
11149
  "mode",
11143
11150
  "nonAuthoritativeAdmissionPreview",
@@ -11158,7 +11165,7 @@
11158
11165
  }
11159
11166
  ]
11160
11167
  },
11161
- "canonicalDigest": "sha256:019c920b72a4d2fba8f6364bff554442b0194ac42364d645d5b0b71f28df24b1"
11168
+ "canonicalDigest": "sha256:c2264058757e40789005b7cf7417906461f064b9b9bca0c5ddda86704e3b36cc"
11162
11169
  },
11163
11170
  {
11164
11171
  "definitionId": "proofkit.requirement-bindings.input.v1.root-shape",
@@ -11886,8 +11893,8 @@
11886
11893
  "canonicalDigest": "sha256:b5ddab0a55a381f002b39ece0f5727171f7984856e553200bbb62a49821ff6ac"
11887
11894
  },
11888
11895
  {
11889
- "definitionId": "proofkit.requirement-coverage-view.output.v1.root-shape",
11890
- "schemaVersion": 1,
11896
+ "definitionId": "proofkit.requirement-coverage-view.output.v2.root-shape",
11897
+ "schemaVersion": 2,
11891
11898
  "rootType": "object",
11892
11899
  "closed": true,
11893
11900
  "definitionRefs": [],
@@ -11945,6 +11952,7 @@
11945
11952
  "commandCoverageCount",
11946
11953
  "completenessDeclaration",
11947
11954
  "contractId",
11955
+ "coverageBasis",
11948
11956
  "coverageUniverseId",
11949
11957
  "deadZones",
11950
11958
  "failureClassifications",
@@ -11962,6 +11970,7 @@
11962
11970
  "sourceId",
11963
11971
  "state",
11964
11972
  "testInventoryId",
11973
+ "unmappedTests",
11965
11974
  "viewInputId",
11966
11975
  "viewKind",
11967
11976
  "warningClassifications",
@@ -11975,6 +11984,7 @@
11975
11984
  "commandCoverageCount",
11976
11985
  "completenessDeclaration",
11977
11986
  "contractId",
11987
+ "coverageBasis",
11978
11988
  "coverageUniverseId",
11979
11989
  "deadZones",
11980
11990
  "failureClassifications",
@@ -11992,6 +12002,7 @@
11992
12002
  "sourceId",
11993
12003
  "state",
11994
12004
  "testInventoryId",
12005
+ "unmappedTests",
11995
12006
  "viewInputId",
11996
12007
  "viewKind",
11997
12008
  "warningClassifications",
@@ -12006,7 +12017,7 @@
12006
12017
  }
12007
12018
  ]
12008
12019
  },
12009
- "canonicalDigest": "sha256:697d24d12d4772b67283f24da2f265372de241bd4741ac23f7b984ca96023818"
12020
+ "canonicalDigest": "sha256:71a3a1245159e03eb3f81e2b117e1d1690c99e7e84625670a1fd42530b53684c"
12010
12021
  },
12011
12022
  {
12012
12023
  "definitionId": "proofkit.requirement-impact-input-compose.input.v1.root-shape",
@@ -129,7 +129,7 @@
129
129
  "claimLevel": "blocking",
130
130
  "proofState": "witness_backed",
131
131
  "nonClaims": [
132
- "This requirement does not claim repository scanning, native test execution, proof freshness, receipt authenticity, merge approval, or global coverage completeness outside the caller-provided universe."
132
+ "This requirement does not claim repository scanning, source authenticity, producer identity, selector resolution, oracle quality, native test execution, proof freshness, receipt authenticity, trust, sensitivity, assurance closure, merge approval, or global coverage completeness outside the caller-provided universe."
133
133
  ]
134
134
  },
135
135
  {
@@ -988,6 +988,10 @@
988
988
  "selector": "TestAdoptionContractEnvelopeCLIABI",
989
989
  "command": "go test ./internal/app -run '^TestAdoptionContractEnvelopeCLIABI$'"
990
990
  },
991
+ {
992
+ "selector": "TestRequirementAuthoringPlanOutputUsesVersionedRootShape",
993
+ "command": "go test ./internal/app -run '^TestRequirementAuthoringPlanOutputUsesVersionedRootShape$'"
994
+ },
991
995
  {
992
996
  "selector": "TestSelfCheckOutputUsesExactRootShape",
993
997
  "command": "go test ./internal/app -run '^TestSelfCheckOutputUsesExactRootShape$'"
@@ -1452,7 +1456,53 @@
1452
1456
  "scenarioId": "proofkit.spec-proof-core.test-inventory-and-coverage-view",
1453
1457
  "witnessId": "proofkit.test-inventory-and-coverage-view.boundary",
1454
1458
  "witnessKind": "contract",
1455
- "witnessPath": "internal/command/requirementcoverageview/requirementcoverageview_test.go",
1459
+ "witnessPath": "internal/command/requirementcoverageview/output_closure_test.go",
1460
+ "witnessSelectors": [
1461
+ {
1462
+ "selector": "TestAdmitOutputRejectsCompactProjectionDrift",
1463
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRejectsCompactProjectionDrift$'"
1464
+ },
1465
+ {
1466
+ "selector": "TestAdmitOutputRejectsMissingInverseParentProjection",
1467
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRejectsMissingInverseParentProjection$'"
1468
+ },
1469
+ {
1470
+ "selector": "TestAdmitOutputRejectsNonCanonicalWireProjectionText",
1471
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRejectsNonCanonicalWireProjectionText$'"
1472
+ },
1473
+ {
1474
+ "selector": "TestAdmitOutputRejectsRemovedValidUnmappedInventoryEntry",
1475
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRejectsRemovedValidUnmappedInventoryEntry$'"
1476
+ },
1477
+ {
1478
+ "selector": "TestAdmitOutputReplaysFailedInventoryQualitySemantics",
1479
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputReplaysFailedInventoryQualitySemantics$'"
1480
+ },
1481
+ {
1482
+ "selector": "TestAdmitOutputReplaysFullRepositorySourceOwnerScopeFailures",
1483
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputReplaysFullRepositorySourceOwnerScopeFailures$'"
1484
+ },
1485
+ {
1486
+ "selector": "TestAdmitOutputReplaysOwnerScopeFailures",
1487
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputReplaysOwnerScopeFailures$'"
1488
+ },
1489
+ {
1490
+ "selector": "TestAdmitOutputRequiresEveryCoverageBasisField",
1491
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRequiresEveryCoverageBasisField$'"
1492
+ },
1493
+ {
1494
+ "selector": "TestAdmitOutputRequiresEveryDeclaredRootField",
1495
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRequiresEveryDeclaredRootField$'"
1496
+ },
1497
+ {
1498
+ "selector": "TestAdmitOutputRetainsFailedInventoryEntriesWithoutProjectedParents",
1499
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputRetainsFailedInventoryEntriesWithoutProjectedParents$'"
1500
+ },
1501
+ {
1502
+ "selector": "TestAdmitOutputValidatesEveryCoverageRowMetadataField",
1503
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestAdmitOutputValidatesEveryCoverageRowMetadataField$'"
1504
+ }
1505
+ ],
1456
1506
  "commandIds": [
1457
1507
  "proofkit.go-test"
1458
1508
  ],
@@ -1473,6 +1523,25 @@
1473
1523
  "local-go"
1474
1524
  ]
1475
1525
  },
1526
+ {
1527
+ "requirementId": "REQ-PROOFKIT-SPEC-006",
1528
+ "scenarioId": "proofkit.spec-proof-core.declared-route-mapping-without-assurance",
1529
+ "witnessId": "proofkit.requirement-coverage.declared-route-mapping-falsifier",
1530
+ "witnessKind": "contract",
1531
+ "witnessPath": "internal/command/requirementcoverageview/requirementcoverageview_test.go",
1532
+ "witnessSelectors": [
1533
+ {
1534
+ "selector": "TestBuildJSONMissingSelectorRemainsMappingOnly",
1535
+ "command": "go test ./internal/command/requirementcoverageview -run '^TestBuildJSONMissingSelectorRemainsMappingOnly$'"
1536
+ }
1537
+ ],
1538
+ "commandIds": [
1539
+ "proofkit.go-test"
1540
+ ],
1541
+ "environmentClasses": [
1542
+ "local-go"
1543
+ ]
1544
+ },
1476
1545
  {
1477
1546
  "requirementId": "REQ-PROOFKIT-SPEC-007",
1478
1547
  "scenarioId": "proofkit.spec-proof-core.canonical-command-input-admission",
@@ -1672,6 +1741,25 @@
1672
1741
  "local-go"
1673
1742
  ]
1674
1743
  },
1744
+ {
1745
+ "requirementId": "REQ-PROOFKIT-SPEC-012",
1746
+ "scenarioId": "proofkit.spec-proof-core.requirement-authoring-ref-provenance",
1747
+ "witnessId": "proofkit.requirement-authoring-plan.authoring-ref-provenance-falsifier",
1748
+ "witnessKind": "contract",
1749
+ "witnessPath": "internal/command/requirementauthoringplan/requirement_authoring_plan_test.go",
1750
+ "witnessSelectors": [
1751
+ {
1752
+ "selector": "TestBuildPreservesDigestBoundAuthoringRefIdentity",
1753
+ "command": "go test ./internal/command/requirementauthoringplan -run '^TestBuildPreservesDigestBoundAuthoringRefIdentity$'"
1754
+ }
1755
+ ],
1756
+ "commandIds": [
1757
+ "proofkit.go-test"
1758
+ ],
1759
+ "environmentClasses": [
1760
+ "local-go"
1761
+ ]
1762
+ },
1675
1763
  {
1676
1764
  "requirementId": "REQ-PROOFKIT-SPEC-013",
1677
1765
  "scenarioId": "proofkit.spec-proof-core.private-proof-vocabulary-owner",
@@ -1943,7 +2031,13 @@
1943
2031
  "scenarioId": "proofkit.consumer-infra-retirement.migration-parity-admission",
1944
2032
  "witnessId": "proofkit.migration-parity-admission.boundary",
1945
2033
  "witnessKind": "contract",
1946
- "witnessPath": "internal/app/self_hosting_semantics_test.go",
2034
+ "witnessPath": "internal/command/migrationparityadmission/migrationparityadmission_test.go",
2035
+ "witnessSelectors": [
2036
+ {
2037
+ "selector": "TestBuildProjectsEveryCallerDeclaredStatusAndSummaryField",
2038
+ "command": "go test ./internal/command/migrationparityadmission -run '^TestBuildProjectsEveryCallerDeclaredStatusAndSummaryField$'"
2039
+ }
2040
+ ],
1947
2041
  "commandIds": [
1948
2042
  "proofkit.go-test"
1949
2043
  ],
@@ -2068,6 +2162,10 @@
2068
2162
  "selector": "TestAdoptionContractEnvelopeCLIABI",
2069
2163
  "command": "go test ./internal/app -run '^TestAdoptionContractEnvelopeCLIABI$'"
2070
2164
  },
2165
+ {
2166
+ "selector": "TestRequirementAuthoringPlanOutputUsesVersionedRootShape",
2167
+ "command": "go test ./internal/app -run '^TestRequirementAuthoringPlanOutputUsesVersionedRootShape$'"
2168
+ },
2071
2169
  {
2072
2170
  "selector": "TestRequirementBrowserOneShotCLIOutputVariants",
2073
2171
  "command": "go test ./internal/app -run '^TestRequirementBrowserOneShotCLIOutputVariants$'"
@@ -2167,7 +2265,13 @@
2167
2265
  "scenarioId": "proofkit.supply-chain-quality.cli-output-schema-evolution",
2168
2266
  "witnessId": "proofkit.cli-contract.output-schema-evolution",
2169
2267
  "witnessKind": "contract",
2170
- "witnessPath": "internal/app/app_test.go",
2268
+ "witnessPath": "internal/app/cli_contract_test.go",
2269
+ "witnessSelectors": [
2270
+ {
2271
+ "selector": "TestRequirementCoverageViewBreakingRootUsesVersionedOutputContract",
2272
+ "command": "go test ./internal/app -run '^TestRequirementCoverageViewBreakingRootUsesVersionedOutputContract$'"
2273
+ }
2274
+ ],
2171
2275
  "commandIds": [
2172
2276
  "proofkit.go-test"
2173
2277
  ],
@@ -2531,6 +2635,12 @@
2531
2635
  "witnessId": "proofkit.release-closeout.completion-criteria-gate",
2532
2636
  "witnessKind": "contract",
2533
2637
  "witnessPath": "internal/tools/releasecloseoutinput/main_test.go",
2638
+ "witnessSelectors": [
2639
+ {
2640
+ "selector": "TestBuildInputFailsClosedForEachBlockingEvidenceClass",
2641
+ "command": "go test ./internal/tools/releasecloseoutinput -run '^TestBuildInputFailsClosedForEachBlockingEvidenceClass$'"
2642
+ }
2643
+ ],
2534
2644
  "commandIds": [
2535
2645
  "proofkit.go-test",
2536
2646
  "proofkit.package-gate"
@@ -771,6 +771,7 @@
771
771
  "internal/kernel/compactproofcontract",
772
772
  "internal/kernel/digest",
773
773
  "internal/kernel/markdownfmt",
774
+ "internal/kernel/proofvocab",
774
775
  "internal/kernel/report",
775
776
  "internal/kernel/secretjson",
776
777
  "internal/kernel/stablejson",