chore(books): bucket C — non-invoice entries + remaining document gaps (after the prod replay) #57

Open
opened 2026-07-11 18:19:58 +02:00 by arcodange · 2 comments
Owner

Operational tail of the 2026-07-11 books regularization (memory: books-gap-2026-07; rehearsal done on sandbox, prod replay pack preserved at .claude/skills/dolibarr-sandbox-write/replay-packs/2026-07-11-books-regularization/). Mostly [HUMAN] UI work + one clarification; a session drives/verifies and records what's automatable.

Non-invoice entries (Dolibarr UI / paiements divers / module Charges sociales):

  • [HUMAN] Apport en capital 1 000 € (2026-01-21, notaire FOUREZ → compte 1013) — depends on the accounting-module verification (#51) for the clean path.
  • [HUMAN] URSSAF −493,00 € (2026-05-22 direct debit → 6451, module Charges sociales — outside the write-skill scope today). ⚠️ Also: an URSSAF échéancier exists → the PRD's "payroll dormant until first salary" assumption needs revisiting ([HUMAN] clarify: what are these cotisations? président? CFP?).
  • [HUMAN] Écarts de change +1,08 (FAC004) et +50,05 (FAC006) → produit 766 (the Wise wires exceeded the EUR invoice totals; payments recorded at full-remaining).
  • [HUMAN] Wise cashback +1,60 € (2026-06-03) · Qonto fee/refund +5,22 € (2026-01-16).

Document gaps (agent-drivable):

  • Cloudflare invoice (mail 2026-06-24 in books@) — not recorded; inspect + record (small; rides the gated write path).
  • Anthropic May/June receipts (#2344-8391, #2997-4837) — no Qonto debit → clarify payment rail ([HUMAN]: personal card fk3?); record the supplier invoices + the CCA1 payments if personal.

Close condition: bank match --since 2026-01-01 → UNKNOWN bucket = 0 and every recorded piece has its GED document (needs #43); memory books-gap-2026-07 updated/pruned.


Execution — Blocked by: the prod replay (entries build on the recorded invoices), #51 (capital path), #43 (GED close condition) · Blocks: a truly clean 2026 book · Human gates: the [HUMAN]-tagged entries above (UI work) + the URSSAF clarification.
Start: post-replay; claude --worktree bucket-c from the erp repo root; first command: bank match --since 2026-01-01 to get the live gap list.
Done means: zero-UNKNOWN match output + GED-coverage check posted here → memory pruned → Closes #57.

Operational tail of the 2026-07-11 books regularization (memory: `books-gap-2026-07`; rehearsal done on sandbox, prod replay pack preserved at `.claude/skills/dolibarr-sandbox-write/replay-packs/2026-07-11-books-regularization/`). Mostly `[HUMAN]` UI work + one clarification; a session drives/verifies and records what's automatable. **Non-invoice entries (Dolibarr UI / paiements divers / module Charges sociales):** - **[HUMAN]** Apport en capital **1 000 €** (2026-01-21, notaire FOUREZ → compte 1013) — depends on the accounting-module verification (#51) for the clean path. - **[HUMAN]** URSSAF **−493,00 €** (2026-05-22 direct debit → 6451, module Charges sociales — outside the write-skill scope today). ⚠️ Also: an URSSAF échéancier exists → the PRD's "payroll dormant until first salary" assumption needs revisiting (**[HUMAN] clarify**: what are these cotisations? président? CFP?). - **[HUMAN]** Écarts de change **+1,08** (FAC004) et **+50,05** (FAC006) → produit 766 (the Wise wires exceeded the EUR invoice totals; payments recorded at full-remaining). - **[HUMAN]** Wise cashback **+1,60 €** (2026-06-03) · Qonto fee/refund **+5,22 €** (2026-01-16). **Document gaps (agent-drivable):** - **Cloudflare** invoice (mail 2026-06-24 in books@) — not recorded; inspect + record (small; rides the gated write path). - **Anthropic May/June** receipts (#2344-8391, #2997-4837) — no Qonto debit → clarify payment rail (**[HUMAN]**: personal card fk3?); record the supplier invoices + the CCA1 payments if personal. **Close condition:** `bank match --since 2026-01-01` → UNKNOWN bucket = 0 and every recorded piece has its GED document (needs #43); memory `books-gap-2026-07` updated/pruned. --- **Execution** — Blocked by: the **prod replay** (entries build on the recorded invoices), #51 (capital path), #43 (GED close condition) · Blocks: a truly clean 2026 book · Human gates: the [HUMAN]-tagged entries above (UI work) + the URSSAF clarification. **Start:** post-replay; `claude --worktree bucket-c` from the erp repo root; first command: `bank match --since 2026-01-01` to get the live gap list. **Done means:** zero-UNKNOWN match output + GED-coverage check posted here → memory pruned → `Closes #57`.
Author
Owner

Live prod state re-verified 2026-07-15 — prod is UNCHANGED since the 2026-07-11 audit; the replay pack remains fully applicable. (Earlier version of this comment overstated staleness — corrected.)

Timeline established: the customer drafts PROV14–17 (KM M1/M2, 9 442 €) and the three irregular supplier drafts were created late June, directly in prod via API, by the session "Revue 1-à-1 findings cohorte française" (repo contract_proposal) — outside the gated path. The 2026-07-11 audit catalogued exactly that state; the sandbox rehearsal fixed and validated all 7 drafts (FAC004–007 + FAF2026010–013 incl. the created F1045) and the preserved replay pack encodes those fixes. Nothing has moved in prod since.

Current prod state (read-only check today):

  • Customer: PROV14–17 still drafts, no FAC004+ validated — manifest A applies after validation;
  • Supplier: (PROV12) = F1046 without ref_supplier; (PROV14)/(PROV15) supplier = Anthropic 180,00 / Mistral 143,90 drafts with stale paye=1; F1045 still missing; FAF2026008/009 (F1040/F1042) clean and paid — all exactly as the pack's prelude+runbook expect.

⇒ The single unblocking event for this issue (and #56) remains the human-gated prod replay of the preserved pack (.claude/skills/dolibarr-sandbox-write/replay-packs/2026-07-11-books-regularization/), with a fresh provenance-checker run + snapshot brackets around it.

Coordination done today: the other session was messaged — stop prod writes, do NOT enter "la facture Clément" (= F1045/F1046, duplicate risk), route needs through the erp backlog.

⚠️ Ops finding (stands): those June writes prove a prod-write-capable Dolibarr credential exists outside the gated path (the ai_agent key is read-only; the sandbox key is host-guarded). Identify, scope or rotate it — otherwise ADR-0003 is a convention, not a guarantee. Likely location: an .env in the contract_proposal repo.

**Live prod state re-verified 2026-07-15 — prod is UNCHANGED since the 2026-07-11 audit; the replay pack remains fully applicable.** (Earlier version of this comment overstated staleness — corrected.) Timeline established: the customer drafts `PROV14–17` (KM M1/M2, 9 442 €) and the three irregular supplier drafts were created **late June, directly in prod via API**, by the session "Revue 1-à-1 findings cohorte française" (repo `contract_proposal`) — outside the gated path. The 2026-07-11 audit catalogued exactly that state; the sandbox rehearsal fixed and validated all 7 drafts (FAC004–007 + FAF2026010–013 incl. the created F1045) and the preserved replay pack encodes those fixes. **Nothing has moved in prod since.** Current prod state (read-only check today): - **Customer:** PROV14–17 still drafts, no FAC004+ validated — manifest A applies after validation; - **Supplier:** `(PROV12)` = F1046 without `ref_supplier`; `(PROV14)/(PROV15)` supplier = Anthropic 180,00 / Mistral 143,90 drafts with stale `paye=1`; **F1045 still missing**; FAF2026008/009 (F1040/F1042) clean and paid — all exactly as the pack's prelude+runbook expect. **⇒ The single unblocking event for this issue (and #56) remains the human-gated prod replay of the preserved pack** (`.claude/skills/dolibarr-sandbox-write/replay-packs/2026-07-11-books-regularization/`), with a fresh provenance-checker run + snapshot brackets around it. Coordination done today: the other session was messaged — stop prod writes, do NOT enter "la facture Clément" (= F1045/F1046, duplicate risk), route needs through the erp backlog. **⚠️ Ops finding (stands):** those June writes prove a **prod-write-capable Dolibarr credential exists outside the gated path** (the `ai_agent` key is read-only; the sandbox key is host-guarded). Identify, scope or rotate it — otherwise ADR-0003 is a convention, not a guarantee. Likely location: an `.env` in the `contract_proposal` repo.
Author
Owner

PROD REPLAY EXECUTED 2026-07-15 (operator "go"). This issue is now UNBLOCKED — only bucket C remains.

Evidence (full detail in the pack README, flipped by PR #64):

  • Fresh provenance 36/36 before writing (PDFs re-fetched from books@ — /tmp had been wiped; the pack's re-fetch path worked as documented);
  • Prelude green: FAC004 (M1 fixe, soldée Wise 2159468139), FAC005 (M1 différée, validée — due 23/08), FAC006 (M2 fixe, soldée Wise 2210434850), FAC007 (M2 différée, validée — due 23/09); FAF2026010=F1046, FAF2026011=Anthropic, FAF2026012=Mistral (refs/lines/paye fixed);
  • Manifests A+B: FAF2026013=F1045 created+validated+paid; 6 payments (ids 7,8,13–16), tx-ids normalized;
  • Snapshots: before e97fc10e256d… → after 731c8f443ebf…;
  • bank match --since 2026-01-01: 12 matched · 1 internal · 2 avoir-netted · 5 bank-known · 0 bank-UNKNOWN · 0 dolibarr-only-API · 7 dolibarr-only-personal (CCA1, expected).

The 5 bank-known = exactly this issue's bucket C: capital 1 000 € (FOUREZ 21/01 → 1013), URSSAF −493,00 (22/05 → 6451), Wise topup pair ±50 (janv, net zéro), cashback +1,60 (03/06), Qonto +5,22 (16/01). Plus the two FX deltas to book on 766 (+1,08 sur FAC004, +50,05 sur FAC006) and the document clarifications (Cloudflare 24/06; Anthropic mai/juin rails). #56 is also unblocked (post-replay re-check can run — note: today's match already shows the AI-subscription patterns matched, so the pattern prune in #56 is confirmed feasible).

**✅ PROD REPLAY EXECUTED 2026-07-15 (operator "go"). This issue is now UNBLOCKED — only bucket C remains.** Evidence (full detail in the pack README, flipped by PR #64): - Fresh provenance **36/36** before writing (PDFs re-fetched from books@ — `/tmp` had been wiped; the pack's re-fetch path worked as documented); - Prelude green: **FAC004** (M1 fixe, soldée Wise `2159468139`), **FAC005** (M1 différée, validée — **due 23/08**), **FAC006** (M2 fixe, soldée Wise `2210434850`), **FAC007** (M2 différée, validée — **due 23/09**); **FAF2026010**=F1046, **FAF2026011**=Anthropic, **FAF2026012**=Mistral (refs/lines/paye fixed); - Manifests A+B: **FAF2026013**=F1045 created+validated+paid; 6 payments (ids 7,8,13–16), tx-ids normalized; - Snapshots: before `e97fc10e256d…` → after `731c8f443ebf…`; - **`bank match --since 2026-01-01`: 12 matched · 1 internal · 2 avoir-netted · 5 bank-known · 0 bank-UNKNOWN · 0 dolibarr-only-API · 7 dolibarr-only-personal (CCA1, expected)**. The 5 bank-known = exactly this issue's bucket C: capital 1 000 € (FOUREZ 21/01 → 1013), URSSAF −493,00 (22/05 → 6451), Wise topup pair ±50 (janv, net zéro), cashback +1,60 (03/06), Qonto +5,22 (16/01). Plus the two FX deltas to book on 766 (+1,08 sur FAC004, +50,05 sur FAC006) and the document clarifications (Cloudflare 24/06; Anthropic mai/juin rails). **#56 is also unblocked** (post-replay re-check can run — note: today's match already shows the AI-subscription patterns matched, so the pattern prune in #56 is confirmed feasible).
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange-org/erp#57