@research-engineering/agentic-proofkit 0.1.160 → 0.2.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
@@ -30,18 +30,19 @@ Publisher and post-publish registry identity are admitted. GitHub Release
30
30
  assets are archive and provenance lookup, not package-manager dependency
31
31
  authority.
32
32
 
33
- Consumers may choose npm or Bun for installation. Both consume the same npm
34
- registry package identity:
33
+ Consumers install the exact npm registry package identity:
35
34
 
36
35
  ```bash
37
- npm install -D @research-engineering/agentic-proofkit
38
- bun add -d @research-engineering/agentic-proofkit
36
+ npm install --save-dev --save-exact @research-engineering/agentic-proofkit
37
+ npm exec --offline -- agentic-proofkit help
39
38
  ```
40
39
 
41
40
  Release evidence still uses npm as the registry-authority CLI because Proofkit
42
41
  records npm-specific package identity, `dist.integrity`, `dist.shasum`, `npm
43
- pack`, and root-only registry install proof. Bun is not used as a substitute
44
- for those release-authority facts.
42
+ pack`, and root-only registry install proof. A bare `agentic-proofkit` command
43
+ is valid only when an installed package binary is already on `PATH`.
44
+ Equivalent exact-tarball Bun execution has not been admitted, so Bun execution
45
+ remains a non-claim.
45
46
 
46
47
  Stable authority channel ids:
47
48
 
package/README.md CHANGED
@@ -24,25 +24,55 @@ packets without copying verifier logic between projects.
24
24
  The canonical registry identity is npm:
25
25
 
26
26
  ```bash
27
- npm install -D @research-engineering/agentic-proofkit
27
+ npm install --save-dev --save-exact @research-engineering/agentic-proofkit
28
28
  ```
29
29
 
30
- Bun consumers may install the same npm registry package with Bun:
30
+ Pre-1.0 releases may contain owner-declared breaking changes, so npm consumers
31
+ must retain the exact saved version instead of replacing it with a version
32
+ range.
33
+
34
+ The canonical local invocation resolves only the already-installed dependency:
31
35
 
32
36
  ```bash
33
- bun add -d @research-engineering/agentic-proofkit
37
+ npm exec --offline -- agentic-proofkit help
34
38
  ```
35
39
 
36
40
  npm remains the release-authority toolchain because release proof records npm
37
41
  registry identity, `dist.integrity`, `dist.shasum`, `npm pack`, and root-only
38
- registry install evidence. Bun is a supported consumer/developer package
39
- manager path, not a replacement for npm release evidence.
42
+ registry install evidence. A bare `agentic-proofkit` command is valid when the
43
+ package manager, script runner, or activated environment has already placed the
44
+ installed binary on `PATH`; it is not the canonical copy-and-paste route.
45
+ Equivalent exact-tarball Bun execution has not been admitted, so this README
46
+ does not claim a Bun execution route.
40
47
 
41
48
  Python consumers use the Python package as a runner wrapper over the same Go
42
49
  CLI, not as a Python SDK. Python projects should still treat CLI/JSON records,
43
50
  exit codes, and package metadata as the public contract.
44
51
 
45
- Published Darwin binary distributions require macOS 12.0 or later.
52
+ <!-- proofkit:platform-python:start -->
53
+ Supported binary targets are macOS 12 or later on arm64 or x64.
54
+ Linux manylinux 2.17 or later is supported on arm64 or x64. Windows is unsupported. The Python
55
+ runner requires Python 3.9 or later and wraps the same Go CLI; it is not a
56
+ Python SDK.
57
+
58
+ After an exact Python package version is available from an admitted channel,
59
+ use one complete package-manager chain:
60
+
61
+ ```bash
62
+ python -m pip install agentic-proofkit==<version>
63
+ python -m agentic_proofkit help
64
+ ```
65
+
66
+ or:
67
+
68
+ ```bash
69
+ uv add --dev agentic-proofkit==<version>
70
+ uv run agentic-proofkit help
71
+ ```
72
+
73
+ These conditional commands do not claim that any current version is available
74
+ on PyPI.
75
+ <!-- proofkit:platform-python:end -->
46
76
 
47
77
  ## Project Boundary
48
78
 
@@ -148,10 +178,10 @@ make generated invariants authoritative by itself.
148
178
  Use the CLI help route before reading source:
149
179
 
150
180
  ```bash
