@research-engineering/agentic-proofkit 0.2.0 → 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,11 +42,18 @@ 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 |
49
49
  | Supply-chain and quality | `self-check`, release workflow, `npm run release:sbom`, `npm run self:coverage`, `npm run go:actionlint`, `npm run go:bench` | release artifacts, source workflows, specs, bindings, witness plans, explicit benchmark invocation | deterministic self-check report shape, SBOM candidate evidence, coverage metrics, workflow lint routing, benchmark entrypoints | public-source provenance, vulnerability triage, license approval, CI run admission, release approval | self-check report, SBOM, metrics report, CI signal, or benchmark output |
50
+
51
+ The `npm run release:sbom`, `npm run self:coverage`, `npm run go:actionlint`,
52
+ and `npm run go:bench` routes above are maintainer commands for a source
53
+ checkout. They are not installed-package APIs because their implementations
54
+ depend on repository-only `internal/` or workflow sources. Installed consumers
55
+ must use the public `agentic-proofkit` CLI routes declared in
56
+ `proofkit/cli-contract.v2.json`.
50
57
  | Repository structure | `repo-profile-admission`, `workspace-manifest-facts`, `workspace-registry`, `workspace-changed-package-plan`, `workspace-shard-partition`, `typescript-public-api-surfaces`, `text-policy`, `secret-scan`, `package-runtime-dependency-admission` | explicit repo/profile facts, caller-owned manifest records, caller-owned roots, caller-owned text file inventories, explicit TypeScript package-manifest and per-condition source paths, optional `environmentClassPolicies` tuples | structural admission, manifest-to-workspace fact projection, workspace graph projections, bounded TypeScript package public API checks over referenced files, text policy admission, explicit-inventory secret-like text detection, shard plans | repository freshness, git/file discovery, compiler output provenance, command policy, package manager truth, provider secret scanning | structural, fact, policy, or planning report |
51
58
  | Custom and generated artifacts | `custom-rule-boundary`, `document-lifecycle-boundary`, `rendered-artifact-freshness`, `conformance-profile`, `json-report-cli-adapter-source`, `witness-plan`, `witness-scheduler-plan` | custom rule metadata, document lifecycle records, artifact digests, profile manifests, command metadata, adapter language | boundary checks, generated-view freshness shape, deterministic adapter source generation, scheduler metadata checks | rule execution, document meaning, cache contents, CI scheduling, committed generated-source freshness | boundary report, generated source artifact, or scheduler report |
52
59
  | CLI metadata | `help` | optional command name or help flag | built-in command catalog and help text routing | command selection, semantic proof, freshness, merge policy | text help only |
@@ -124,7 +131,7 @@ Semantic context routes are `requirement-context-compose`,
124
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. |
125
132
  | Overview prose may contain durable claims. | `spec-overview-claims` | Escalate when normative claims are not tied to `REQ-*` records. |
126
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. |
127
- | 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. |
128
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. |
129
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. |
130
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. |
@@ -46,7 +46,20 @@ In a source checkout, the committed `release/change-record.v2.json` owns the
46
46
  reviewed, version-bound declaration of the public-contract delta, migration
47
47
  decision, platform requirements, known limitations, and rollback strategy. It
48
48
  is not part of the installed npm or PyPI projection and does not infer change
49
- completeness from the source diff. The repository-owned
49
+ completeness from the source diff.
50
+
51
+ Release-history migration support starts at the baseline named by the first
52
+ supporting release record. The exact baseline remains in that source-only,
53
+ immutable release evidence rather than this package-public document. The
54
+ repository does not backfill a machine release-history chain for earlier
55
+ pre-baseline development releases. Each later change record in its released
56
+ source commit owns exactly one edge from `previousVersion` to `version`. A
57
+ future cumulative migration plan may be derived only from a contiguous,
58
+ owner-admitted sequence of those immutable release records; it must not become
59
+ a second authored source of truth or infer migration semantics from a source
60
+ diff. No cumulative release-history planner is currently claimed.
61
+
62
+ The repository-owned
50
63
  `release:manifest` tool admits that record and creates `release-manifest.json`,
51
64
  `checksums.sha256`, `metadata-checksums.sha256`, `sbom-subjects.sha256`,
52
65
  release notes, and deterministic SBOM candidate evidence from explicit package,
@@ -120,6 +133,13 @@ coverage metrics generation.
120
133
  The dry-run package identity proves candidate tarball shape only. It does not
121
134
  prove the bytes served by the registry after publish.
122
135
 
136
+ Candidate preflight also admits the npm registry `latest` identity. For an
137
+ unpublished candidate, `latest` must equal the change record
138
+ `previousVersion`. For an already-published candidate, exact candidate-to-
139
+ registry byte equality must be proven first and `latest` must equal the change
140
+ record `version`. This separates a new release edge from an idempotent replay
141
+ and rejects skipped or stale predecessor chains.
142
+
123
143
  ## Publish
124
144
 
125
145
  Create and push an exact version tag:
@@ -134,7 +154,9 @@ The `release` workflow must:
134
154
  1. verify source package identity;
135
155
  2. run the package gate;
136
156
  3. build publish candidate evidence through either npm publish dry-run or
137
- exact existing-byte-match validation for an already published version;
157
+ exact existing-byte-match validation for an already published version, then
158
+ bind the branch-specific candidate state and admitted change record to the
159
+ exact npm `latest` package identity;
138
160
  4. build Python wheel candidates for the same embedded Go CLI;
