@research-engineering/agentic-proofkit 0.1.156 → 0.1.158
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/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 +2 -2
- package/docs/specs/proofkit-package-boundary/overview.md +13 -8
- package/docs/specs/proofkit-package-boundary/requirements.v1.json +3 -3
- package/docs/specs/proofkit-spec-proof-core/overview.md +13 -10
- package/docs/specs/proofkit-spec-proof-core/requirements.v1.json +5 -5
- package/docs/specs/proofkit-supply-chain-quality/overview.md +14 -6
- package/docs/specs/proofkit-supply-chain-quality/requirements.v1.json +16 -3
- package/package.json +1 -1
- package/proofkit/cli-contract.v1.json +108 -1
- package/proofkit/requirement-bindings.json +201 -3
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -47,7 +47,7 @@ owner boundaries. It is not a second command-family inventory.
|
|
|
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
|
-
| 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, optional `environmentClassPolicies` tuples | structural admission, manifest-to-workspace fact projection, workspace graph projections, TypeScript package public API checks, text policy admission, explicit-inventory secret-like text detection, shard plans | repository freshness, git/file discovery, command policy, package manager truth, provider secret scanning | structural, fact, policy, or planning report |
|
|
50
|
+
| 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
51
|
| 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
52
|
| 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 |
|
|
53
53
|
|
|
@@ -121,7 +121,7 @@ Decision tree:
|
|
|
121
121
|
| 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. |
|
|
122
122
|
| 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. |
|
|
123
123
|
| 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. |
|
|
124
|
-
| 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>` |
|
|
124
|
+
| 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.v1.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. |
|
|
125
125
|
| Receipts are available for planned checks. | `selective-gate-evidence --agent-envelope`; then materialize a caller-owned `obligation_decision_input` from the evidence output plus command routes, currentness, and trust facts; then run `selective-gate-obligation-decision-input`; then materialize the resulting `obligation_decision` input and run `obligation-decision --agent-envelope` | Escalate on missing, stale, invalid, untrusted, blocked, unavailable, or unknown-scope evidence. |
|
|
126
126
|
| Human inspection is needed. | `requirement-source-view`, `requirement-proof-view`, `requirement-coverage-view`, `requirement-spec-tree-view`, or `requirement-browser-server` | `agent-route` emits browser commands as plan-only by default. Use `browserMode: "serve_local_view"` for `--serve` and `openBrowser: true` for `--open`. Rendered HTML and Markdown are presentation only unless the consumer admits a tracked artifact freshness gate. |
|
|
127
127
|
| Temporary external document lifecycle facts, generated views, or rendered views need authority classification. | `document-lifecycle-boundary` | Treat lifecycle records as caller-owned metadata. Temporary design docs and implementation plans are not retained repository authority unless rewritten into deterministic specs, proof bindings, tests, package-public docs, or backlog rows. |
|
|
@@ -13,22 +13,27 @@ denial, and package artifact behavior only.
|
|
|
13
13
|
- `REQ-PROOFKIT-PACKAGE-002`: the CLI builds deterministic reports, plans,
|
|
14
14
|
generated source artifacts, and policy-admission results from explicit
|
|
15
15
|
caller-owned JSON, declared no-input command parameters, or declared explicit
|
|
16
|
-
scanner scope classes
|
|
17
|
-
|
|
18
|
-
|
|
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.
|
|
19
21
|
- `REQ-PROOFKIT-PACKAGE-003`: the root package remains installable and
|
|
20
22
|
executable by an outside consumer on the current native platform without
|
|
21
23
|
claiming registry publication.
|
|
22
24
|
- `REQ-PROOFKIT-PACKAGE-004`: CI package-gate receipts used as merge evidence
|
|
23
25
|
are admitted through a declared producer policy and proof-receipt shape
|
|
24
26
|
validator instead of current-build output alone.
|
|
25
|
-
- `REQ-PROOFKIT-PACKAGE-005`:
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
- `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.
|
|
28
32
|
- `REQ-PROOFKIT-PACKAGE-006`: Python/uv distribution is a platform wheel
|
|
29
33
|
wrapper over the same Go CLI, with wheel-safe package metadata, wheel tags,
|
|
30
|
-
embedded binary identity, local install smoke proof,
|
|
31
|
-
until PyPI
|
|
34
|
+
embedded binary identity, local install smoke proof, POSIX exec
|
|
35
|
+
process-identity and signal preservation, and explicit non-claims until PyPI
|
|
36
|
+
publication.
|
|
32
37
|
- `REQ-PROOFKIT-PACKAGE-007`: package-public Markdown records release-channel
|
|
33
38
|
state only and must not embed exact per-version provider facts that are owned
|
|
34
39
|
by immutable registry, release, and manifest artifacts.
|
|
@@ -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
|
|
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.",
|
|
39
39
|
"claimLevel": "blocking",
|
|
40
40
|
"riskClass": "high",
|
|
41
41
|
"proofBindingRefs": [
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
{
|
|
117
117
|
"requirementId": "REQ-PROOFKIT-PACKAGE-005",
|
|
118
118
|
"ownerId": "proofkit.package-boundary",
|
|
119
|
-
"invariant": "
|
|
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.",
|
|
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, 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, local install smoke proof, POSIX exec process-identity and signal preservation, and explicit non-claims until PyPI publication.",
|
|
147
147
|
"claimLevel": "blocking",
|
|
148
148
|
"riskClass": "medium",
|
|
149
149
|
"proofBindingRefs": [
|
|
@@ -25,16 +25,18 @@ execution receipts, and merge policy.
|
|
|
25
25
|
- `REQ-PROOFKIT-SPEC-003`: witness planning accepts caller-owned structured
|
|
26
26
|
command metadata, scheduler constraints, environment classes, and
|
|
27
27
|
binding-derived command projections only through admitted witness vocabulary
|
|
28
|
-
and conservative safe argv policy
|
|
29
|
-
|
|
28
|
+
and conservative safe argv policy. Self-hosting bindings and witness plans
|
|
29
|
+
preserve command ids, argv, and environment classes without executing
|
|
30
|
+
commands or selecting repository policy.
|
|
30
31
|
- `REQ-PROOFKIT-SPEC-004`: selective planning and selective evidence reports
|
|
31
|
-
keep changed-path facts,
|
|
32
|
-
producer-admission state, and obligation
|
|
33
|
-
approval consumer-owned, and fail closed for
|
|
34
|
-
inputs.
|
|
32
|
+
keep canonical changed-path facts, resolvable agent references, planned
|
|
33
|
+
commands, receipts, evidence class, producer-admission state, and obligation
|
|
34
|
+
candidates explicit, keep merge approval consumer-owned, and fail closed for
|
|
35
|
+
unknown or unmatched proof inputs.
|
|
35
36
|
- `REQ-PROOFKIT-SPEC-005`: rendered proof views and agent envelopes remain
|
|
36
|
-
bounded, derived presentations over structured source
|
|
37
|
-
canonical proof or
|
|
37
|
+
bounded, reference-closed derived presentations over structured source,
|
|
38
|
+
count each semantic omission once, and never become canonical proof or
|
|
39
|
+
requirement authority.
|
|
38
40
|
- `REQ-PROOFKIT-SPEC-006`: test evidence inventory, explicit test-discovery
|
|
39
41
|
draft projections, proof-binding-derived inventory projections, normalized
|
|
40
42
|
inventory projections, coverage-view input composition, and requirement
|
|
@@ -92,8 +94,9 @@ execution receipts, and merge policy.
|
|
|
92
94
|
and emits only bounded candidate requirements, bindings, or owner guidance.
|
|
93
95
|
- `REQ-PROOFKIT-SPEC-018`: an authored command-family catalog covers every
|
|
94
96
|
public CLI command exactly once, deterministically generates the private
|
|
95
|
-
runtime navigation projection, and adds opt-in family help
|
|
96
|
-
|
|
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`.
|
|
97
100
|
|
|
98
101
|
## Non-Claims
|
|
99
102
|
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
{
|
|
63
63
|
"requirementId": "REQ-PROOFKIT-SPEC-003",
|
|
64
64
|
"ownerId": "proofkit.spec-proof-core",
|
|
65
|
-
"invariant": "Witness planning accepts caller-owned structured command metadata, scheduler constraints, environment classes, and binding-derived command projections only through admitted witness vocabulary and conservative safe argv policy, without executing commands or selecting repository policy.",
|
|
65
|
+
"invariant": "Witness planning accepts caller-owned structured command metadata, scheduler constraints, environment classes, and binding-derived command projections only through admitted witness vocabulary and conservative safe argv policy; self-hosting requirement bindings and witness plans preserve the same command ids, argv, and environment classes without executing commands or selecting repository policy.",
|
|
66
66
|
"claimLevel": "blocking",
|
|
67
67
|
"riskClass": "high",
|
|
68
68
|
"proofBindingRefs": [
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
{
|
|
90
90
|
"requirementId": "REQ-PROOFKIT-SPEC-004",
|
|
91
91
|
"ownerId": "proofkit.spec-proof-core",
|
|
92
|
-
"invariant": "Selective planning and selective evidence reports keep changed-path facts, planned commands, receipts, evidence class, producer-admission state, and obligation candidates explicit, keep merge approval consumer-owned, and fail closed for unknown or unmatched proof inputs.",
|
|
92
|
+
"invariant": "Selective planning and selective evidence reports keep canonical changed-path facts, resolvable agent references, planned commands, receipts, evidence class, producer-admission state, and obligation candidates explicit, keep merge approval consumer-owned, and fail closed for unknown or unmatched proof inputs.",
|
|
93
93
|
"claimLevel": "blocking",
|
|
94
94
|
"riskClass": "high",
|
|
95
95
|
"proofBindingRefs": [
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
{
|
|
117
117
|
"requirementId": "REQ-PROOFKIT-SPEC-005",
|
|
118
118
|
"ownerId": "proofkit.spec-proof-core",
|
|
119
|
-
"invariant": "Rendered proof views and agent envelopes remain bounded, derived presentations over structured source and never become canonical proof or requirement authority.",
|
|
119
|
+
"invariant": "Rendered proof views and agent envelopes remain bounded, reference-closed derived presentations over structured source, count each semantic omission once, and never become canonical proof or requirement authority.",
|
|
120
120
|
"claimLevel": "blocking",
|
|
121
121
|
"riskClass": "medium",
|
|
122
122
|
"proofBindingRefs": [
|
|
@@ -467,7 +467,7 @@
|
|
|
467
467
|
{
|
|
468
468
|
"requirementId": "REQ-PROOFKIT-SPEC-018",
|
|
469
469
|
"ownerId": "proofkit.spec-proof-core",
|
|
470
|
-
"invariant": "Command family navigation projects the complete public CLI command inventory from one authored family catalog into a deterministic private runtime projection, preserves
|
|
470
|
+
"invariant": "Command family navigation projects the complete public CLI command inventory from one authored family catalog into a deterministic private runtime projection, preserves root and per-command help invocation forms, stdout and stderr channel discipline, no-input behavior, and leaf dispatch, admits only opt-in family help forms, rejects missing, duplicated, oversized, unsorted, or reserved-operand-colliding families, and does not infer command selection, execute commands through family membership, or create a second command inventory owner.",
|
|
471
471
|
"claimLevel": "blocking",
|
|
472
472
|
"riskClass": "medium",
|
|
473
473
|
"proofBindingRefs": [
|
|
@@ -477,7 +477,7 @@
|
|
|
477
477
|
"NC-PROOFKIT-SPEC-018"
|
|
478
478
|
],
|
|
479
479
|
"nonClaims": [
|
|
480
|
-
"This requirement does not claim command recommendation, command execution through family membership, consumer policy, native witness execution, merge approval, release approval, rollout approval, or production readiness."
|
|
480
|
+
"This requirement does not claim byte-for-byte help text compatibility across owner-approved CLI contract corrections, command recommendation, command execution through family membership, consumer policy, native witness execution, merge approval, release approval, rollout approval, or production readiness."
|
|
481
481
|
],
|
|
482
482
|
"lifecycle": {
|
|
483
483
|
"state": "active",
|
|
@@ -22,7 +22,8 @@ vulnerability absence, or consumer rollout safety by itself.
|
|
|
22
22
|
fuzzing side-effecting CLI or filesystem flows.
|
|
23
23
|
- `REQ-PROOFKIT-QUALITY-004`: public CLI ABI has a small golden corpus and
|
|
24
24
|
canonical ABI hash covering command topology, exit code, stdout/stderr
|
|
25
|
-
channel discipline, JSON parseability, stable public diagnostics,
|
|
25
|
+
channel discipline, JSON parseability, stable public diagnostics, explicit
|
|
26
|
+
output schema evolution for breaking JSON field changes, and
|
|
26
27
|
descriptor/contract/help parity without making private descriptors public API.
|
|
27
28
|
- `REQ-PROOFKIT-QUALITY-005`: CodeQL workflow source is admitted as an
|
|
28
29
|
independent semantic security analysis signal for Go source without replacing
|
|
@@ -45,9 +46,10 @@ vulnerability absence, or consumer rollout safety by itself.
|
|
|
45
46
|
unknown command refs, contract-only commands, or route-only commands. Static
|
|
46
47
|
route metadata and source syntax never become semantic falsifier evidence.
|
|
47
48
|
- `REQ-PROOFKIT-QUALITY-011`: CI separates the OS-independent full
|
|
48
|
-
source/package gate from macOS platform smoke,
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
source/package gate from macOS platform smoke, executes the complete Go
|
|
50
|
+
package set through its owner command, uses explicit hosted runner labels
|
|
51
|
+
instead of floating latest labels, and exposes one fail-closed aggregate gate
|
|
52
|
+
that requires every required leaf check to finish with success.
|
|
51
53
|
- `REQ-PROOFKIT-QUALITY-012`: release and adoption channel identifiers use one
|
|
52
54
|
canonical authority vocabulary that separates durable authority channels from
|
|
53
55
|
display labels, publisher environments, statuses, and candidate evidence.
|
|
@@ -65,8 +67,9 @@ vulnerability absence, or consumer rollout safety by itself.
|
|
|
65
67
|
release closeout.
|
|
66
68
|
- `REQ-PROOFKIT-QUALITY-016`: release platform targets use one private owner
|
|
67
69
|
that projects platform suffixes, Go build targets, npm OS/CPU metadata,
|
|
68
|
-
package tar entries, Python wheel tags, PyPI candidate completeness,
|
|
69
|
-
SBOM binary subjects without
|
|
70
|
+
package tar entries, Python wheel tags, PyPI candidate completeness,
|
|
71
|
+
self-hosting native binary selection, and SBOM binary subjects without
|
|
72
|
+
becoming public API.
|
|
70
73
|
- `REQ-PROOFKIT-QUALITY-017`: report-visible secret-shaped JSON traversal
|
|
71
74
|
uses one private kernel owner for deterministic paths and finding kinds while
|
|
72
75
|
command packages only map findings to their local report policy.
|
|
@@ -81,6 +84,11 @@ vulnerability absence, or consumer rollout safety by itself.
|
|
|
81
84
|
stderr discipline, generated-source hash, owner-source parity, and exact
|
|
82
85
|
explicit-input counts despite an unlisted poison file in the consumer working
|
|
83
86
|
directory.
|
|
87
|
+
- `REQ-PROOFKIT-QUALITY-020`: package artifact execution starts from admitted
|
|
88
|
+
candidate-owned output roots, rejects ambient provider or unowned release
|
|
89
|
+
state before mutation, stays confined to the repository across symlinks,
|
|
90
|
+
binds non-empty generated content to stable source and execution-context
|
|
91
|
+
snapshots, and emits a schema-versioned execution record.
|
|
84
92
|
|
|
85
93
|
## Non-Claims
|
|
86
94
|
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
{
|
|
52
52
|
"requirementId": "REQ-PROOFKIT-QUALITY-004",
|
|
53
53
|
"ownerId": "proofkit.supply-chain-quality",
|
|
54
|
-
"invariant": "Public CLI ABI has a small golden corpus and canonical ABI hash covering command topology, exit code, stdout and stderr channel discipline, JSON parseability, stable public diagnostics, and descriptor/contract/help parity without making private descriptors a public API.",
|
|
54
|
+
"invariant": "Public CLI ABI has a small golden corpus and canonical ABI hash covering command topology, exit code, stdout and stderr channel discipline, JSON parseability, stable public diagnostics, explicit output schema evolution for breaking JSON field changes, and descriptor/contract/help parity without making private descriptors a public API.",
|
|
55
55
|
"claimLevel": "blocking",
|
|
56
56
|
"riskClass": "high",
|
|
57
57
|
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
{
|
|
143
143
|
"requirementId": "REQ-PROOFKIT-QUALITY-011",
|
|
144
144
|
"ownerId": "proofkit.supply-chain-quality",
|
|
145
|
-
"invariant": "CI separates the OS-independent full source/package gate from the platform-specific macOS execution smoke, uses explicit hosted runner labels instead of floating latest labels, and exposes one fail-closed aggregate quality gate that requires every required leaf check to finish with success so skipped, failed, or cancelled leaf jobs cannot satisfy branch-protection evidence.",
|
|
145
|
+
"invariant": "CI separates the OS-independent full source/package gate from the platform-specific macOS execution smoke, executes the complete Go package set through the owner command rather than a partial package list, uses explicit hosted runner labels instead of floating latest labels, and exposes one fail-closed aggregate quality gate that requires every required leaf check to finish with success so skipped, failed, or cancelled leaf jobs cannot satisfy branch-protection evidence.",
|
|
146
146
|
"claimLevel": "blocking",
|
|
147
147
|
"riskClass": "medium",
|
|
148
148
|
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
{
|
|
208
208
|
"requirementId": "REQ-PROOFKIT-QUALITY-016",
|
|
209
209
|
"ownerId": "proofkit.supply-chain-quality",
|
|
210
|
-
"invariant": "Release platform targets have one private owner that projects exact platform suffixes, Go build targets, npm OS/CPU metadata, package tar binary entries, Python wheel tags, PyPI candidate completeness, and SBOM binary subjects without turning the platform matrix into public API.",
|
|
210
|
+
"invariant": "Release platform targets have one private owner that projects exact platform suffixes, Go build targets, npm OS/CPU metadata, package tar binary entries, Python wheel tags, PyPI candidate completeness, self-hosting native binary selection, and SBOM binary subjects without turning the platform matrix into public API.",
|
|
211
211
|
"claimLevel": "blocking",
|
|
212
212
|
"riskClass": "high",
|
|
213
213
|
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
@@ -255,6 +255,19 @@
|
|
|
255
255
|
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
256
256
|
"deferral": null,
|
|
257
257
|
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-020",
|
|
261
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
262
|
+
"invariant": "Package artifact execution rejects ambient provider evidence and unowned release state before mutating candidate outputs, removes only candidate-owned package, wheel, and release outputs through a repository-confined filesystem root without following symlinks outside that root, invalidates prior execution evidence, executes the canonical package pipeline against stable source, environment, and toolchain snapshots, requires a non-empty content-bound artifact snapshot, and emits a schema-versioned execution record.",
|
|
263
|
+
"claimLevel": "blocking",
|
|
264
|
+
"riskClass": "high",
|
|
265
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
266
|
+
"nonClaimRefs": ["NC-PROOFKIT-QUALITY-020"],
|
|
267
|
+
"nonClaims": ["This requirement does not claim producer authentication, hermetic or reproducible builds, registry publication, provider evidence freshness, release approval, rollout approval, production readiness, or exact artifact closure outside downstream package and release validators."],
|
|
268
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
269
|
+
"deferral": null,
|
|
270
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
258
271
|
}
|
|
259
272
|
]
|
|
260
273
|
}
|
package/package.json
CHANGED
|
@@ -249,6 +249,49 @@
|
|
|
249
249
|
"This input contract describes agent-route admission only.",
|
|
250
250
|
"It does not validate referenced file contents, execute commands, read repositories, or approve merge."
|
|
251
251
|
]
|
|
252
|
+
},
|
|
253
|
+
"outputContract": {
|
|
254
|
+
"contractId": "proofkit.agent-route.output.v2",
|
|
255
|
+
"schemaVersion": 2,
|
|
256
|
+
"authority": "deterministic route report derived from admitted agent-route input",
|
|
257
|
+
"requiredFields": [
|
|
258
|
+
"guidanceSlice",
|
|
259
|
+
"reportId",
|
|
260
|
+
"reportKind",
|
|
261
|
+
"schemaVersion",
|
|
262
|
+
"selectedRouteFamily",
|
|
263
|
+
"state"
|
|
264
|
+
],
|
|
265
|
+
"fields": {
|
|
266
|
+
"schemaVersion": {
|
|
267
|
+
"value": 2
|
|
268
|
+
},
|
|
269
|
+
"selectedRouteFamily": {
|
|
270
|
+
"enum": [
|
|
271
|
+
"adoption",
|
|
272
|
+
"migration",
|
|
273
|
+
"release_and_deployment",
|
|
274
|
+
"rendered_views",
|
|
275
|
+
"repository_structure",
|
|
276
|
+
"requirement_proof_binding",
|
|
277
|
+
"requirement_source",
|
|
278
|
+
"selective_evidence",
|
|
279
|
+
"selective_planning",
|
|
280
|
+
"test_inventory_and_coverage",
|
|
281
|
+
"unknown"
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"guidanceSlice": {
|
|
285
|
+
"requiredFields": [
|
|
286
|
+
"routeFamily"
|
|
287
|
+
],
|
|
288
|
+
"routeFamilyRule": "must equal selectedRouteFamily"
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
"changesFromV1": [
|
|
292
|
+
"selectedFamily is replaced by selectedRouteFamily",
|
|
293
|
+
"guidanceSlice.family is replaced by guidanceSlice.routeFamily"
|
|
294
|
+
]
|
|
252
295
|
}
|
|
253
296
|
},
|
|
254
297
|
{
|
|
@@ -1836,7 +1879,71 @@
|
|
|
1836
1879
|
],
|
|
1837
1880
|
"requiredFlags": [
|
|
1838
1881
|
"--repo-root"
|
|
1839
|
-
]
|
|
1882
|
+
],
|
|
1883
|
+
"inputContract": {
|
|
1884
|
+
"contractId": "proofkit.typescript-public-api-surfaces.input.v1",
|
|
1885
|
+
"schemaVersion": 1,
|
|
1886
|
+
"authority": "caller-owned manifest plus explicitly selected filesystem snapshot",
|
|
1887
|
+
"fields": {
|
|
1888
|
+
"schemaVersion": {
|
|
1889
|
+
"required": true,
|
|
1890
|
+
"value": 1
|
|
1891
|
+
},
|
|
1892
|
+
"machineContract": {
|
|
1893
|
+
"required": true,
|
|
1894
|
+
"value": "public_api_surfaces"
|
|
1895
|
+
},
|
|
1896
|
+
"entries": {
|
|
1897
|
+
"required": true,
|
|
1898
|
+
"maxItems": 1024,
|
|
1899
|
+
"item": {
|
|
1900
|
+
"requiredFields": [
|
|
1901
|
+
"exportConditions",
|
|
1902
|
+
"exportKey",
|
|
1903
|
+
"packageManifestPath",
|
|
1904
|
+
"packageName",
|
|
1905
|
+
"runtimeExports",
|
|
1906
|
+
"typeExports"
|
|
1907
|
+
],
|
|
1908
|
+
"optionalFields": [
|
|
1909
|
+
"deniedExportKeys"
|
|
1910
|
+
],
|
|
1911
|
+
"pathAuthority": "packageManifestPath names an explicit repo-relative package.json; every export condition names its explicit repo-relative non-JSX TypeScript sourcePath, and the canonical resolved source target must also have a .ts, .mts, or .cts extension",
|
|
1912
|
+
"setFields": "deniedExportKeys, runtimeExports, and typeExports are sorted unique arrays",
|
|
1913
|
+
"exportConditionsRule": "non-empty and sorted unique by condition"
|
|
1914
|
+
}
|
|
1915
|
+
}
|
|
1916
|
+
},
|
|
1917
|
+
"resourceBudgets": {
|
|
1918
|
+
"maxSourceFileBytes": 8388608,
|
|
1919
|
+
"maxPackageManifestBytes": 262144,
|
|
1920
|
+
"maxAggregateFileReadBytes": 67108864
|
|
1921
|
+
},
|
|
1922
|
+
"sourceGrammar": {
|
|
1923
|
+
"grammarId": "proofkit.typescript-public-api.export-subset.v1",
|
|
1924
|
+
"mode": "fail_closed",
|
|
1925
|
+
"identifierDomain": "direct ASCII identifiers in code; Unicode remains permitted inside comments and literals",
|
|
1926
|
+
"admittedExportForms": [
|
|
1927
|
+
"named runtime re-exports from a string module specifier",
|
|
1928
|
+
"named type re-exports from a string module specifier",
|
|
1929
|
+
"ASCII-named function, class, enum, interface, type, const, let, and var exports"
|
|
1930
|
+
],
|
|
1931
|
+
"rejectedLexicalForms": [
|
|
1932
|
+
"slash tokens outside comments, including division and regular-expression literals",
|
|
1933
|
+
"template interpolation",
|
|
1934
|
+
"escaped or direct non-ASCII code identifiers",
|
|
1935
|
+
"unterminated comments or literals",
|
|
1936
|
+
"unbalanced delimiters",
|
|
1937
|
+
"top-level angle-bracket syntax in variable export declarations"
|
|
1938
|
+
]
|
|
1939
|
+
},
|
|
1940
|
+
"nonClaims": [
|
|
1941
|
+
"The command does not infer conventional package or source layouts.",
|
|
1942
|
+
"The command does not parse JSX or admit TSX source files.",
|
|
1943
|
+
"The command does not parse unrestricted TypeScript; sources outside the documented export grammar fail closed.",
|
|
1944
|
+
"Caller-owned source-to-condition mappings do not prove compiler output provenance, checkout freshness, package-manager truth, merge readiness, or rollout."
|
|
1945
|
+
]
|
|
1946
|
+
}
|
|
1840
1947
|
},
|
|
1841
1948
|
{
|
|
1842
1949
|
"command": "witness-plan",
|
|
@@ -349,7 +349,7 @@
|
|
|
349
349
|
"claimLevel": "blocking",
|
|
350
350
|
"proofState": "witness_backed",
|
|
351
351
|
"nonClaims": [
|
|
352
|
-
"This requirement does not claim repository scanning, semantic boundary correctness, automatic requirement extraction, native witness execution, receipt authenticity, proof freshness, owner approval, merge approval, release approval, rollout approval, or old proof-owner retirement approval."
|
|
352
|
+
"This requirement does not claim repository scanning, text extraction from files, semantic boundary correctness, automatic requirement extraction, native witness execution, receipt authenticity, proof freshness, owner approval, merge approval, release approval, rollout approval, or old proof-owner retirement approval."
|
|
353
353
|
]
|
|
354
354
|
},
|
|
355
355
|
{
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"claimLevel": "blocking",
|
|
480
480
|
"proofState": "witness_backed",
|
|
481
481
|
"nonClaims": [
|
|
482
|
-
"This requirement does not claim provider-run success, Windows support, performance budget enforcement, or release approval."
|
|
482
|
+
"This requirement does not claim provider-run success, branch-protection settings, Windows support, performance budget enforcement, or release approval."
|
|
483
483
|
]
|
|
484
484
|
},
|
|
485
485
|
{
|
|
@@ -562,6 +562,16 @@
|
|
|
562
562
|
"This requirement does not claim registry publication, every command's runtime behavior, execution of non-native platform binaries, provider-side install freshness, consumer dependency admission, release approval, rollout approval, or production readiness."
|
|
563
563
|
]
|
|
564
564
|
},
|
|
565
|
+
{
|
|
566
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-020",
|
|
567
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
568
|
+
"specPath": "docs/specs/proofkit-supply-chain-quality/requirements.v1.json",
|
|
569
|
+
"claimLevel": "blocking",
|
|
570
|
+
"proofState": "witness_backed",
|
|
571
|
+
"nonClaims": [
|
|
572
|
+
"This requirement does not claim producer authentication, hermetic or reproducible builds, registry publication, provider evidence freshness, release approval, rollout approval, production readiness, or exact artifact closure outside downstream package and release validators."
|
|
573
|
+
]
|
|
574
|
+
},
|
|
565
575
|
{
|
|
566
576
|
"requirementId": "REQ-PROOFKIT-SPEC-017",
|
|
567
577
|
"ownerId": "proofkit.spec-proof-core",
|
|
@@ -579,7 +589,7 @@
|
|
|
579
589
|
"claimLevel": "blocking",
|
|
580
590
|
"proofState": "witness_backed",
|
|
581
591
|
"nonClaims": [
|
|
582
|
-
"This requirement does not claim command recommendation, command execution through family membership, consumer policy, native witness execution, merge approval, release approval, rollout approval, or production readiness."
|
|
592
|
+
"This requirement does not claim byte-for-byte help text compatibility across owner-approved CLI contract corrections, command recommendation, command execution through family membership, consumer policy, native witness execution, merge approval, release approval, rollout approval, or production readiness."
|
|
583
593
|
]
|
|
584
594
|
}
|
|
585
595
|
],
|
|
@@ -692,6 +702,32 @@
|
|
|
692
702
|
"local-go"
|
|
693
703
|
]
|
|
694
704
|
},
|
|
705
|
+
{
|
|
706
|
+
"requirementId": "REQ-PROOFKIT-PACKAGE-002",
|
|
707
|
+
"scenarioId": "proofkit.package-boundary.typescript-explicit-scan-topology",
|
|
708
|
+
"witnessId": "proofkit.typescript-public-api.explicit-scan-topology",
|
|
709
|
+
"witnessKind": "contract",
|
|
710
|
+
"witnessPath": "internal/command/publicapi/public_api_test.go",
|
|
711
|
+
"commandIds": [
|
|
712
|
+
"proofkit.go-test"
|
|
713
|
+
],
|
|
714
|
+
"environmentClasses": [
|
|
715
|
+
"local-go"
|
|
716
|
+
]
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
"requirementId": "REQ-PROOFKIT-PACKAGE-002",
|
|
720
|
+
"scenarioId": "proofkit.package-boundary.typescript-fail-closed-source-grammar",
|
|
721
|
+
"witnessId": "proofkit.typescript-public-api.fail-closed-source-grammar",
|
|
722
|
+
"witnessKind": "contract",
|
|
723
|
+
"witnessPath": "internal/command/publicapi/public_api_test.go",
|
|
724
|
+
"commandIds": [
|
|
725
|
+
"proofkit.go-test"
|
|
726
|
+
],
|
|
727
|
+
"environmentClasses": [
|
|
728
|
+
"local-go"
|
|
729
|
+
]
|
|
730
|
+
},
|
|
695
731
|
{
|
|
696
732
|
"requirementId": "REQ-PROOFKIT-PACKAGE-003",
|
|
697
733
|
"scenarioId": "proofkit.package-boundary.outside-consumer-artifact",
|
|
@@ -735,6 +771,32 @@
|
|
|
735
771
|
"local-go"
|
|
736
772
|
]
|
|
737
773
|
},
|
|
774
|
+
{
|
|
775
|
+
"requirementId": "REQ-PROOFKIT-PACKAGE-005",
|
|
776
|
+
"scenarioId": "proofkit.package-boundary.staged-and-worktree-source-hygiene",
|
|
777
|
+
"witnessId": "proofkit.source-hygiene.tracked-language-closure",
|
|
778
|
+
"witnessKind": "contract",
|
|
779
|
+
"witnessPath": "scripts/source_hygiene_test.go",
|
|
780
|
+
"commandIds": [
|
|
781
|
+
"proofkit.go-test"
|
|
782
|
+
],
|
|
783
|
+
"environmentClasses": [
|
|
784
|
+
"local-go"
|
|
785
|
+
]
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"requirementId": "REQ-PROOFKIT-PACKAGE-005",
|
|
789
|
+
"scenarioId": "proofkit.package-boundary.merge-critical-runtime-preconditions",
|
|
790
|
+
"witnessId": "proofkit.ci.merge-critical-runtime-preconditions",
|
|
791
|
+
"witnessKind": "contract",
|
|
792
|
+
"witnessPath": "scripts/workflow_package_gate_oracle_test.go",
|
|
793
|
+
"commandIds": [
|
|
794
|
+
"proofkit.go-test"
|
|
795
|
+
],
|
|
796
|
+
"environmentClasses": [
|
|
797
|
+
"local-go"
|
|
798
|
+
]
|
|
799
|
+
},
|
|
738
800
|
{
|
|
739
801
|
"requirementId": "REQ-PROOFKIT-PACKAGE-006",
|
|
740
802
|
"scenarioId": "proofkit.package-boundary.python-wheel-candidate",
|
|
@@ -749,6 +811,19 @@
|
|
|
749
811
|
"local-python"
|
|
750
812
|
]
|
|
751
813
|
},
|
|
814
|
+
{
|
|
815
|
+
"requirementId": "REQ-PROOFKIT-PACKAGE-006",
|
|
816
|
+
"scenarioId": "proofkit.package-boundary.python-wrapper-posix-lifecycle",
|
|
817
|
+
"witnessId": "proofkit.python-package.posix-exec-lifecycle",
|
|
818
|
+
"witnessKind": "contract",
|
|
819
|
+
"witnessPath": "internal/tools/pythonpackage/exec_lifecycle_test.go",
|
|
820
|
+
"commandIds": [
|
|
821
|
+
"proofkit.go-test"
|
|
822
|
+
],
|
|
823
|
+
"environmentClasses": [
|
|
824
|
+
"local-go"
|
|
825
|
+
]
|
|
826
|
+
},
|
|
752
827
|
{
|
|
753
828
|
"requirementId": "REQ-PROOFKIT-SPEC-001",
|
|
754
829
|
"scenarioId": "proofkit.spec-proof-core.requirement-source-admission",
|
|
@@ -827,6 +902,19 @@
|
|
|
827
902
|
"local-go"
|
|
828
903
|
]
|
|
829
904
|
},
|
|
905
|
+
{
|
|
906
|
+
"requirementId": "REQ-PROOFKIT-SPEC-003",
|
|
907
|
+
"scenarioId": "proofkit.spec-proof-core.self-hosting-witness-command-identity",
|
|
908
|
+
"witnessId": "proofkit.witness-plan.self-hosting-command-identity",
|
|
909
|
+
"witnessKind": "contract",
|
|
910
|
+
"witnessPath": "internal/command/requirementbinding/projections_test.go",
|
|
911
|
+
"commandIds": [
|
|
912
|
+
"proofkit.go-test"
|
|
913
|
+
],
|
|
914
|
+
"environmentClasses": [
|
|
915
|
+
"local-go"
|
|
916
|
+
]
|
|
917
|
+
},
|
|
830
918
|
{
|
|
831
919
|
"requirementId": "REQ-PROOFKIT-SPEC-004",
|
|
832
920
|
"scenarioId": "proofkit.spec-proof-core.selective-planning-and-evidence",
|
|
@@ -840,6 +928,19 @@
|
|
|
840
928
|
"local-go"
|
|
841
929
|
]
|
|
842
930
|
},
|
|
931
|
+
{
|
|
932
|
+
"requirementId": "REQ-PROOFKIT-SPEC-004",
|
|
933
|
+
"scenarioId": "proofkit.spec-proof-core.changed-path-agent-reference-closure",
|
|
934
|
+
"witnessId": "proofkit.changed-path-set.agent-reference-closure",
|
|
935
|
+
"witnessKind": "contract",
|
|
936
|
+
"witnessPath": "internal/command/changedpathset/changedpathset_test.go",
|
|
937
|
+
"commandIds": [
|
|
938
|
+
"proofkit.go-test"
|
|
939
|
+
],
|
|
940
|
+
"environmentClasses": [
|
|
941
|
+
"local-go"
|
|
942
|
+
]
|
|
943
|
+
},
|
|
843
944
|
{
|
|
844
945
|
"requirementId": "REQ-PROOFKIT-SPEC-005",
|
|
845
946
|
"scenarioId": "proofkit.spec-proof-core.rendered-view-and-agent-envelope-non-authority",
|
|
@@ -866,6 +967,19 @@
|
|
|
866
967
|
"local-go"
|
|
867
968
|
]
|
|
868
969
|
},
|
|
970
|
+
{
|
|
971
|
+
"requirementId": "REQ-PROOFKIT-SPEC-005",
|
|
972
|
+
"scenarioId": "proofkit.spec-proof-core.agent-envelope-reference-closure",
|
|
973
|
+
"witnessId": "proofkit.agent-envelope.reference-closure",
|
|
974
|
+
"witnessKind": "contract",
|
|
975
|
+
"witnessPath": "internal/kernel/agentenvelope/agentenvelope_test.go",
|
|
976
|
+
"commandIds": [
|
|
977
|
+
"proofkit.go-test"
|
|
978
|
+
],
|
|
979
|
+
"environmentClasses": [
|
|
980
|
+
"local-go"
|
|
981
|
+
]
|
|
982
|
+
},
|
|
869
983
|
{
|
|
870
984
|
"requirementId": "REQ-PROOFKIT-SPEC-006",
|
|
871
985
|
"scenarioId": "proofkit.spec-proof-core.test-inventory-normalized-output",
|
|
@@ -1465,6 +1579,19 @@
|
|
|
1465
1579
|
"local-go"
|
|
1466
1580
|
]
|
|
1467
1581
|
},
|
|
1582
|
+
{
|
|
1583
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-004",
|
|
1584
|
+
"scenarioId": "proofkit.supply-chain-quality.cli-output-schema-evolution",
|
|
1585
|
+
"witnessId": "proofkit.cli-contract.output-schema-evolution",
|
|
1586
|
+
"witnessKind": "contract",
|
|
1587
|
+
"witnessPath": "internal/app/app_test.go",
|
|
1588
|
+
"commandIds": [
|
|
1589
|
+
"proofkit.go-test"
|
|
1590
|
+
],
|
|
1591
|
+
"environmentClasses": [
|
|
1592
|
+
"local-go"
|
|
1593
|
+
]
|
|
1594
|
+
},
|
|
1468
1595
|
{
|
|
1469
1596
|
"requirementId": "REQ-PROOFKIT-QUALITY-005",
|
|
1470
1597
|
"scenarioId": "proofkit.supply-chain-quality.codeql-workflow",
|
|
@@ -1523,6 +1650,21 @@
|
|
|
1523
1650
|
"local-python"
|
|
1524
1651
|
]
|
|
1525
1652
|
},
|
|
1653
|
+
{
|
|
1654
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-011",
|
|
1655
|
+
"scenarioId": "proofkit.supply-chain-quality.ci-complete-go-package-set",
|
|
1656
|
+
"witnessId": "proofkit.ci.complete-go-package-set-oracle",
|
|
1657
|
+
"witnessKind": "contract",
|
|
1658
|
+
"witnessPath": "scripts/validate-self-hosting-receipts_test.go",
|
|
1659
|
+
"commandIds": [
|
|
1660
|
+
"proofkit.go-test",
|
|
1661
|
+
"proofkit.package-gate"
|
|
1662
|
+
],
|
|
1663
|
+
"environmentClasses": [
|
|
1664
|
+
"local-go",
|
|
1665
|
+
"local-go-python"
|
|
1666
|
+
]
|
|
1667
|
+
},
|
|
1526
1668
|
{
|
|
1527
1669
|
"requirementId": "REQ-PROOFKIT-QUALITY-012",
|
|
1528
1670
|
"scenarioId": "proofkit.supply-chain-quality.release-channel-authority-vocabulary",
|
|
@@ -1575,6 +1717,36 @@
|
|
|
1575
1717
|
"local-go"
|
|
1576
1718
|
]
|
|
1577
1719
|
},
|
|
1720
|
+
{
|
|
1721
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-020",
|
|
1722
|
+
"scenarioId": "proofkit.supply-chain-quality.package-artifact-clean-materialization",
|
|
1723
|
+
"witnessId": "proofkit.package-artifact.clean-materialization-falsifier",
|
|
1724
|
+
"witnessKind": "contract",
|
|
1725
|
+
"witnessPath": "internal/tools/packageartifact/main_test.go",
|
|
1726
|
+
"commandIds": [
|
|
1727
|
+
"proofkit.go-test",
|
|
1728
|
+
"proofkit.package-artifact"
|
|
1729
|
+
],
|
|
1730
|
+
"environmentClasses": [
|
|
1731
|
+
"local-go",
|
|
1732
|
+
"local-go-python"
|
|
1733
|
+
]
|
|
1734
|
+
},
|
|
1735
|
+
{
|
|
1736
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-020",
|
|
1737
|
+
"scenarioId": "proofkit.supply-chain-quality.package-artifact-output-ownership-and-confinement",
|
|
1738
|
+
"witnessId": "proofkit.package-artifact.output-ownership-and-confinement-falsifier",
|
|
1739
|
+
"witnessKind": "contract",
|
|
1740
|
+
"witnessPath": "internal/tools/packageartifactrecord/record_test.go",
|
|
1741
|
+
"commandIds": [
|
|
1742
|
+
"proofkit.go-test",
|
|
1743
|
+
"proofkit.package-artifact"
|
|
1744
|
+
],
|
|
1745
|
+
"environmentClasses": [
|
|
1746
|
+
"local-go",
|
|
1747
|
+
"local-go-python"
|
|
1748
|
+
]
|
|
1749
|
+
},
|
|
1578
1750
|
{
|
|
1579
1751
|
"requirementId": "REQ-PROOFKIT-QUALITY-015",
|
|
1580
1752
|
"scenarioId": "proofkit.supply-chain-quality.release-closeout-completion-criteria",
|
|
@@ -1603,6 +1775,19 @@
|
|
|
1603
1775
|
"local-go"
|
|
1604
1776
|
]
|
|
1605
1777
|
},
|
|
1778
|
+
{
|
|
1779
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-016",
|
|
1780
|
+
"scenarioId": "proofkit.supply-chain-quality.release-platform-self-hosting-binary",
|
|
1781
|
+
"witnessId": "proofkit.self-hosting.release-platform-binary-projection",
|
|
1782
|
+
"witnessKind": "contract",
|
|
1783
|
+
"witnessPath": "scripts/validate-self-hosting-receipts_test.go",
|
|
1784
|
+
"commandIds": [
|
|
1785
|
+
"proofkit.go-test"
|
|
1786
|
+
],
|
|
1787
|
+
"environmentClasses": [
|
|
1788
|
+
"local-go"
|
|
1789
|
+
]
|
|
1790
|
+
},
|
|
1606
1791
|
{
|
|
1607
1792
|
"requirementId": "REQ-PROOFKIT-QUALITY-016",
|
|
1608
1793
|
"scenarioId": "proofkit.supply-chain-quality.release-platform-package-artifact",
|
|
@@ -1918,6 +2103,19 @@
|
|
|
1918
2103
|
"local-go"
|
|
1919
2104
|
]
|
|
1920
2105
|
},
|
|
2106
|
+
{
|
|
2107
|
+
"requirementId": "REQ-PROOFKIT-SPEC-018",
|
|
2108
|
+
"scenarioId": "proofkit.spec-proof-core.command-family-help-compatibility",
|
|
2109
|
+
"witnessId": "proofkit.command-family-navigation.help-compatibility-falsifier",
|
|
2110
|
+
"witnessKind": "contract",
|
|
2111
|
+
"witnessPath": "internal/app/command_family_catalog_test.go",
|
|
2112
|
+
"commandIds": [
|
|
2113
|
+
"proofkit.go-test"
|
|
2114
|
+
],
|
|
2115
|
+
"environmentClasses": [
|
|
2116
|
+
"local-go"
|
|
2117
|
+
]
|
|
2118
|
+
},
|
|
1921
2119
|
{
|
|
1922
2120
|
"requirementId": "REQ-PROOFKIT-SPEC-018",
|
|
1923
2121
|
"scenarioId": "proofkit.spec-proof-core.command-family-navigation-parity",
|