151
- agentic-proofkit help
152
- agentic-proofkit init
153
- agentic-proofkit help repo-profile-admission
154
- agentic-proofkit repo-profile-admission --help
181
+ npm exec --offline -- agentic-proofkit help
182
+ npm exec --offline -- agentic-proofkit init
183
+ npm exec --offline -- agentic-proofkit help repo-profile-admission
184
+ npm exec --offline -- agentic-proofkit repo-profile-admission --help
155
185
  ```
156
186
 
157
187
  Command-specific help is derived from the private command descriptor table and
@@ -175,8 +205,60 @@ value with lower transport overhead by placing the process option before the
175
205
  command:
176
206
 
177
207
  ```bash
178
- agentic-proofkit --json-layout compact requirement-context-slice --input slice-input.json
208
+ npm exec --offline -- agentic-proofkit --json-layout compact requirement-context-slice --input slice-input.json
209
+ ```
210
+
211
+ ### First Valid Input
212
+
213
+ The following marker-bounded record is a complete minimal requirement-source
214
+ input. Its example IDs, paths, owner, invariant, and non-claims are
215
+ caller-replaceable examples, not Proofkit-owned product meaning.
216
+
217
+ <!-- proofkit:first-valid-input:start -->
218
+ ```bash
219
+ npm exec --offline -- agentic-proofkit requirement-source-admission --input -
220
+ ```
221
+
222
+ ```json
223
+ {
224
+ "schemaVersion": 1,
225
+ "sourceId": "example.requirements",
226
+ "specPackagePath": "docs/specs/example",
227
+ "overviewPath": "docs/specs/example/overview.md",
228
+ "requirementsPath": "docs/specs/example/requirements.v1.json",
229
+ "nonClaims": [
230
+ "This example does not approve merge or release."
231
+ ],
232
+ "requirements": [
233
+ {
234
+ "requirementId": "REQ-EXAMPLE-001",
235
+ "ownerId": "example.owner",
236
+ "invariant": "The example owner must replace this sentence with an admitted product invariant.",
237
+ "claimLevel": "blocking",
238
+ "riskClass": "medium",
239
+ "proofBindingRefs": [
240
+ "proofkit/requirement-bindings.json"
241
+ ],
242
+ "nonClaimRefs": [],
243
+ "nonClaims": [
244
+ "This example does not execute or authenticate a native witness."
245
+ ],
246
+ "lifecycle": {
247
+ "state": "active",
248
+ "replacementRequirementIds": [],
249
+ "evidenceRefs": []
250
+ },
251
+ "deferral": null,
252
+ "updatePolicy": {
253
+ "reviewOwnerId": "example.owner",
254
+ "requiresImpactDeclaration": true,
255
+ "requiresProofBindingReview": true
256
+ }
257
+ }
258
+ ]
259
+ }
179
260
  ```
261
+ <!-- proofkit:first-valid-input:end -->
180
262
 
181
263
  Use `secret-scan` only when the caller provides an explicit file inventory with
182
264
  content. It is a dedicated secret-like text detector for admitted inventory
@@ -187,7 +269,7 @@ For TypeScript consumers that want a small wrapper instead of hand-written
187
269
  child-process code:
188
270
 
189
271
  ```bash
