Files
arcodangeandClaude Fable 5 5430e5f3ac docs(prd): dated roadmap leaf — Gantt, milestone spine, re-baselining rule
New roadmap.md: mermaid Gantt (validated) putting the six phases on
calendar time from baseline 2026-07-11 — P2 e-invoicing opens the plan
(ADR D4 target 08-14, two-week fallback before the hard 09-01), P1
flagship in parallel (golden set first, A2 earned ~10-09), ledger-
compliance verifications early September (FY-2026 FEC depends on the
accounting-module answer), P3 standing fleet through autumn (sentinel
24/7 ~11-13), P4 money-loop exit over December, P5 riding the fiscal
calendar (acompte 12-15, CA3 switch 01-01, Q1 filing April, CA12 early
May, AG 06-30), P6 e-reporting proven months before 2027-09-01.
Immovable-milestone table, dependency notes, re-baselining rule
(engineering bars slide, diamonds don't — slips shed scope instead).
Wired: hub pointer + leaves row, poc-plan/STATUS backlinks.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-11 15:02:02 +02:00

78 lines
8.2 KiB
Markdown
Raw Permalink 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.
[vibe](../../README.md) > [PRD](../README.md) > [AI back-office](README.md) > **POC plan**
# POC plan — feasibility proven by real implementations
> **Status:** In design
> **Last Updated:** 2026-07-11
> **Up:** [AI back-office hub](README.md)
> **Related:** [Task inventory](task-inventory.md) · [Challenges](challenges.md) · [QA strategy](qa-strategy.md) · [Roadmap](roadmap.md) · [STATUS](STATUS.md)
POCs are **real implementations against real data** (the live mailbox, the live bank feeds, the iso-prod sandbox) — not demos. Each has a hard exit criterion; a POC that can't meet it produces a documented "no" and a fallback decision, which is also a success. Environment rule for every POC: **write legs run on the sandbox** and reach prod only through the promote gate with a real approval; anything irreversible-by-design is trialed on a disposable checkpoint first ([environments](agent-architecture.md#environments--sandbox-vs-production)). Order follows the [roadmap](README.md#phased-roadmap); effort is S/M/L (rough: S ≈ a day, M ≈ a few days, L ≈ a week-plus of focused sessions).
## POC-1 — Supplier invoice end-to-end
*Flagship — phase 1 · effort L.*
**Proves:** the full A2 loop — the pipeline shape, dual extraction, validators, sandbox rehearsal, Telegram approval, gated promote, GED attach. Covers [T01](task-inventory.md#t01--mailbox-triage--routing)→[T04](task-inventory.md#t04--thirdparty-creation--completeness).
**Build:** mail → dual extraction (M4 + Mistral) → validators → manifest → sandbox → approval card → promote → attach + verify, journaled end-to-end. Triage may start as a cron script (Pi model comes in POC-2).
**Exit criteria:** 10 consecutive *real* supplier invoices recorded in prod with **zero human field-corrections** (approvals only); critical-field accuracy ≥ 98 % over the full golden set (overall field accuracy reported alongside); all injection fixtures quarantined; every run replayable from its journal; post-run snapshot history is **pure-append** (no validated document mutated) and the compliance linter's forbidden-manifest suite passes ([compliance](compliance.md#the-ledger-grammar-production)).
**Fallback if failed:** stay at A1 (agent drafts, human enters in UI) and iterate extraction only.
## POC-2 — Pi sentinel
*Phase 3 · effort M.*
**Proves:** a quantized SLM on the cluster can hold the 24/7 watch ([T01](task-inventory.md#t01--mailbox-triage--routing), [T11](task-inventory.md#t11--compliance-calendar--reminders)); closes [D6](agent-architecture.md#open-decisions).
**Build:** llama.cpp/Ollama server as an ArgoCD app (arm64, GGUF Q4, 14B candidates, GBNF-constrained), resource-limited and node-pinned; triage atom pointed at it; reminder loop from the calendar file.
**Exit criteria:** ≥ 95 % accuracy on the three action classes (`supplier-invoice`, `bank-notice`, `government-admin`) over ≥ 200 historical mails labeled by Claude + human-corrected; p95 classification latency < 60 s; zero k8s evictions of business workloads attributable to inference over a 2-week soak; reminders fire on schedule for a synthetic calendar.
**Fallback if failed:** sentinel runs on M4-wake + Mistral (loses 24/7 — accepted degraded steady-state per [C5](challenges.md#c5--slm-capability-ceiling-on-pi-hardware)).
## POC-3 — Reconciliation + payment recording
*Phase 4 · effort M.*
**Proves:** the weekly money loop — reco findings become gated payment writes with deterministic tx-id linkage ([T07](task-inventory.md#t07--bank-reconciliation), [T08](task-inventory.md#t08--payment-recording)).
**Build:** scheduled reco → work items → payment manifests (with `transaction_id`) → rehearse/gate/promote → next reco matches by id (PASS 0).
**Exit criteria:** one calendar month with **zero unexplained deltas older than 7 days**; every recorded payment carries its `transaction_id` and is matched by id (not fuzzy) on the following run; digest reflects reality (spot-checked weekly).
**Fallback if failed:** reco stays A3-report-only; payments stay manual with the agent pre-filling.
## POC-4 — TVA dry-run
*Phase 5 · effort S.*
**Proves:** €-parity of fiscal preparation ([T10](task-inventory.md#t10--tva-preparation)) before the 2027 regime switch raises the stakes; de-risks [C6](challenges.md#c6--french-fiscal-correctness-over-time).
**Build:** prepare the **acompte de décembre 2026** and the **CA12 FY-2026** sheets from the ERP (skills exist); simulate 2027-Q1 as a CA3 quarterly sheet from the same data; archive evidence (snapshot hash + sheet) per run.
**Exit criteria:** prepared figures match the actually-filed values **to the euro** (acompte now, CA12 at filing ~May 2027); the CA3 simulation is validated by the expert-comptable checkpoint (or SIE guidance) before 2027-Q1 becomes real.
**Fallback if failed:** divergences are themselves findings (either a books error or an atom error — both valuable); T10 stays fully manual-verified until parity holds.
## POC-5 — Model routing bench
*Phase 1, alongside POC-1 · effort S.*
**Proves:** the [routing policy](model-fleet.md#routing-policy) with numbers instead of vibes; closes [D5](agent-architecture.md#open-decisions) (OCR) and seeds every atom's `model_policy`.
**Build:** run the *same* extraction atom across all four tiers on the golden set; score per-field accuracy, latency, cost/doc; include the OCR contenders on the scanned subset.
**Exit criteria:** a published table (accuracy × latency × cost per tier) + routing policy v1 committed to the registry; disagreement-rate baseline established for the dual-extraction design.
**Fallback:** none needed — whatever the numbers say *is* the deliverable.
## POC-6 — E-invoicing readiness spike
*Phase 2 — hard deadline 2026-09-01 · effort M.*
**Proves:** Arcodange can receive e-invoices on day one; closes [D4](agent-architecture.md#open-decisions) with an ADR ([C12](challenges.md#c12--e-invoicing-reform-unknowns)).
**Build:** validate **Qonto as the PA** (*plateforme agréée*, ex-PDP — operator direction: the capital-deposit bank, DGFiP-registered, e-invoicing included in every plan): activate the e-invoicing address, receive a real or test e-invoice, **pull it through the business API** (the fleet already authenticates there) into T02's structured schema; archive the original in the GED (the PA is a conduit, never the archive); map the 2027 path — Dolibarr stays the invoicing system of record, so establish how e-reporting data for the KM export invoices reaches Qonto (API push vs. manual) before it becomes mandatory.
**Exit criteria:** reception verified end-to-end (supplier e-invoice → Qonto → API pull → validated draft in the pipeline) before 2026-09-01; ADR merged recording Qonto as the PA; 2027 e-reporting requirements captured as backlog fiches with owners and dates.
**Fallback if failed:** any other DGFiP-registered PA (138 exist as of 2026-06) — switching stays cheap because originals live in the GED, not at the PA; minimum-compliance manual reception via the Qonto UI while the API lane matures.
## Challenge coverage
| POC | De-risks |
| --- | --- |
| POC-1 | [C1](challenges.md#c1--extraction-reliability) extraction · [C2](challenges.md#c2--erp-write-integrity) write integrity · [C3](challenges.md#c3--prompt-injection-via-inbound-content) injection · [C8](challenges.md#c8--trust-calibration--autonomy-creep) trust gates |
| POC-2 | [C5](challenges.md#c5--slm-capability-ceiling-on-pi-hardware) SLM ceiling · [C7](challenges.md#c7--silent-failures-in-unattended-operation) silent failures (heartbeat pattern) |
| POC-3 | [C2](challenges.md#c2--erp-write-integrity) · [C7](challenges.md#c7--silent-failures-in-unattended-operation) — the standing money loop |
| POC-4 | [C6](challenges.md#c6--french-fiscal-correctness-over-time) fiscal correctness |
| POC-5 | [C1](challenges.md#c1--extraction-reliability) · [C4](challenges.md#c4--data-confidentiality--sovereignty) · [C9](challenges.md#c9--provider--api-dependency) — tier diversity with data |
| POC-6 | [C12](challenges.md#c12--e-invoicing-reform-unknowns) reform readiness |
Cross-cutting: [C10](challenges.md#c10--fleet-maintenance-burden--bus-factor) (maintenance) and [C11](challenges.md#c11--laptop-tier-availability) (M4 availability) are watched across all POCs via the weekly ops review rather than owned by one.