Files
erp/.claude/skills/dolibarr-sandbox-write/replay-packs/2026-07-11-books-regularization/README.md
T
arcodangeandClaude Fable 5 ccc8b7912f chore(write-skill): preserve the 2026-07-11 books-regularization replay pack
The pack (manifests, prelude, runbook, verify-provenance.py PoC) lived
only in an ephemeral session scratchpad while erp#41/#42/#43/#44 now
reference it as fixtures and the prod replay is still pending. 36/36
provenance checks were green at rehearsal time; PDFs are re-fetchable
via arcodange-email-ingest (documented in the pack README).

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-12 14:05:01 +02:00

39 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Replay pack — books regularization 2026-07-11
The complete, provenance-verified write pack from the 2026-07-11 books-regularization session
(memory: `books-gap-2026-07`). Rehearsed green on the sandbox (FAF2026010013 + payments,
predicted-delta verified). **Prod replay: pending the human gate** — status lives in the
session journal / operator's hands, not in this folder.
## Contents
| File | What it is |
| --- | --- |
| `manifest-A-km-payments.json` | 2 KissMetrics customer payments (Wise wires 2 147,00 € + 2 195,97 €, tx ids from the activity feed) |
| `manifest-B-suppliers.json` | DARNIS F1045 supplier invoice (214,70 HT / 257,64 TTC) + its payment + Anthropic/Mistral payment ops |
| `manifest-B2-sandbox-payments.json` | Sandbox-side payment re-run after the varchar(50) fix (erp#37) |
| `prod-replay-prelude.sh` | Pre-replay guards: fresh checkpoint assumptions, target checks, env pinning |
| `rehearsal-runbook.md` | Step-by-step of the rehearsal: what ran, in what order, with which gates |
| `verify-provenance.py` | **The anti-hallucination PoC** — 36 field-level checks: every critical value re-verified against source-PDF text (pdftotext) + FRESH Qonto/Wise pulls; locale-normalized (`219,50``219.50`, Wise `2,147` thousands format). 36/36 green at rehearsal time. |
## Source PDFs (not committed — re-fetchable)
`verify-provenance.py` expects `./pdfs/` containing:
`F1045_ARCODANGE_2026-06-30.pdf`, `F1046_ARCODANGE_2026-06-29.pdf`,
`Invoice-9BF0758D-695749.pdf` (Anthropic), `invoice-MSTRL-API-814045-001.pdf` (Mistral).
Re-fetch via the `arcodange-email-ingest` skill (they live in `books@` — workflow 2 downloads
attachments by message id) or from the GED once erp#43 attaches them.
## Who consumes this pack
- **erp#41** (provenance checker as a promote-plan stage) — industrializes `verify-provenance.py`.
- **erp#42** (compliance linter) — these manifests are the *legitimate* fixtures that must PASS.
- **erp#44** (idempotency keys) — replay these manifests twice on a checkpoint; run 2 must be all-deduped.
- **erp#43** (GED attach) — attaches the four PDFs to FAF2026010013 on the sandbox.
## Rule this pack proves
No agent-typed value reaches a write without **mechanical corroboration**: source-anchored
(the exact string exists in the source document) + cross-system (bank feed to the cent, fresh
pull at check time) + read-back (predicted-delta after apply). Refuse, never repair.