190
- agentic-proofkit json-report-cli-adapter-source --language typescript --format json
272
+ npm exec --offline -- agentic-proofkit json-report-cli-adapter-source --language typescript --format json
191
273
  ```
192
274
 
193
275
  The generated adapter remains caller-owned after materialization. It must be
@@ -197,10 +279,7 @@ contract; it does not become a separate public SDK or proof authority.
197
279
  | Need | Owner |
198
280
  |---|---|
199
281
  | Human orientation | This README |
200
- | Coding-agent startup | `AGENTS.md` |
201
282
  | Adoption and release-channel model | `ADOPTION.md` |
202
- | Active work ledger | `BACKLOG.md` |
203
- | Contribution rules | `CONTRIBUTING.md` |
204
283
  | Vulnerability reporting boundary | `SECURITY.md` |
205
284
  | Explicit boundary denials | `NON_CLAIMS.md` |
206
285
  | `LICENSE` | MIT license |
@@ -33,4 +33,9 @@ if [ ! -x "$binary" ]; then
33
33
  exit 1
34
34
  fi
35
35
 
36
+ AGENTIC_PROOFKIT_LAUNCHER_PROFILE=npm_offline
37
+ AGENTIC_PROOFKIT_PYTHON_EXECUTABLE=
38
+ export AGENTIC_PROOFKIT_LAUNCHER_PROFILE
39
+ export AGENTIC_PROOFKIT_PYTHON_EXECUTABLE
40
+
36
41
  exec "$binary" "$@"
@@ -93,7 +93,8 @@ opt-in derived projection over the same report. This map explains the route
93
93
  families without becoming an execution, freshness, or merge decision.
94
94
  The exact route input vocabulary is machine-readable in
95
95
  `proofkit/cli-contract.v2.json` under `agent-route.inputContract`; the Go
96
- admission implementation and shipped CLI contract are parity-tested.
96
+ admission implementation owns nested and semantic behavior, while the shipped
97
+ CLI contract owns the bounded root-shape variants and their ABI digest.
97
98
 
98
99
  Formal rule:
99
100
 
@@ -113,7 +114,7 @@ Semantic context routes are `requirement-context-compose`,
113
114
 
114
115
  | State or goal | Next Proofkit route | Stop or escalation condition |
115
116
  |---|---|---|
116
- | The agent does not know where to start. | `init` or `init --preset fresh|code-baseline|code-audit|legacy|change-set` | Treat output as dry-run route guidance only. Stop before scanning, writing files, or making requirements authoritative. |
117
+ | The agent does not know where to start. | `init`, or `init --preset` with `fresh`, `code-baseline`, `code-audit`, `legacy`, or `change-set` | Treat output as dry-run route guidance only. Stop before scanning, writing files, or making requirements authoritative. |
117
118
  | No admitted spec/profile exists and the caller has explicit capability observations. | `capability-map-admission`; use `trustMode: "code_baseline"` only when maintainers intentionally freeze current code, otherwise use `trustMode: "audit_from_code"`. | Stop before treating seeds as stable requirements. The consumer owns observation extraction, materialization, requirement meaning, and proof adequacy. |
118
119
  | No admitted spec/profile exists and no capability observations exist. | `scaffold-project-structure`, `adoption-workflow-plan`, or `stack-preset` | Stop before writing files; the consumer owns materialization, overwrite policy, and final requirement text. |
119
120
  | Candidate boundary is uncertain. | `adoption-doctor` or `gradual-adoption-guidance --agent-envelope` | Escalate to owner review when the boundary is advisory, ambiguous, or missing native witnesses. |
@@ -42,10 +42,11 @@ Go source
42
42
  -> GitHub Release assets with checksums and SBOM for provenance lookup
43
43
  ```
44
44
 
45
- The committed `release/change-record.v1.json` owns the reviewed, version-bound
46
- declaration of the public-contract delta, migration decision, platform
47
- requirements, known limitations, and rollback strategy. It does not infer
48
- change completeness from the source diff. The repository-owned
45
+ In a source checkout, the committed `release/change-record.v2.json` owns the
46
+ reviewed, version-bound declaration of the public-contract delta, migration
47
+ decision, platform requirements, known limitations, and rollback strategy. It
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
50
  `release:manifest` tool admits that record and creates `release-manifest.json`,
50
51
  `checksums.sha256`, `metadata-checksums.sha256`, `sbom-subjects.sha256`,
51
52
  release notes, and deterministic SBOM candidate evidence from explicit package,
@@ -81,9 +82,10 @@ Before publishing a version:
81
82
 
82
83
  1. The source tree is clean.
83
84
  2. `package.json` contains the exact new version.
84
- 3. `release/change-record.v1.json` contains the same version and explicitly
85
- classifies breaking changes, additions, migration, platform requirements,
86
- known limitations, and rollback.
85
+ 3. In the source checkout, `release/change-record.v2.json` contains the same
86
+ version, names the exact previous version and compatible or breaking change
87
+ class, and explicitly classifies breaking changes, additions, migration,
88
+ platform requirements, known limitations, and rollback.
87
89
  4. `package.json` repository, license, bin, exports, files, and publishConfig
88
90
  match the intended public package contract.
89
91
  5. The npm account has verified email and write-protective 2FA, or the package
@@ -211,9 +213,9 @@ The evidence must distinguish:
211
213
  These evidence classes are not interchangeable.
212
214
 
213
215
  Historical GitHub Releases are immutable provider state. If an older release
214
- metadata record names an asset that is absent from the provider release and the
215
- provider rejects exact backfill, the repository records that as a historical
216
- archive-evidence exception instead of mutating the release model around it.
216
+ metadata record names an asset that is absent from the provider release, the
217
+ repository records that as a historical archive-evidence exception. It does
218
+ not attempt backfill regardless of whether the provider would permit mutation.
217
219
  Future releases must prevent recurrence by verifying the expected public asset