139
161
  5. prove publish readiness before any registry side effect: the tag must equal
140
162
  `v<package.json version>`, target a commit reachable from `main`, and have
@@ -168,7 +190,9 @@ The `release` workflow must:
168
190
  `artifacts/retained-evidence-checksums.sha256`. The checksum manifest lives
169
191
  at the retained artifact root and uses exact `release/...` and
170
192
  `attestations/...` paths, so standard checksum verification executes against
171
- the downloaded artifact layout without path rewriting. The release
193
+ the downloaded artifact layout without path rewriting. Each existing-release
194
+ and newly-created-release branch immediately runs the repository-owned
195
+ `retained-evidence-verify` preflight before reporting success. The release
172
196
  manifest records GitHub Release channel data as candidate/archive inventory;
173
197
  `github-release.json` owns post-create GitHub Release facts only inside
174
198
  retained workflow evidence, not as a public release asset.
@@ -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,
@@ -160,8 +165,9 @@ vulnerability absence, or consumer rollout safety by itself.
160
165
  exact complete current breaking, addition, and migration inventories
161
166
  including channel-specific generated continuation bytes, rejects missing,
162
167
  substituted, reordered, or surplus entries, and owns one independently
163
- authored byte-exact complete current release-note projection, while one
164
- retained-
168
+ authored byte-exact complete current release-note projection. Candidate
169
+ preflight binds npm latest to `previousVersion` for an unpublished candidate
170
+ or to `version` only after exact existing-byte-match proof. One retained-
165
171
  evidence owner builds and verifies checksums against exact
166
172
  downloadable artifact-relative paths without inferring change completeness
167
173
  from the source diff.
@@ -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, 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"],
@@ -311,12 +311,12 @@
311
311
  {
312
312
  "requirementId": "REQ-PROOFKIT-QUALITY-024",
313
313
  "ownerId": "proofkit.supply-chain-quality",
314
- "invariant": "Release metadata generation admits one closed schema-versioned machine-readable declaration of the reviewed public-contract change set, requires exact ordered equality for the complete current breaking-change, addition, and migration inventories, including channel-specific changes to public generated continuation bytes, binds its exact previous and current canonical SemVer values to a compatible or breaking change class, rejects missing, substituted, reordered, or surplus current entries plus non-monotonic or patch-range breaking releases, and renders one byte-exact independently authored complete current release-note projection with no relocated, duplicate, appended, surplus, or second owned section, while one repository-owned retained-evidence builder and verifier checksum the exact final downloadable artifact topology with artifact-relative paths, reject unbound evidence files and symlink substitution, and fail release closeout on record, note, path, or digest drift.",
314
+ "invariant": "Release metadata generation admits one closed schema-versioned machine-readable declaration of the reviewed public-contract change set, requires exact ordered equality for the complete current breaking-change, addition, and migration inventories, including channel-specific changes to public generated continuation bytes, binds its exact previous and current canonical SemVer values to a compatible or breaking change class, rejects missing, substituted, reordered, or surplus current entries plus non-monotonic or patch-range breaking releases, and renders one byte-exact independently authored complete current release-note projection with no relocated, duplicate, appended, surplus, or second owned section; release candidate preflight binds the admitted npm package identity and candidate state to registry latest so an unpublished candidate requires latest to equal previousVersion and an exact existing-byte-match candidate requires latest to equal version; release metadata promotes the npm channel to published only from a strictly admitted registry-authority record whose unique filename-keyed package set exactly matches both retained registry records and local candidate identity and bytes; one repository-owned retained-evidence builder and verifier checksum the exact final downloadable artifact topology with artifact-relative paths, reject unbound evidence files and symlink substitution, and fail release closeout on record, note, path, or digest drift.",
315
315
  "claimLevel": "blocking",
316
316
  "riskClass": "high",
317
317
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
318
318
  "nonClaimRefs": ["NC-PROOFKIT-QUALITY-024"],
319
- "nonClaims": ["This requirement does not infer change-record completeness from source changes, make release notes approval authority, or prove provider publication, attestation authenticity, consumer adoption, rollout approval, or production readiness."],
319
+ "nonClaims": ["This requirement does not infer change-record completeness from source changes, reconstruct release-history migration data before the declared support baseline, claim a cumulative release-history planner, make release notes approval authority, or prove provider publication, attestation authenticity, consumer adoption, rollout approval, or production readiness."],
320
320
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
321
321
  "deferral": null,
322
322
  "updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
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.0",
4
+ "version": "0.3.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
@@ -46,6 +46,7 @@
46
46
  "go:test": "go test ./...",
47
47
  "go:vet": "go vet ./...",
48
48
  "npm:version": "node -e \"const {execFileSync}=require('node:child_process'); const expected=require('./package.json').packageManager.split('@').at(-1); const actual=execFileSync('npm',['--version'],{encoding:'utf8'}).trim(); if(actual!==expected){throw new Error('expected npm '+expected+', got '+actual)}\"",
49
+ "npm:registry-evidence": "go run ./internal/tools/npmregistry",
49
50
  "package:artifact": "go run ./internal/tools/packageartifact",
50
51
  "package:artifact:steps": "npm run build && go run ./internal/tools/packagepack && go run ./internal/tools/packageverify && npm run python:package && npm run python:verify && npm run release:manifest",
51
52
  "platform:smoke": "go run ./internal/tools/packagebuild current && ./dist/agentic-proofkit --help >/dev/null && go run ./internal/tools/pythonpackage build-current && go run ./internal/tools/pythonpackage verify-current",