@research-engineering/agentic-proofkit 0.1.146 → 0.1.147
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 +59 -0
- package/AGENTS.md +2 -2
- package/BACKLOG.md +41 -188
- package/CONTRIBUTING.md +6 -1
- package/NON_CLAIMS.md +3 -2
- package/README.md +112 -4
- package/SECURITY.md +10 -7
- 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 +15 -10
- package/docs/release-process.md +16 -8
- package/docs/specs/proofkit-spec-proof-core/overview.md +21 -13
- package/docs/specs/proofkit-spec-proof-core/requirements.v1.json +30 -2
- package/docs/specs/proofkit-supply-chain-quality/overview.md +3 -2
- package/docs/specs/proofkit-supply-chain-quality/requirements.v1.json +2 -2
- package/package.json +3 -2
- package/proofkit/cli-contract.v1.json +198 -36
- package/proofkit/receipt-producer-policy.json +5 -4
- package/proofkit/requirement-bindings.json +59 -5
- package/proofkit/witness-plan.json +18 -2
package/ADOPTION.md
CHANGED
|
@@ -30,6 +30,19 @@ Publisher and post-publish registry identity are admitted. GitHub Release
|
|
|
30
30
|
assets are archive and provenance lookup, not package-manager dependency
|
|
31
31
|
authority.
|
|
32
32
|
|
|
33
|
+
Consumers may choose npm or Bun for installation. Both consume the same npm
|
|
34
|
+
registry package identity:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install -D @research-engineering/agentic-proofkit
|
|
38
|
+
bun add -d @research-engineering/agentic-proofkit
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Release evidence still uses npm as the registry-authority CLI because Proofkit
|
|
42
|
+
records npm-specific package identity, `dist.integrity`, `dist.shasum`, `npm
|
|
43
|
+
pack`, and root-only registry install proof. Bun is not used as a substitute
|
|
44
|
+
for those release-authority facts.
|
|
45
|
+
|
|
33
46
|
Stable authority channel ids:
|
|
34
47
|
|
|
35
48
|
| Channel | Authority owner | Non-claims |
|
|
@@ -120,6 +133,52 @@ Candidate boundaries in `observe` and `warn` are advisory. Enforcement modes
|
|
|
120
133
|
fail closed while candidate boundaries remain unresolved because enforcement
|
|
121
134
|
requires owner-admitted requirements and proof bindings.
|
|
122
135
|
|
|
136
|
+
Pre-spec trust modes:
|
|
137
|
+
|
|
138
|
+
| Trust mode | Use case | Proofkit role | Required next owner step |
|
|
139
|
+
|---|---|---|---|
|
|
140
|
+
| `code_baseline` | no specs exist and maintainers intentionally freeze current behavior | admit caller-owned capability observations and emit bounded candidate requirement/proof-binding seeds only when scenarios have candidate ids and executable anchors | review seeds, materialize accepted `requirements.v1.json` and proof bindings, then run source, binding, inventory, and coverage gates |
|
|
141
|
+
| `audit_from_code` | no specs exist and maintainers do not trust current behavior | admit caller-owned observations as hypotheses, keep missing anchors as owner actions, and emit questions without failing solely on missing anchors | answer owner questions, add falsification witnesses, then materialize only accepted requirements |
|
|
142
|
+
|
|
143
|
+
`capability-map-admission` owns this pre-spec transition artifact. It does not
|
|
144
|
+
replace `requirement-authoring-plan`: capability maps produce seeds from
|
|
145
|
+
observed capabilities, while authoring plans compose owner-reviewed candidate
|
|
146
|
+
updates into a non-authoritative requirement-source preview and transition
|
|
147
|
+
check. Durable truth still starts only after the consumer commits and admits
|
|
148
|
+
`requirements.v1.json`.
|
|
149
|
+
|
|
150
|
+
## First Adoption Loop
|
|
151
|
+
|
|
152
|
+
Proofkit can reduce initial adoption glue, but it must not turn observation into
|
|
153
|
+
truth. The first loop is:
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
caller-owned capability or test observations
|
|
157
|
+
-> candidate-only Proofkit reports
|
|
158
|
+
-> owner review and materialization
|
|
159
|
+
-> strict requirement source, proof binding, and test inventory admission
|
|
160
|
+
-> coverage view from explicit admitted facts
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Use `test-evidence-inventory --projection discovery-draft` only for explicit
|
|
164
|
+
caller-owned test discovery facts. The command does not scan repositories,
|
|
165
|
+
execute tests, emit `semantic_falsifier` evidence, or close coverage. It emits
|
|
166
|
+
candidate inventory guidance with a non-strict candidate authority so an agent
|
|
167
|
+
can ask the right owner questions and materialize strict inventory rows later.
|
|
168
|
+
Candidate inventory diagnostics are rejected by strict inventory admission until
|
|
169
|
+
the consumer rewrites them into owner-reviewed `caller_owned_inventory`.
|
|
170
|
+
|
|
171
|
+
Use `requirement-coverage-input-compose` when the consumer already has explicit
|
|
172
|
+
requirement source, proof binding, test inventory, coverage universe, and local
|
|
173
|
+
environment policy records. The command may compose from direct child records
|
|
174
|
+
or from previously normalized records, but it must reject failed child reports
|
|
175
|
+
instead of repairing semantics.
|
|
176
|
+
|
|
177
|
+
Use `witness-plan` with a `projection: "requirement-bindings"` input only when
|
|
178
|
+
the proof binding already contains safe witness command facts and the caller
|
|
179
|
+
provides witness command vocabulary. The projection avoids duplicated command
|
|
180
|
+
identity; native execution and command freshness remain caller-owned.
|
|
181
|
+
|
|
123
182
|
## Requirement, Contract, And Test Order
|
|
124
183
|
|
|
125
184
|
The durable semantic source is the repository-owned requirement package:
|
package/AGENTS.md
CHANGED
|
@@ -19,7 +19,7 @@ Use this order when instructions or evidence conflict:
|
|
|
19
19
|
4. nearest scoped `AGENTS.md`;
|
|
20
20
|
5. this repository authority model;
|
|
21
21
|
6. `README.md` as a human overview only;
|
|
22
|
-
7. `BACKLOG.md` for
|
|
22
|
+
7. `BACKLOG.md` for active work, blocked claims, and deferred work;
|
|
23
23
|
8. `ADOPTION.md`, `NON_CLAIMS.md`, `docs/proofkit-contract-map.md`, and
|
|
24
24
|
`docs/specs/*` as owner surfaces for their stated boundaries;
|
|
25
25
|
9. imported source files, tests, package metadata, workflows, and
|
|
@@ -51,7 +51,7 @@ own release, provider, or deployment evidence.
|
|
|
51
51
|
2. If the request is clear, do not ask whether to resume previous work.
|
|
52
52
|
3. If the request is ambiguous and strong unfinished-work signals exist,
|
|
53
53
|
inspect the worktree state and ask whether to resume.
|
|
54
|
-
4. Use `BACKLOG.md` for
|
|
54
|
+
4. Use `BACKLOG.md` for active work, blocked claims, and deferred work.
|
|
55
55
|
5. Load one primary owner surface for the task. Load a second owner surface only
|
|
56
56
|
when the task clearly crosses another boundary.
|
|
57
57
|
6. Stop context loading once the owner boundary, allowed mutation, proof path,
|
package/BACKLOG.md
CHANGED
|
@@ -1,203 +1,56 @@
|
|
|
1
1
|
# Proofkit Backlog
|
|
2
2
|
|
|
3
|
-
This file is the canonical work ledger for
|
|
4
|
-
`research-engineering/agentic-proofkit
|
|
5
|
-
claims. It is not a CLI manual, proof registry, or historical release log.
|
|
3
|
+
This file is the canonical active-work ledger for
|
|
4
|
+
`research-engineering/agentic-proofkit`.
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
It tracks only current `NEXT`, `BLOCKED`, or `DEFERRED` work. It is not a
|
|
7
|
+
roadmap, release log, proof registry, architecture document, CLI manual, or
|
|
8
|
+
historical completion archive.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
only when these criteria are satisfied or explicitly retired by owner decision:
|
|
10
|
+
## Current State
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
public source repository and records source, tag, package, registry, and
|
|
14
|
-
release evidence.
|
|
15
|
-
2. **Public npm release is admitted.** A versioned release publishes or
|
|
16
|
-
exact-byte-matches the root package, records post-publish npm identity,
|
|
17
|
-
verifies root-only installation, proves JSON CLI ABI from the installed
|
|
18
|
-
package, and documents rollback.
|
|
19
|
-
3. **Optional PyPI channel is admitted before it is claimed.** Python/uv wheels
|
|
20
|
-
are candidate evidence until PyPI Trusted Publisher and post-publish PyPI
|
|
21
|
-
registry identity are proven.
|
|
22
|
-
4. **Browser rendering is released.** Requirement source, proof, coverage, and
|
|
23
|
-
spec-tree views are consumable through CLI rendering and loopback-only
|
|
24
|
-
serving without requiring generated HTML in consumer repositories.
|
|
25
|
-
5. **Repository identity is organization-neutral.** Package metadata, README,
|
|
26
|
-
agent entrypoint, docs, workflows, tests, and examples avoid organization-
|
|
27
|
-
or consumer-specific authority.
|
|
28
|
-
6. **At least one consumer migration is proven from the public package.** A
|
|
29
|
-
consuming repository replaces local or vendored Proofkit access with the
|
|
30
|
-
public package, smokes the installed binary, records rollback, and keeps
|
|
31
|
-
product semantics local.
|
|
32
|
-
7. **Second-consumer reuse is proven before broad reuse claims.** A second
|
|
33
|
-
topology adopts one stable module in observe or warn mode with explicit
|
|
34
|
-
caller-owned inputs.
|
|
35
|
-
8. **Agent guidance is usable.** Reports provide bounded envelopes that name
|
|
36
|
-
what to inspect, who owns the decision, which proof route applies, what is
|
|
37
|
-
omitted, and what escalation is required.
|
|
38
|
-
9. **Gradual adoption is usable for imperfect repositories.** A repository can
|
|
39
|
-
scaffold starter records, define owner-reviewed requirements, bind proofs,
|
|
40
|
-
run selective checks, and promote enforcement only after explicit owner
|
|
41
|
-
approval.
|
|
42
|
-
10. **Self-hosting avoids circular proof.** Current-build Proofkit output may
|
|
43
|
-
provide advisory self-consistency, but merge-critical proof must rely on
|
|
44
|
-
native package gates, admitted CI producer policy, a prior release, or a
|
|
45
|
-
minimal bootstrap verifier.
|
|
46
|
-
11. **Release-size changes are evidence-gated.** Platform-binary splitting,
|
|
47
|
-
OCI, Homebrew, or Go module distribution is admitted only when measured
|
|
48
|
-
consumer need outweighs added registry and adoption complexity.
|
|
49
|
-
12. **Generic authority invariants are upstream-owned.** Requirement-binding
|
|
50
|
-
identity, test-inventory identity, report-shape admission, and other
|
|
51
|
-
cross-repository mechanics live in Proofkit before consumers retire
|
|
52
|
-
duplicate local checks.
|
|
53
|
-
13. **Hierarchical spec rendering is explicit-input and presentation-only.**
|
|
54
|
-
Meta, module, and submodule spec chains can be rendered or exported from a
|
|
55
|
-
caller-owned tree without implicit repository scanning or generated-output
|
|
56
|
-
authority.
|
|
12
|
+
Active work is limited to the rows below.
|
|
57
13
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
| DONE | IMPORT-01 | Public project contract | Initial public README, license, contribution, security, and source-hygiene boundaries were admitted. |
|
|
63
|
-
| DONE | IMPORT-02 | Deterministic kernel primitives | Core Go admission, stable JSON, digest, report, path, release-platform, and package helper primitives were imported with tests. |
|
|
64
|
-
| DONE | IMPORT-03 | CLI command and release proof surface | CLI registry, command families, package/release tools, npm/PyPI wrapper surfaces, specs, proofkit JSON, and workflows were imported with local `npm run check`. Provider CI, protected-branch, registry, and release evidence remain separate open proof classes. |
|
|
65
|
-
| DONE | IMPORT-04 | Adoption and backlog owner surfaces | Public-ready adoption and backlog routing were added without stale private release facts or consumer-specific claims. |
|
|
66
|
-
| DONE | IMPORT-05 | Historical design and plan cleanup | Durable claims from pre-cutover design and implementation-plan work are represented by deterministic specs, proof bindings, tests, package-public docs, or open backlog rows. No source-repository design documents or implementation plans are retained as current authority. |
|
|
67
|
-
| DONE | IMPORT-06 | Remaining source-local code delta audit | Non-document source comparison found no old source file missing from the public source tree. Old source bytes remain candidate evidence only and are not imported over current hardening. |
|
|
68
|
-
| DONE | RELEASE-01 | Public source release | A public-source npm release path was admitted through Trusted Publisher, post-publish registry identity capture, root-only installed-package proof, and GitHub Release assets. PyPI publication and GitHub artifact attestations were skipped by explicit optional-channel policy and are not claimed. |
|
|
69
|
-
| DONE | RELEASE-02 | Scoped npm package identity | The organization-scoped npm package identity is the preferred release channel and is admitted through the scoped npm Trusted Publisher path, post-publish registry capture, root-only installed-package JSON CLI ABI proof, and GitHub Release assets. The `agentic-proofkit` CLI binary and Python package identities remain unchanged. The previous unscoped npm package remains a compatibility artifact, not the preferred dependency identity. |
|
|
70
|
-
| BLOCKED | RELEASE-03 | PyPI registry publication | The release workflow has a dedicated PyPI Trusted Publisher job and the GitHub repository has the `pypi` environment required by that workflow identity, but PyPI registry publication is blocked until the PyPI account has a normal or pending Trusted Publisher for project `agentic-proofkit`, repository `research-engineering/agentic-proofkit`, workflow `release.yml`, and environment `pypi`. `PROOFKIT_ENABLE_PYPI_PUBLISH` must stay disabled until that PyPI-side publisher exists. Completion requires enabling the variable, publishing a new version or recording exact existing-byte match, capturing PyPI registry identity, and proving the package through the release workflow. Workflow-published or mixed publication modes must bind the PyPI Trusted Publisher tuple in the release manifest; existing-byte-match mode must retain exact-byte registry proof without inventing publisher provenance. Wheel files in GitHub Release assets remain candidate artifacts, not PyPI dependency authority. |
|
|
71
|
-
| DONE | SECURITY-01 | Provider security settings | Repository is public with collaborator-only PR creation, public issues, squash-only merges, branch protection on `main`, strict required CI, CodeQL, OSV source advisory scanning, Scorecard, Dependabot security updates, secret scanning, and push protection. Non-provider secret patterns and validity checks remain unavailable or disabled under the current provider plan and are not claimed. |
|
|
72
|
-
| DONE | CONSUMER-01 | Public-package consumer proof | A private first consumer repository consumed the public npm package through its repository-owned external-consumer gate. The proof installed the package into an isolated temporary consumer, matched the admitted package identity, proved lockfile resolution was not workspace based, ran installed CLI `self-check`, `witness-plan`, and `release-authority`, proved rollback by removing the dependency from the temporary lockfile, and preserved consumer-owned native witness authority. |
|
|
73
|
-
| DONE | CONSUMER-02 | Second-consumer pilot | A private topology-distinct Python/FastAPI consumer module was run through explicit-input warn-mode `gradual-adoption-guidance` and `--agent-envelope` pilot records. Proofkit admitted the caller-owned route, reported one advisory candidate boundary, reported two missing proof-binding rule IDs as warnings, emitted route/bind/modernize/verify/promote agent actions, and kept enforcement blocked until consumer owners admit stable requirements and proof bindings. No generic Proofkit blocker was confirmed. |
|
|
74
|
-
|
|
75
|
-
## Release Evidence Model
|
|
76
|
-
|
|
77
|
-
This backlog records release-channel completion state, not immutable per-version
|
|
78
|
-
provider facts. Exact package versions, source refs, workflow run identities,
|
|
79
|
-
tarball URLs, integrity strings, shasums, release assets, and registry
|
|
80
|
-
post-publish facts are owned by npm registry records, GitHub Release artifacts,
|
|
81
|
-
and generated release manifests for each tag.
|
|
82
|
-
|
|
83
|
-
Do not copy exact post-publish provider facts into package-public source docs:
|
|
84
|
-
package bytes are immutable, while those facts are known only after the package
|
|
85
|
-
candidate has been built and published. The package verifier rejects shipped
|
|
86
|
-
Markdown that reintroduces exact release versions, provider run URLs, registry
|
|
87
|
-
tarball URLs, or raw release hash evidence.
|
|
88
|
-
|
|
89
|
-
PyPI publication is not claimed unless the release workflow enables the PyPI
|
|
90
|
-
channel and records post-publish PyPI registry identity. GitHub artifact
|
|
91
|
-
attestations are not claimed unless the release workflow records provider
|
|
92
|
-
attestation evidence for the published assets.
|
|
93
|
-
|
|
94
|
-
## Consumer Evidence
|
|
95
|
-
|
|
96
|
-
`CONSUMER-01` was admitted from a private first consumer repository using these
|
|
97
|
-
consumer-owned gates:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
bun run verify:proofkit-external-consumer
|
|
101
|
-
bun scripts/report-proofkit-external-consumer.selftest.ts
|
|
102
|
-
bun scripts/lib/proofkit-runtime.selftest.ts
|
|
103
|
-
bun scripts/verify-workspace-script-registry.selftest.ts
|
|
104
|
-
bun run verify:proofkit-pilot
|
|
105
|
-
bun run verify:proofkit-requirement-source
|
|
106
|
-
bun run verify:proofkit-requirement-coverage
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
The machine report for `bun scripts/report-proofkit-external-consumer.ts
|
|
110
|
-
--format json` emitted `reportKind: proofkit.registry-consumer`, `state:
|
|
111
|
-
passed`, a public npm registry URL, non-workspace lockfile resolution,
|
|
112
|
-
`releaseAuthorityReportKind: proofkit.release-authority`,
|
|
113
|
-
`releaseAuthorityState: passed`, and `rollbackLockContainsPackage: false`.
|
|
114
|
-
|
|
115
|
-
This evidence does not claim npm publication from this public source
|
|
116
|
-
repository, Trusted Publisher configuration, public-source release provenance,
|
|
117
|
-
provider-side security ingestion, PyPI publication, second-consumer reuse,
|
|
118
|
-
native consumer test execution by Proofkit, rollout readiness, production
|
|
119
|
-
readiness, or retirement of consumer-owned product semantics.
|
|
120
|
-
|
|
121
|
-
`CONSUMER-02` was admitted on 2026-07-03 from a private topology-distinct
|
|
122
|
-
consumer module using explicit caller-owned warn-mode adoption facts. The
|
|
123
|
-
Proofkit guidance report emitted `reportKind:
|
|
124
|
-
proofkit.gradual-adoption-guidance`, `state: passed`, `guidanceMode: warn`,
|
|
125
|
-
`candidateBoundaryCount: 1`, `proofBindingMissingCount: 2`, and warning rules
|
|
126
|
-
for `proofkit.gradual-adoption-guidance.missing-proof-bindings` and
|
|
127
|
-
`proofkit.gradual-adoption-guidance.candidate-boundaries`. The companion agent
|
|
128
|
-
envelope emitted `route`, `bind`, `modernize-boundary`, `verify`, and
|
|
129
|
-
`promote` actions, with candidate-boundary context refs and explicit
|
|
130
|
-
instructions to keep native witness execution outside Proofkit.
|
|
131
|
-
|
|
132
|
-
Gap classification:
|
|
133
|
-
|
|
134
|
-
- Generic Proofkit work: no confirmed blocker. The current CLI accepted
|
|
135
|
-
explicit caller facts, preserved advisory candidate-boundary semantics, kept
|
|
136
|
-
missing binding records as warnings in warn mode, and emitted bounded agent
|
|
137
|
-
guidance without scanning repository state.
|
|
138
|
-
- Consumer-local adapter work: the consumer still needs owner-reviewed
|
|
139
|
-
`requirements.v1.json` records, requirement-to-proof bindings, native witness
|
|
140
|
-
command records, and a repository-local environment that can run its existing
|
|
141
|
-
coverage-map and backend test commands. Native witness attempts were blocked
|
|
142
|
-
by consumer-local dependency/bootstrap preconditions, not by Proofkit command
|
|
143
|
-
semantics.
|
|
144
|
-
|
|
145
|
-
This evidence does not claim second-consumer enforcement, native witness
|
|
146
|
-
success, consumer rollout, production readiness, public package publication
|
|
147
|
-
from this source repository, provider-side registry evidence, or retirement of
|
|
148
|
-
consumer-owned coverage-map and test authority.
|
|
149
|
-
|
|
150
|
-
## Import Discipline
|
|
151
|
-
|
|
152
|
-
Old local repository content is not automatically authoritative. A transfer
|
|
153
|
-
batch is admissible only when:
|
|
14
|
+
The public source cutover, scoped npm channel, optional PyPI channel, provider
|
|
15
|
+
security setup, first-consumer proof, and second-consumer pilot have all been
|
|
16
|
+
closed. Durable rules and reusable architecture now live in their owner
|
|
17
|
+
surfaces:
|
|
154
18
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
and
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
19
|
+
- `README.md` for human orientation;
|
|
20
|
+
- `ADOPTION.md` for adoption, distribution, rendering, requirement, contract,
|
|
21
|
+
test, and agent-guidance models;
|
|
22
|
+
- `NON_CLAIMS.md` for boundary denials;
|
|
23
|
+
- `docs/proofkit-contract-map.md` for command-family routing and agent
|
|
24
|
+
decision procedure;
|
|
25
|
+
- `docs/release-process.md` for release-channel evidence and publication
|
|
26
|
+
process;
|
|
27
|
+
- `docs/specs/**/requirements.v1.json` for durable machine requirements;
|
|
28
|
+
- `proofkit/*.json` for shipped machine contracts and proof routes;
|
|
29
|
+
- source, tests, package metadata, and workflows for executable behavior.
|
|
163
30
|
|
|
164
|
-
|
|
165
|
-
hardening, weaken package verification, remove non-disclosure tests, reduce
|
|
166
|
-
semantic-route proof, or replace current public-source wording with private
|
|
167
|
-
repository facts.
|
|
31
|
+
## Admission Rules
|
|
168
32
|
|
|
169
|
-
|
|
33
|
+
Add a row only when new work is accepted and cannot be represented more
|
|
34
|
+
precisely by an existing owner surface.
|
|
170
35
|
|
|
171
|
-
|
|
172
|
-
repository as current authority. Stable claims must move into deterministic
|
|
173
|
-
surfaces:
|
|
36
|
+
Every row must be falsifiable and include:
|
|
174
37
|
|
|
175
|
-
- `
|
|
176
|
-
- `
|
|
177
|
-
|
|
178
|
-
-
|
|
179
|
-
- package-public docs only when consumers need stable operational guidance;
|
|
180
|
-
- this backlog only for open, falsifiable work.
|
|
38
|
+
- `Status`: `NEXT`, `BLOCKED`, or `DEFERRED`;
|
|
39
|
+
- `ID`: stable owner-scoped identifier;
|
|
40
|
+
- `Scope`: one bounded reason to change;
|
|
41
|
+
- `Completion condition`: objective proof or explicit retirement condition.
|
|
181
42
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
43
|
+
When a row is completed, remove it from this active backlog after its durable
|
|
44
|
+
rule, evidence, or behavior is represented by the owning source, test,
|
|
45
|
+
contract, release artifact, provider record, or documentation surface. Do not
|
|
46
|
+
retain completed rows here as history.
|
|
186
47
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
architecture decision, migration sequence, release obligation, or adoption
|
|
190
|
-
contract. An admitted architecture document must state its owner, scope, proof
|
|
191
|
-
path, non-claims, and retirement or supersession condition; otherwise the claim
|
|
192
|
-
belongs in `requirements.v1.json`, machine contracts, executable tests,
|
|
193
|
-
package-public operational docs, or this backlog.
|
|
48
|
+
Historical evidence belongs in pull requests, release artifacts, registry
|
|
49
|
+
records, generated release manifests, or the owning docs named above.
|
|
194
50
|
|
|
195
|
-
##
|
|
51
|
+
## Open Rows
|
|
196
52
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
-
|
|
201
|
-
lookup graphs to be committed by default.
|
|
202
|
-
- Proofkit does not require a rewrite in another language without measured
|
|
203
|
-
evidence that the current Go CLI is the limiting factor.
|
|
53
|
+
| Status | ID | Scope | Completion condition |
|
|
54
|
+
|---|---|---|---|
|
|
55
|
+
| BLOCKED | RELEASE-01 | Decide whether normalized post-create GitHub Release facts need durable public evidence beyond retained workflow artifacts under immutable GitHub Releases. | Either keep `github-release.json` as retained workflow evidence with explicit non-claims, or design a provider-compatible public evidence channel that does not require post-create Release asset mutation. Completion requires a release-proof design and live provider proof; direct backfill/upload is blocked by immutable Release upload rejection. |
|
|
56
|
+
| BLOCKED | RELEASE-02 | Resolve or explicitly retire the immutable historical GitHub Release asset-closure gap where release metadata references a notes asset that the published release does not contain. | Either attach the exact checksum-matching notes asset if provider policy allows, or record the provider-impossible closure in the release evidence model and prove future releases cannot repeat the gap. Completion requires live provider proof; direct backfill is currently blocked by immutable Release upload rejection. |
|
package/CONTRIBUTING.md
CHANGED
|
@@ -15,7 +15,8 @@ admission, and rollout approval belong in consuming repositories.
|
|
|
15
15
|
3. Use [docs/proofkit-contract-map.md](docs/proofkit-contract-map.md) to find
|
|
16
16
|
the owner command or primitive.
|
|
17
17
|
4. Use [ADOPTION.md](ADOPTION.md) for dependency and channel authority.
|
|
18
|
-
5. Use [BACKLOG.md](BACKLOG.md) to check
|
|
18
|
+
5. Use [BACKLOG.md](BACKLOG.md) to check active work, blocked claims, and
|
|
19
|
+
deferred work.
|
|
19
20
|
6. Use [NON_CLAIMS.md](NON_CLAIMS.md) to understand the boundary between
|
|
20
21
|
Proofkit mechanics and consuming-repository authority.
|
|
21
22
|
|
|
@@ -28,6 +29,10 @@ npm run check
|
|
|
28
29
|
git diff --check
|
|
29
30
|
```
|
|
30
31
|
|
|
32
|
+
If your local project uses Bun, `bun run check` is acceptable as a convenience
|
|
33
|
+
runner only when it invokes the same scripts and leaves `npm run check`
|
|
34
|
+
equivalent. Release and package-authority proof remains npm-owned.
|
|
35
|
+
|
|
31
36
|
For CLI or Go changes, run focused Go tests first. For package or release
|
|
32
37
|
changes, inspect [docs/release-process.md](docs/release-process.md).
|
|
33
38
|
|
package/NON_CLAIMS.md
CHANGED
|
@@ -7,7 +7,8 @@ This repository state does not claim:
|
|
|
7
7
|
|
|
8
8
|
- runtime implementation readiness;
|
|
9
9
|
- package publication readiness;
|
|
10
|
-
- public-source provenance for
|
|
10
|
+
- public-source provenance for a package version unless that version's release
|
|
11
|
+
assets, registry identity, and checksum manifests are artifact-closed;
|
|
11
12
|
- source-code completeness;
|
|
12
13
|
- production readiness;
|
|
13
14
|
- vulnerability absence;
|
|
@@ -25,7 +26,7 @@ This repository state does not claim:
|
|
|
25
26
|
- deployment approval;
|
|
26
27
|
- package-registry access-control proof;
|
|
27
28
|
- provider-side CodeQL, OSV, Scorecard, secret-scanning, or dependency-scanning
|
|
28
|
-
ingestion;
|
|
29
|
+
absence-of-findings, ingestion freshness, or dashboard processing success;
|
|
29
30
|
- GitHub branch-protection proof;
|
|
30
31
|
- Trusted Publisher or OIDC publication proof;
|
|
31
32
|
- generated HTML, Markdown, reports, lookup graphs, or agent envelopes as
|
package/README.md
CHANGED
|
@@ -13,12 +13,31 @@ packets without copying verifier logic between projects.
|
|
|
13
13
|
| Surface | State |
|
|
14
14
|
|---|---|
|
|
15
15
|
| Source visibility | Public |
|
|
16
|
-
| Current layer | Public source
|
|
16
|
+
| Current layer | Public source; release evidence is version-specific |
|
|
17
17
|
| Runtime implementation | Go CLI with npm and Python wrapper packaging |
|
|
18
|
-
| Package release | Scoped npm release channel
|
|
19
|
-
| Public-source provenance |
|
|
18
|
+
| Package release | Scoped npm release channel configured; exact version and registry identity are owned by npm and GitHub Release artifacts |
|
|
19
|
+
| Public-source provenance | Claimed only for a version whose release assets, registry identity, and checksum manifests are artifact-closed |
|
|
20
20
|
| License | MIT |
|
|
21
21
|
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
The canonical registry identity is npm:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install -D @research-engineering/agentic-proofkit
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Bun consumers may install the same npm registry package with Bun:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bun add -d @research-engineering/agentic-proofkit
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
npm remains the release-authority toolchain because release proof records npm
|
|
37
|
+
registry identity, `dist.integrity`, `dist.shasum`, `npm pack`, and root-only
|
|
38
|
+
registry install evidence. Bun is a supported consumer/developer package
|
|
39
|
+
manager path, not a replacement for npm release evidence.
|
|
40
|
+
|
|
22
41
|
## Project Boundary
|
|
23
42
|
|
|
24
43
|
`agentic-proofkit` is intended to provide reusable proof-workflow mechanics for
|
|
@@ -29,6 +48,95 @@ Proofkit does not own a consuming repository's product requirements, native
|
|
|
29
48
|
witness execution, receipt authenticity, proof freshness, merge admission,
|
|
30
49
|
rollout, deployment, or production readiness.
|
|
31
50
|
|
|
51
|
+
## How It Works
|
|
52
|
+
|
|
53
|
+
Proofkit has two related but separate loops:
|
|
54
|
+
|
|
55
|
+
- an **authoring loop** for turning observations into candidate invariants and
|
|
56
|
+
repo-owned specifications;
|
|
57
|
+
- a **proof loop** for admitting those specifications, binding them to evidence,
|
|
58
|
+
and producing derived views or bounded next actions.
|
|
59
|
+
|
|
60
|
+
The loops are separate because generated observations are not product truth.
|
|
61
|
+
Only the consuming repository can promote a candidate invariant into an
|
|
62
|
+
admitted requirement.
|
|
63
|
+
|
|
64
|
+
### Proof Loop
|
|
65
|
+
|
|
66
|
+
```mermaid
|
|
67
|
+
flowchart TB
|
|
68
|
+
subgraph Repo["Consumer repository authority"]
|
|
69
|
+
Requirements["Requirements and invariants"]
|
|
70
|
+
Bindings["Proof bindings and witness commands"]
|
|
71
|
+
Execution["Native test and CI execution"]
|
|
72
|
+
Decision["Owner decision"]
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
subgraph Proofkit["Proofkit reusable mechanics"]
|
|
76
|
+
Admission["Admit and normalize JSON"]
|
|
77
|
+
Graph["Build proof graph"]
|
|
78
|
+
Planning["Plan selected checks"]
|
|
79
|
+
Receipts["Admit receipt-shaped evidence"]
|
|
80
|
+
Views["Render derived views"]
|
|
81
|
+
Packets["Emit bounded agent packets"]
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
Requirements --> Admission
|
|
85
|
+
Bindings --> Admission
|
|
86
|
+
Admission --> Graph
|
|
87
|
+
Graph --> Planning
|
|
88
|
+
Planning --> Execution
|
|
89
|
+
Execution --> Receipts
|
|
90
|
+
Receipts --> Decision
|
|
91
|
+
Graph --> Views
|
|
92
|
+
Graph --> Packets
|
|
93
|
+
Views --> Decision
|
|
94
|
+
Packets --> Decision
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The core invariant is separation of authority. The consuming repository owns
|
|
98
|
+
what the product must do and which native checks prove it. Proofkit owns the
|
|
99
|
+
reusable mechanics: admitting structured inputs, preserving provenance,
|
|
100
|
+
checking proof-binding shape, planning bounded verification, rendering derived
|
|
101
|
+
views, and returning agent-readable next-action packets.
|
|
102
|
+
|
|
103
|
+
The diagram keeps the rendering syntax intentionally simple for GitHub README
|
|
104
|
+
compatibility. Requirements, bindings, witness commands, native execution, and
|
|
105
|
+
final decisions stay in the consumer repository. Proofkit outputs are admitted
|
|
106
|
+
reports, plans, views, receipts, or agent packets; they do not become product
|
|
107
|
+
truth unless the consumer explicitly admits them.
|
|
108
|
+
|
|
109
|
+
### Invariant Authoring Loop
|
|
110
|
+
|
|
111
|
+
For a repository with no specification, Proofkit can guide an agent through two
|
|
112
|
+
different starting modes:
|
|
113
|
+
|
|
114
|
+
```mermaid
|
|
115
|
+
flowchart TB
|
|
116
|
+
Start["Code, docs, tests, issues, and maintainer intent"] --> Mode["Choose trust mode"]
|
|
117
|
+
Mode --> Baseline["Code baseline mode"]
|
|
118
|
+
Mode --> Audit["Code audit mode"]
|
|
119
|
+
Baseline --> Observations["Caller-owned capability observations"]
|
|
120
|
+
Audit --> Observations
|
|
121
|
+
Observations --> Seeds["Candidate invariants and requirement seeds"]
|
|
122
|
+
Seeds --> Review["Owner review and promotion"]
|
|
123
|
+
Review --> Specs["Repo-owned requirements.v1.json"]
|
|
124
|
+
Specs --> Obligations["Proof obligations"]
|
|
125
|
+
Obligations --> Evidence["Proof bindings and test inventory"]
|
|
126
|
+
Evidence --> Admission["Proofkit admission and coverage"]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
| Mode | Use when | Result |
|
|
130
|
+
|---|---|---|
|
|
131
|
+
| Code baseline | Current behavior is accepted as the starting contract | Candidate requirements and bindings that preserve current behavior until owners review them |
|
|
132
|
+
| Code audit | Current behavior may be wrong or incomplete | Untrusted observations and questions that must be promoted by a repository owner before becoming requirements |
|
|
133
|
+
|
|
134
|
+
In both modes, generated records remain candidates until the consuming
|
|
135
|
+
repository admits them as repo-owned requirements, proof bindings, and witness
|
|
136
|
+
plans. Proofkit can structure and validate candidate packets, but it does not
|
|
137
|
+
extract complete behavior from arbitrary source code, invent product policy, or
|
|
138
|
+
make generated invariants authoritative by itself.
|
|
139
|
+
|
|
32
140
|
## Start Here
|
|
33
141
|
|
|
34
142
|
| Need | Owner |
|
|
@@ -36,7 +144,7 @@ rollout, deployment, or production readiness.
|
|
|
36
144
|
| Human orientation | This README |
|
|
37
145
|
| Coding-agent startup | `AGENTS.md` |
|
|
38
146
|
| Adoption and release-channel model | `ADOPTION.md` |
|
|
39
|
-
|
|
|
147
|
+
| Active work ledger | `BACKLOG.md` |
|
|
40
148
|
| Contribution rules | `CONTRIBUTING.md` |
|
|
41
149
|
| Vulnerability reporting boundary | `SECURITY.md` |
|
|
42
150
|
| Explicit boundary denials | `NON_CLAIMS.md` |
|
package/SECURITY.md
CHANGED
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported Versions
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Supported versions are named only after a reviewed public release has
|
|
6
|
+
artifact-closed release assets, registry identity, and checksum manifests.
|
|
7
|
+
The current source tree may be ahead of the latest supported package version.
|
|
7
8
|
|
|
8
9
|
## Reporting A Vulnerability
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
or publish another private reporting channel.
|
|
11
|
+
Use GitHub Private Vulnerability Reporting for this repository:
|
|
12
|
+
https://github.com/research-engineering/agentic-proofkit/security/advisories/new
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
details
|
|
14
|
+
If GitHub returns an unavailable route, open a public issue that requests a
|
|
15
|
+
private security contact path and includes no exploit details, credentials,
|
|
16
|
+
private data, or step-by-step reproduction.
|
|
17
|
+
|
|
18
|
+
Do not open a public issue with exploit details.
|
|
16
19
|
|
|
17
20
|
Do not include live credentials, private keys, access tokens, or third-party
|
|
18
21
|
secrets in reports. Use redacted examples and describe how to reproduce the
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|