diff --git a/ATTESTATION-RUNBOOK.md b/ATTESTATION-RUNBOOK.md index 9c46833..c01c5e4 100644 --- a/ATTESTATION-RUNBOOK.md +++ b/ATTESTATION-RUNBOOK.md @@ -270,21 +270,29 @@ cd verification && ./check.sh ; echo "exit=$?" `SELF-TEST GREEN`, `exit=0`. Archive the check transcript; record its sha256 (bound into evidence per B6). Any other outcome: STOP. -### B1b. Pin the producer (NEW — round-6 GPT §4) -The leaf is generated by pacta; pin the exact producer: +### B1b. Pin the producer (NEW — round-6 GPT §4; corrected during execution) +The leaf is generated by pacta AND signed by the verified-dalek-serial +dogfood binary using the private key — BOTH the built binary +(`dogfood/state/`) and the key (`provider/state/local-provider/`) live +only in the operator's working tree, NOT in a bare clone. So the +producer for B2/B3 is the operator's pacta WORKING TREE, verified to be: ``` -git clone https://github.com/saymrwulf/proof-aware-crypto-tooling-agent /tmp/pacta-13 -cd /tmp/pacta-13 && git checkout $PACTA_COMMIT -test -z "$(git status --porcelain)" -python3 scripts/mini_pytest.py # require the full green count +git -C rev-parse HEAD # == $PACTA_COMMIT +git -C status --porcelain | grep -v '^??' | wc -l # == 0 (tracked clean) +ls dogfood/state/*.provenance.json # dogfood binary present +python3 scripts/mini_pytest.py # full green (needs the binary) ``` -**Check:** clean tree; suite all-green. This is the ONLY pacta used -for B2. Do not run the ambient working tree. +**Check:** HEAD == `$PACTA_COMMIT`; no tracked modifications; dogfood +binary present; suite green. (A fresh clone will FAIL the wallet +dogfood-signer test — that test needs the built binary; it is +orthogonal to the log path. Verify the log-relevant modules explicitly +if in doubt: `test_lean.py`, `test_provider.py`, `test_web_and_witness.py`.) ### B2. Generate the candidate attestation (do NOT append yet) -Using the pinned producer (`/tmp/pacta-13`) and its +Using the pinned producer (the operator's pacta working tree at +`$PACTA_COMMIT`, verified in B1b) and its `examples/repos.yaml` entry `ltl-accumulator-verified`, run -`pacta_provider check` against the clean-room subject `/tmp/attest-13` +`pacta_provider check` against the clean-room subject `/tmp/entry13/attest-13` (A4's rehearsed invocation, real key/pub from A3's notes). NOTE: the candidate emerges PROVIDER-SIGNED (check signs at generation — that is fine and reversible); what must not happen before inspection is the