@research-engineering/agentic-proofkit 0.1.136
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ADOPTION.md +198 -0
- package/AGENTS.md +160 -0
- package/BACKLOG.md +217 -0
- package/CONTRIBUTING.md +70 -0
- package/LICENSE +21 -0
- package/NON_CLAIMS.md +45 -0
- package/README.md +50 -0
- package/SECURITY.md +52 -0
- package/dist/agentic-proofkit +36 -0
- package/dist/platform/darwin-arm64/agentic-proofkit +0 -0
- package/dist/platform/darwin-x64/agentic-proofkit +0 -0
- package/dist/platform/linux-arm64/agentic-proofkit +0 -0
- package/dist/platform/linux-x64/agentic-proofkit +0 -0
- package/docs/proofkit-contract-map.md +148 -0
- package/docs/release-process.md +228 -0
- package/docs/specs/proofkit-consumer-infra-retirement/overview.md +62 -0
- package/docs/specs/proofkit-consumer-infra-retirement/requirements.v1.json +283 -0
- package/docs/specs/proofkit-package-boundary/overview.md +43 -0
- package/docs/specs/proofkit-package-boundary/requirements.v1.json +176 -0
- package/docs/specs/proofkit-receipt-authority/overview.md +35 -0
- package/docs/specs/proofkit-receipt-authority/requirements.v1.json +121 -0
- package/docs/specs/proofkit-spec-proof-core/overview.md +98 -0
- package/docs/specs/proofkit-spec-proof-core/requirements.v1.json +448 -0
- package/docs/specs/proofkit-supply-chain-quality/overview.md +95 -0
- package/docs/specs/proofkit-supply-chain-quality/requirements.v1.json +260 -0
- package/package.json +71 -0
- package/proofkit/cli-contract.v1.json +1601 -0
- package/proofkit/receipt-producer-policy.json +49 -0
- package/proofkit/requirement-bindings.json +1914 -0
- package/proofkit/witness-plan.json +1226 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Proofkit Spec-Proof Core Spec
|
|
2
|
+
|
|
3
|
+
This spec owns Proofkit's reusable spec-to-proof primitives: requirement source
|
|
4
|
+
admission, requirement proof bindings, witness planning, selective proof
|
|
5
|
+
planning, selective evidence admission, rendered proof views, and bounded agent
|
|
6
|
+
envelopes.
|
|
7
|
+
|
|
8
|
+
It is intentionally infrastructure-only. Consumers provide requirement
|
|
9
|
+
sentences, proof bindings, changed-path facts, command policy, native witnesses,
|
|
10
|
+
execution receipts, and merge policy.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- `REQ-PROOFKIT-SPEC-001`: requirement source admission validates structured
|
|
15
|
+
`REQ-*` records and source-package shape without owning requirement meaning
|
|
16
|
+
or scanning overview prose as authority.
|
|
17
|
+
- `REQ-PROOFKIT-SPEC-002`: requirement proof binding reports validate
|
|
18
|
+
caller-owned requirement-to-witness mappings, require compact scenarios to be
|
|
19
|
+
admitted `surface_id::stable_anchor` identities, require compact witness
|
|
20
|
+
selectors to use `repo/path::stable_anchor` identities, admit caller-owned
|
|
21
|
+
source-set fragments and selected-source resolver projections, and derive
|
|
22
|
+
typed compact proof contract projections for surfaces, scenarios, witnesses,
|
|
23
|
+
commands, environment classes, conformance facts, and falsification routes
|
|
24
|
+
without executing witnesses or deciding proof freshness.
|
|
25
|
+
- `REQ-PROOFKIT-SPEC-003`: witness planning accepts caller-owned structured
|
|
26
|
+
command metadata, scheduler constraints, and environment classes without
|
|
27
|
+
executing commands or selecting repository policy.
|
|
28
|
+
- `REQ-PROOFKIT-SPEC-004`: selective planning and selective evidence reports
|
|
29
|
+
keep changed-path facts, planned commands, receipts, evidence class,
|
|
30
|
+
producer-admission state, and obligation candidates explicit, keep merge
|
|
31
|
+
approval consumer-owned, and fail closed for unknown or unmatched proof
|
|
32
|
+
inputs.
|
|
33
|
+
- `REQ-PROOFKIT-SPEC-005`: rendered proof views and agent envelopes remain
|
|
34
|
+
bounded, derived presentations over structured source and never become
|
|
35
|
+
canonical proof or requirement authority.
|
|
36
|
+
- `REQ-PROOFKIT-SPEC-006`: test evidence inventory, proof-binding-derived
|
|
37
|
+
inventory projections, normalized inventory projections, coverage-view input
|
|
38
|
+
composition, and requirement coverage views classify or assemble
|
|
39
|
+
caller-owned test-to-requirement, command, witness, owner-invariant,
|
|
40
|
+
quality-finding, and declared-surface routes, preserve source-set entry
|
|
41
|
+
provenance, fail closed on structured selector/sourcePath drift, command-ref
|
|
42
|
+
collisions, missing requirement owners, scope widening, fabricated normalized
|
|
43
|
+
inventory, nonsemantic command evidence, and declared dead zones in
|
|
44
|
+
selected-owner or full-repository scopes, and do not treat proof routes,
|
|
45
|
+
nonsemantic command evidence, normalized projections, composed inputs, or
|
|
46
|
+
rendered views as semantic test coverage.
|
|
47
|
+
- `REQ-PROOFKIT-SPEC-007`: caller-owned inputs are admitted into canonical
|
|
48
|
+
immutable records before any proof, policy, route, rendering, or report
|
|
49
|
+
decision consumes them.
|
|
50
|
+
- `REQ-PROOFKIT-SPEC-008`: requirement spec tree admission validates explicit
|
|
51
|
+
caller-owned spec hierarchy, source-reference modes, digest facts, overlay
|
|
52
|
+
refs, deterministic output, and tree topology without scanning repositories,
|
|
53
|
+
reading sources, rendering views, or owning requirement/proof semantics.
|
|
54
|
+
- `REQ-PROOFKIT-SPEC-009`: requirement spec tree views render admitted
|
|
55
|
+
caller-owned hierarchy through shared safe browser document fragments,
|
|
56
|
+
deterministic CLI JSON, Markdown, HTML, explicit output paths, and loopback
|
|
57
|
+
browser serving without accepting caller-owned raw HTML or making rendered
|
|
58
|
+
output authoritative.
|
|
59
|
+
- `REQ-PROOFKIT-SPEC-010`: requirement impact input composition converts
|
|
60
|
+
caller-owned base/current requirement sources, single-current-binding compact
|
|
61
|
+
proof contracts, changed-path facts, generated-artifact policy, local
|
|
62
|
+
environment policy, and proof-like path policy into a direct `impact` input
|
|
63
|
+
without scanning repositories, executing witnesses, or becoming a second
|
|
64
|
+
impact evaluator.
|
|
65
|
+
- `REQ-PROOFKIT-SPEC-011`: adoption contract envelope admission validates a
|
|
66
|
+
complete caller-owned aggregate adoption envelope, selects one child route
|
|
67
|
+
through orthogonal CLI flags, and delegates to existing child command
|
|
68
|
+
contracts without becoming a second adoption readiness policy.
|
|
69
|
+
- `REQ-PROOFKIT-SPEC-012`: requirement authoring plans package caller-provided
|
|
70
|
+
design, implementation, PR, code, test, and clarification facts into
|
|
71
|
+
candidate-only requirement updates, delegate structural checks to requirement
|
|
72
|
+
source admission and transition, and keep owner review/materialization outside
|
|
73
|
+
Proofkit.
|
|
74
|
+
- `REQ-PROOFKIT-SPEC-013`: repeated cross-command proof vocabulary has one
|
|
75
|
+
private owner for proof and selective-edge state while command-local and
|
|
76
|
+
caller-owned vocabularies stay outside the shared owner.
|
|
77
|
+
- `REQ-PROOFKIT-SPEC-014`: document lifecycle boundary reports classify
|
|
78
|
+
caller-owned document lifecycle metadata so temporary, historical, generated,
|
|
79
|
+
rendered, router, work-ledger, and durable documents cannot silently retain
|
|
80
|
+
the wrong authority role.
|
|
81
|
+
- `REQ-PROOFKIT-SPEC-015`: spec overview claim reports validate
|
|
82
|
+
caller-provided overview claim extraction facts so durable overview claims
|
|
83
|
+
cite known requirement records and non-durable claims remain non-normative.
|
|
84
|
+
- `REQ-PROOFKIT-SPEC-016`: requirement source transition reports validate
|
|
85
|
+
caller-provided previous and next source snapshots so lifecycle changes are
|
|
86
|
+
monotonic, evidence-backed, package-boundary-stable, and repository-neutral.
|
|
87
|
+
|
|
88
|
+
## Non-Claims
|
|
89
|
+
|
|
90
|
+
- This spec does not claim consumer repository adoption.
|
|
91
|
+
- This spec does not claim native witness execution.
|
|
92
|
+
- This spec does not authenticate receipt producers or compute proof freshness.
|
|
93
|
+
- This spec does not approve merge, release, registry publication, rollout, or
|
|
94
|
+
production readiness.
|
|
95
|
+
- This spec does not approve document deletion or infer document meaning from
|
|
96
|
+
Markdown prose.
|
|
97
|
+
- This spec does not prove overview-claim extractor completeness.
|
|
98
|
+
- This spec does not discover source diffs or approve requirement deletion.
|
|
@@ -0,0 +1,448 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"sourceId": "proofkit.spec-proof-core.requirements",
|
|
4
|
+
"specPackagePath": "docs/specs/proofkit-spec-proof-core",
|
|
5
|
+
"overviewPath": "docs/specs/proofkit-spec-proof-core/overview.md",
|
|
6
|
+
"requirementsPath": "docs/specs/proofkit-spec-proof-core/requirements.v1.json",
|
|
7
|
+
"requirements": [
|
|
8
|
+
{
|
|
9
|
+
"requirementId": "REQ-PROOFKIT-SPEC-001",
|
|
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.",
|
|
12
|
+
"claimLevel": "blocking",
|
|
13
|
+
"riskClass": "high",
|
|
14
|
+
"proofBindingRefs": [
|
|
15
|
+
"proofkit/requirement-bindings.json"
|
|
16
|
+
],
|
|
17
|
+
"nonClaimRefs": [
|
|
18
|
+
"NC-PROOFKIT-SPEC-001"
|
|
19
|
+
],
|
|
20
|
+
"nonClaims": [
|
|
21
|
+
"This requirement does not claim product requirement meaning, proof freshness, native witness execution, or overview prose authority."
|
|
22
|
+
],
|
|
23
|
+
"lifecycle": {
|
|
24
|
+
"state": "active",
|
|
25
|
+
"replacementRequirementIds": [],
|
|
26
|
+
"evidenceRefs": []
|
|
27
|
+
},
|
|
28
|
+
"deferral": null,
|
|
29
|
+
"updatePolicy": {
|
|
30
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
31
|
+
"requiresImpactDeclaration": true,
|
|
32
|
+
"requiresProofBindingReview": true
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"requirementId": "REQ-PROOFKIT-SPEC-002",
|
|
37
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
38
|
+
"invariant": "Requirement proof binding reports validate caller-owned requirement-to-witness mappings, require compact scenarios to use admitted surface_id::stable_anchor identities, require compact witness selectors to use admitted repo/path::stable_anchor identities, admit caller-owned source-set fragments and selected-source resolver projections, and derive typed compact proof contract projections for surfaces, scenarios, witnesses, commands, environment classes, conformance facts, and falsification routes without executing witnesses or deciding proof freshness.",
|
|
39
|
+
"claimLevel": "blocking",
|
|
40
|
+
"riskClass": "high",
|
|
41
|
+
"proofBindingRefs": [
|
|
42
|
+
"proofkit/requirement-bindings.json"
|
|
43
|
+
],
|
|
44
|
+
"nonClaimRefs": [
|
|
45
|
+
"NC-PROOFKIT-SPEC-002"
|
|
46
|
+
],
|
|
47
|
+
"nonClaims": [
|
|
48
|
+
"This requirement does not claim native witness pass evidence, proof freshness, receipt authenticity, or merge approval."
|
|
49
|
+
],
|
|
50
|
+
"lifecycle": {
|
|
51
|
+
"state": "active",
|
|
52
|
+
"replacementRequirementIds": [],
|
|
53
|
+
"evidenceRefs": []
|
|
54
|
+
},
|
|
55
|
+
"deferral": null,
|
|
56
|
+
"updatePolicy": {
|
|
57
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
58
|
+
"requiresImpactDeclaration": true,
|
|
59
|
+
"requiresProofBindingReview": true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"requirementId": "REQ-PROOFKIT-SPEC-003",
|
|
64
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
65
|
+
"invariant": "Witness planning accepts caller-owned structured command metadata, scheduler constraints, and environment classes without executing commands or selecting repository policy.",
|
|
66
|
+
"claimLevel": "blocking",
|
|
67
|
+
"riskClass": "high",
|
|
68
|
+
"proofBindingRefs": [
|
|
69
|
+
"proofkit/requirement-bindings.json"
|
|
70
|
+
],
|
|
71
|
+
"nonClaimRefs": [
|
|
72
|
+
"NC-PROOFKIT-SPEC-003"
|
|
73
|
+
],
|
|
74
|
+
"nonClaims": [
|
|
75
|
+
"This requirement does not claim command execution, CI scheduling authority, credential approval, or repository-specific command policy."
|
|
76
|
+
],
|
|
77
|
+
"lifecycle": {
|
|
78
|
+
"state": "active",
|
|
79
|
+
"replacementRequirementIds": [],
|
|
80
|
+
"evidenceRefs": []
|
|
81
|
+
},
|
|
82
|
+
"deferral": null,
|
|
83
|
+
"updatePolicy": {
|
|
84
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
85
|
+
"requiresImpactDeclaration": true,
|
|
86
|
+
"requiresProofBindingReview": true
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"requirementId": "REQ-PROOFKIT-SPEC-004",
|
|
91
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
92
|
+
"invariant": "Selective planning and selective evidence reports keep changed-path facts, planned commands, receipts, evidence class, producer-admission state, and obligation candidates explicit, keep merge approval consumer-owned, and fail closed for unknown or unmatched proof inputs.",
|
|
93
|
+
"claimLevel": "blocking",
|
|
94
|
+
"riskClass": "high",
|
|
95
|
+
"proofBindingRefs": [
|
|
96
|
+
"proofkit/requirement-bindings.json"
|
|
97
|
+
],
|
|
98
|
+
"nonClaimRefs": [
|
|
99
|
+
"NC-PROOFKIT-SPEC-004"
|
|
100
|
+
],
|
|
101
|
+
"nonClaims": [
|
|
102
|
+
"This requirement does not claim changed-path completeness, command success, receipt authenticity, proof freshness, or approval to skip caller-owned gates."
|
|
103
|
+
],
|
|
104
|
+
"lifecycle": {
|
|
105
|
+
"state": "active",
|
|
106
|
+
"replacementRequirementIds": [],
|
|
107
|
+
"evidenceRefs": []
|
|
108
|
+
},
|
|
109
|
+
"deferral": null,
|
|
110
|
+
"updatePolicy": {
|
|
111
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
112
|
+
"requiresImpactDeclaration": true,
|
|
113
|
+
"requiresProofBindingReview": true
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"requirementId": "REQ-PROOFKIT-SPEC-005",
|
|
118
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
119
|
+
"invariant": "Rendered proof views and agent envelopes remain bounded, derived presentations over structured source and never become canonical proof or requirement authority.",
|
|
120
|
+
"claimLevel": "blocking",
|
|
121
|
+
"riskClass": "medium",
|
|
122
|
+
"proofBindingRefs": [
|
|
123
|
+
"proofkit/requirement-bindings.json"
|
|
124
|
+
],
|
|
125
|
+
"nonClaimRefs": [
|
|
126
|
+
"NC-PROOFKIT-SPEC-005"
|
|
127
|
+
],
|
|
128
|
+
"nonClaims": [
|
|
129
|
+
"This requirement does not claim generated view authority, full graph context emission, proof freshness, or agent edit approval."
|
|
130
|
+
],
|
|
131
|
+
"lifecycle": {
|
|
132
|
+
"state": "active",
|
|
133
|
+
"replacementRequirementIds": [],
|
|
134
|
+
"evidenceRefs": []
|
|
135
|
+
},
|
|
136
|
+
"deferral": null,
|
|
137
|
+
"updatePolicy": {
|
|
138
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
139
|
+
"requiresImpactDeclaration": true,
|
|
140
|
+
"requiresProofBindingReview": true
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"requirementId": "REQ-PROOFKIT-SPEC-006",
|
|
145
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
146
|
+
"invariant": "Test evidence inventory, proof-binding-derived inventory projections, normalized inventory projections, coverage-view input composition, and requirement coverage views classify or assemble caller-owned test-to-requirement, command, witness, owner-invariant, quality-finding, and declared-surface routes with stable machine-readable failure and warning classifications while preserving source-set entry provenance, failing closed on structured selector/sourcePath drift, command-ref collisions, missing requirement owners, scope widening, fabricated normalized inventory, nonsemantic command evidence, and declared dead zones in selected-owner or full-repository scopes, and without treating proof routes, nonsemantic command evidence, normalized projections, composed inputs, or rendered views as semantic test coverage.",
|
|
147
|
+
"claimLevel": "blocking",
|
|
148
|
+
"riskClass": "high",
|
|
149
|
+
"proofBindingRefs": [
|
|
150
|
+
"proofkit/requirement-bindings.json"
|
|
151
|
+
],
|
|
152
|
+
"nonClaimRefs": [
|
|
153
|
+
"NC-PROOFKIT-SPEC-006"
|
|
154
|
+
],
|
|
155
|
+
"nonClaims": [
|
|
156
|
+
"This requirement does not claim repository scanning, native test execution, proof freshness, receipt authenticity, merge approval, or global coverage completeness outside the caller-provided universe."
|
|
157
|
+
],
|
|
158
|
+
"lifecycle": {
|
|
159
|
+
"state": "active",
|
|
160
|
+
"replacementRequirementIds": [],
|
|
161
|
+
"evidenceRefs": []
|
|
162
|
+
},
|
|
163
|
+
"deferral": null,
|
|
164
|
+
"updatePolicy": {
|
|
165
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
166
|
+
"requiresImpactDeclaration": true,
|
|
167
|
+
"requiresProofBindingReview": true
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"requirementId": "REQ-PROOFKIT-SPEC-007",
|
|
172
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
173
|
+
"invariant": "Proofkit commands admit caller-owned inputs into canonical immutable records before proof, policy, route, rendering, or report decisions consume them.",
|
|
174
|
+
"claimLevel": "blocking",
|
|
175
|
+
"riskClass": "high",
|
|
176
|
+
"proofBindingRefs": [
|
|
177
|
+
"proofkit/requirement-bindings.json"
|
|
178
|
+
],
|
|
179
|
+
"nonClaimRefs": [
|
|
180
|
+
"NC-PROOFKIT-SPEC-007"
|
|
181
|
+
],
|
|
182
|
+
"nonClaims": [
|
|
183
|
+
"This requirement does not claim consumer repository input authenticity, producer trust, native witness execution, proof freshness, merge approval, or mutable source control outside caller-provided Proofkit inputs."
|
|
184
|
+
],
|
|
185
|
+
"lifecycle": {
|
|
186
|
+
"state": "active",
|
|
187
|
+
"replacementRequirementIds": [],
|
|
188
|
+
"evidenceRefs": []
|
|
189
|
+
},
|
|
190
|
+
"deferral": null,
|
|
191
|
+
"updatePolicy": {
|
|
192
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
193
|
+
"requiresImpactDeclaration": true,
|
|
194
|
+
"requiresProofBindingReview": true
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"requirementId": "REQ-PROOFKIT-SPEC-008",
|
|
199
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
200
|
+
"invariant": "Requirement spec tree admission validates caller-owned meta, module, submodule, and capability spec hierarchy, source-reference modes, digest facts, overlay refs, deterministic output, and tree topology without scanning repositories, reading requirement sources, rendering views, or owning requirement/proof semantics.",
|
|
201
|
+
"claimLevel": "blocking",
|
|
202
|
+
"riskClass": "high",
|
|
203
|
+
"proofBindingRefs": [
|
|
204
|
+
"proofkit/requirement-bindings.json"
|
|
205
|
+
],
|
|
206
|
+
"nonClaimRefs": [
|
|
207
|
+
"NC-PROOFKIT-SPEC-008"
|
|
208
|
+
],
|
|
209
|
+
"nonClaims": [
|
|
210
|
+
"This requirement does not claim repository scanning, requirement meaning, source freshness computation, rendered output authority, native witness execution, proof adequacy, merge approval, release approval, rollout approval, or production readiness."
|
|
211
|
+
],
|
|
212
|
+
"lifecycle": {
|
|
213
|
+
"state": "active",
|
|
214
|
+
"replacementRequirementIds": [],
|
|
215
|
+
"evidenceRefs": []
|
|
216
|
+
},
|
|
217
|
+
"deferral": null,
|
|
218
|
+
"updatePolicy": {
|
|
219
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
220
|
+
"requiresImpactDeclaration": true,
|
|
221
|
+
"requiresProofBindingReview": true
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"requirementId": "REQ-PROOFKIT-SPEC-009",
|
|
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.",
|
|
228
|
+
"claimLevel": "blocking",
|
|
229
|
+
"riskClass": "high",
|
|
230
|
+
"proofBindingRefs": [
|
|
231
|
+
"proofkit/requirement-bindings.json"
|
|
232
|
+
],
|
|
233
|
+
"nonClaimRefs": [
|
|
234
|
+
"NC-PROOFKIT-SPEC-009"
|
|
235
|
+
],
|
|
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."
|
|
238
|
+
],
|
|
239
|
+
"lifecycle": {
|
|
240
|
+
"state": "active",
|
|
241
|
+
"replacementRequirementIds": [],
|
|
242
|
+
"evidenceRefs": []
|
|
243
|
+
},
|
|
244
|
+
"deferral": null,
|
|
245
|
+
"updatePolicy": {
|
|
246
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
247
|
+
"requiresImpactDeclaration": true,
|
|
248
|
+
"requiresProofBindingReview": true
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"requirementId": "REQ-PROOFKIT-SPEC-010",
|
|
253
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
254
|
+
"invariant": "Requirement impact input composition converts caller-owned base and current requirement sources, single-current-binding compact proof contracts, changed-path facts, generated-artifact policy, local environment policy, and proof-like path policy into a direct impact command input while preserving downstream impact semantics and without scanning repositories, executing witnesses, deciding freshness, or becoming a second impact evaluator.",
|
|
255
|
+
"claimLevel": "blocking",
|
|
256
|
+
"riskClass": "high",
|
|
257
|
+
"proofBindingRefs": [
|
|
258
|
+
"proofkit/requirement-bindings.json"
|
|
259
|
+
],
|
|
260
|
+
"nonClaimRefs": [
|
|
261
|
+
"NC-PROOFKIT-SPEC-010"
|
|
262
|
+
],
|
|
263
|
+
"nonClaims": [
|
|
264
|
+
"This requirement does not claim changed-path completeness, generated-artifact verifier completeness, native witness execution, proof freshness, receipt authenticity, merge approval, release approval, rollout approval, or production readiness."
|
|
265
|
+
],
|
|
266
|
+
"lifecycle": {
|
|
267
|
+
"state": "active",
|
|
268
|
+
"replacementRequirementIds": [],
|
|
269
|
+
"evidenceRefs": []
|
|
270
|
+
},
|
|
271
|
+
"deferral": null,
|
|
272
|
+
"updatePolicy": {
|
|
273
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
274
|
+
"requiresImpactDeclaration": true,
|
|
275
|
+
"requiresProofBindingReview": true
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"requirementId": "REQ-PROOFKIT-SPEC-011",
|
|
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.",
|
|
282
|
+
"claimLevel": "blocking",
|
|
283
|
+
"riskClass": "high",
|
|
284
|
+
"proofBindingRefs": [
|
|
285
|
+
"proofkit/requirement-bindings.json"
|
|
286
|
+
],
|
|
287
|
+
"nonClaimRefs": [
|
|
288
|
+
"NC-PROOFKIT-SPEC-011"
|
|
289
|
+
],
|
|
290
|
+
"nonClaims": [
|
|
291
|
+
"This requirement does not claim consumer file materialization, native witness execution, proof freshness, receipt authenticity, merge approval, release approval, rollout approval, or production readiness."
|
|
292
|
+
],
|
|
293
|
+
"lifecycle": {
|
|
294
|
+
"state": "active",
|
|
295
|
+
"replacementRequirementIds": [],
|
|
296
|
+
"evidenceRefs": []
|
|
297
|
+
},
|
|
298
|
+
"deferral": null,
|
|
299
|
+
"updatePolicy": {
|
|
300
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
301
|
+
"requiresImpactDeclaration": true,
|
|
302
|
+
"requiresProofBindingReview": true
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"requirementId": "REQ-PROOFKIT-SPEC-012",
|
|
307
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
308
|
+
"invariant": "Requirement authoring plans admit caller-provided design, implementation, pull request, code, test, and clarification facts into candidate-only requirement updates, delegate candidate source and lifecycle checks to requirement-source admission and transition, and emit owner-review plans without reading repositories, writing files, inferring requirement meaning, or approving promotion.",
|
|
309
|
+
"claimLevel": "blocking",
|
|
310
|
+
"riskClass": "high",
|
|
311
|
+
"proofBindingRefs": [
|
|
312
|
+
"proofkit/requirement-bindings.json"
|
|
313
|
+
],
|
|
314
|
+
"nonClaimRefs": [
|
|
315
|
+
"NC-PROOFKIT-SPEC-012"
|
|
316
|
+
],
|
|
317
|
+
"nonClaims": [
|
|
318
|
+
"This requirement does not claim extraction completeness, requirement meaning, file materialization, proof-binding adequacy, native witness execution, proof freshness, merge approval, release approval, rollout approval, or production readiness."
|
|
319
|
+
],
|
|
320
|
+
"lifecycle": {
|
|
321
|
+
"state": "active",
|
|
322
|
+
"replacementRequirementIds": [],
|
|
323
|
+
"evidenceRefs": []
|
|
324
|
+
},
|
|
325
|
+
"deferral": null,
|
|
326
|
+
"updatePolicy": {
|
|
327
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
328
|
+
"requiresImpactDeclaration": true,
|
|
329
|
+
"requiresProofBindingReview": true
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"requirementId": "REQ-PROOFKIT-SPEC-013",
|
|
334
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
335
|
+
"invariant": "Repeated cross-command proof vocabulary has one private owner for receipt statuses, merge-satisfaction classes, obligation classes, obligation decision states, selective unknown-edge classes, and selective unknown-edge coverage states, while command-local and caller-owned vocabularies remain outside the shared owner.",
|
|
336
|
+
"claimLevel": "blocking",
|
|
337
|
+
"riskClass": "medium",
|
|
338
|
+
"proofBindingRefs": [
|
|
339
|
+
"proofkit/requirement-bindings.json"
|
|
340
|
+
],
|
|
341
|
+
"nonClaimRefs": [
|
|
342
|
+
"NC-PROOFKIT-SPEC-013"
|
|
343
|
+
],
|
|
344
|
+
"nonClaims": [
|
|
345
|
+
"This requirement does not claim public SDK vocabulary, consumer policy ownership, merge approval, receipt freshness, producer authentication, native witness execution, or ownership of one-command local vocabularies."
|
|
346
|
+
],
|
|
347
|
+
"lifecycle": {
|
|
348
|
+
"state": "active",
|
|
349
|
+
"replacementRequirementIds": [],
|
|
350
|
+
"evidenceRefs": []
|
|
351
|
+
},
|
|
352
|
+
"deferral": null,
|
|
353
|
+
"updatePolicy": {
|
|
354
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
355
|
+
"requiresImpactDeclaration": true,
|
|
356
|
+
"requiresProofBindingReview": true
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"requirementId": "REQ-PROOFKIT-SPEC-014",
|
|
361
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
362
|
+
"invariant": "Document lifecycle boundary reports validate caller-owned lifecycle metadata so active PR-local temporary documents, retained temporary documents, archived documents, generated lookup documents, rendered views, primary routers, work ledgers, and current durable documents keep the admitted authority role, routing role, source refs, freshness refs, forbidden payload boundaries, and non-claims for their lifecycle state without reading Markdown, approving deletion, proving generated freshness, or deciding document meaning.",
|
|
363
|
+
"claimLevel": "blocking",
|
|
364
|
+
"riskClass": "medium",
|
|
365
|
+
"proofBindingRefs": [
|
|
366
|
+
"proofkit/requirement-bindings.json"
|
|
367
|
+
],
|
|
368
|
+
"nonClaimRefs": [
|
|
369
|
+
"NC-PROOFKIT-SPEC-014"
|
|
370
|
+
],
|
|
371
|
+
"nonClaims": [
|
|
372
|
+
"This requirement does not claim Markdown semantic extraction, generated artifact freshness, document deletion approval, merge approval, release approval, rollout approval, or production readiness."
|
|
373
|
+
],
|
|
374
|
+
"lifecycle": {
|
|
375
|
+
"state": "active",
|
|
376
|
+
"replacementRequirementIds": [],
|
|
377
|
+
"evidenceRefs": []
|
|
378
|
+
},
|
|
379
|
+
"deferral": null,
|
|
380
|
+
"updatePolicy": {
|
|
381
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
382
|
+
"requiresImpactDeclaration": true,
|
|
383
|
+
"requiresProofBindingReview": true
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"requirementId": "REQ-PROOFKIT-SPEC-015",
|
|
388
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
389
|
+
"invariant": "Spec overview claim reports validate caller-provided overview claim extraction facts so overviewPath and requirementsPath match the spec package, durable overview claims cite at least one known requirement id, non-durable overview claims carry no requirement citations, and extraction refs, line digests, detected markers, rationale, and non-claims are explicit without reading Markdown, proving extractor completeness, validating requirement source records, deciding semantic support, or approving merge.",
|
|
390
|
+
"claimLevel": "blocking",
|
|
391
|
+
"riskClass": "medium",
|
|
392
|
+
"proofBindingRefs": [
|
|
393
|
+
"proofkit/requirement-bindings.json"
|
|
394
|
+
],
|
|
395
|
+
"nonClaimRefs": [
|
|
396
|
+
"NC-PROOFKIT-SPEC-015"
|
|
397
|
+
],
|
|
398
|
+
"nonClaims": [
|
|
399
|
+
"This requirement does not claim Markdown reading, claim extractor completeness, requirement source validity, semantic support between overview prose and cited requirements, merge approval, release approval, rollout approval, or production readiness."
|
|
400
|
+
],
|
|
401
|
+
"lifecycle": {
|
|
402
|
+
"state": "active",
|
|
403
|
+
"replacementRequirementIds": [],
|
|
404
|
+
"evidenceRefs": []
|
|
405
|
+
},
|
|
406
|
+
"deferral": null,
|
|
407
|
+
"updatePolicy": {
|
|
408
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
409
|
+
"requiresImpactDeclaration": true,
|
|
410
|
+
"requiresProofBindingReview": true
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"requirementId": "REQ-PROOFKIT-SPEC-016",
|
|
415
|
+
"ownerId": "proofkit.spec-proof-core",
|
|
416
|
+
"invariant": "Requirement source transition reports validate caller-provided previous and next requirement source snapshots so both snapshots pass requirement source admission, both snapshots describe the same sourceId, specPackagePath, overviewPath, and requirementsPath, previous durable requirement records remain present, new requirements start active, terminal removed or superseded states and terminal superseded replacement sets do not change, deprecation, removal, supersession, and reactivation carry new lifecycle evidence, replacement targets are active in the next admitted source, and prior lifecycle evidence and replacement refs are preserved without discovering diffs, proving replacement semantic equivalence, executing witnesses, computing freshness, approving deletion, or approving merge.",
|
|
417
|
+
"claimLevel": "blocking",
|
|
418
|
+
"riskClass": "medium",
|
|
419
|
+
"proofBindingRefs": [
|
|
420
|
+
"proofkit/requirement-bindings.json"
|
|
421
|
+
],
|
|
422
|
+
"nonClaimRefs": [
|
|
423
|
+
"NC-PROOFKIT-SPEC-016"
|
|
424
|
+
],
|
|
425
|
+
"nonClaims": [
|
|
426
|
+
"This requirement does not claim git diff discovery, replacement semantic equivalence, native witness execution, receipt freshness, requirement deletion approval, merge approval, release approval, rollout approval, or production readiness."
|
|
427
|
+
],
|
|
428
|
+
"lifecycle": {
|
|
429
|
+
"state": "active",
|
|
430
|
+
"replacementRequirementIds": [],
|
|
431
|
+
"evidenceRefs": []
|
|
432
|
+
},
|
|
433
|
+
"deferral": null,
|
|
434
|
+
"updatePolicy": {
|
|
435
|
+
"reviewOwnerId": "proofkit.spec-proof-core",
|
|
436
|
+
"requiresImpactDeclaration": true,
|
|
437
|
+
"requiresProofBindingReview": true
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
],
|
|
441
|
+
"nonClaims": [
|
|
442
|
+
"Consumers still own requirement meaning, command policy, native witness execution, receipts, CI admission, and rollout decisions.",
|
|
443
|
+
"Proofkit spec-proof core requirements describe reusable infrastructure primitives only.",
|
|
444
|
+
"Proofkit spec-proof core requirements do not approve document deletion or infer document meaning from Markdown prose.",
|
|
445
|
+
"Proofkit spec-proof core requirements do not discover source diffs or approve requirement deletion.",
|
|
446
|
+
"Proofkit spec-proof core requirements do not prove overview-claim extractor completeness."
|
|
447
|
+
]
|
|
448
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Proofkit Supply-Chain And Quality Spec
|
|
2
|
+
|
|
3
|
+
This spec owns Proofkit's reusable supply-chain, release-provenance, CLI
|
|
4
|
+
contract, property-test, performance-evidence, security-signal, and coverage
|
|
5
|
+
metrics requirements.
|
|
6
|
+
|
|
7
|
+
It is intentionally evidence-focused. Native tests, release workflows, advisory
|
|
8
|
+
security workflows, and generated evidence files are distinct proof classes.
|
|
9
|
+
No single green check proves release readiness, public-source provenance,
|
|
10
|
+
vulnerability absence, or consumer rollout safety by itself.
|
|
11
|
+
|
|
12
|
+
## Requirements
|
|
13
|
+
|
|
14
|
+
- `REQ-PROOFKIT-QUALITY-001`: release artifacts carry deterministic digest
|
|
15
|
+
inventory and optional GitHub artifact attestations without claiming
|
|
16
|
+
public-source provenance before a public-source tag release exists.
|
|
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.
|
|
20
|
+
- `REQ-PROOFKIT-QUALITY-003`: pure parser and canonicalization boundaries have
|
|
21
|
+
fuzz/property tests that prove no-panic and round-trip stability without
|
|
22
|
+
fuzzing side-effecting CLI or filesystem flows.
|
|
23
|
+
- `REQ-PROOFKIT-QUALITY-004`: public CLI ABI has a small golden corpus and
|
|
24
|
+
canonical ABI hash covering command topology, exit code, stdout/stderr
|
|
25
|
+
channel discipline, JSON parseability, stable public diagnostics, and
|
|
26
|
+
descriptor/contract/help parity without making private descriptors public API.
|
|
27
|
+
- `REQ-PROOFKIT-QUALITY-005`: CodeQL workflow source is admitted as an
|
|
28
|
+
independent semantic security analysis signal for Go source without replacing
|
|
29
|
+
native Go static gates.
|
|
30
|
+
- `REQ-PROOFKIT-QUALITY-006`: OSV workflow source is admitted as an advisory
|
|
31
|
+
multi-ecosystem dependency signal without replacing `govulncheck`
|
|
32
|
+
reachable-code evidence.
|
|
33
|
+
- `REQ-PROOFKIT-QUALITY-007`: Scorecard workflow source is admitted as an
|
|
34
|
+
advisory repository hygiene signal without claiming branch protection or
|
|
35
|
+
provider settings that the repository cannot prove from source.
|
|
36
|
+
- `REQ-PROOFKIT-QUALITY-008`: GitHub Actions workflow syntax and expression
|
|
37
|
+
semantics are checked by actionlint in the local package gate.
|
|
38
|
+
- `REQ-PROOFKIT-QUALITY-009`: performance-sensitive parser and serializer
|
|
39
|
+
paths expose benchmark entrypoints without making wall-clock budgets a
|
|
40
|
+
required PR gate before stable baselines exist.
|
|
41
|
+
- `REQ-PROOFKIT-QUALITY-010`: coverage metrics report requirement, binding,
|
|
42
|
+
witness, CLI inventory linkage, and descriptor-owned command semantic-route
|
|
43
|
+
coverage from admitted test-evidence-inventory rows, failing closed on
|
|
44
|
+
explicit requirement/proof linkage dead zones, failed command-route
|
|
45
|
+
inventory admission, command semantic routes without owner-declared proof
|
|
46
|
+
identities, route-index-derived semantic proof identities, direct app
|
|
47
|
+
semantic routes outside the command-scoped app test, package-level semantic
|
|
48
|
+
routes outside the descriptor-owned command package, and missing matching
|
|
49
|
+
semantic command evidence without claiming line coverage or exhaustive test
|
|
50
|
+
semantic completeness.
|
|
51
|
+
- `REQ-PROOFKIT-QUALITY-011`: CI separates the OS-independent full
|
|
52
|
+
source/package gate from macOS platform smoke so parallel runners do not
|
|
53
|
+
duplicate proof classes while preserving platform execution evidence.
|
|
54
|
+
- `REQ-PROOFKIT-QUALITY-012`: release and adoption channel identifiers use one
|
|
55
|
+
canonical authority vocabulary that separates durable authority channels from
|
|
56
|
+
display labels, publisher environments, statuses, and candidate evidence.
|
|
57
|
+
- `REQ-PROOFKIT-QUALITY-013`: self-hosting workflow package-gate evidence is
|
|
58
|
+
checked by a typed workflow oracle instead of text search, proving the
|
|
59
|
+
package gate is reachable, exact, advisory, success-gated for always-running
|
|
60
|
+
downstream jobs and required evidence-publication steps, and ordered before
|
|
61
|
+
evidence publication.
|
|
62
|
+
- `REQ-PROOFKIT-QUALITY-014`: release authority consumers compare downstream
|
|
63
|
+
policy against the admitted typed release-authority projection and admitted
|
|
64
|
+
report digest instead of rereading caller-owned raw `releaseAuthorityInput`
|
|
65
|
+
fields after validation.
|
|
66
|
+
- `REQ-PROOFKIT-QUALITY-015`: the package gate includes an admitted release
|
|
67
|
+
closeout completion-criteria report so unit tests alone cannot satisfy
|
|
68
|
+
release closeout.
|
|
69
|
+
- `REQ-PROOFKIT-QUALITY-016`: release platform targets use one private owner
|
|
70
|
+
that projects platform suffixes, Go build targets, npm OS/CPU metadata,
|
|
71
|
+
package tar entries, Python wheel tags, PyPI candidate completeness, and
|
|
72
|
+
SBOM binary subjects without becoming public API.
|
|
73
|
+
- `REQ-PROOFKIT-QUALITY-017`: report-visible secret-shaped JSON traversal
|
|
74
|
+
uses one private kernel owner for deterministic paths and finding kinds while
|
|
75
|
+
command packages only map findings to their local report policy.
|
|
76
|
+
- `REQ-PROOFKIT-QUALITY-018`: release metadata retains a Trusted Publisher
|
|
77
|
+
identity tuple with the exact version-tag workflow ref for workflow-published
|
|
78
|
+
npm and PyPI channels and release closeout rejects publication claims without
|
|
79
|
+
that tuple.
|
|
80
|
+
- `REQ-PROOFKIT-QUALITY-019`: installed package smoke proof verifies one
|
|
81
|
+
successful JSON report command and one failed-report command from the
|
|
82
|
+
package-managed binary, including report identity, state, exit code, stdout,
|
|
83
|
+
stderr discipline, and exact explicit-input counts despite an unlisted
|
|
84
|
+
poison file in the consumer working directory.
|
|
85
|
+
|
|
86
|
+
## Non-Claims
|
|
87
|
+
|
|
88
|
+
- This spec does not claim public-source provenance until a public-source tag
|
|
89
|
+
release records admitted attestation evidence.
|
|
90
|
+
- This spec does not claim absence of vulnerabilities, license approval,
|
|
91
|
+
branch-protection enforcement, consumer adoption, merge approval, release
|
|
92
|
+
approval, rollout approval, or production readiness.
|
|
93
|
+
- This spec does not make advisory security scans substitute for native tests,
|
|
94
|
+
parser fuzz/property tests, CLI ABI tests, release manifest generation, or
|
|
95
|
+
registry identity evidence.
|