@research-engineering/agentic-proofkit 0.1.160 → 0.2.1

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.
@@ -8,7 +8,7 @@
8
8
  {
9
9
  "requirementId": "REQ-PROOFKIT-SPEC-001",
10
10
  "ownerId": "proofkit.spec-proof-core",
11
- "invariant": "Requirement source admission validates structured REQ-* records and source-package shape without owning requirement meaning or scanning overview prose as authority.",
11
+ "invariant": "Requirement source admission validates structured REQ-* records and source-package shape without owning requirement meaning or scanning overview prose as authority; the shipped README routes one marker-bounded exact offline command and exactly one JSON example through the installed current product as a first valid input, using bounded expansion-free literal shell-word semantics so safe Bash quoting and directly executed argv remain equivalent.",
12
12
  "claimLevel": "blocking",
13
13
  "riskClass": "high",
14
14
  "proofBindingRefs": [
@@ -224,7 +224,7 @@
224
224
  {
225
225
  "requirementId": "REQ-PROOFKIT-SPEC-009",
226
226
  "ownerId": "proofkit.spec-proof-core",
227
- "invariant": "Requirement spec tree views render admitted caller-owned spec-tree hierarchy through shared safe browser document fragments, deterministic CLI JSON, Markdown, HTML, explicit output paths, and loopback browser serving without accepting caller-owned raw HTML or making rendered output authoritative.",
227
+ "invariant": "Requirement spec tree views render admitted caller-owned spec-tree hierarchy through shared safe browser document fragments, deterministic CLI JSON, Markdown, HTML, explicit output paths through repository-confined same-parent atomic replacement after final destination-parent plus temporary-object identity, mode, and content admission, and loopback browser serving without accepting caller-owned raw HTML or making rendered output authoritative; the browser command and runtime share one exact supported-view vocabulary, and invalid-view diagnostics list all and only those views.",
228
228
  "claimLevel": "blocking",
229
229
  "riskClass": "high",
230
230
  "proofBindingRefs": [
@@ -234,7 +234,7 @@
234
234
  "NC-PROOFKIT-SPEC-009"
235
235
  ],
236
236
  "nonClaims": [
237
- "This requirement does not claim repository scanning, source freshness computation from files, requirement meaning, native witness execution, committed generated HTML, merge approval, release approval, rollout approval, or production readiness."
237
+ "This requirement does not claim repository scanning, source freshness computation from files, requirement meaning, native witness execution, protection from adversarial concurrent content or namespace mutation by the same operating-system user during the operation, filesystem crash or fsync durability, committed generated HTML, merge approval, release approval, rollout approval, or production readiness."
238
238
  ],
239
239
  "lifecycle": {
240
240
  "state": "active",
@@ -278,7 +278,7 @@
278
278
  {
279
279
  "requirementId": "REQ-PROOFKIT-SPEC-011",
280
280
  "ownerId": "proofkit.spec-proof-core",
281
- "invariant": "Adoption contract envelope admission validates a complete caller-owned aggregate adoption envelope, selects one child adoption, bootstrap, guidance, workflow, or pilot route through orthogonal CLI flags, and delegates to existing child command contracts without scanning repositories, writing files, executing witnesses, or creating a second adoption readiness policy.",
281
+ "invariant": "Adoption contract envelope admission validates a complete caller-owned aggregate adoption envelope, selects one child adoption, bootstrap, guidance, workflow, or pilot route through orthogonal CLI flags, rejects repeated single-value mode or pilot selectors and an explicitly empty pilot value rather than changing or misreporting the selected root variant, binds its union output contract to the exact successful public-CLI root-shape witness and native source owner, and delegates to existing child command contracts without scanning repositories, writing files, executing witnesses, or creating a second adoption readiness policy.",
282
282
  "claimLevel": "blocking",
283
283
  "riskClass": "high",
284
284
  "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 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.",
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, exposes one token-bounded root discovery route, and projects the exact stack-preset vocabulary from the authored CLI contract into generated runtime IDs, direct help, and invalid-ID diagnostics; it 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": [
@@ -494,12 +494,12 @@
494
494
  {
495
495
  "requirementId": "REQ-PROOFKIT-SPEC-019",
496
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.",
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 schema-v2 derived snapshot whose expectedDigestCoverage is exactly none, partial, or all; the strict schema-v1 adapter fully admits the legacy record before mapping it to the same semantic snapshot, mixed v1/v2 vocabulary is rejected, and no producer emits v1.",
498
498
  "claimLevel": "blocking",
499
499
  "riskClass": "high",
500
500
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
501
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."],
502
+ "nonClaims": ["Expected-digest coverage records only equality between caller-supplied expected digests and admitted current bytes; it does not authenticate a producer, baseline, checkout, or freshness and does not claim ambient repository discovery, requirement meaning, proof adequacy, native witness execution, merge approval, release approval, rollout approval, or production readiness."],
503
503
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
504
504
  "deferral": null,
505
505
  "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
@@ -520,12 +520,12 @@
520
520
  {
521
521
  "requirementId": "REQ-PROOFKIT-SPEC-021",
522
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.",
523
+ "invariant": "The loopback requirement workspace visibly preserves presentation-only authority boundaries, non-claims, snapshot identity, schema-v2 expected-digest coverage, and trust-significant graph states while rendering immutable admitted context, optional schema-v2 semantic diff, and optional traceability graph through exact allowlisted routes and schema-v2 manifest and affected API projections, a per-process capability removed from the document before API use, one exact loopback root URL passed to one fixed platform launcher argv, visible bootstrap loading and sanitized terminal failure states with stable identities, native list and article semantics, active-view aria-current, a visibly headed handoff region, 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 list domain subject to explicit packet byte bounds, and terminal one-shot concurrent session semantics without persistence, caller-supplied command execution, native-witness execution, provider access, or authority promotion; the only local-process side effect is the fixed launcher above.",
524
524
  "claimLevel": "blocking",
525
525
  "riskClass": "critical",
526
526
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
527
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."],
528
+ "nonClaims": ["Expected-digest coverage does not authenticate a producer, baseline, checkout, or freshness; successful launcher invocation does not prove browser rendering; this requirement also does not authenticate the surrounding browser profile or operating-system user and does not claim remote access, annotation persistence, agent execution, provider delivery, complete screen-reader interoperability, full WCAG 2.2 conformance, every operating-system theme, 400-percent zoom behavior, merge approval, release approval, rollout approval, branded Safari behavior, or production readiness."],
529
529
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
530
530
  "deferral": null,
531
531
  "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
@@ -533,12 +533,12 @@
533
533
  {
534
534
  "requirementId": "REQ-PROOFKIT-SPEC-022",
535
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.",
536
+ "invariant": "Requirement semantic diff schema-v2 input compares two fully admitted normalized context snapshots by stable requirement identity and owner-declared scalar, set, map, and lifecycle field classes, producing a schema-v2 canonically ordered output with base and current expected-digest coverage that remains closed under output re-admission; strict schema-v1 input and output adapters fully admit legacy records before normalization and reject mixed-version vocabulary.",
537
537
  "claimLevel": "blocking",
538
538
  "riskClass": "medium",
539
539
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
540
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."],
541
+ "nonClaims": ["Expected-digest coverage does not authenticate a producer, baseline, checkout, or freshness; this requirement also does not claim textual equivalence, inferred moves, product meaning, merge approval, release approval, rollout approval, or production readiness."],
542
542
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
543
543
  "deferral": null,
544
544
  "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
@@ -546,12 +546,12 @@
546
546
  {
547
547
  "requirementId": "REQ-PROOFKIT-SPEC-023",
548
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.",
549
+ "invariant": "Requirement traceability graph input schema v2 deterministically consumes a fully admitted normalized context snapshot, including strict schema-v1 adaptation or native schema-v2 expected-digest coverage, and 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
550
  "claimLevel": "blocking",
551
551
  "riskClass": "high",
552
552
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
553
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."],
554
+ "nonClaims": ["Expected-digest coverage does not authenticate a producer, baseline, checkout, or freshness; this requirement also does not infer code topology, line or branch coverage, native execution, merge approval, release approval, rollout approval, or production readiness."],
555
555
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
556
556
  "deferral": null,
557
557
  "updatePolicy": {"reviewOwnerId": "proofkit.spec-proof-core", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
@@ -15,25 +15,44 @@ vulnerability absence, or consumer rollout safety by itself.
15
15
  inventory and optional GitHub artifact attestations without claiming
16
16
  public-source provenance before a public-source tag release exists.
17
17
  - `REQ-PROOFKIT-QUALITY-002`: release evidence includes a deterministic SBOM
18
- for package, wheel, binary, and Go module inventory without claiming
19
- vulnerability absence or license approval.
18
+ whose runtime edges and digest come from one immutable byte snapshot of the
19
+ exact owning binary through an identity-checked pinned handle with a final
20
+ same-handle content check; source/tool module inventory is excluded and
21
+ package or wheel representations invent no runtime edges.
20
22
  - `REQ-PROOFKIT-QUALITY-003`: pure parser and canonicalization boundaries have
21
23
  fuzz/property tests that prove no-panic and round-trip stability without
22
24
  fuzzing side-effecting CLI or filesystem flows.
23
25
  - `REQ-PROOFKIT-QUALITY-004`: public CLI ABI has a small golden corpus and
24
26
  canonical ABI hash covering command topology, exit code, stdout/stderr
25
- channel discipline, JSON parseability, stable public diagnostics, explicit
26
- output schema evolution for breaking JSON field changes, and
27
- descriptor/contract/help parity without making private descriptors public API.
27
+ channel discipline, JSON parseability, stable public diagnostics, complete
28
+ versioned root-shape input/output variants, exact source-checkout selectors,
29
+ exact native source sets and requirement scenarios for root-distinct output
30
+ witnesses, generated help and preset projections, explicit root schema
31
+ evolution, and descriptor/contract/help parity without making private
32
+ descriptors public API. The admitted adoption-envelope machine condition
33
+ model uses complete
34
+ canonical flag conjunctions, proves finite valid-option closure against
35
+ native admission, binds exercised argv to one exact condition and variant,
36
+ and rejects repeated mode or pilot selectors plus an empty pilot value that
37
+ would normalize to absence. Any later condition-model owner requires its own
38
+ admitted native-closure witness. The separate pilot-admission route declares
39
+ its contract-envelope stack-diverse alias and rejects repeated or mixed
40
+ `--pilot` and `--stack-diverse` selectors instead of applying last-write-wins
41
+ routing. Nested fields, leaf types, cardinality,
42
+ nullability, and cross-field semantics remain native-command concerns rather
43
+ than machine-contract claims.
28
44
  - `REQ-PROOFKIT-QUALITY-005`: CodeQL workflow source is admitted as an
29
- independent semantic security analysis signal for Go source without replacing
30
- native Go static gates.
45
+ independent semantic security analysis signal for Go source; advisory
46
+ analysis remains read-only, provider publication is isolated and disabled on
47
+ pull requests, and native Go static gates remain required.
31
48
  - `REQ-PROOFKIT-QUALITY-006`: OSV workflow source is admitted as an advisory
32
- multi-ecosystem dependency signal without replacing `govulncheck`
33
- reachable-code evidence.
49
+ multi-ecosystem dependency signal; advisory analysis remains read-only,
50
+ provider publication is isolated and disabled on pull requests, and
51
+ `govulncheck` reachable-code evidence remains required.
34
52
  - `REQ-PROOFKIT-QUALITY-007`: Scorecard workflow source is admitted as an
35
- advisory repository hygiene signal without claiming branch protection or
36
- provider settings that the repository cannot prove from source.
53
+ advisory repository hygiene signal; advisory analysis remains read-only,
54
+ public publication authority is isolated with exact output inputs, and
55
+ source does not claim branch protection or unobserved provider settings.
37
56
  - `REQ-PROOFKIT-QUALITY-008`: GitHub Actions workflow syntax and expression
38
57
  semantics are checked by actionlint in the local package gate.
39
58
  - `REQ-PROOFKIT-QUALITY-009`: performance-sensitive parser and serializer
@@ -41,23 +60,42 @@ vulnerability absence, or consumer rollout safety by itself.
41
60
  required PR gate before stable baselines exist.
42
61
  - `REQ-PROOFKIT-QUALITY-010`: coverage metrics report requirement, binding,
43
62
  witness, CLI inventory linkage, and descriptor-owned command proof-route
44
- candidates from admitted test-evidence-inventory rows. The gate fails closed
45
- on linkage dead zones, failed inventory admission, missing candidates,
46
- unknown command refs, contract-only commands, or route-only commands. Static
47
- route metadata and source syntax never become semantic falsifier evidence.
63
+ candidates from admitted test-evidence-inventory rows, while critical
64
+ anti-vacuity scenarios retain exact closed selector inventories. Each linkage and route
65
+ conjunct has an independent fail-closed falsifier, and each source-checkout
66
+ selector resolves to a valid function in an active Go test file with its
67
+ exact executable command; static route metadata, prose, source markers, test
68
+ existence, and failure-capable syntax never become semantic falsifier
69
+ evidence.
48
70
  - `REQ-PROOFKIT-QUALITY-011`: CI separates the OS-independent full
49
71
  source/package gate from macOS platform smoke, executes the complete Go
50
72
  package set through its owner command, uses explicit hosted runner labels
51
73
  instead of floating latest labels, and exposes one fail-closed aggregate gate
52
- that requires every required leaf check to finish with success.
74
+ whose exact expression and script reject neutralization and require every
75
+ required leaf check to finish with success, while the aggregate job omits
76
+ job defaults and `continue-on-error` entirely. Exact workflow-level bash
77
+ defaults plus a closed inventory require exact provider-check names and
78
+ scalar runners, bind the macOS job's presence-aware exact ordered step
79
+ inventory and exact local setup-action bytes to the fail-closed
80
+ package-script owner command, require every required leaf job and step to
81
+ omit conditions except for exact named owner conditions, and reject
82
+ dynamically false or explicit-null conditions, dual `run`/`uses` keys,
83
+ non-string runner labels, nested or top-level semantic shadow steps,
84
+ reusable-job substitution, inherited or local environment entries, shell,
85
+ working-directory, and `continue-on-error` overrides.
53
86
  - `REQ-PROOFKIT-QUALITY-012`: release and adoption channel identifiers use one
54
87
  canonical authority vocabulary that separates durable authority channels from
55
88
  display labels, publisher environments, statuses, and candidate evidence.
56
89
  - `REQ-PROOFKIT-QUALITY-013`: self-hosting workflow package-gate evidence is
57
90
  checked by a typed workflow oracle instead of text search, proving the
58
- package gate is reachable, exact, advisory, success-gated for always-running
59
- downstream jobs and required evidence-publication steps, and ordered before
60
- evidence publication.
91
+ package gate is reachable, exact, advisory, and guarded only by absent or
92
+ exact owner-reviewed conditions for every trust-significant job and step
93
+ across the closed required CI and release inventories; dynamically false and
94
+ neutralized expressions are rejected alongside unsafe workflow run defaults,
95
+ unexpected workflow or step environment entries, gate-job defaults or
96
+ environment entries, and shell, working-directory, or
97
+ `continue-on-error` override on any step in the gate job; the gate remains
98
+ ordered before evidence publication.
61
99
  - `REQ-PROOFKIT-QUALITY-014`: release authority consumers compare downstream
62
100
  policy against the admitted typed release-authority projection and admitted
63
101
  report digest instead of rereading caller-owned raw `releaseAuthorityInput`
@@ -68,8 +106,8 @@ vulnerability absence, or consumer rollout safety by itself.
68
106
  - `REQ-PROOFKIT-QUALITY-016`: release platform targets use one private owner
69
107
  that projects platform suffixes, Go build targets, npm OS/CPU metadata,
70
108
  package tar entries, Python wheel tags, PyPI candidate completeness,
71
- self-hosting native binary selection, and SBOM binary subjects without
72
- becoming public API.
109
+ self-hosting native binary selection, SBOM binary subjects, and the exact
110
+ marker-bounded README platform matrix without becoming public API.
73
111
  - `REQ-PROOFKIT-QUALITY-017`: report-visible secret-shaped JSON traversal
74
112
  uses one private kernel owner for deterministic paths and finding kinds while
75
113
  command packages only map findings to their local report policy.
@@ -78,7 +116,13 @@ vulnerability absence, or consumer rollout safety by itself.
78
116
  npm and PyPI channels and release closeout rejects publication claims without
79
117
  that tuple.
80
118
  - `REQ-PROOFKIT-QUALITY-019`: installed package smoke proof verifies one
81
- successful JSON report command, one failed-report command, and the current
119
+ continuous offline route through every displayed family and leaf-help
120
+ transition, binds each installed invocation to its ordered exact bare Usage
121
+ command token, requires every exact generated preset command to retain the
122
+ offline npm prefix, re-executes one emitted continuation, reaches the first
123
+ valid README input, executes one successful JSON report command and one
124
+ failed-report command, applies bounded expansion-free literal parsing to
125
+ emitted and README argv, and verifies the current
82
126
  `json-report-cli-adapter-source` generated source artifact from the
83
127
  package-managed binary, including report identity, state, exit code, stdout,
84
128
  stderr discipline, generated-source hash, owner-source parity, and exact
@@ -96,16 +140,37 @@ vulnerability absence, or consumer rollout safety by itself.
96
140
  - `REQ-PROOFKIT-QUALITY-022`: the requirement workspace uses an explicit
97
141
  embedded asset set, strict authored-JavaScript type checking, exact secured
98
142
  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.
143
+ artifacts, and machine-admitted per-project rendered engine evidence for its
144
+ stable-state accessibility matrix, including independently held bootstrap,
145
+ specifications, diff, and graph loading states, target size, 320-pixel
146
+ reflow, labelled internal overflow, and light/dark rendered contrast without
147
+ runtime dependencies or a production bundler; one direct audit initializes
148
+ pinned axe code through the browser-context script channel, admits only the
149
+ main frame and exact engine identity, preserves same-origin and Playwright
150
+ branding, and runs default rules plus explicitly enabled target size, while
151
+ failed attempts retain attempt-scoped action, DOM, network, and source traces
152
+ without continuous screenshot capture plus a bounded best-effort failure
153
+ screenshot, without creating passed proof.
101
154
  - `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
155
+ platform compatibility to decoded executable bytes, and the wheel set rejects
156
+ version, identity, presence, and digest drift; wheels carry Core Metadata 2.4
157
+ plus an exact, RECORD-closed repository license payload.
158
+ - `REQ-PROOFKIT-QUALITY-024`: a closed version-bound machine record binds the
159
+ exact previous/current SemVer pair and compatible/breaking class, declares the
160
+ exact complete current breaking, addition, and migration inventories
161
+ including channel-specific generated continuation bytes, rejects missing,
162
+ substituted, reordered, or surplus entries, and owns one independently
163
+ authored byte-exact complete current release-note projection. Candidate
164
+ preflight binds npm latest to `previousVersion` for an unpublished candidate
165
+ or to `version` only after exact existing-byte-match proof. One retained-
166
+ evidence owner builds and verifies checksums against exact
107
167
  downloadable artifact-relative paths without inferring change completeness
108
168
  from the source diff.
169
+ - `REQ-PROOFKIT-QUALITY-025`: exact workflow inventory, closed raw-YAML keys
170
+ before typed decoding, exact release deployment environments, pinned action
171
+ commit identities, admitted status expressions, the required aggregate shell
172
+ program, and read-only treatment of an existing release are source-oracle
173
+ invariants.
109
174
 
110
175
  ## Non-Claims
111
176
 
@@ -25,7 +25,7 @@
25
25
  {
26
26
  "requirementId": "REQ-PROOFKIT-QUALITY-002",
27
27
  "ownerId": "proofkit.supply-chain-quality",
28
- "invariant": "Release evidence includes a deterministic SBOM for package, wheel, binary, and Go module inventory without claiming vulnerability absence or license approval.",
28
+ "invariant": "Release evidence includes a deterministic SBOM in which source and tool Go module inventory is explicitly excluded, package and wheel representations invent no runtime edges, and each required runtime dependency edge and subject digest are derived from one immutable byte snapshot read through an identity-checked pinned handle to the exact release binary that owns the edge, with a final same-handle content check, without claiming reachability, vulnerability absence, or license approval.",
29
29
  "claimLevel": "blocking",
30
30
  "riskClass": "high",
31
31
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -51,12 +51,12 @@
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, explicit output schema evolution for breaking JSON field changes, 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, complete versioned root-shape input and JSON-output variant declarations, exact source-checkout witness selectors, exact native source-path sets and requirement scenarios for every root-distinct output witness, deterministic generated help and stack-preset projections, explicit output schema evolution for breaking JSON root changes, and descriptor/contract/help parity without making private descriptors a public API; the admitted adoption-contract-envelope machine condition model uses canonical complete flag conjunctions, rejects ambiguous or incomplete assignments, closes the finite valid option space against native option admission, binds each exercised argv to its exact condition and variant, and rejects repeated mode or pilot flags or an empty pilot value rather than silently changing or misreporting the selected variant, while any later condition-model owner requires its own admitted native-closure witness; the separate pilot-admission route declares its contract-envelope stack-diverse alias and rejects repeated or mixed --pilot and --stack-diverse selectors instead of applying last-write-wins routing.",
55
55
  "claimLevel": "blocking",
56
56
  "riskClass": "high",
57
57
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
58
58
  "nonClaimRefs": ["NC-PROOFKIT-QUALITY-004"],
59
- "nonClaims": ["This requirement does not claim exhaustive command semantic completeness beyond the declared route inventory or byte-for-byte stability for diagnostics outside the public CLI ABI."],
59
+ "nonClaims": ["This requirement does not claim nested field shape, scalar type, collection cardinality, nullability, exhaustive command semantic completeness beyond the declared route inventory, installation of source-checkout witness files, runtime JSON Schema validation, or byte-for-byte stability for diagnostics outside the public CLI ABI."],
60
60
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
61
61
  "deferral": null,
62
62
  "updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
@@ -64,7 +64,7 @@
64
64
  {
65
65
  "requirementId": "REQ-PROOFKIT-QUALITY-005",
66
66
  "ownerId": "proofkit.supply-chain-quality",
67
- "invariant": "CodeQL workflow source is admitted as an independent semantic security analysis signal for Go source without replacing native Go static gates.",
67
+ "invariant": "CodeQL workflow source is admitted as an independent semantic security analysis signal for Go source; advisory analysis remains read-only, provider publication authority is isolated and disabled on pull requests, and native Go static gates remain required.",
68
68
  "claimLevel": "blocking",
69
69
  "riskClass": "medium",
70
70
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -77,7 +77,7 @@
77
77
  {
78
78
  "requirementId": "REQ-PROOFKIT-QUALITY-006",
79
79
  "ownerId": "proofkit.supply-chain-quality",
80
- "invariant": "OSV workflow source is admitted as an advisory multi-ecosystem dependency signal without replacing govulncheck reachable-code evidence.",
80
+ "invariant": "OSV workflow source is admitted as an advisory multi-ecosystem dependency signal; advisory analysis remains read-only, provider publication authority is isolated and disabled on pull requests, and govulncheck reachable-code evidence remains required.",
81
81
  "claimLevel": "blocking",
82
82
  "riskClass": "medium",
83
83
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -90,7 +90,7 @@
90
90
  {
91
91
  "requirementId": "REQ-PROOFKIT-QUALITY-007",
92
92
  "ownerId": "proofkit.supply-chain-quality",
93
- "invariant": "Scorecard workflow source is admitted as an advisory repository hygiene signal without claiming branch protection or provider settings that the repository cannot prove from source.",
93
+ "invariant": "Scorecard workflow source is admitted as an advisory repository hygiene signal; advisory analysis remains read-only, public publication authority is isolated with exact output inputs, and source does not claim branch protection or unobserved provider settings.",
94
94
  "claimLevel": "blocking",
95
95
  "riskClass": "medium",
96
96
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -129,7 +129,7 @@
129
129
  {
130
130
  "requirementId": "REQ-PROOFKIT-QUALITY-010",
131
131
  "ownerId": "proofkit.supply-chain-quality",
132
- "invariant": "Coverage metrics report requirement, binding, witness, CLI inventory linkage, and descriptor-owned command proof-route candidates from admitted test-evidence-inventory rows, failing closed on explicit requirement/proof linkage dead zones, failed command-route inventory admission, missing candidate routes, unknown command refs, contract-only commands, or route-only commands; static route metadata, prose, source markers, test existence, and failure-capable syntax remain candidate evidence and cannot satisfy semantic_falsifier coverage.",
132
+ "invariant": "Coverage metrics report requirement, binding, witness, CLI inventory linkage, and descriptor-owned command proof-route candidates from admitted test-evidence-inventory rows, failing closed independently for each requirement/proof linkage dead-zone class and each missing-candidate, unknown-candidate-ref, unknown-semantic-ref, contract-only, or route-only command-route class; source-checkout witness selectors must resolve to valid functions in active Go test files with exact executable commands and a failure-capable assertion candidate outside literal-dead branches, uninvoked closures, and skip-bearing helper paths, critical anti-vacuity scenarios must retain their exact closed selector inventories, and failed command-route inventory admission also fails closed, while static route metadata, prose, source markers, test existence, and failure-capable syntax remain candidate evidence and cannot satisfy semantic_falsifier coverage.",
133
133
  "claimLevel": "blocking",
134
134
  "riskClass": "medium",
135
135
  "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, 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.",
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 exact scalar hosted runners and provider-check names, requires the macOS job's presence-aware exact ordered step inventory and exact repository-local setup-action bytes to execute the exact fail-closed platform-smoke package-script owner command, and exposes one exact fail-closed aggregate quality gate under exact bash workflow run defaults with no inherited working-directory or environment entries; a closed inventory requires every required leaf job and step to omit conditions except for exact owner-reviewed named conditions, every required leaf job and the aggregate job omit job defaults, reusable-workflow substitution, and continue-on-error and have no job environment entries, all of their steps omit shell, working-directory, and continue-on-error and have no step environment entries, and the aggregate's reviewed expression and script require every exact required leaf check to finish with success; neutralizing wrappers, dynamically false or explicit-null conditions, execution overrides, dual run/uses keys, extra disjunctions, non-string runner labels, nested or top-level semantic shadow steps, no-op or reusable-job substitution, 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"],
@@ -168,7 +168,7 @@
168
168
  {
169
169
  "requirementId": "REQ-PROOFKIT-QUALITY-013",
170
170
  "ownerId": "proofkit.supply-chain-quality",
171
- "invariant": "Self-hosting workflow package-gate evidence is checked by a typed workflow oracle that proves the package gate is reachable, exact, advisory, success-gated for always-running downstream jobs and required evidence-publication steps, and ordered before evidence publication instead of relying on workflow text search.",
171
+ "invariant": "Self-hosting workflow package-gate evidence is checked by a typed workflow oracle that proves the package gate is reachable, exact, advisory, and guarded only by an absent condition or the exact owner-reviewed condition for every trust-significant job and step; the oracle checks the complete required CI and release job inventories, rejects neutralizing or dynamically false expression variants, requires any workflow run defaults to retain exact bash without a working-directory override, admits only the exact owner-reviewed workflow and step environment entries, requires the gate job to omit job defaults and continue-on-error and have no job environment entries, requires every step in that job to omit shell, working-directory, and continue-on-error, and orders the gate before evidence publication instead of relying on workflow text search.",
172
172
  "claimLevel": "blocking",
173
173
  "riskClass": "medium",
174
174
  "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, self-hosting native binary selection, 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, SBOM binary subjects, and the marker-bounded README platform and architecture matrix in both directions without turning the platform matrix into public API.",
211
211
  "claimLevel": "blocking",
212
212
  "riskClass": "high",
213
213
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -246,7 +246,7 @@
246
246
  {
247
247
  "requirementId": "REQ-PROOFKIT-QUALITY-019",
248
248
  "ownerId": "proofkit.supply-chain-quality",
249
- "invariant": "Installed package smoke proof verifies the package-managed binary can process explicit JSON input for one successful report command and one failed-report command, and can emit the current json-report-cli-adapter-source artifact from the installed package binary with source bytes equal to the generator owner source, preserving report kind, report id, state, explicit input counts, exit code, stdout JSON, generated-source hash, and stderr channel discipline without admitting unlisted consumer working-directory files in addition to help discoverability.",
249
+ "invariant": "Installed package smoke proof builds the current product, installs the exact local tarball, and verifies a continuous npm exec --offline route from root help through every displayed family and leaf-help transition, with each installed invocation exactly bound to its ordered bare Usage command token; it then verifies exact stack-preset vocabulary, requires every exact generated preset command string to retain the offline npm prefix, re-executes one emitted self-continuation, and continues to exactly one marker-bounded README command and JSON first input, with every emitted or README argv admitted through bounded expansion-free literal shell-word semantics before direct execution. It also verifies that the package-managed binary can process explicit JSON input for one successful report command and one failed-report command and emit the current json-report-cli-adapter-source artifact with source bytes equal to the generator owner source, preserving report kind, report id, state, explicit input counts, exit code, stdout JSON, generated-source hash, and stderr channel discipline without admitting unlisted consumer working-directory files.",
250
250
  "claimLevel": "blocking",
251
251
  "riskClass": "high",
252
252
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -285,12 +285,12 @@
285
285
  {
286
286
  "requirementId": "REQ-PROOFKIT-QUALITY-022",
287
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.",
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, and strictly type-checked without a production bundler; Go lifecycle, concurrent terminal-state, HTTP security, and repository-confined non-symlink artifact falsifiers plus one machine-admitted state-matrix execution report prove the same non-empty passed test identities in pinned Chromium, Firefox, and Playwright WebKit across independently held bootstrap, specifications, diff, and graph loading states, bootstrap failure, terminal specifications, diff, graph, unavailable views, view failure, handoff result, and handoff failure, with one direct audit initializing the pinned axe distribution through the browser-context script channel, admitting only the main frame and exact engine identity, preserving same-origin and Playwright branding, and running default rules plus explicitly enabled target-size after state identity, followed by 320 CSS-pixel document reflow, labelled internal graph and table overflow, and rendered light/dark text, boundary, and focus contrast oracles, a combined negative fixture for undersized named and normal-sized unnamed controls, bounded browser-server cleanup, attempt-scoped failed-run action, DOM, network, and source traces without continuous screenshot capture plus one bounded best-effort failure screenshot retained separately from authoritative passed proof, and no added runtime package dependencies.",
289
289
  "claimLevel": "blocking",
290
290
  "riskClass": "high",
291
291
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
292
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."],
293
+ "nonClaims": ["This requirement does not claim full WCAG 2.2 conformance, branded Safari behavior, complete screen-reader interoperability, every operating-system theme, 400-percent zoom behavior, continuous screenshot evidence, guaranteed capture of the best-effort failure screenshot, provider CI ingestion, registry publication, release approval, rollout approval, or production readiness."],
294
294
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
295
295
  "deferral": null,
296
296
  "updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
@@ -298,7 +298,7 @@
298
298
  {
299
299
  "requirementId": "REQ-PROOFKIT-QUALITY-023",
300
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.",
301
+ "invariant": "Each Python wheel binds its embedded executable to the release binary digest, and the wheel-set verifier independently rejects version drift, duplicate identities, missing files, and SHA drift; each wheel 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
302
  "claimLevel": "blocking",
303
303
  "riskClass": "critical",
304
304
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
@@ -311,12 +311,25 @@
311
311
  {
312
312
  "requirementId": "REQ-PROOFKIT-QUALITY-024",
313
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.",
314
+ "invariant": "Release metadata generation admits one closed schema-versioned machine-readable declaration of the reviewed public-contract change set, requires exact ordered equality for the complete current breaking-change, addition, and migration inventories, including channel-specific changes to public generated continuation bytes, binds its exact previous and current canonical SemVer values to a compatible or breaking change class, rejects missing, substituted, reordered, or surplus current entries plus non-monotonic or patch-range breaking releases, and renders one byte-exact independently authored complete current release-note projection with no relocated, duplicate, appended, surplus, or second owned section; release candidate preflight binds the admitted npm package identity and candidate state to registry latest so an unpublished candidate requires latest to equal previousVersion and an exact existing-byte-match candidate requires latest to equal version; release metadata promotes the npm channel to published only from a strictly admitted registry-authority record whose unique filename-keyed package set exactly matches both retained registry records and local candidate identity and bytes; one repository-owned retained-evidence builder and verifier checksum the exact final downloadable artifact topology with artifact-relative paths, reject unbound evidence files and symlink substitution, and fail release closeout on record, note, path, or digest drift.",
315
315
  "claimLevel": "blocking",
316
316
  "riskClass": "high",
317
317
  "proofBindingRefs": ["proofkit/requirement-bindings.json"],
318
318
  "nonClaimRefs": ["NC-PROOFKIT-QUALITY-024"],
319
- "nonClaims": ["This requirement does not infer change-record completeness from source changes, make release notes approval authority, or prove provider publication, attestation authenticity, consumer adoption, rollout approval, or production readiness."],
319
+ "nonClaims": ["This requirement does not infer change-record completeness from source changes, reconstruct release-history migration data before the declared support baseline, claim a cumulative release-history planner, make release notes approval authority, or prove provider publication, attestation authenticity, consumer adoption, rollout approval, or production readiness."],
320
+ "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
321
+ "deferral": null,
322
+ "updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
323
+ },
324
+ {
325
+ "requirementId": "REQ-PROOFKIT-QUALITY-025",
326
+ "ownerId": "proofkit.supply-chain-quality",
327
+ "invariant": "Every tracked GitHub Actions workflow is admitted by one exact sorted inventory and a closed raw-YAML key grammar at workflow, job, and step boundaries before typed decoding, with only exact owner-reviewed release deployment environments; every external action reference is pinned to a full lowercase 40-hex commit identity; local action references remain repository-confined; status expressions and the required CI aggregate match exact owner-reviewed forms; and an already-existing GitHub Release is a read-only object whose metadata, exact asset set, and asset bytes must match the candidate before the workflow exits successfully.",
328
+ "claimLevel": "blocking",
329
+ "riskClass": "critical",
330
+ "proofBindingRefs": ["proofkit/requirement-bindings.json"],
331
+ "nonClaimRefs": ["NC-PROOFKIT-QUALITY-025"],
332
+ "nonClaims": ["This requirement does not claim external action safety, tag equivalence, provider execution, branch-protection configuration, release publication, or provider-side asset immutability."],
320
333
  "lifecycle": {"state": "active", "replacementRequirementIds": [], "evidenceRefs": []},
321
334
  "deferral": null,
322
335
  "updatePolicy": {"reviewOwnerId": "proofkit.supply-chain-quality", "requiresImpactDeclaration": true, "requiresProofBindingReview": true}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@research-engineering/agentic-proofkit",
3
3
  "description": "Reusable proof profile, report, graph, and witness-planning primitives.",
4
- "version": "0.1.160",
4
+ "version": "0.2.1",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "sideEffects": false,
@@ -22,8 +22,6 @@
22
22
  },
23
23
  "files": [
24
24
  "ADOPTION.md",
25
- "AGENTS.md",
26
- "CONTRIBUTING.md",
27
25
  "LICENSE",
28
26
  "NON_CLAIMS.md",
29
27
  "README.md",
@@ -36,9 +34,9 @@
36
34
  ],
37
35
  "scripts": {
38
36
  "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 browser:check && npm run go:check && npm run package:artifact && npm run self:receipt && npm run self:coverage && npm run release:closeout",
37
+ "check": "npm run npm:version && npm run source-hygiene && npm run command-contract:check && npm run command-family:check && npm run text-policy && npm run mermaid:check && npm run go:check && npm run browser:check && npm run package:artifact && npm run self:receipt && npm run self:coverage && npm run release:closeout",
40
38
  "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",
39
+ "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 scripts/stable-json.test.mjs",
42
40
  "browser:test": "go run ./internal/tools/browserproofverify --run",
43
41
  "command-family:check": "go run ./internal/tools/commandfamilygen --check",
44
42
  "go:actionlint": "go tool actionlint",
@@ -48,6 +46,7 @@
48
46
  "go:test": "go test ./...",
49
47
  "go:vet": "go vet ./...",
50
48
  "npm:version": "node -e \"const {execFileSync}=require('node:child_process'); const expected=require('./package.json').packageManager.split('@').at(-1); const actual=execFileSync('npm',['--version'],{encoding:'utf8'}).trim(); if(actual!==expected){throw new Error('expected npm '+expected+', got '+actual)}\"",
49
+ "npm:registry-evidence": "go run ./internal/tools/npmregistry",
51
50
  "package:artifact": "go run ./internal/tools/packageartifact",
52
51
  "package:artifact:steps": "npm run build && go run ./internal/tools/packagepack && go run ./internal/tools/packageverify && npm run python:package && npm run python:verify && npm run release:manifest",
53
52
  "platform:smoke": "go run ./internal/tools/packagebuild current && ./dist/agentic-proofkit --help >/dev/null && go run ./internal/tools/pythonpackage build-current && go run ./internal/tools/pythonpackage verify-current",
@@ -63,7 +62,8 @@
63
62
  "text-policy": "go run ./internal/tools/textpolicyinput | go run ./cmd/agentic-proofkit text-policy --input -",
64
63
  "mermaid:check": "go run ./internal/tools/mermaidcheck",
65
64
  "go:staticcheck": "go tool staticcheck ./...",
66
- "go:vulncheck": "go tool govulncheck ./..."
65
+ "go:vulncheck": "go tool govulncheck ./...",
66
+ "command-contract:check": "go run ./internal/tools/commandcontractgen --check"
67
67
  },
68
68
  "os": [
69
69
  "darwin",
@@ -74,8 +74,8 @@
74
74
  "x64"
75
75
  ],
76
76
  "devDependencies": {
77
- "@axe-core/playwright": "4.12.1",
78
- "@playwright/test": "1.61.1",
77
+ "@playwright/test": "1.62.0",
78
+ "axe-core": "4.12.1",
79
79
  "typescript": "7.0.2"
80
80
  }
81
81
  }