@research-engineering/agentic-proofkit 0.1.158 → 0.1.160
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/CONTRIBUTING.md +6 -0
- package/README.md +13 -1
- 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 +10 -5
- package/docs/release-process.md +17 -7
- package/docs/specs/proofkit-spec-proof-core/overview.md +18 -0
- package/docs/specs/proofkit-spec-proof-core/requirements.v1.json +65 -0
- package/docs/specs/proofkit-supply-chain-quality/overview.md +17 -0
- package/docs/specs/proofkit-supply-chain-quality/requirements.v1.json +52 -0
- package/package.json +11 -3
- package/proofkit/{cli-contract.v1.json → cli-contract.v2.json} +153 -7
- package/proofkit/command-families.v1.json +11 -0
- package/proofkit/requirement-bindings.json +347 -0
- package/proofkit/witness-plan.json +127 -2
package/CONTRIBUTING.md
CHANGED
|
@@ -25,10 +25,16 @@ admission, and rollout approval belong in consuming repositories.
|
|
|
25
25
|
Run before proposing a non-trivial change:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
+
npm ci --ignore-scripts
|
|
29
|
+
npx playwright install chromium firefox webkit
|
|
28
30
|
npm run check
|
|
29
31
|
git diff --check
|
|
30
32
|
```
|
|
31
33
|
|
|
34
|
+
The browser engine installation is a one-time prerequisite for the pinned
|
|
35
|
+
rendered-runtime gate. CI installs the same engines with their Linux system
|
|
36
|
+
dependencies before running that gate.
|
|
37
|
+
|
|
32
38
|
If your local project uses Bun, `bun run check` is acceptable as a convenience
|
|
33
39
|
runner only when it invokes the same scripts and leaves `npm run check`
|
|
34
40
|
equivalent. Release and package-authority proof remains npm-owned.
|
package/README.md
CHANGED
|
@@ -42,6 +42,8 @@ Python consumers use the Python package as a runner wrapper over the same Go
|
|
|
42
42
|
CLI, not as a Python SDK. Python projects should still treat CLI/JSON records,
|
|
43
43
|
exit codes, and package metadata as the public contract.
|
|
44
44
|
|
|
45
|
+
Published Darwin binary distributions require macOS 12.0 or later.
|
|
46
|
+
|
|
45
47
|
## Project Boundary
|
|
46
48
|
|
|
47
49
|
`agentic-proofkit` is intended to provide reusable proof-workflow mechanics for
|
|
@@ -154,7 +156,7 @@ agentic-proofkit repo-profile-admission --help
|
|
|
154
156
|
|
|
155
157
|
Command-specific help is derived from the private command descriptor table and
|
|
156
158
|
does not read stdin. The full machine-readable command inventory remains
|
|
157
|
-
`proofkit/cli-contract.
|
|
159
|
+
`proofkit/cli-contract.v2.json`; the human route map is
|
|
158
160
|
`docs/proofkit-contract-map.md`.
|
|
159
161
|
|
|
160
162
|
| Repository state | Minimal first route | Stop condition |
|
|
@@ -165,6 +167,16 @@ does not read stdin. The full machine-readable command inventory remains
|
|
|
165
167
|
| Current code must be audited before it becomes a contract | `capability-map-admission` with `trustMode: "audit_from_code"` | Stop at owner questions and candidate-only records |
|
|
166
168
|
| Legacy repository has local proof infrastructure | `migration-parity-admission`, then `migration-plan` | Stop before deleting local proof owners without parity evidence |
|
|
167
169
|
| A change set needs bounded checks | `changed-path-set`, optional `impact`, then `selective-gate-plan` and `selective-gate-evidence` | Stop on unknown scope, missing routes, or stale receipts |
|
|
170
|
+
| An agent needs only one specification subtree | `requirement-context-compose --repo-root . --input context-catalog.json`, then `requirement-context-slice` | Stop before treating a bounded slice as complete repository truth |
|
|
171
|
+
| A human needs semantic navigation, comparison, or traceability | `requirement-browser-server --view workspace --serve` over an admitted workspace input | Browser output, annotations, diff, and graph remain derived and non-authoritative |
|
|
172
|
+
|
|
173
|
+
JSON commands default to readable output. Agents can request the same JSON
|
|
174
|
+
value with lower transport overhead by placing the process option before the
|
|
175
|
+
command:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
agentic-proofkit --json-layout compact requirement-context-slice --input slice-input.json
|
|
179
|
+
```
|
|
168
180
|
|
|
169
181
|
Use `secret-scan` only when the caller provides an explicit file inventory with
|
|
170
182
|
content. It is a dedicated secret-like text detector for admitted inventory
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -9,7 +9,7 @@ Owner: `proofkit`.
|
|
|
9
9
|
This map helps consuming repositories choose the smallest Proofkit CLI command
|
|
10
10
|
or JSON contract without loading the full README or source tree. It is not an
|
|
11
11
|
exhaustive schema reference. The canonical command inventory is
|
|
12
|
-
`proofkit/cli-contract.
|
|
12
|
+
`proofkit/cli-contract.v2.json`.
|
|
13
13
|
|
|
14
14
|
Formal rule:
|
|
15
15
|
|
|
@@ -92,7 +92,7 @@ returns deterministic JSON from explicit caller-owned facts; the envelope is an
|
|
|
92
92
|
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
|
-
`proofkit/cli-contract.
|
|
95
|
+
`proofkit/cli-contract.v2.json` under `agent-route.inputContract`; the Go
|
|
96
96
|
admission implementation and shipped CLI contract are parity-tested.
|
|
97
97
|
|
|
98
98
|
Formal rule:
|
|
@@ -107,6 +107,10 @@ goal plus caller-owned state
|
|
|
107
107
|
|
|
108
108
|
Decision tree:
|
|
109
109
|
|
|
110
|
+
Semantic context routes are `requirement-context-compose`,
|
|
111
|
+
`requirement-context-slice`, `requirement-semantic-diff`, and
|
|
112
|
+
`requirement-traceability-graph`.
|
|
113
|
+
|
|
110
114
|
| State or goal | Next Proofkit route | Stop or escalation condition |
|
|
111
115
|
|---|---|---|
|
|
112
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. |
|
|
@@ -116,14 +120,15 @@ Decision tree:
|
|
|
116
120
|
| Temporary external design, implementation-plan, PR, code, or test observations may contain durable requirements. | `requirement-authoring-plan` | Treat output as candidate-only; stop before writing `requirements.v1.json`, retaining temporary documents, or claiming requirement meaning. |
|
|
117
121
|
| Requirement records exist. | `requirement-source-admission`; use `requirement-source-transition` for lifecycle changes. | Escalate when blocking requirements lack proof routes or lifecycle replacement ids are incomplete. |
|
|
118
122
|
| Humans or agents need meta/module/submodule navigation. | `requirement-spec-tree`, then `requirement-spec-tree-view` or `requirement-browser-server --view spec-tree` from the same caller-owned tree input. | Stop before inferring hierarchy from paths. The consumer owns source hierarchy; CLI/browser outputs remain presentation only and are not committed by default. |
|
|
123
|
+
| An agent needs a bounded semantic subset instead of whole specification files. | `requirement-context-compose --repo-root <caller-selected-root>` over an explicit catalog, then `requirement-context-slice` over the materialized snapshot. | The snapshot and slice are content-bound derived projections. Stop before inferring hierarchy, scanning ambient paths, treating omissions as absence, or promoting the slice to requirement, proof, freshness, or merge authority. |
|
|
119
124
|
| Overview prose may contain durable claims. | `spec-overview-claims` | Escalate when normative claims are not tied to `REQ-*` records. |
|
|
120
125
|
| Requirements have no verified proof route. | `requirement-bindings`, `witness-plan` from either an explicit `witness_command_catalog` or a complete `binding_witness_plan_input`, `proof-slice`, or `requirement-proof-resolver` | Stop before claiming proof adequacy; native witness semantics stay with the consumer. A binding-derived witness plan still needs caller-owned vocabulary and conservative command policy. |
|
|
121
126
|
| 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
127
|
| 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
128
|
| 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>` | 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.
|
|
129
|
+
| Does a TypeScript package public API match a caller-owned manifest? | `agent-route` with `goal: "verify_typescript_public_api"` and explicit `typescript_public_api_manifest` plus `typescript_public_api_repo_root`, then `typescript-public-api-surfaces --repo-root <caller-selected-root>` | The manifest must name each referenced `package.json`, sorted-unique export conditions, and a non-JSX `.ts`, `.mts`, or `.cts` `sourcePath` whose canonical target has the same admitted extension class. The bounded scanner accepts only the fail-closed export grammar in `proofkit/cli-contract.v2.json`; it does not parse unrestricted TypeScript or TSX, infer conventional layouts, or prove compiler output provenance, checkout freshness, package-manager truth, or merge readiness. |
|
|
125
130
|
| 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
|
-
| Human inspection is needed. | `requirement-source-view`, `requirement-proof-view`, `requirement-coverage-view`, `requirement-spec-tree-view`, or `requirement-browser-server` |
|
|
131
|
+
| Human inspection, semantic comparison, or traceability navigation is needed. | `requirement-source-view`, `requirement-proof-view`, `requirement-coverage-view`, `requirement-spec-tree-view`, `requirement-semantic-diff`, `requirement-traceability-graph`, or `requirement-browser-server` | Semantic diff compares admitted owner fields rather than lines. Traceability keeps specification, proof, code, and native execution evidence planes separate. Browser and rendered outputs remain presentation only unless the consumer admits a tracked artifact freshness gate. |
|
|
127
132
|
| 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. |
|
|
128
133
|
| A JavaScript/TypeScript consumer needs less wrapper code. | `json-report-cli-adapter-source --language typescript --format json` | Generated adapter source is caller-owned after materialization. The consumer still owns package pin, binary path, repo paths, local policy, and freshness proof. It is a CLI runner adapter, not a separate SDK authority. |
|
|
129
134
|
| A Python consumer needs Proofkit from Python tooling. | Install the Python package when available and invoke the same CLI/JSON contract. | The Python package is a runner wrapper over the Go CLI, not a Python SDK or alternate schema owner. |
|
|
@@ -133,7 +138,7 @@ Decision tree:
|
|
|
133
138
|
|
|
134
139
|
## Routing Rules
|
|
135
140
|
|
|
136
|
-
1. Start from `proofkit/cli-contract.
|
|
141
|
+
1. Start from `proofkit/cli-contract.v2.json` when a machine needs the exact
|
|
137
142
|
command, flags, input mode, output mode, scope class, or `agent-route` input
|
|
138
143
|
contract.
|
|
139
144
|
2. Start from this map when a human or agent only needs the correct command
|
package/docs/release-process.md
CHANGED
|
@@ -42,7 +42,11 @@ Go source
|
|
|
42
42
|
-> GitHub Release assets with checksums and SBOM for provenance lookup
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
The
|
|
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
|
|
49
|
+
`release:manifest` tool admits that record and creates `release-manifest.json`,
|
|
46
50
|
`checksums.sha256`, `metadata-checksums.sha256`, `sbom-subjects.sha256`,
|
|
47
51
|
release notes, and deterministic SBOM candidate evidence from explicit package,
|
|
48
52
|
registry, and release evidence. `checksums.sha256` covers distributable archive
|
|
@@ -77,18 +81,21 @@ Before publishing a version:
|
|
|
77
81
|
|
|
78
82
|
1. The source tree is clean.
|
|
79
83
|
2. `package.json` contains the exact new version.
|
|
80
|
-
3. `
|
|
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.
|
|
87
|
+
4. `package.json` repository, license, bin, exports, files, and publishConfig
|
|
81
88
|
match the intended public package contract.
|
|
82
|
-
|
|
89
|
+
5. The npm account has verified email and write-protective 2FA, or the package
|
|
83
90
|
uses an admitted Trusted Publisher configuration.
|
|
84
|
-
|
|
91
|
+
6. When `PROOFKIT_ENABLE_PYPI_PUBLISH=true`, the PyPI account has a normal or
|
|
85
92
|
pending Trusted Publisher configured for project `agentic-proofkit`,
|
|
86
93
|
repository `research-engineering/agentic-proofkit`, workflow `release.yml`, and
|
|
87
94
|
environment `pypi`.
|
|
88
|
-
|
|
95
|
+
7. The release workflow is configured for the package, public npm registry, and
|
|
89
96
|
release environments. PyPI release configuration is required only when the
|
|
90
97
|
PyPI channel is explicitly enabled.
|
|
91
|
-
|
|
98
|
+
8. `npm run check` passes locally or the release candidate workflow provides
|
|
92
99
|
equivalent current-head evidence.
|
|
93
100
|
|
|
94
101
|
## Candidate Proof
|
|
@@ -156,7 +163,10 @@ The `release` workflow must:
|
|
|
156
163
|
14. retain normalized GitHub Release metadata as workflow release evidence at
|
|
157
164
|
`artifacts/release/github-release.json` after byte-for-byte asset
|
|
158
165
|
verification, and bind it plus any attestation record with
|
|
159
|
-
`artifacts/
|
|
166
|
+
`artifacts/retained-evidence-checksums.sha256`. The checksum manifest lives
|
|
167
|
+
at the retained artifact root and uses exact `release/...` and
|
|
168
|
+
`attestations/...` paths, so standard checksum verification executes against
|
|
169
|
+
the downloaded artifact layout without path rewriting. The release
|
|
160
170
|
manifest records GitHub Release channel data as candidate/archive inventory;
|
|
161
171
|
`github-release.json` owns post-create GitHub Release facts only inside
|
|
162
172
|
retained workflow evidence, not as a public release asset.
|
|
@@ -97,6 +97,24 @@ execution receipts, and merge policy.
|
|
|
97
97
|
runtime navigation projection, and adds opt-in family help while preserving
|
|
98
98
|
existing help invocation forms, process channels, no-input behavior, and leaf
|
|
99
99
|
dispatch; descriptor and help truth remains owned by `REQ-PROOFKIT-QUALITY-004`.
|
|
100
|
+
- `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.
|
|
103
|
+
- `REQ-PROOFKIT-SPEC-020`: bounded context queries select parent-before-child,
|
|
104
|
+
role-aware, reference-closed semantic subsets by stable identity and report
|
|
105
|
+
each active bound without treating bounded absence as source absence.
|
|
106
|
+
- `REQ-PROOFKIT-SPEC-021`: the loopback workspace progressively presents
|
|
107
|
+
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.
|
|
110
|
+
- `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.
|
|
113
|
+
- `REQ-PROOFKIT-SPEC-023`: traceability graph input schema v2 preserves
|
|
114
|
+
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.
|
|
100
118
|
|
|
101
119
|
## Non-Claims
|
|
102
120
|
|
|
@@ -490,6 +490,71 @@
|
|
|
490
490
|
"requiresImpactDeclaration": true,
|
|
491
491
|
"requiresProofBindingReview": true
|
|
492
492
|
}
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"requirementId": "REQ-PROOFKIT-SPEC-019",
|
|
496
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
497
|
+
"invariant": "Requirement context composition reads only caller-selected repository-relative catalog paths through a confined filesystem root, admits each source through its semantic owner, records current and optional expected digests, and emits one bounded content-bound derived snapshot without ambient scanning or new requirement, proof, coverage, freshness, or merge authority.",
|
|
498
|
+
"claimLevel": "blocking",
|
|
499
|
+
"riskClass": "high",
|
|
500
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
501
|
+
"nonClaimRefs": ["NC-PROOFKIT-SPEC-019"],
|
|
502
|
+
"nonClaims": ["This requirement does not claim ambient repository discovery, later-checkout freshness, requirement meaning, proof adequacy, native witness execution, merge approval, release approval, rollout approval, or production readiness."],
|
|
503
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
504
|
+
"deferral": null,
|
|
505
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
"requirementId": "REQ-PROOFKIT-SPEC-020",
|
|
509
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
510
|
+
"invariant": "Requirement context slicing strictly re-admits snapshot identity, applies closed profiles and intersecting stable-id selectors under deterministic bounds, rejects unknown explicit targets, retains selected ancestors before descendants, preserves source-role and lifecycle reference closure, and distinctly reports depth, node-count, and requirement-count omissions without treating bounded absence as source absence.",
|
|
511
|
+
"claimLevel": "blocking",
|
|
512
|
+
"riskClass": "high",
|
|
513
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
514
|
+
"nonClaimRefs": ["NC-PROOFKIT-SPEC-020"],
|
|
515
|
+
"nonClaims": ["This requirement does not claim source completeness outside the admitted snapshot, product meaning, proof freshness, native execution, merge approval, release approval, rollout approval, or production readiness."],
|
|
516
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
517
|
+
"deferral": null,
|
|
518
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
522
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
523
|
+
"invariant": "The loopback requirement workspace visibly preserves presentation-only authority boundaries, non-claims, snapshot and baseline identity, and trust-significant graph states while rendering immutable admitted context, optional semantic diff, and optional traceability graph through exact allowlisted routes, a per-process capability, same-origin handoff admission, source-digest and JSON-pointer anchors, Unicode code-point quote coordinates, bounded browser-session question packets after explicit UI submission across the admitted tree domain subject to explicit packet byte bounds, and terminal one-shot concurrent session semantics without persistence, command execution, provider access, or authority promotion.",
|
|
524
|
+
"claimLevel": "blocking",
|
|
525
|
+
"riskClass": "critical",
|
|
526
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
527
|
+
"nonClaimRefs": ["NC-PROOFKIT-SPEC-021"],
|
|
528
|
+
"nonClaims": ["This requirement does not authenticate the surrounding browser profile or operating-system user and does not claim remote access, annotation persistence, agent execution, provider delivery, proof freshness, merge approval, release approval, rollout approval, branded Safari behavior, or production readiness."],
|
|
529
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
530
|
+
"deferral": null,
|
|
531
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"requirementId": "REQ-PROOFKIT-SPEC-022",
|
|
535
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
536
|
+
"invariant": "Requirement semantic diff compares two admitted context snapshots by stable requirement identity and owner-declared scalar, set, map, and lifecycle field classes, producing canonically ordered added, removed, and modified facts that remain closed under output re-admission without textual diff, inferred move semantics, or authority over requirement meaning.",
|
|
537
|
+
"claimLevel": "blocking",
|
|
538
|
+
"riskClass": "medium",
|
|
539
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
540
|
+
"nonClaimRefs": ["NC-PROOFKIT-SPEC-022"],
|
|
541
|
+
"nonClaims": ["This requirement does not claim textual equivalence, inferred moves, product meaning, proof freshness, merge approval, release approval, rollout approval, or production readiness."],
|
|
542
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
543
|
+
"deferral": null,
|
|
544
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
"requirementId": "REQ-PROOFKIT-SPEC-023",
|
|
548
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
549
|
+
"invariant": "Requirement traceability graph input schema v2 deterministically projects admitted specification and proof topology plus explicit caller-owned code topology while preserving specification, proof, code traceability, and native execution as distinct evidence planes; one typed topology validator rejects dangling endpoints, enforces the bijection between non-root parentNodeId facts and contains edges with broader parent abstraction, verifies every supplied code-source digest, and applies node, edge, and source-byte budgets before per-item semantic materialization.",
|
|
550
|
+
"claimLevel": "blocking",
|
|
551
|
+
"riskClass": "high",
|
|
552
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
553
|
+
"nonClaimRefs": ["NC-PROOFKIT-SPEC-023"],
|
|
554
|
+
"nonClaims": ["This requirement does not infer code topology, line or branch coverage, native execution, proof freshness, merge approval, release approval, rollout approval, or production readiness."],
|
|
555
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
556
|
+
"deferral": null,
|
|
557
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
493
558
|
}
|
|
494
559
|
],
|
|
495
560
|
"nonClaims": [
|
|
@@ -89,6 +89,23 @@ vulnerability absence, or consumer rollout safety by itself.
|
|
|
89
89
|
state before mutation, stays confined to the repository across symlinks,
|
|
90
90
|
binds non-empty generated content to stable source and execution-context
|
|
91
91
|
snapshots, and emits a schema-versioned execution record.
|
|
92
|
+
- `REQ-PROOFKIT-QUALITY-021`: CLI contract v2 owns one leading pretty or
|
|
93
|
+
compact JSON layout option through a descriptor-aware token-role
|
|
94
|
+
preclassification at process output boundaries while canonical identity
|
|
95
|
+
serialization remains unchanged.
|
|
96
|
+
- `REQ-PROOFKIT-QUALITY-022`: the requirement workspace uses an explicit
|
|
97
|
+
embedded asset set, strict authored-JavaScript type checking, exact secured
|
|
98
|
+
routes, bounded server cleanup, repository-confined non-symlink proof
|
|
99
|
+
artifacts, and machine-admitted per-project rendered engine evidence without
|
|
100
|
+
runtime dependencies or a production bundler.
|
|
101
|
+
- `REQ-PROOFKIT-QUALITY-023`: Python wheels independently bind advertised
|
|
102
|
+
platform compatibility to decoded executable bytes and carry Core Metadata
|
|
103
|
+
2.4 plus an exact, RECORD-closed repository license payload.
|
|
104
|
+
- `REQ-PROOFKIT-QUALITY-024`: a version-bound machine record declares the
|
|
105
|
+
reviewed public-contract change set and owns release-note content, while one
|
|
106
|
+
retained-evidence owner builds and verifies checksums against exact
|
|
107
|
+
downloadable artifact-relative paths without inferring change completeness
|
|
108
|
+
from the source diff.
|
|
92
109
|
|
|
93
110
|
## Non-Claims
|
|
94
111
|
|
|
@@ -268,6 +268,58 @@
|
|
|
268
268
|
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
269
269
|
"deferral": null,
|
|
270
270
|
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-021",
|
|
274
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
275
|
+
"invariant": "The public CLI v2 process contract admits one leading pretty or compact JSON layout option, preserves pretty as the default, classifies descriptor-admitted flag and value token roles before output policy so option-shaped values cannot alter output classification, emits sorted valid JSON with one trailing LF in both layouts, applies the selected layout only at JSON stdout or admitted JSON file sinks, and leaves canonical digest and identity serialization unchanged.",
|
|
276
|
+
"claimLevel": "blocking",
|
|
277
|
+
"riskClass": "high",
|
|
278
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
279
|
+
"nonClaimRefs": ["NC-PROOFKIT-QUALITY-021"],
|
|
280
|
+
"nonClaims": ["This requirement does not change canonical source storage, semantic selection, stable identity, text output, help output, browser sessions, merge approval, release approval, or rollout readiness."],
|
|
281
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
282
|
+
"deferral": null,
|
|
283
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
287
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
288
|
+
"invariant": "Authored requirement workspace JavaScript and CSS are embedded through an explicit compile-time asset set, served only by exact routes with restrictive response headers, strictly type-checked without a production bundler, and covered by Go lifecycle, concurrent terminal-state, HTTP security, and repository-confined non-symlink artifact falsifiers plus a machine-admitted per-project execution report proving the same non-empty passed test identities in pinned Chromium, Firefox, and Playwright WebKit, with bounded browser-server cleanup and no added runtime package dependencies.",
|
|
289
|
+
"claimLevel": "blocking",
|
|
290
|
+
"riskClass": "high",
|
|
291
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
292
|
+
"nonClaimRefs": ["NC-PROOFKIT-QUALITY-022"],
|
|
293
|
+
"nonClaims": ["This requirement does not claim full WCAG conformance, every branded browser, provider CI ingestion, registry publication, release approval, rollout approval, or production readiness."],
|
|
294
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
295
|
+
"deferral": null,
|
|
296
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-023",
|
|
300
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
301
|
+
"invariant": "Each Python wheel binds its embedded executable to the release binary digest, independently decodes Darwin Mach-O bytes so an advertised macOS platform minimum is never lower than the executable minimum, uses Core Metadata 2.4 License-Expression and License-File fields, carries an exact repository LICENSE copy under the wheel licenses directory, and closes every payload entry through RECORD.",
|
|
302
|
+
"claimLevel": "blocking",
|
|
303
|
+
"riskClass": "critical",
|
|
304
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
305
|
+
"nonClaimRefs": ["NC-PROOFKIT-QUALITY-023"],
|
|
306
|
+
"nonClaims": ["This requirement does not claim execution on every accepted operating-system version, legal approval, registry publication, release approval, rollout approval, or production readiness."],
|
|
307
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
308
|
+
"deferral": null,
|
|
309
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-024",
|
|
313
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
314
|
+
"invariant": "Release metadata generation admits one version-bound machine-readable declaration of the reviewed public-contract change set and renders release notes as its exact projection, while one repository-owned retained-evidence builder and verifier checksum the exact final downloadable artifact topology with artifact-relative paths, reject unbound evidence files and symlink substitution, and fail release closeout on record, note, path, or digest drift.",
|
|
315
|
+
"claimLevel": "blocking",
|
|
316
|
+
"riskClass": "high",
|
|
317
|
+
"proofBindingRefs": ["proofkit/requirement-bindings.json"],
|
|
318
|
+
"nonClaimRefs": ["NC-PROOFKIT-QUALITY-024"],
|
|
319
|
+
"nonClaims": ["This requirement does not infer change-record completeness from source changes, make release notes approval authority, or prove provider publication, attestation authenticity, consumer adoption, rollout approval, or production readiness."],
|
|
320
|
+
"lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
|
|
321
|
+
"deferral": null,
|
|
322
|
+
"updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
|
|
271
323
|
}
|
|
272
324
|
]
|
|
273
325
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@research-engineering/agentic-proofkit",
|
|
3
3
|
"description": "Reusable proof profile, report, graph, and witness-planning primitives.",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.160",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -36,7 +36,10 @@
|
|
|
36
36
|
],
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "go run ./internal/tools/packagebuild",
|
|
39
|
-
"check": "npm run npm:version && npm run source-hygiene && npm run command-family:check && npm run text-policy && npm run mermaid:check && npm run go:check && npm run package:artifact && npm run self:receipt && npm run self:coverage && npm run release:closeout",
|
|
39
|
+
"check": "npm run npm:version && npm run source-hygiene && npm run command-family:check && npm run text-policy && npm run mermaid:check && npm run browser:check && npm run go:check && npm run package:artifact && npm run self:receipt && npm run self:coverage && npm run release:closeout",
|
|
40
|
+
"browser:check": "npm run browser:static-check && npm run browser:test",
|
|
41
|
+
"browser:static-check": "tsc -p tsconfig.browser.json && node --test scripts/browser-proof-execution.test.mjs scripts/browser-proof-inputs.test.mjs scripts/browser-selection-authority.test.mjs",
|
|
42
|
+
"browser:test": "go run ./internal/tools/browserproofverify --run",
|
|
40
43
|
"command-family:check": "go run ./internal/tools/commandfamilygen --check",
|
|
41
44
|
"go:actionlint": "go tool actionlint",
|
|
42
45
|
"go:bench": "go test ./internal/kernel/admission ./internal/kernel/stablejson -run '^$' -bench . -benchmem -count=10",
|
|
@@ -69,5 +72,10 @@
|
|
|
69
72
|
"cpu": [
|
|
70
73
|
"arm64",
|
|
71
74
|
"x64"
|
|
72
|
-
]
|
|
75
|
+
],
|
|
76
|
+
"devDependencies": {
|
|
77
|
+
"@axe-core/playwright": "4.12.1",
|
|
78
|
+
"@playwright/test": "1.61.1",
|
|
79
|
+
"typescript": "7.0.2"
|
|
80
|
+
}
|
|
73
81
|
}
|
|
@@ -1,15 +1,33 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion":
|
|
3
|
-
"contractId": "proofkit.cli-contract.
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"contractId": "proofkit.cli-contract.v2",
|
|
4
4
|
"packageName": "@research-engineering/agentic-proofkit",
|
|
5
5
|
"processContract": {
|
|
6
6
|
"successExitCode": 0,
|
|
7
7
|
"failureExitCode": 1,
|
|
8
8
|
"stdout": "Successful JSON commands write exactly one JSON value to stdout unless an admitted explicit output-file flag writes that JSON value to the selected path and leaves stdout empty. Successful text or help commands write text to stdout unless an admitted explicit output-file flag writes the selected representation to the selected path and leaves stdout empty. Commands do not write stderr on success.",
|
|
9
9
|
"stderr": "Argument parsing, unsupported command, input admission, and output serialization failures write human diagnostics to stderr. Failed report commands may still write a machine-readable failed report to stdout when admission succeeds. Opt-in agent-envelope repair packets may write deterministic invalid-input JSON to stdout with exit code 1 and empty stderr.",
|
|
10
|
+
"globalOptions": {
|
|
11
|
+
"jsonLayout": {
|
|
12
|
+
"flag": "--json-layout",
|
|
13
|
+
"position": "before_command",
|
|
14
|
+
"values": [
|
|
15
|
+
"compact",
|
|
16
|
+
"pretty"
|
|
17
|
+
],
|
|
18
|
+
"default": "pretty",
|
|
19
|
+
"scope": "json_output_only"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
10
22
|
"helpGrammar": {
|
|
11
|
-
"rootHelpFlags": [
|
|
12
|
-
|
|
23
|
+
"rootHelpFlags": [
|
|
24
|
+
"--help",
|
|
25
|
+
"-h"
|
|
26
|
+
],
|
|
27
|
+
"commandHelpFlags": [
|
|
28
|
+
"--help",
|
|
29
|
+
"-h"
|
|
30
|
+
],
|
|
13
31
|
"helpCommandPositionalTarget": "optional_supported_command",
|
|
14
32
|
"helpCatalogFormsSource": "proofkit/command-families.v1.json",
|
|
15
33
|
"helpReadsCommandInput": false
|
|
@@ -132,8 +150,14 @@
|
|
|
132
150
|
"readiness_closeout_input",
|
|
133
151
|
"registry_consumer_input",
|
|
134
152
|
"release_authority_input",
|
|
153
|
+
"requirement_context_catalog",
|
|
154
|
+
"requirement_context_repo_root",
|
|
155
|
+
"requirement_context_slice_input",
|
|
156
|
+
"requirement_semantic_diff_input",
|
|
135
157
|
"requirement_source",
|
|
136
158
|
"requirement_source_transition",
|
|
159
|
+
"requirement_traceability_graph_input",
|
|
160
|
+
"requirement_workspace_input",
|
|
137
161
|
"scaffold_profile_plan",
|
|
138
162
|
"scaffold_project_structure",
|
|
139
163
|
"selective_evidence",
|
|
@@ -170,11 +194,14 @@
|
|
|
170
194
|
"check_overview_claims",
|
|
171
195
|
"decide_obligations",
|
|
172
196
|
"inspect_coverage",
|
|
197
|
+
"inspect_requirement_context",
|
|
198
|
+
"inspect_requirement_traceability",
|
|
173
199
|
"inventory_tests",
|
|
174
200
|
"plan_selective_checks",
|
|
175
201
|
"release_or_deploy_evidence",
|
|
176
202
|
"render_human_view",
|
|
177
203
|
"retire_local_infrastructure",
|
|
204
|
+
"review_requirement_change",
|
|
178
205
|
"scaffold_first_module",
|
|
179
206
|
"unknown",
|
|
180
207
|
"validate_requirement_source",
|
|
@@ -1017,10 +1044,82 @@
|
|
|
1017
1044
|
"--port",
|
|
1018
1045
|
"--scope",
|
|
1019
1046
|
"--serve",
|
|
1047
|
+
"--session-mode",
|
|
1048
|
+
"--session-timeout-seconds",
|
|
1020
1049
|
"--view"
|
|
1021
1050
|
],
|
|
1022
1051
|
"requiredFlags": [
|
|
1023
1052
|
"--view"
|
|
1053
|
+
],
|
|
1054
|
+
"flagValueRequirements": [
|
|
1055
|
+
{
|
|
1056
|
+
"flag": "--session-mode",
|
|
1057
|
+
"requiredFlags": [
|
|
1058
|
+
"--open",
|
|
1059
|
+
"--serve",
|
|
1060
|
+
"--view"
|
|
1061
|
+
],
|
|
1062
|
+
"value": "one-shot-question"
|
|
1063
|
+
}
|
|
1064
|
+
],
|
|
1065
|
+
"inputContract": {
|
|
1066
|
+
"schemaVersion": 1,
|
|
1067
|
+
"workspaceRequiredFields": [
|
|
1068
|
+
"context",
|
|
1069
|
+
"schemaVersion",
|
|
1070
|
+
"workspaceId"
|
|
1071
|
+
],
|
|
1072
|
+
"workspaceOptionalFields": [
|
|
1073
|
+
"diffInput",
|
|
1074
|
+
"graphInput"
|
|
1075
|
+
],
|
|
1076
|
+
"sessionModeValues": [
|
|
1077
|
+
"browse",
|
|
1078
|
+
"one-shot-question"
|
|
1079
|
+
],
|
|
1080
|
+
"sessionTimeoutSeconds": {
|
|
1081
|
+
"minimum": 1,
|
|
1082
|
+
"maximum": 7200,
|
|
1083
|
+
"requiresSessionMode": "one-shot-question"
|
|
1084
|
+
},
|
|
1085
|
+
"oneShotRequirements": {
|
|
1086
|
+
"open": true,
|
|
1087
|
+
"serve": true,
|
|
1088
|
+
"view": "workspace"
|
|
1089
|
+
},
|
|
1090
|
+
"jsonLayoutRule": "allowed for non-serving JSON plans; serving and one-shot modes reject the global layout option because one-shot terminal packets are fixed compact JSON"
|
|
1091
|
+
}
|
|
1092
|
+
},
|
|
1093
|
+
{
|
|
1094
|
+
"command": "requirement-context-compose",
|
|
1095
|
+
"input": "required",
|
|
1096
|
+
"stdin": true,
|
|
1097
|
+
"inputPointer": true,
|
|
1098
|
+
"scopeClass": "explicit_filesystem_scan",
|
|
1099
|
+
"outputModes": [
|
|
1100
|
+
"json"
|
|
1101
|
+
],
|
|
1102
|
+
"allowedFlags": [
|
|
1103
|
+
"--input",
|
|
1104
|
+
"--input-pointer",
|
|
1105
|
+
"--repo-root"
|
|
1106
|
+
],
|
|
1107
|
+
"requiredFlags": [
|
|
1108
|
+
"--repo-root"
|
|
1109
|
+
]
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
"command": "requirement-context-slice",
|
|
1113
|
+
"input": "required",
|
|
1114
|
+
"stdin": true,
|
|
1115
|
+
"inputPointer": true,
|
|
1116
|
+
"scopeClass": "explicit_caller_input",
|
|
1117
|
+
"outputModes": [
|
|
1118
|
+
"json"
|
|
1119
|
+
],
|
|
1120
|
+
"allowedFlags": [
|
|
1121
|
+
"--input",
|
|
1122
|
+
"--input-pointer"
|
|
1024
1123
|
]
|
|
1025
1124
|
},
|
|
1026
1125
|
{
|
|
@@ -1321,6 +1420,20 @@
|
|
|
1321
1420
|
"--scope"
|
|
1322
1421
|
]
|
|
1323
1422
|
},
|
|
1423
|
+
{
|
|
1424
|
+
"command": "requirement-semantic-diff",
|
|
1425
|
+
"input": "required",
|
|
1426
|
+
"stdin": true,
|
|
1427
|
+
"inputPointer": true,
|
|
1428
|
+
"scopeClass": "explicit_caller_input",
|
|
1429
|
+
"outputModes": [
|
|
1430
|
+
"json"
|
|
1431
|
+
],
|
|
1432
|
+
"allowedFlags": [
|
|
1433
|
+
"--input",
|
|
1434
|
+
"--input-pointer"
|
|
1435
|
+
]
|
|
1436
|
+
},
|
|
1324
1437
|
{
|
|
1325
1438
|
"command": "requirement-source-admission",
|
|
1326
1439
|
"input": "required",
|
|
@@ -1374,7 +1487,15 @@
|
|
|
1374
1487
|
"scopeClass": "explicit_caller_input",
|
|
1375
1488
|
"inputContract": {
|
|
1376
1489
|
"schemaVersion": 2,
|
|
1377
|
-
"requiredFields": [
|
|
1490
|
+
"requiredFields": [
|
|
1491
|
+
"schemaVersion",
|
|
1492
|
+
"treeId",
|
|
1493
|
+
"rootNodeId",
|
|
1494
|
+
"callerAnnotations",
|
|
1495
|
+
"nodes",
|
|
1496
|
+
"edges",
|
|
1497
|
+
"overlays"
|
|
1498
|
+
],
|
|
1378
1499
|
"callerTextAuthority": "callerAnnotations fields are untrusted presentation annotations and never command-owned nonClaims"
|
|
1379
1500
|
},
|
|
1380
1501
|
"outputModes": [
|
|
@@ -1393,7 +1514,15 @@
|
|
|
1393
1514
|
"scopeClass": "explicit_caller_input",
|
|
1394
1515
|
"inputContract": {
|
|
1395
1516
|
"schemaVersion": 2,
|
|
1396
|
-
"requiredFields": [
|
|
1517
|
+
"requiredFields": [
|
|
1518
|
+
"schemaVersion",
|
|
1519
|
+
"treeId",
|
|
1520
|
+
"rootNodeId",
|
|
1521
|
+
"callerAnnotations",
|
|
1522
|
+
"nodes",
|
|
1523
|
+
"edges",
|
|
1524
|
+
"overlays"
|
|
1525
|
+
],
|
|
1397
1526
|
"callerTextAuthority": "callerAnnotations fields are untrusted presentation annotations and never command-owned nonClaims"
|
|
1398
1527
|
},
|
|
1399
1528
|
"outputModes": [
|
|
@@ -1411,7 +1540,10 @@
|
|
|
1411
1540
|
"contractId": "proofkit.requirement-spec-tree-view.output.v2",
|
|
1412
1541
|
"schemaVersion": 2,
|
|
1413
1542
|
"authority": "requirement spec tree view output contract",
|
|
1414
|
-
"nonJsonFormats": [
|
|
1543
|
+
"nonJsonFormats": [
|
|
1544
|
+
"html",
|
|
1545
|
+
"markdown"
|
|
1546
|
+
],
|
|
1415
1547
|
"requiredFields": [
|
|
1416
1548
|
"authority",
|
|
1417
1549
|
"nodeCount",
|
|
@@ -1425,6 +1557,20 @@
|
|
|
1425
1557
|
]
|
|
1426
1558
|
}
|
|
1427
1559
|
},
|
|
1560
|
+
{
|
|
1561
|
+
"command": "requirement-traceability-graph",
|
|
1562
|
+
"input": "required",
|
|
1563
|
+
"stdin": true,
|
|
1564
|
+
"inputPointer": true,
|
|
1565
|
+
"scopeClass": "explicit_caller_input",
|
|
1566
|
+
"outputModes": [
|
|
1567
|
+
"json"
|
|
1568
|
+
],
|
|
1569
|
+
"allowedFlags": [
|
|
1570
|
+
"--input",
|
|
1571
|
+
"--input-pointer"
|
|
1572
|
+
]
|
|
1573
|
+
},
|
|
1428
1574
|
{
|
|
1429
1575
|
"command": "scaffold-profile-plan",
|
|
1430
1576
|
"input": "required",
|
|
@@ -110,6 +110,17 @@
|
|
|
110
110
|
"workspace-manifest-facts"
|
|
111
111
|
]
|
|
112
112
|
},
|
|
113
|
+
{
|
|
114
|
+
"familyId": "requirement-context-and-traceability",
|
|
115
|
+
"label": "Requirement context and traceability",
|
|
116
|
+
"purpose": "Compose bounded semantic context and derive diff and traceability projections.",
|
|
117
|
+
"commands": [
|
|
118
|
+
"requirement-context-compose",
|
|
119
|
+
"requirement-context-slice",
|
|
120
|
+
"requirement-semantic-diff",
|
|
121
|
+
"requirement-traceability-graph"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
113
124
|
{
|
|
114
125
|
"familyId": "requirement-navigation-and-rendering",
|
|
115
126
|
"label": "Requirement navigation and rendering",
|
|
@@ -572,6 +572,38 @@
|
|
|
572
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
573
|
]
|
|
574
574
|
},
|
|
575
|
+
{
|
|
576
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-021",
|
|
577
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
578
|
+
"specPath": "docs/specs/proofkit-supply-chain-quality/requirements.v1.json",
|
|
579
|
+
"claimLevel": "blocking",
|
|
580
|
+
"proofState": "witness_backed",
|
|
581
|
+
"nonClaims": ["This requirement does not change canonical source storage, semantic selection, stable identity, text output, help output, browser sessions, merge approval, release approval, or rollout readiness."]
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
585
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
586
|
+
"specPath": "docs/specs/proofkit-supply-chain-quality/requirements.v1.json",
|
|
587
|
+
"claimLevel": "blocking",
|
|
588
|
+
"proofState": "witness_backed",
|
|
589
|
+
"nonClaims": ["This requirement does not claim full WCAG conformance, every branded browser, provider CI ingestion, registry publication, release approval, rollout approval, or production readiness."]
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-023",
|
|
593
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
594
|
+
"specPath": "docs/specs/proofkit-supply-chain-quality/requirements.v1.json",
|
|
595
|
+
"claimLevel": "blocking",
|
|
596
|
+
"proofState": "witness_backed",
|
|
597
|
+
"nonClaims": ["This requirement does not claim execution on every accepted operating-system version, legal approval, registry publication, release approval, rollout approval, or production readiness."]
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-024",
|
|
601
|
+
"ownerId": "proofkit.supply-chain-quality",
|
|
602
|
+
"specPath": "docs/specs/proofkit-supply-chain-quality/requirements.v1.json",
|
|
603
|
+
"claimLevel": "blocking",
|
|
604
|
+
"proofState": "witness_backed",
|
|
605
|
+
"nonClaims": ["This requirement does not infer change-record completeness from source changes, make release notes approval authority, or prove provider publication, attestation authenticity, consumer adoption, rollout approval, or production readiness."]
|
|
606
|
+
},
|
|
575
607
|
{
|
|
576
608
|
"requirementId": "REQ-PROOFKIT-SPEC-017",
|
|
577
609
|
"ownerId": "proofkit.spec-proof-core",
|
|
@@ -591,6 +623,46 @@
|
|
|
591
623
|
"nonClaims": [
|
|
592
624
|
"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."
|
|
593
625
|
]
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"requirementId": "REQ-PROOFKIT-SPEC-019",
|
|
629
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
630
|
+
"specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
|
|
631
|
+
"claimLevel": "blocking",
|
|
632
|
+
"proofState": "witness_backed",
|
|
633
|
+
"nonClaims": ["This requirement does not claim ambient repository discovery, later-checkout freshness, requirement meaning, proof adequacy, native witness execution, merge approval, release approval, rollout approval, or production readiness."]
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
"requirementId": "REQ-PROOFKIT-SPEC-020",
|
|
637
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
638
|
+
"specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
|
|
639
|
+
"claimLevel": "blocking",
|
|
640
|
+
"proofState": "witness_backed",
|
|
641
|
+
"nonClaims": ["This requirement does not claim source completeness outside the admitted snapshot, product meaning, proof freshness, native execution, merge approval, release approval, rollout approval, or production readiness."]
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
645
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
646
|
+
"specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
|
|
647
|
+
"claimLevel": "blocking",
|
|
648
|
+
"proofState": "witness_backed",
|
|
649
|
+
"nonClaims": ["This requirement does not authenticate the surrounding browser profile or operating-system user and does not claim remote access, annotation persistence, agent execution, provider delivery, proof freshness, merge approval, release approval, rollout approval, branded Safari behavior, or production readiness."]
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
"requirementId": "REQ-PROOFKIT-SPEC-022",
|
|
653
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
654
|
+
"specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
|
|
655
|
+
"claimLevel": "blocking",
|
|
656
|
+
"proofState": "witness_backed",
|
|
657
|
+
"nonClaims": ["This requirement does not claim textual equivalence, inferred moves, product meaning, proof freshness, merge approval, release approval, rollout approval, or production readiness."]
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"requirementId": "REQ-PROOFKIT-SPEC-023",
|
|
661
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
662
|
+
"specPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
|
|
663
|
+
"claimLevel": "blocking",
|
|
664
|
+
"proofState": "witness_backed",
|
|
665
|
+
"nonClaims": ["This requirement does not infer code topology, line or branch coverage, native execution, proof freshness, merge approval, release approval, rollout approval, or production readiness."]
|
|
594
666
|
}
|
|
595
667
|
],
|
|
596
668
|
"bindings": [
|
|
@@ -2128,9 +2200,284 @@
|
|
|
2128
2200
|
"environmentClasses": [
|
|
2129
2201
|
"local-go"
|
|
2130
2202
|
]
|
|
2203
|
+
},
|
|
2204
|
+
{
|
|
2205
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-021",
|
|
2206
|
+
"scenarioId": "proofkit.supply-chain-quality.cli-json-layout-parity",
|
|
2207
|
+
"witnessId": "proofkit.stablejson.layout-parity-falsifier",
|
|
2208
|
+
"witnessKind": "contract",
|
|
2209
|
+
"witnessPath": "internal/kernel/stablejson/stablejson_test.go",
|
|
2210
|
+
"commandIds": ["proofkit.go-test"],
|
|
2211
|
+
"environmentClasses": ["local-go"]
|
|
2212
|
+
},
|
|
2213
|
+
{
|
|
2214
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-021",
|
|
2215
|
+
"scenarioId": "proofkit.supply-chain-quality.cli-json-layout-process-boundary",
|
|
2216
|
+
"witnessId": "proofkit.app.json-layout-process-boundary-falsifier",
|
|
2217
|
+
"witnessKind": "contract",
|
|
2218
|
+
"witnessPath": "internal/app/app_test.go",
|
|
2219
|
+
"commandIds": ["proofkit.go-test"],
|
|
2220
|
+
"environmentClasses": ["local-go"]
|
|
2221
|
+
},
|
|
2222
|
+
{
|
|
2223
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-021",
|
|
2224
|
+
"scenarioId": "proofkit.supply-chain-quality.cli-json-layout-file-boundary",
|
|
2225
|
+
"witnessId": "proofkit.app.json-layout-file-boundary-falsifier",
|
|
2226
|
+
"witnessKind": "contract",
|
|
2227
|
+
"witnessPath": "internal/app/cli_abi_test.go",
|
|
2228
|
+
"commandIds": ["proofkit.go-test"],
|
|
2229
|
+
"environmentClasses": ["local-go"]
|
|
2230
|
+
},
|
|
2231
|
+
{
|
|
2232
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
2233
|
+
"scenarioId": "proofkit.supply-chain-quality.browser-asset-and-security-boundary",
|
|
2234
|
+
"witnessId": "proofkit.requirement-browser.workspace-security-falsifier",
|
|
2235
|
+
"witnessKind": "contract",
|
|
2236
|
+
"witnessPath": "internal/command/requirementbrowser/workspace_test.go",
|
|
2237
|
+
"commandIds": ["proofkit.go-test"],
|
|
2238
|
+
"environmentClasses": ["local-go"]
|
|
2239
|
+
},
|
|
2240
|
+
{
|
|
2241
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
2242
|
+
"scenarioId": "proofkit.supply-chain-quality.browser-project-execution-evidence",
|
|
2243
|
+
"witnessId": "proofkit.requirement-browser.project-execution-evidence-falsifier",
|
|
2244
|
+
"witnessKind": "contract",
|
|
2245
|
+
"witnessPath": "internal/tools/browserproofverify/playwright_report_test.go",
|
|
2246
|
+
"commandIds": ["proofkit.go-test"],
|
|
2247
|
+
"environmentClasses": ["local-go"]
|
|
2248
|
+
},
|
|
2249
|
+
{
|
|
2250
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
2251
|
+
"scenarioId": "proofkit.supply-chain-quality.browser-proof-artifact-confinement",
|
|
2252
|
+
"witnessId": "proofkit.requirement-browser.proof-artifact-confinement-falsifier",
|
|
2253
|
+
"witnessKind": "contract",
|
|
2254
|
+
"witnessPath": "internal/tools/browserproofverify/artifact_paths_test.go",
|
|
2255
|
+
"commandIds": ["proofkit.go-test"],
|
|
2256
|
+
"environmentClasses": ["local-go"]
|
|
2257
|
+
},
|
|
2258
|
+
{
|
|
2259
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
2260
|
+
"scenarioId": "proofkit.supply-chain-quality.browser-terminal-concurrency",
|
|
2261
|
+
"witnessId": "proofkit.requirement-browser.terminal-concurrency-falsifier",
|
|
2262
|
+
"witnessKind": "contract",
|
|
2263
|
+
"witnessPath": "internal/command/requirementbrowser/workspace_handoff_boundary_test.go",
|
|
2264
|
+
"commandIds": ["proofkit.go-test"],
|
|
2265
|
+
"environmentClasses": ["local-go"]
|
|
2266
|
+
},
|
|
2267
|
+
{
|
|
2268
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
2269
|
+
"scenarioId": "proofkit.supply-chain-quality.browser-process-lifecycle",
|
|
2270
|
+
"witnessId": "proofkit.requirement-browser.process-lifecycle-falsifier",
|
|
2271
|
+
"witnessKind": "technical",
|
|
2272
|
+
"witnessPath": "scripts/browser-proof-execution.test.mjs",
|
|
2273
|
+
"commandIds": ["proofkit.browser-check"],
|
|
2274
|
+
"environmentClasses": ["local-node-browser"]
|
|
2275
|
+
},
|
|
2276
|
+
{
|
|
2277
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-023",
|
|
2278
|
+
"scenarioId": "proofkit.supply-chain-quality.python-wheel-platform-byte-compatibility",
|
|
2279
|
+
"witnessId": "proofkit.python-package.macho-platform-falsifier",
|
|
2280
|
+
"witnessKind": "contract",
|
|
2281
|
+
"witnessPath": "internal/tools/pythonpackage/metadata_test.go",
|
|
2282
|
+
"commandIds": ["proofkit.go-test"],
|
|
2283
|
+
"environmentClasses": ["local-go"]
|
|
2284
|
+
},
|
|
2285
|
+
{
|
|
2286
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-023",
|
|
2287
|
+
"scenarioId": "proofkit.supply-chain-quality.python-wheel-license-closure",
|
|
2288
|
+
"witnessId": "proofkit.python-package.license-payload-falsifier",
|
|
2289
|
+
"witnessKind": "contract",
|
|
2290
|
+
"witnessPath": "internal/tools/pythonpackage/metadata_test.go",
|
|
2291
|
+
"commandIds": ["proofkit.go-test"],
|
|
2292
|
+
"environmentClasses": ["local-go"]
|
|
2293
|
+
},
|
|
2294
|
+
{
|
|
2295
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-024",
|
|
2296
|
+
"scenarioId": "proofkit.supply-chain-quality.release-change-record-projection",
|
|
2297
|
+
"witnessId": "proofkit.release-change.versioned-projection-falsifier",
|
|
2298
|
+
"witnessKind": "contract",
|
|
2299
|
+
"witnessPath": "internal/tools/releasechange/record_test.go",
|
|
2300
|
+
"commandIds": ["proofkit.go-test"],
|
|
2301
|
+
"environmentClasses": ["local-go"]
|
|
2302
|
+
},
|
|
2303
|
+
{
|
|
2304
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-024",
|
|
2305
|
+
"scenarioId": "proofkit.supply-chain-quality.retained-evidence-artifact-topology",
|
|
2306
|
+
"witnessId": "proofkit.retained-evidence.download-layout-falsifier",
|
|
2307
|
+
"witnessKind": "contract",
|
|
2308
|
+
"witnessPath": "internal/tools/retainedevidence/manifest_test.go",
|
|
2309
|
+
"commandIds": ["proofkit.go-test"],
|
|
2310
|
+
"environmentClasses": ["local-go"]
|
|
2311
|
+
},
|
|
2312
|
+
{
|
|
2313
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-024",
|
|
2314
|
+
"scenarioId": "proofkit.supply-chain-quality.release-closeout-change-record",
|
|
2315
|
+
"witnessId": "proofkit.release-closeout.change-record-falsifier",
|
|
2316
|
+
"witnessKind": "contract",
|
|
2317
|
+
"witnessPath": "internal/tools/releasecloseoutinput/main_test.go",
|
|
2318
|
+
"commandIds": ["proofkit.go-test"],
|
|
2319
|
+
"environmentClasses": ["local-go"]
|
|
2320
|
+
},
|
|
2321
|
+
{
|
|
2322
|
+
"requirementId": "REQ-PROOFKIT-SPEC-019",
|
|
2323
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-context-composition",
|
|
2324
|
+
"witnessId": "proofkit.requirement-context.compose-round-trip-falsifier",
|
|
2325
|
+
"witnessKind": "contract",
|
|
2326
|
+
"witnessPath": "internal/command/requirementcontext/requirementcontext_test.go",
|
|
2327
|
+
"commandIds": ["proofkit.go-test"],
|
|
2328
|
+
"environmentClasses": ["local-go"]
|
|
2329
|
+
},
|
|
2330
|
+
{
|
|
2331
|
+
"requirementId": "REQ-PROOFKIT-SPEC-019",
|
|
2332
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-context-composition-whole-cli",
|
|
2333
|
+
"witnessId": "proofkit.app.requirement-context-compose-cli-falsifier",
|
|
2334
|
+
"witnessKind": "contract",
|
|
2335
|
+
"witnessPath": "internal/app/requirement_context_cli_test.go",
|
|
2336
|
+
"commandIds": ["proofkit.go-test"],
|
|
2337
|
+
"environmentClasses": ["local-go"]
|
|
2338
|
+
},
|
|
2339
|
+
{
|
|
2340
|
+
"requirementId": "REQ-PROOFKIT-SPEC-020",
|
|
2341
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-context-slicing",
|
|
2342
|
+
"witnessId": "proofkit.requirement-context.slice-closure-falsifier",
|
|
2343
|
+
"witnessKind": "contract",
|
|
2344
|
+
"witnessPath": "internal/command/requirementcontext/slice_closure_test.go",
|
|
2345
|
+
"commandIds": ["proofkit.go-test"],
|
|
2346
|
+
"environmentClasses": ["local-go"]
|
|
2347
|
+
},
|
|
2348
|
+
{
|
|
2349
|
+
"requirementId": "REQ-PROOFKIT-SPEC-020",
|
|
2350
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-context-slicing-whole-cli",
|
|
2351
|
+
"witnessId": "proofkit.app.requirement-context-slice-cli-falsifier",
|
|
2352
|
+
"witnessKind": "contract",
|
|
2353
|
+
"witnessPath": "internal/app/requirement_context_cli_test.go",
|
|
2354
|
+
"commandIds": ["proofkit.go-test"],
|
|
2355
|
+
"environmentClasses": ["local-go"]
|
|
2356
|
+
},
|
|
2357
|
+
{
|
|
2358
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
2359
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-browser-workspace-handoff",
|
|
2360
|
+
"witnessId": "proofkit.requirement-browser.workspace-handoff-falsifier",
|
|
2361
|
+
"witnessKind": "contract",
|
|
2362
|
+
"witnessPath": "internal/command/requirementbrowser/workspace_test.go",
|
|
2363
|
+
"commandIds": ["proofkit.go-test"],
|
|
2364
|
+
"environmentClasses": ["local-go"]
|
|
2365
|
+
},
|
|
2366
|
+
{
|
|
2367
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
2368
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-browser-tree-domain-closure",
|
|
2369
|
+
"witnessId": "proofkit.requirement-browser.tree-domain-closure-falsifier",
|
|
2370
|
+
"witnessKind": "contract",
|
|
2371
|
+
"witnessPath": "internal/command/requirementbrowser/workspace_handoff_boundary_test.go",
|
|
2372
|
+
"commandIds": ["proofkit.go-test"],
|
|
2373
|
+
"environmentClasses": ["local-go"]
|
|
2374
|
+
},
|
|
2375
|
+
{
|
|
2376
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
2377
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-browser-packet-bounds",
|
|
2378
|
+
"witnessId": "proofkit.requirement-browser.packet-bounds-falsifier",
|
|
2379
|
+
"witnessKind": "contract",
|
|
2380
|
+
"witnessPath": "internal/command/requirementbrowser/handoff_bounds_test.go",
|
|
2381
|
+
"commandIds": ["proofkit.go-test"],
|
|
2382
|
+
"environmentClasses": ["local-go"]
|
|
2383
|
+
},
|
|
2384
|
+
{
|
|
2385
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
2386
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-browser-one-shot-cleanup",
|
|
2387
|
+
"witnessId": "proofkit.requirement-browser.one-shot-cleanup-falsifier",
|
|
2388
|
+
"witnessKind": "contract",
|
|
2389
|
+
"witnessPath": "internal/command/requirementbrowser/server_test.go",
|
|
2390
|
+
"commandIds": ["proofkit.go-test"],
|
|
2391
|
+
"environmentClasses": ["local-go"]
|
|
2392
|
+
},
|
|
2393
|
+
{
|
|
2394
|
+
"requirementId": "REQ-PROOFKIT-SPEC-022",
|
|
2395
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-semantic-diff",
|
|
2396
|
+
"witnessId": "proofkit.requirement-semantic-diff.owner-field-falsifier",
|
|
2397
|
+
"witnessKind": "contract",
|
|
2398
|
+
"witnessPath": "internal/command/requirementdiff/requirementdiff_test.go",
|
|
2399
|
+
"commandIds": ["proofkit.go-test"],
|
|
2400
|
+
"environmentClasses": ["local-go"]
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
"requirementId": "REQ-PROOFKIT-SPEC-022",
|
|
2404
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-semantic-diff-complete-algebra",
|
|
2405
|
+
"witnessId": "proofkit.requirement-semantic-diff.complete-algebra-falsifier",
|
|
2406
|
+
"witnessKind": "contract",
|
|
2407
|
+
"witnessPath": "internal/command/requirementdiff/requirementdiff_test.go",
|
|
2408
|
+
"commandIds": ["proofkit.go-test"],
|
|
2409
|
+
"environmentClasses": ["local-go"]
|
|
2410
|
+
},
|
|
2411
|
+
{
|
|
2412
|
+
"requirementId": "REQ-PROOFKIT-SPEC-022",
|
|
2413
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-semantic-diff-whole-cli",
|
|
2414
|
+
"witnessId": "proofkit.app.requirement-semantic-diff-cli-falsifier",
|
|
2415
|
+
"witnessKind": "contract",
|
|
2416
|
+
"witnessPath": "internal/app/requirement_context_cli_test.go",
|
|
2417
|
+
"commandIds": ["proofkit.go-test"],
|
|
2418
|
+
"environmentClasses": ["local-go"]
|
|
2419
|
+
},
|
|
2420
|
+
{
|
|
2421
|
+
"requirementId": "REQ-PROOFKIT-SPEC-023",
|
|
2422
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-traceability-evidence-planes",
|
|
2423
|
+
"witnessId": "proofkit.requirement-traceability.evidence-plane-falsifier",
|
|
2424
|
+
"witnessKind": "contract",
|
|
2425
|
+
"witnessPath": "internal/command/requirementgraph/requirementgraph_test.go",
|
|
2426
|
+
"commandIds": ["proofkit.go-test"],
|
|
2427
|
+
"environmentClasses": ["local-go"]
|
|
2428
|
+
},
|
|
2429
|
+
{
|
|
2430
|
+
"requirementId": "REQ-PROOFKIT-SPEC-023",
|
|
2431
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-traceability-topology-closure",
|
|
2432
|
+
"witnessId": "proofkit.requirement-traceability.topology-closure-falsifier",
|
|
2433
|
+
"witnessKind": "contract",
|
|
2434
|
+
"witnessPath": "internal/command/requirementgraph/requirementgraph_test.go",
|
|
2435
|
+
"commandIds": ["proofkit.go-test"],
|
|
2436
|
+
"environmentClasses": ["local-go"]
|
|
2437
|
+
},
|
|
2438
|
+
{
|
|
2439
|
+
"requirementId": "REQ-PROOFKIT-SPEC-023",
|
|
2440
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-traceability-whole-cli",
|
|
2441
|
+
"witnessId": "proofkit.app.requirement-traceability-cli-falsifier",
|
|
2442
|
+
"witnessKind": "contract",
|
|
2443
|
+
"witnessPath": "internal/app/requirement_context_cli_test.go",
|
|
2444
|
+
"commandIds": ["proofkit.go-test"],
|
|
2445
|
+
"environmentClasses": ["local-go"]
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
2449
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-browser-rendered-runtime",
|
|
2450
|
+
"witnessId": "proofkit.requirement-browser.rendered-runtime-falsifier",
|
|
2451
|
+
"witnessKind": "technical",
|
|
2452
|
+
"witnessPath": "tests/browser/workspace.spec.mjs",
|
|
2453
|
+
"commandIds": ["proofkit.browser-check"],
|
|
2454
|
+
"environmentClasses": ["local-node-browser"]
|
|
2455
|
+
},
|
|
2456
|
+
{
|
|
2457
|
+
"requirementId": "REQ-PROOFKIT-SPEC-021",
|
|
2458
|
+
"scenarioId": "proofkit.spec-proof-core.requirement-browser-unicode-code-point-selection",
|
|
2459
|
+
"witnessId": "proofkit.requirement-browser.unicode-selection-falsifier",
|
|
2460
|
+
"witnessKind": "technical",
|
|
2461
|
+
"witnessPath": "tests/browser/workspace.spec.mjs",
|
|
2462
|
+
"commandIds": ["proofkit.browser-check"],
|
|
2463
|
+
"environmentClasses": ["local-node-browser"]
|
|
2464
|
+
},
|
|
2465
|
+
{
|
|
2466
|
+
"requirementId": "REQ-PROOFKIT-QUALITY-022",
|
|
2467
|
+
"scenarioId": "proofkit.supply-chain-quality.browser-static-and-runtime-proof",
|
|
2468
|
+
"witnessId": "proofkit.requirement-browser.static-runtime-proof-falsifier",
|
|
2469
|
+
"witnessKind": "technical",
|
|
2470
|
+
"witnessPath": "tests/browser/workspace.spec.mjs",
|
|
2471
|
+
"commandIds": ["proofkit.browser-check"],
|
|
2472
|
+
"environmentClasses": ["local-node-browser"]
|
|
2131
2473
|
}
|
|
2132
2474
|
],
|
|
2133
2475
|
"witnessCommands": [
|
|
2476
|
+
{
|
|
2477
|
+
"commandId": "proofkit.browser-check",
|
|
2478
|
+
"command": "npm run browser:check",
|
|
2479
|
+
"environmentClass": "local-node-browser"
|
|
2480
|
+
},
|
|
2134
2481
|
{
|
|
2135
2482
|
"commandId": "proofkit.ci-receipt-anchor",
|
|
2136
2483
|
"command": "npm run self:receipt",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"environmentClasses": [
|
|
15
15
|
"local-go",
|
|
16
16
|
"local-go-python",
|
|
17
|
+
"local-node-browser",
|
|
17
18
|
"local-python"
|
|
18
19
|
],
|
|
19
20
|
"environmentClassPolicies": [
|
|
@@ -47,6 +48,18 @@
|
|
|
47
48
|
"write-local"
|
|
48
49
|
]
|
|
49
50
|
},
|
|
51
|
+
{
|
|
52
|
+
"environmentClass": "local-node-browser",
|
|
53
|
+
"networkPolicies": [
|
|
54
|
+
"none"
|
|
55
|
+
],
|
|
56
|
+
"credentialClasses": [
|
|
57
|
+
"none"
|
|
58
|
+
],
|
|
59
|
+
"cachePolicies": [
|
|
60
|
+
"disabled"
|
|
61
|
+
]
|
|
62
|
+
},
|
|
50
63
|
{
|
|
51
64
|
"environmentClass": "local-python",
|
|
52
65
|
"networkPolicies": [
|
|
@@ -62,6 +75,7 @@
|
|
|
62
75
|
}
|
|
63
76
|
],
|
|
64
77
|
"parallelGroups": [
|
|
78
|
+
"browser-runtime",
|
|
65
79
|
"coverage-metrics",
|
|
66
80
|
"local-go-static",
|
|
67
81
|
"package-artifact",
|
|
@@ -628,6 +642,41 @@
|
|
|
628
642
|
0
|
|
629
643
|
]
|
|
630
644
|
}
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"schemaVersion": 1,
|
|
648
|
+
"id": "proofkit.browser-check",
|
|
649
|
+
"cwd": ".",
|
|
650
|
+
"argv": [
|
|
651
|
+
"npm",
|
|
652
|
+
"run",
|
|
653
|
+
"browser:check"
|
|
654
|
+
],
|
|
655
|
+
"environment": {
|
|
656
|
+
"inherit": "none",
|
|
657
|
+
"allowlist": [],
|
|
658
|
+
"classes": [
|
|
659
|
+
"local-node-browser"
|
|
660
|
+
]
|
|
661
|
+
},
|
|
662
|
+
"timeoutMs": 600000,
|
|
663
|
+
"networkPolicy": "none",
|
|
664
|
+
"credentialClass": "none",
|
|
665
|
+
"cachePolicy": "disabled",
|
|
666
|
+
"expectedArtifacts": [
|
|
667
|
+
{
|
|
668
|
+
"kind": "report",
|
|
669
|
+
"path": "artifacts/proofkit/browser-runtime-proof.json",
|
|
670
|
+
"required": true
|
|
671
|
+
}
|
|
672
|
+
],
|
|
673
|
+
"parallelGroup": "browser-runtime",
|
|
674
|
+
"exitCodePolicy": {
|
|
675
|
+
"kind": "zero",
|
|
676
|
+
"successCodes": [
|
|
677
|
+
0
|
|
678
|
+
]
|
|
679
|
+
}
|
|
631
680
|
}
|
|
632
681
|
],
|
|
633
682
|
"policies": [
|
|
@@ -669,6 +718,80 @@
|
|
|
669
718
|
"Self-hosting witness policy does not prove producer authentication or merge approval."
|
|
670
719
|
]
|
|
671
720
|
},
|
|
721
|
+
{
|
|
722
|
+
"commandId": "proofkit.browser-check",
|
|
723
|
+
"inputSelectors": [
|
|
724
|
+
"go.mod",
|
|
725
|
+
"go.sum",
|
|
726
|
+
"internal/command/requirementbinding",
|
|
727
|
+
"internal/command/requirementbrowser",
|
|
728
|
+
"internal/command/requirementcontext",
|
|
729
|
+
"internal/command/requirementcoverageview",
|
|
730
|
+
"internal/command/requirementdiff",
|
|
731
|
+
"internal/command/requirementgraph",
|
|
732
|
+
"internal/command/requirementproofview",
|
|
733
|
+
"internal/command/requirementsourceadmission",
|
|
734
|
+
"internal/command/requirementsourceview",
|
|
735
|
+
"internal/command/requirementspectree",
|
|
736
|
+
"internal/command/testevidenceinventory",
|
|
737
|
+
"internal/kernel/admission",
|
|
738
|
+
"internal/kernel/admit",
|
|
739
|
+
"internal/kernel/agentenvelope",
|
|
740
|
+
"internal/kernel/browserdoc",
|
|
741
|
+
"internal/kernel/compactproofcontract",
|
|
742
|
+
"internal/kernel/digest",
|
|
743
|
+
"internal/kernel/markdownfmt",
|
|
744
|
+
"internal/kernel/report",
|
|
745
|
+
"internal/kernel/secretjson",
|
|
746
|
+
"internal/kernel/stablejson",
|
|
747
|
+
"internal/kernel/witnesscommand",
|
|
748
|
+
"internal/testsupport/browserfixture",
|
|
749
|
+
"internal/tools/browserproofverify",
|
|
750
|
+
"internal/tools/browsertestserver",
|
|
751
|
+
"package-lock.json",
|
|
752
|
+
"package.json",
|
|
753
|
+
"playwright.config.mjs",
|
|
754
|
+
"proofkit/witness-plan.json",
|
|
755
|
+
"scripts/browser-proof-execution.mjs",
|
|
756
|
+
"scripts/browser-proof-execution.test.mjs",
|
|
757
|
+
"scripts/browser-proof-inputs.mjs",
|
|
758
|
+
"scripts/browser-proof-inputs.test.mjs",
|
|
759
|
+
"scripts/browser-runtime-proof-inputs.v1.json",
|
|
760
|
+
"scripts/browser-selection-authority.test.mjs",
|
|
761
|
+
"scripts/write-browser-proof.mjs",
|
|
762
|
+
"tests/browser",
|
|
763
|
+
"tsconfig.browser.json"
|
|
764
|
+
],
|
|
765
|
+
"outputSelectors": [
|
|
766
|
+
"artifacts/proofkit/browser-runtime-proof.json"
|
|
767
|
+
],
|
|
768
|
+
"resourceReads": [
|
|
769
|
+
"resource.proofkit.source"
|
|
770
|
+
],
|
|
771
|
+
"resourceWrites": [
|
|
772
|
+
"resource.proofkit.local-artifacts"
|
|
773
|
+
],
|
|
774
|
+
"exclusiveLocks": [],
|
|
775
|
+
"sideEffectClass": "local_write",
|
|
776
|
+
"deterministicOutput": false,
|
|
777
|
+
"cacheAdmissionRefs": [],
|
|
778
|
+
"retryPolicy": {
|
|
779
|
+
"kind": "none",
|
|
780
|
+
"maxAttempts": 1
|
|
781
|
+
},
|
|
782
|
+
"cancellationPolicy": {
|
|
783
|
+
"kind": "cooperative",
|
|
784
|
+
"graceMs": 5000
|
|
785
|
+
},
|
|
786
|
+
"timeoutPolicy": {
|
|
787
|
+
"kind": "bounded",
|
|
788
|
+
"timeoutMs": 600000
|
|
789
|
+
},
|
|
790
|
+
"nonClaims": [
|
|
791
|
+
"Browser runtime proof does not prove registry publication, rollout, or production readiness.",
|
|
792
|
+
"Pinned Playwright engines are not branded browser compatibility proof."
|
|
793
|
+
]
|
|
794
|
+
},
|
|
672
795
|
{
|
|
673
796
|
"commandId": "proofkit.ci-receipt-anchor",
|
|
674
797
|
"inputSelectors": [
|
|
@@ -731,7 +854,7 @@
|
|
|
731
854
|
"internal/command",
|
|
732
855
|
"internal/testsupport/commandcoverage",
|
|
733
856
|
"internal/tools/coveragemetrics",
|
|
734
|
-
"proofkit/cli-contract.
|
|
857
|
+
"proofkit/cli-contract.v2.json",
|
|
735
858
|
"proofkit/requirement-bindings.json",
|
|
736
859
|
"proofkit/witness-plan.json"
|
|
737
860
|
],
|
|
@@ -873,9 +996,11 @@
|
|
|
873
996
|
"go.mod",
|
|
874
997
|
"go.sum",
|
|
875
998
|
"internal",
|
|
876
|
-
"
|
|
999
|
+
"package.json",
|
|
1000
|
+
"proofkit/cli-contract.v2.json",
|
|
877
1001
|
"proofkit/requirement-bindings.json",
|
|
878
1002
|
"proofkit/witness-plan.json",
|
|
1003
|
+
"scripts/browser-runtime-proof-inputs.v1.json",
|
|
879
1004
|
"scripts/validate-self-hosting-receipts.go"
|
|
880
1005
|
],
|
|
881
1006
|
"outputSelectors": [],
|