@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 +7 -6
- package/README.md +94 -15
- package/dist/agentic-proofkit +5 -0
- package/dist/platform/darwin-arm64/agentic-proofkit +0 -0
- package/dist/platform/darwin-x64/agentic-proofkit +0 -0
- package/dist/platform/linux-arm64/agentic-proofkit +0 -0
- package/dist/platform/linux-x64/agentic-proofkit +0 -0
- package/docs/proofkit-contract-map.md +3 -2
- package/docs/release-process.md +12 -10
- package/docs/specs/proofkit-consumer-infra-retirement/overview.md +2 -1
- package/docs/specs/proofkit-consumer-infra-retirement/requirements.v1.json +1 -1
- package/docs/specs/proofkit-package-boundary/overview.md +46 -17
- package/docs/specs/proofkit-package-boundary/requirements.v1.json +9 -9
- package/docs/specs/proofkit-spec-proof-core/overview.md +30 -18
- package/docs/specs/proofkit-spec-proof-core/requirements.v1.json +13 -13
- package/docs/specs/proofkit-supply-chain-quality/overview.md +93 -29
- package/docs/specs/proofkit-supply-chain-quality/requirements.v1.json +28 -15
- package/package.json +7 -8
- package/proofkit/cli-contract.v2.json +12701 -91
- package/proofkit/receipt-producer-policy.json +1 -1
- package/proofkit/requirement-bindings.json +957 -17
- package/proofkit/witness-plan.json +68 -2
- package/AGENTS.md +0 -160
- package/CONTRIBUTING.md +0 -81
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
|
|
34
|
-
registry package identity:
|
|
33
|
+
Consumers install the exact npm registry package identity:
|
|
35
34
|
|
|
36
35
|
```bash
|
|
37
|
-
npm install -
|
|
38
|
-
|
|
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.
|
|
44
|
-
|
|
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 -
|
|
27
|
+
npm install --save-dev --save-exact @research-engineering/agentic-proofkit
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
|
|
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
|
-
|
|
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.
|
|
39
|
-
manager
|
|
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
|
-
|
|
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 |
|
package/dist/agentic-proofkit
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
|
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
|
|
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. |
|
package/docs/release-process.md
CHANGED
|
@@ -42,10 +42,11 @@ Go source
|
|
|
42
42
|
-> GitHub Release assets with checksums and SBOM for provenance lookup
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
declaration of the public-contract delta, migration
|
|
47
|
-
requirements, known limitations, and rollback strategy. It
|
|
48
|
-
|
|
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.
|
|
85
|
-
|
|
86
|
-
|
|
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
|
|
215
|
-
|
|
216
|
-
|
|
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.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
23
|
-
|
|
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
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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,
|
|
36
|
-
|
|
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
|
|
39
|
-
|
|
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
|
|
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
|
|
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,
|
|
62
|
-
|
|
63
|
-
|
|
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,
|
|
73
|
-
|
|
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,
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
102
|
-
|
|
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,
|
|
109
|
-
|
|
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
|
|
112
|
-
|
|
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
|
|
116
|
-
|
|
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
|
|