218
220
  set, byte-for-byte Release asset content, `release-notes.md` presence, release
219
221
  manifest and metadata checksum closure, and retained workflow evidence checksum
@@ -41,7 +41,8 @@ approval, rollout approval, and production decisions.
41
41
  - `REQ-PROOFKIT-RETIRE-008`: adoption doctor reports classify caller-provided
42
42
  imperfect-repository migration gaps and non-passing child reports into
43
43
  advisory, failed, or blocked states and emit bounded owner-specific guidance
44
- without scanning repositories or owning semantic boundary decisions.
44
+ without scanning repositories or owning semantic boundary decisions;
45
+ unresolved external prerequisites remain blocked in every adoption mode.
45
46
  - `REQ-PROOFKIT-RETIRE-009`: workspace manifest fact projection turns explicit
46
47
  caller-owned manifest records into registry-compatible workspace facts and
47
48
  planning inputs without reading manifests from disk or owning package-manager
@@ -197,7 +197,7 @@
197
197
  {
198
198
  "requirementId": "REQ-PROOFKIT-RETIRE-008",
199
199
  "ownerId": "proofkit.consumer-infra-retirement",
200
- "invariant": "Adoption doctor reports classify caller-provided imperfect-repository migration gaps, non-passing child reports, and stale current authority vocabulary facts into advisory, failed, or blocked states, and emit bounded owner-specific agent guidance without scanning repositories or owning semantic boundary decisions.",
200
+ "invariant": "Adoption doctor reports classify caller-provided imperfect-repository migration gaps, non-passing child reports, and stale current authority vocabulary facts into advisory, failed, or blocked states, and emit bounded owner-specific agent guidance without scanning repositories or owning semantic boundary decisions; every unresolved external prerequisite remains blocked in every adoption mode, while mode policy can relax only admitted advisory gaps.",
201
201
  "claimLevel": "blocking",
202
202
  "riskClass": "high",
203
203
  "proofBindingRefs": [
@@ -9,34 +9,63 @@ denial, and package artifact behavior only.
9
9
  - `REQ-PROOFKIT-PACKAGE-001`: the package artifact set exposes the supported
10
10
  CLI through one root package with embedded platform binaries while denying
11
11
  root imports, source imports, generated JavaScript imports, and deep internal
12
- package paths as public contract.
12
+ package paths as public contract. Its closed machine-field inventory, bounded
13
+ Markdown destination grammar, README owner table, and exact README
14
+ command-navigation statement keep admitted routes closed over shipped entries
15
+ or explicit source-checkout evidence classes without claiming a complete
16
+ Markdown parser.
13
17
  - `REQ-PROOFKIT-PACKAGE-002`: the CLI builds deterministic reports, plans,
14
18
  generated source artifacts, and policy-admission results from explicit
15
19
  caller-owned JSON, declared no-input command parameters, or declared explicit
16
- scanner scope classes. Explicit scanners consume only caller-named bounded
17
- canonical files under documented fail-closed grammars rather than guessing
18
- layouts or silently accepting unsupported syntax; no command executes native
19
- witnesses, scans implicit repository state, decides proof freshness, or accepts
20
- broad caller-supplied phrase suppressors that can hide readiness overclaims.
20
+ scanner scope classes. One immutable explicit launcher profile renders the
21
+ closed display-command and structured-argv inventory across help, preset,
22
+ bootstrap, project, route, workflow, and coverage surfaces without rewriting
23
+ caller commands or autodetecting a runner. Python executable admission
24
+ rejects secret-like, Unicode control, and Unicode format content without
25
+ disclosing it; the authored
26
+ CLI contract closes required input and JSON output root-shape variants,
27
+ exact successful-output selectors, native source sets, and requirement
28
+ scenarios, rejects repeated or mixed pilot selectors rather than applying
29
+ last-write-wins routing, then generates private help and preset projections
30
+ without claiming nested shape or type parity.
31
+ Explicit scanners consume only caller-named bounded canonical files under
32
+ documented fail-closed grammars, pin each referenced package sub-root before
33
+ reading its manifest and sources, bind every alias of one canonical source
34
+ to its first immutable identity, digest, and parsed result, and reject later
35
+ alias drift rather than guessing layouts or silently accepting unsupported
36
+ syntax. Explicit loopback browser opening accepts only the exact root URL and
37
+ one fixed platform launcher argv; no command executes native witnesses,
38
+ scans implicit repository state, decides proof freshness, or accepts literal or
39
+ strict-character-reference-encoded broad caller-supplied phrase suppressors
40
+ that can hide readiness overclaims.
21
41
  - `REQ-PROOFKIT-PACKAGE-003`: the root package remains installable and
22
- executable by an outside consumer on the current native platform without
23
- claiming registry publication.
42
+ executable by an outside consumer through the exact offline onboarding trace
43
+ on the current native platform; every generated preset command retains the
44
+ offline npm resolver and one exact emitted continuation is re-executed
45
+ without claiming registry publication.
24
46
  - `REQ-PROOFKIT-PACKAGE-004`: CI package-gate receipts used as merge evidence
25
47
  are admitted through a declared producer policy and proof-receipt shape
26
- validator instead of current-build output alone.
48
+ validator instead of current-build output alone, and each fixed subprocess
49
+ verdict rejects process, JSON, or non-passed-state failure independently.
27
50
  - `REQ-PROOFKIT-PACKAGE-005`: tracked source hygiene covers each admitted text
28
- language in staged blobs and the current worktree; Go formatting, static
29
- analysis, test, package, and vulnerability gates remain the native
30
- merge-critical quality floor and explicitly provision every runtime required
31
- by a merge-critical oracle.
51
+ language in staged blobs and the current worktree, including every extension
52
+ currently present in the tracked authored browser assets, matches prohibited
53
+ organization identifiers only at identifier boundaries so content digests
54
+ cannot create false positives, and retains Go formatting, static analysis,
55
+ test, package, and vulnerability gates as the native merge-critical quality
56
+ floor with every required oracle runtime explicitly provisioned.
32
57
  - `REQ-PROOFKIT-PACKAGE-006`: Python/uv distribution is a platform wheel
33
58
  wrapper over the same Go CLI, with wheel-safe package metadata, wheel tags,
34
59
  embedded binary identity, local install smoke proof, POSIX exec
35
- process-identity and signal preservation, and explicit non-claims until PyPI
36
- publication.
60
+ process-identity and signal preservation, exact generated display and argv
61
+ routes through the active absolute interpreter, direct execution of the
62
+ root/family/leaf help chain and emitted agent-route argv with npm absent from
63
+ `PATH`, and an owner-checked README platform projection with explicit
64
+ non-claims until PyPI publication.
37
65
  - `REQ-PROOFKIT-PACKAGE-007`: package-public Markdown records release-channel
38
- state only and must not embed exact per-version provider facts that are owned
39
- by immutable registry, release, and manifest artifacts.
66
+ state only, excludes source-checkout contributor routes, closes admitted
67
+ package references, and must not embed exact per-version provider facts that
68
+ are owned by immutable registry, release, and manifest artifacts.
40
69
 
41
70
  ## Non-Claims
42
71
 
@@ -8,7 +8,7 @@
8
8
  {
9
9
  "requirementId": "REQ-PROOFKIT-PACKAGE-001",
10
10
  "ownerId": "proofkit.package-boundary",
11
- "invariant": "The package artifact set exposes the supported CLI through one root package with embedded platform binaries while denying root imports, source imports, generated JavaScript imports, and deep internal package paths as public contract.",
11
+ "invariant": "The package artifact set exposes the supported CLI through one root package with embedded platform binaries while denying root imports, source imports, generated JavaScript imports, and deep internal package paths as public contract; every exact forbidden root name and suffix is exercised through complete root-package verification, the contract-map decision table retains exactly three cells per row, and each reference admitted through the closed machine-field inventory, bounded Markdown destination grammar, README owner table, or exact README command-navigation statement resolves to a shipped entry unless its exact field is explicitly classified as source-checkout evidence.",
12
12
  "claimLevel": "blocking",
13
13
  "riskClass": "high",
14
14
  "proofBindingRefs": [
@@ -18,7 +18,7 @@
18
18
  "NC-PROOFKIT-PACKAGE-001"
19
19
  ],
20
20
  "nonClaims": [
21
- "This requirement does not claim consumer adoption, registry publication, rollout approval, or production readiness."
21
+ "This requirement does not claim a complete Markdown parser, discovery of unclassified code-span paths, consumer adoption, registry publication, rollout approval, or production readiness."
22
22
  ],
23
23
  "lifecycle": {
24
24
  "state": "active",
@@ -35,7 +35,7 @@
35
35
  {
36
36
  "requirementId": "REQ-PROOFKIT-PACKAGE-002",
37
37
  "ownerId": "proofkit.package-boundary",
38
- "invariant": "The CLI builds deterministic reports, plans, generated source artifacts, and policy-admission results from explicit caller-owned JSON, declared no-input command parameters, or declared explicit scanner scope classes; explicit scanners consume only caller-named bounded canonical files under documented fail-closed grammars rather than guessing layouts or silently accepting unsupported syntax, and no command executes native witnesses, scans implicit repository state, decides proof freshness, or accepts broad caller-supplied phrase suppressors that can hide readiness overclaims.",
38
+ "invariant": "The CLI builds deterministic reports, plans, generated source artifacts, and policy-admission results from explicit caller-owned JSON, declared no-input command parameters, or declared explicit scanner scope classes; one immutable launcher-profile value renders every Proofkit-owned display command and structured argv field in the closed generated-command inventory across root, family, and leaf help, stack preset, bootstrap, project structure, agent route, adoption workflow, and requirement coverage surfaces while preserving caller-owned command bytes; launcher admission accepts only path, offline npm, or absolute-interpreter Python-module routes, rejects Python executable values containing report-visible secret-like, Unicode control, or Unicode format content without disclosing rejected values, and performs no ambient runner autodetection; the authored CLI contract closes every required-input and JSON-output root-shape variant declaration, rejects repeated or mixed pilot selectors instead of applying last-write-wins routing, binds each root-distinct output selector to its exact successful-output test, native source-path set, and requirement scenario, and generates private help and stack-preset projections without replacing native admission; explicit scanners consume only caller-named bounded canonical files under documented fail-closed grammars, pin each referenced package sub-root before reading its manifest and sources, bind every lexical alias of one canonical source route to the immutable identity, digest, and parsed result of its first admission, and reject later alias drift rather than guessing layouts or silently accepting unsupported syntax; explicit loopback browser opening accepts only the exact root URL and dispatches one fixed platform launcher argv; no command executes native witnesses, scans implicit repository state, decides proof freshness, or accepts literal or strict-character-reference-encoded broad caller-supplied phrase suppressors that can hide readiness overclaims.",
39
39
  "claimLevel": "blocking",
40
40
  "riskClass": "high",
41
41
  "proofBindingRefs": [
@@ -45,7 +45,7 @@
45
45
  "NC-PROOFKIT-PACKAGE-002"
46
46
  ],
47
47
  "nonClaims": [
48
- "This requirement does not claim native witness execution, producer authentication, proof freshness, or merge approval."
48
+ "This requirement does not claim nested CLI field shape, scalar type, collection cardinality, nullability, a complete Markdown parser, native witness execution, installation of source-checkout witness files, runtime JSON Schema validation, producer authentication, proof freshness, or merge approval."
49
49
  ],
50
50
  "lifecycle": {
51
51
  "state": "active",
@@ -62,7 +62,7 @@
62
62
  {
63
63
  "requirementId": "REQ-PROOFKIT-PACKAGE-003",
64
64
  "ownerId": "proofkit.package-boundary",
65
- "invariant": "The root package remains installable and executable by an outside consumer on the current native platform without claiming registry publication.",
65
+ "invariant": "The exact local root-package tarball remains installable and executable by an outside consumer on the current native platform through npm exec --offline, with a continuous root-help to family to stack-preset to every exact generated preset continuation and first-valid-input onboarding trace, including successful re-execution of one emitted self-continuation without network fallback, without claiming registry publication.",
66
66
  "claimLevel": "blocking",
67
67
  "riskClass": "medium",
68
68
  "proofBindingRefs": [
@@ -89,7 +89,7 @@
89
89
  {
90
90
  "requirementId": "REQ-PROOFKIT-PACKAGE-004",
91
91
  "ownerId": "proofkit.package-boundary",
92
- "invariant": "CI package-gate receipts used as merge evidence are admitted through a declared producer policy and proof-receipt shape validator instead of current-build output alone.",
92
+ "invariant": "CI package-gate receipts used as merge evidence are admitted through a declared producer policy and proof-receipt shape validator instead of current-build output alone, and every fixed Proofkit subprocess verdict independently rejects process failure, invalid JSON, and any non-passed state.",
93
93
  "claimLevel": "blocking",
94
94
  "riskClass": "high",
95
95
  "proofBindingRefs": [
@@ -116,7 +116,7 @@
116
116
  {
117
117
  "requirementId": "REQ-PROOFKIT-PACKAGE-005",
118
118
  "ownerId": "proofkit.package-boundary",
119
- "invariant": "Tracked source hygiene covers every admitted project text language in both staged blobs and the current worktree, while Go formatting, static analysis, vet, test, package artifact, and vulnerability gates remain the native merge-critical quality floor and explicitly provision every runtime required by a merge-critical oracle.",
119
+ "invariant": "Tracked source hygiene covers every admitted project text language in both staged blobs and the current worktree, matches prohibited organization identifiers only at identifier boundaries so content digests cannot create false positives, while Go formatting, static analysis, vet, test, package artifact, and vulnerability gates remain the native merge-critical quality floor and explicitly provision every runtime required by a merge-critical oracle.",
120
120
  "claimLevel": "blocking",
121
121
  "riskClass": "high",
122
122
  "proofBindingRefs": [
@@ -143,7 +143,7 @@
143
143
  {
144
144
  "requirementId": "REQ-PROOFKIT-PACKAGE-006",
145
145
  "ownerId": "proofkit.package-boundary",
146
- "invariant": "Python/uv distribution is a platform wheel wrapper over the same Go CLI, with wheel-safe package metadata, wheel tags, embedded binary identity, local install smoke proof, POSIX exec process-identity and signal preservation, and explicit non-claims until PyPI publication.",
146
+ "invariant": "Python/uv distribution is a platform wheel wrapper over the same Go CLI, with wheel-safe package metadata, wheel tags, embedded binary identity, exact wheel-set version, uniqueness, presence, and SHA closure, local install smoke proof, POSIX exec process-identity and signal preservation, generated display and argv routes bound to the absolute active interpreter plus -m agentic_proofkit, successful direct-argv re-execution of an exact emitted self-continuation, the complete root-help to family-help to leaf-help chain, and an exact emitted agent-route argv with npm absent from PATH, and a marker-bounded README projection of the owned Python and platform matrix with explicit non-claims until PyPI publication.",
147
147
  "claimLevel": "blocking",
148
148
  "riskClass": "medium",
149
149
  "proofBindingRefs": [
@@ -170,7 +170,7 @@
170
170
  {
171
171
  "requirementId": "REQ-PROOFKIT-PACKAGE-007",
172
172
  "ownerId": "proofkit.package-boundary",
173
- "invariant": "Package-public Markdown records release-channel completion state only and must not embed exact package versions, source refs, provider run URLs, registry tarball URLs, integrity strings, shasums, or other per-version release facts that are owned by immutable registry records, GitHub Release artifacts, and generated release manifests.",
173
+ "invariant": "Package-public Markdown records release-channel completion state only, excludes contributor-only governance and backlog routes from the npm artifact, closes Markdown and admitted machine references over shipped entries with explicit source-checkout evidence exceptions, and must not embed exact package versions, source refs, provider run URLs, registry tarball URLs, integrity strings, shasums, or other per-version release facts that are owned by immutable registry records, GitHub Release artifacts, and generated release manifests.",
174
174
  "claimLevel": "blocking",
175
175
  "riskClass": "medium",
176
176
  "proofBindingRefs": [
@@ -13,7 +13,9 @@ execution receipts, and merge policy.
13
13
 
14
14
  - `REQ-PROOFKIT-SPEC-001`: requirement source admission validates structured
15
15
  `REQ-*` records and source-package shape without owning requirement meaning
16
- or scanning overview prose as authority.
16
+ or scanning overview prose as authority; one shipped, marker-bounded example
17
+ is parsed as bounded expansion-free literal shell words and executed through
18
+ the installed current product as a first valid input.
17
19
  - `REQ-PROOFKIT-SPEC-002`: requirement proof binding reports validate
18
20
  caller-owned requirement-to-witness mappings, require compact scenarios to be
19
21
  admitted `surface_id::stable_anchor` identities, require compact witness
@@ -58,9 +60,11 @@ execution receipts, and merge policy.
58
60
  reading sources, rendering views, or owning requirement/proof semantics.
59
61
  - `REQ-PROOFKIT-SPEC-009`: requirement spec tree views render admitted
60
62
  caller-owned hierarchy through shared safe browser document fragments,
61
- deterministic CLI JSON, Markdown, HTML, explicit output paths, and loopback
62
- browser serving without accepting caller-owned raw HTML or making rendered
63
- output authoritative.
63
+ deterministic CLI JSON, Markdown, HTML, repository-confined same-parent
64
+ atomic output replacement after final destination-parent plus
65
+ temporary-object identity, mode, and content admission, and loopback browser
66
+ serving with one exact supported-view vocabulary without accepting
67
+ caller-owned raw HTML or making rendered output authoritative.
64
68
  - `REQ-PROOFKIT-SPEC-010`: requirement impact input composition converts
65
69
  caller-owned base/current requirement sources, single-current-binding compact
66
70
  proof contracts, changed-path facts, generated-artifact policy, local
@@ -69,8 +73,11 @@ execution receipts, and merge policy.
69
73
  impact evaluator.
70
74
  - `REQ-PROOFKIT-SPEC-011`: adoption contract envelope admission validates a
71
75
  complete caller-owned aggregate adoption envelope, selects one child route
72
- through orthogonal CLI flags, and delegates to existing child command
73
- contracts without becoming a second adoption readiness policy.
76
+ through orthogonal CLI flags, rejects repeated single-value mode or pilot
77
+ selectors and an explicitly empty pilot value, binds its union output to the
78
+ exact successful public-CLI root witness and native owner, and delegates to
79
+ existing child command contracts without becoming a second adoption readiness
80
+ policy.
74
81
  - `REQ-PROOFKIT-SPEC-012`: requirement authoring plans package caller-provided
75
82
  design, implementation, PR, code, test, and clarification facts into
76
83
  candidate-only requirement updates, delegate structural checks to requirement
@@ -94,27 +101,32 @@ execution receipts, and merge policy.
94
101
  and emits only bounded candidate requirements, bindings, or owner guidance.
95
102
  - `REQ-PROOFKIT-SPEC-018`: an authored command-family catalog covers every
96
103
  public CLI command exactly once, deterministically generates the private
97
- runtime navigation projection, and adds opt-in family help while preserving
98
- existing help invocation forms, process channels, no-input behavior, and leaf
99
- dispatch; descriptor and help truth remains owned by `REQ-PROOFKIT-QUALITY-004`.
104
+ runtime navigation projection, adds token-bounded root discovery, and projects
105
+ exact stack-preset IDs into help and diagnostics while preserving existing
106
+ help invocation forms, process channels, no-input behavior, and leaf dispatch;
107
+ descriptor and help truth remains owned by `REQ-PROOFKIT-QUALITY-004`.
100
108
  - `REQ-PROOFKIT-SPEC-019`: explicit catalogs compose content-bound semantic
101
- context snapshots through existing source, tree, proof, and coverage owners
102
- without ambient repository discovery.
109
+ schema-v2 context snapshots with exact expected-digest coverage through
110
+ existing source, tree, proof, and coverage owners, with strict v1 adaptation
111
+ and without ambient repository discovery.
103
112
  - `REQ-PROOFKIT-SPEC-020`: bounded context queries select parent-before-child,
104
113
  role-aware, reference-closed semantic subsets by stable identity and report
105
114
  each active bound without treating bounded absence as source absence.
106
115
  - `REQ-PROOFKIT-SPEC-021`: the loopback workspace progressively presents
107
116
  immutable context, semantic diff, traceability trust states, authority
108
- boundaries, and non-claims, then emits a bounded source-bound question packet
109
- only after explicit user submission.
117
+ boundaries, one exact loopback root URL through one fixed platform launcher
118
+ argv, visible loading and sanitized terminal failure states through native
119
+ document semantics, and non-claims, then emits a bounded source-bound question
120
+ packet from a visibly labelled region only after explicit user submission.
110
121
  - `REQ-PROOFKIT-SPEC-022`: semantic diff compares admitted requirement fields
111
- by owner-declared scalar, set, map, and lifecycle semantics, covers entity
112
- additions and removals, and remains closed under output re-admission.
122
+ by owner-declared scalar, set, map, and lifecycle semantics through schema-v2
123
+ records and strict v1 adapters, covers entity additions and removals, and
124
+ remains closed under output re-admission.
113
125
  - `REQ-PROOFKIT-SPEC-023`: traceability graph input schema v2 preserves
114
126
  specification, proof, code traceability, and native execution as distinct
115
- evidence planes and accepts code topology only as explicit caller-owned input
116
- with source-digest, parent-edge, abstraction-order, and pre-materialization
117
- budget closure.
127
+ evidence planes, consumes the normalized v1/v2 context boundary, and accepts
128
+ code topology only as explicit caller-owned input with source-digest,
129
+ parent-edge, abstraction-order, and pre-materialization budget closure.
118
130
 
119
131
  ## Non-Claims
120
132