Files
factory/vibe/PRD/ai-back-office/task-inventory.md
T
arcodangeandClaude Fable 5 a00f5cb065 docs(prd): sandbox-vs-prod posture + certified-accounting-grade operations
New compliance.md leaf: French bookkeeping obligations mapped to fleet
mechanisms — inaltérabilité (L.123-22) via an append-only production
ledger grammar (create/validate/pay/avoir, never mutate a validated
document) enforced by a promote-plan compliance linter; FEC (L.47 A
LPF) with quarterly export + Test Compta Demat validation (accounting-
module binding flagged as unverified gap); piste d'audit fiable (289
VII CGI) framed as a by-product of journals + tx-id reco + monthly
packs; retention, numbering, copie fiable; loi anti-fraude scoped out
(B2B-only) with BlockedLog as sandbox-first belt-and-braces.

New Environments section in agent-architecture: prod = the ledger
(grammar-bound), sandbox = disposable iso-prod rehearsal (exempt, never
wired to production third parties); side_effect_class -> environment/
credential mapping; POCs write on sandbox only; evals target fresh
checkpoints; irreversible-by-design features trial on checkpoints.

Woven through hub (goal, requirement, success criteria, leaves table),
T03/T05/T15 guardrails, QA (linter suite, pure-append snapshots, FEC
cadence, PAF evidence framing), C2, POC-1 exit criteria.

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

255 lines
25 KiB
Markdown

[vibe](../../README.md) > [PRD](../README.md) > [AI back-office](README.md) > **Task inventory**
# Task inventory — the enumerated back-office
> **Status:** In design
> **Last Updated:** 2026-07-11
> **Up:** [AI back-office hub](README.md)
> **Related:** [Agent architecture](agent-architecture.md) · [Model fleet](model-fleet.md) · [QA strategy](qa-strategy.md)
Every recurring admin/accounting task, with its mode opératoire. Steps carry the runbook markers: **[AGENT]** = safe for an agent at the stated autonomy, **[HUMAN]** = stays human (approval, signature, or money). "Today" names the existing tooling (skills live in the [erp repo](https://gitea.arcodange.lab/arcodange-org/erp) under `.claude/skills/`, wrapped by `bin/arcodange`). Autonomy levels are defined in the [hub](README.md#the-autonomy-ladder).
## Overview
| ID | Task | Cadence / trigger | Today | Target | Primary tier |
| --- | --- | --- | --- | --- | --- |
| [T01](#t01--mailbox-triage--routing) | Mailbox triage & routing | every 30 min | manual + on-demand listing | **A3** | Pi |
| [T02](#t02--supplier-invoice-extraction) | Supplier invoice extraction | per T01 item | pdftotext heuristics | **A2** | M4 + Mistral |
| [T03](#t03--supplier-invoice-recording) | Supplier invoice recording + GED | per validated T02 draft | sandbox-write + promote (manual) | **A2** | Claude |
| [T04](#t04--thirdparty-creation--completeness) | Thirdparty creation & completeness | per new party / monthly sweep | audit skill (read) | **A2** | Claude |
| [T05](#t05--client-invoice-issuance) | Client invoice issuance (monthly) | 1st of month | template fired by hand in UI | **A2** | Claude |
| [T06](#t06--receivables-watch--dunning) | Receivables watch & dunning | weekly | payments-state skill (read) | **A1→A2** | Claude |
| [T07](#t07--bank-reconciliation) | Bank reconciliation | weekly | bank-reco skill, on demand | **A3** (report) | Claude |
| [T08](#t08--payment-recording) | Payment recording | per reco finding | sandbox-write + promote (manual) | **A2** | Claude |
| [T09](#t09--cash-position--runway) | Cash position & runway report | monthly | balances workflow (read) | **A3** | M4 |
| [T10](#t10--tva-preparation) | TVA preparation | fiscal calendar | tva-summary skill (read) | **A1** (by design) | Claude |
| [T11](#t11--compliance-calendar--reminders) | Compliance calendar & reminders | daily check | human memory + DGFiP mails | **A3** (reminders) | Pi |
| [T12](#t12--regulatory-watch) | Regulatory watch | quarterly + event | ad-hoc research | **A1** | Claude |
| [T13](#t13--erp-snapshot--drift-detection) | ERP snapshot & drift detection | daily + around writes | snapshot skill, on demand | **A3** | cluster (no LLM) |
| [T14](#t14--backup--restore-verification) | Backup & restore verification | daily / monthly drill | CronJob live; restore manual | **A3** | cluster (no LLM) |
| [T15](#t15--monthly-coherence-audit) | Monthly coherence audit | 1st of month | skills exist, composed by hand | **A3** | Claude |
| [T16](#t16--document-filing--retention) | Document filing & retention | per document | ad-hoc | **A2** | M4 |
| [T17](#t17--knowledge-capture--retrieval-second-brain) | Knowledge capture & retrieval (second brain) | per run + weekly | vault automation live (hermes cron); no fleet wiring | **A3** | M4 (hermes) |
Backlog (not yet specified): [see bottom](#backlog--deferred).
---
## Inbound — mail & documents
### T01 — Mailbox triage & routing
- **Trigger:** cron, every 30 min, 24/7.
- **Inputs:** unread messages in `[email protected]`, `/Inbox/books` (alias `books@`, supplier invoices), `/bureaux` (alias `bureaux@`, administration: URSSAF, the SIE/DGFiP tax office, PortailPro), via the Zoho Mail read-only OAuth API (`arcodange-email-ingest` skill).
- **Mode opératoire:**
1. [AGENT] Poll new message headers + snippets since the last high-water mark.
2. [AGENT] Classify each into `{supplier-invoice, bank-notice, government-admin, client, other}` with a schema-constrained output (class + confidence + one-line reason).
3. [AGENT] Enqueue `supplier-invoice` items for [T02](#t02--supplier-invoice-extraction); tag `government-admin` items for the daily digest (and [T11](#t11--compliance-calendar--reminders) if a deadline is detected); surface `bank-notice` items in the digest as context for the next [T07](#t07--bank-reconciliation) run; flag `client` mail for human reply (never auto-answered); leave `other` untouched.
4. [AGENT] Below the confidence threshold or on classifier disagreement: park in the review queue instead of guessing.
5. [HUMAN] Reads the daily digest; reclassifications feed the golden set.
- **Outputs:** queue items (typed), digest lines, classification journal.
- **Guardrails:** read-only mailbox scopes; a classification is data, not an action — the queues downstream own actions; every misclassification is recoverable (nothing is deleted or moved).
- **Today:** `arcodange-email-ingest` lists candidates on demand; no standing watcher.
- **Target:** **A3** on Pi tier (this is the flagship SLM task: small closed class set, constrained decoding, low stakes); M4/Mistral fallback when the Pi tier is down or unsure.
### T02 — Supplier invoice extraction
- **Trigger:** a `supplier-invoice` queue item from T01 (or a PDF dropped manually).
- **Inputs:** message + PDF attachments (Zoho download); from 2026-09, e-invoices received via the PA (*plateforme agréée*, ex-PDP; leaning Qonto, pulled through the business API — structured CII/UBL/Factur-X, see [challenges C12](challenges.md#c12--e-invoicing-reform-unknowns)).
- **Mode opératoire:**
1. [AGENT] Download attachments; compute file hash (dedupe + GED key).
2. [AGENT] Text layer via `pdftotext`; if empty/scanned, OCR fallback (Mistral OCR or local vision — POC decides).
3. [AGENT] Extract to the invoice schema: supplier identity (+ SIREN/TVA intra if present), invoice ref, issue/due dates, currency, per-rate HT/TVA amounts, TTC, IBAN, service-vs-goods, period covered.
4. [AGENT] **Dual extraction on critical fields** (amounts, IBAN, ref, dates): two independent models (M4 local + Mistral) must agree exactly; disagreement → escalate to Claude tier; still ambiguous → review queue.
5. [AGENT] Deterministic validation: `HT + TVA = TTC` (±0.01 €), rate ∈ {0, 2.1, 5.5, 10, 20} or explicit reverse-charge, SIREN checksum, IBAN mod-97, dates plausible, duplicate check against existing `ref_supplier` + amount + supplier.
6. [AGENT] Emit a **draft entry** (validated JSON + confidence + source hash) for T03.
- **Outputs:** draft supplier-invoice entry; quarantine item on any validation failure.
- **Guardrails:** extraction atoms run with **zero credentials and zero action tools** (see [injection defenses](agent-architecture.md#prompt-injection-defenses)); document content is data, never instructions; no field is ever "corrected" by the model to make arithmetic pass — mismatch means quarantine.
- **Today:** heuristic first-line/regex extraction in `arcodange-email-ingest` (draft JSON for manual UI entry).
- **Target:** **A2** (feeds the gated write); M4 + Mistral tiers, Claude escalation.
### T03 — Supplier invoice recording
- **Trigger:** a validated draft from T02.
- **Inputs:** draft entry; thirdparty check result from T04.
- **Mode opératoire:**
1. [AGENT] Resolve or create the supplier fiche ([T04](#t04--thirdparty-creation--completeness)) — lookup by name/SIREN via business-key (`#thirdparty:...`), never by guessed id.
2. [AGENT] Assemble a **write manifest** (thirdparty? + supplier invoice with lines + correct VAT treatment per the fiscal profile: FR 20 % déductible, intra-EU reverse charge, etc.).
3. [AGENT] Rehearse on the sandbox (`dolibarr-sandbox-write`), re-read what was created, assert it matches the draft (predicted-delta check).
4. [AGENT] Surface a Telegram approval card: supplier, ref, amounts, VAT bucket, PDF link, sandbox diff.
5. [HUMAN] One-tap approve (or edit/reject with a reason — reasons feed the golden set).
6. [HUMAN+AGENT] Gated promote to prod (`arcodange promote apply --target prod`, env-confirmed, prod key never stored) — per [ADR 0003](../../ADR/0003-sandbox-state-lifecycle.md).
7. [AGENT] Attach the source PDF to the prod supplier invoice in the GED (*gestion électronique de documents* — Dolibarr's attached-files store), verify by re-read + snapshot delta; journal the run.
- **Outputs:** recorded + documented supplier invoice in prod; journal entry; GED attachment.
- **Guardrails:** idempotency key = (supplier, `ref_supplier`, TTC) — a replay can never double-record; the sandbox host-guard structurally refuses prod; validation of the *recorded* state, not just the request; once validated, the document is immutable — corrections are avoirs, per the [ledger grammar](compliance.md#the-ledger-grammar-production).
- **Today:** all write machinery exists and is proven (`dolibarr-sandbox-write`, promote plan/apply, business-key lookup); it is driven by hand from Claude Code sessions.
- **Target:** **A2**, Claude tier assembling/verifying, human approving via Telegram.
### T04 — Thirdparty creation & completeness
- **Trigger:** unknown party in T02/T03; plus a monthly completeness sweep.
- **Mode opératoire:**
1. [AGENT] Country-aware completeness audit (`dolibarr-thirdparty-completeness`): FR → SIREN+SIRET (+ TVA intra if VAT-registered), EU → TVA intra, extra-EU → national tax id.
2. [AGENT] For a new supplier/client: gather identifiers from the invoice + public registries; assemble the fiche creation as part of the T03 manifest.
3. [AGENT] For gaps on existing fiches: propose the correction (sandbox-rehearsed manifest) in the digest.
4. [HUMAN] Approves fiche creations/corrections (same gate as T03).
- **Guardrails:** never merge two fiches automatically; ambiguous identity → review queue.
- **Today:** the audit side is A3-eligible (read-only, `audit-all`) but runs only on demand; corrections are manual UI work.
- **Target:** **A2** for creations/corrections; Claude tier.
## Outbound — client billing
### T05 — Client invoice issuance
- **Trigger:** 1st of month (the KissMetrics retainer), or an ad-hoc billing request.
- **Mode opératoire:**
1. [AGENT] Inspect the recurring template (`dolibarr-recurring-templates`): schedule health, next-fire date, line contents, legal mentions. Today the template has `frequency=0` — every child invoice is a manual duplication; the target state (auto-fire vs agent-fired via sandbox+promote) is an open decision in [agent-architecture](agent-architecture.md#open-decisions).
2. [AGENT] Generate the month's invoice (sandbox rehearsal → gate → prod), with the France↔US specifics: autoliquidation Art. 259-1° CGI (TVA collectée = 0, bucket E2), USD/EUR handling as contracted.
3. [AGENT] Run the mandatory-mention audit on the produced PDF (`dolibarr-invoice-audit`: SIRET, RCS, TVA intracom, L.441-10 penalties, 40 € indemnity, etc.).
4. [HUMAN] Approves the send; [AGENT] emails the invoice to the client contact (allowlisted recipient) and records the expected due date per the contracted payment cycle.
5. From 2027-09: [AGENT] submits the e-reporting data for this international transaction via the PA (leaning Qonto — [challenges C12](challenges.md#c12--e-invoicing-reform-unknowns)).
- **Guardrails:** outbound email is always human-gated; the invoice number sequence is owned by Dolibarr (never fabricated); a failed mention-audit blocks the send; a validated invoice is immutable — corrections go through an avoir + re-issue ([ledger grammar](compliance.md#the-ledger-grammar-production)).
- **Today:** template inspection + invoice audit are A3-eligible (read, on demand); issuance is manual in the UI.
- **Target:** **A2**; Claude tier.
### T06 — Receivables watch & dunning
- **Trigger:** weekly.
- **Mode opératoire:**
1. [AGENT] Payment state per invoice (`dolibarr-payments-state`): TTC vs recorded payments → OK / PARTIAL / UNPAID / OVERPAID, cross-checked against the contracted (deferred) payment schedule rather than naive due dates.
2. [AGENT] For overdue items past defined thresholds: draft the dunning email (courtesy → formal with L.441-10 late-payment interest + 40 € recovery indemnity), citing invoice facts verbatim from the ERP.
3. [HUMAN] Approves each send (dunning a client is a relationship decision, not just a legal one).
4. [AGENT] Journal the dunning history per invoice (feeds the next escalation level).
- **Guardrails:** allowlisted recipients; never threatens beyond the contractual/legal wording; single client today → tone matters more than automation depth.
- **Today:** payment state is A3-eligible (read, on demand); no dunning machinery.
- **Target:** **A1→A2** (drafts always; sends gated); Claude tier.
## Bank & cash
### T07 — Bank reconciliation
- **Trigger:** weekly (and before any T15 audit).
- **Mode opératoire:**
1. [AGENT] Pull Qonto transactions + Wise activities for the window (`arcodange-bank-reco`).
2. [AGENT] Match against Dolibarr payments: PASS 0 exact `transaction_id` (deterministic, date-window-independent), then wire-ref, then amount+date; auto-detect Wise↔Qonto internal consolidations.
3. [AGENT] Emit three buckets: matched / bank-only / dolibarr-only; each bank-only movement becomes a work item (→ [T08](#t08--payment-recording) if it pays a known invoice, → [T02](#t02--supplier-invoice-extraction) if it reveals an unrecorded expense).
4. [AGENT] Weekly digest line: "N matched, M to resolve"; unresolved items age visibly.
- **Guardrails:** read-only on both banks; the personal CCA account (`fk_account=3`) is invisible via API — flagged as a permanent manual lane, not silently ignored.
- **Today:** fully built as an on-demand skill; the tx-id loop closes when payments are recorded with `transaction_id` (T08).
- **Target:** **A3** for the reconciliation report; findings feed A2 loops.
### T08 — Payment recording
- **Trigger:** a bank-only movement matched to a known invoice (from T07).
- **Mode opératoire:**
1. [AGENT] Build the payment manifest: invoice ref (business-key lookup), amount, date, bank account (QONTO/WISE), **`transaction_id`** from the feed (so next week's reco matches deterministically), payment mode.
2. [AGENT] Sandbox rehearse → Telegram card (invoice, movement, remaining balance after) → [HUMAN] approve → gated promote.
3. [AGENT] Verify: re-read payments, remaining-to-pay, and `paye` flag transitions; journal.
- **Guardrails:** a payment may never exceed the invoice's remaining balance without explicit human override (partial/over-payment is a flagged decision); credit notes (avoirs) follow the same gate.
- **Today:** `payment-record.sh` (+ supplier variant, avoirs) proven on sandbox and promotable; driven by hand.
- **Target:** **A2**; Claude tier.
### T09 — Cash position & runway
- **Trigger:** monthly (1st), and on demand.
- **Mode opératoire:**
1. [AGENT] Live balances per account (Qonto, Wise) + Dolibarr per-`fk_account` cross-check.
2. [AGENT] Receivables/payables aging from the ERP; expected inflows from the contracted payment schedule.
3. [AGENT] Compute runway vs fixed monthly costs; emit a one-page Markdown report into the digest + archive.
- **Guardrails:** report only — no advice, no action; discrepancies bank-vs-ERP route to T07 rather than being smoothed over.
- **Today:** balances workflow exists in `arcodange-bank-reco`.
- **Target:** **A3**; M4 tier (bank data stays local), delivered through the gateway digest.
## Fiscal & compliance
### T10 — TVA preparation
- **Trigger:** the fiscal calendar (T11): **acompte July 2026** (expected ≈ 0 € while in TVA credit — verify on impots.gouv.fr, never assume), **acompte December 2026**, **CA12 for FY 2026 ~May 2027**, then **quarterly CA3 from 2027-Q1** (régime simplifié abolished 2027-01-01, LF 2025 art. 38).
- **Mode opératoire:**
1. [AGENT] Aggregate the period: TVA collectée by CA3 box (box A1 domestic / box A4 intra-EU / box E2 export — today 100 % of client revenue is box E2 autoliquidation Art. 259-1°, collectée = 0) and TVA déductible by rate from supplier invoices (`dolibarr-tva-summary` composing the two sibling skills).
2. [AGENT] Produce the declaration-ready sheet: per-line figures mapped to CA12/CA3 boxes, net verdict (credit vs payable), and the per-line audit trail (why each invoice lands in its bucket).
3. [AGENT] Parity check against the previous filing + snapshot the underlying data (content-hash) as evidence.
4. [HUMAN] Reviews the sheet, files on impots.gouv.fr, and records the filed values; [AGENT] archives sheet + confirmation and asserts filed == prepared.
- **Guardrails:** filing is **permanently human** (A1 by design); any invoice whose VAT treatment isn't derivable from the fiscal profile blocks the sheet rather than defaulting.
- **Today:** the whole read side is built (`dolibarr-tva-reconciliation`, `-deductible`, `-summary`); scheduling, evidence archiving, and filed-parity assertions are not.
- **Target:** **A1** (by design); Claude tier.
### T11 — Compliance calendar & reminders
- **Trigger:** daily check, 24/7.
- **Mode opératoire:**
1. [AGENT] Maintain a **machine-readable fiscal profile + calendar** in git: regime (réel simplifié until 2026-12-31, quarterly CA3 after), TVA acomptes, CA12 date, CFE (cotisation foncière des entreprises, December), IS installments (once profitable), AG/annual-accounts approval (within 6 months of FY close → June 2027 for FY 2026), URSSAF/DSN payroll declarations (dormant until first salary), e-invoicing milestones.
2. [AGENT] Fire reminders at D-30/D-7/D-1 via Telegram, each linking the matching preparation task (e.g. T10).
3. [AGENT] When a `government-admin` mail (T01) contains a deadline or an amount, propose a calendar entry/update.
4. [HUMAN] Confirms calendar mutations proposed from mail content (mail is untrusted input).
- **Guardrails:** the calendar file is reviewed like code (PR); reminders repeat until acknowledged — silence is never treated as done.
- **Today:** deadlines live in the operator's head + DGFiP emails; several are already documented in memory/skills but nothing fires.
- **Target:** **A3** for reminders (Pi tier); **A1** for calendar mutations sourced from mail.
### T12 — Regulatory watch
- **Trigger:** quarterly, plus event-driven (a `government-admin` mail announcing a change).
- **Mode opératoire:**
1. [AGENT] Targeted research pass over official sources (service-public, BOFiP, impots.gouv, URSSAF) scoped to the company profile: TVA regime mechanics, e-invoicing reform status (PDP list, formats, deadlines), thresholds that change obligations (CA3 monthly above 1 M€, IS rates, franchise thresholds).
2. [AGENT] Emit a diff proposal against the fiscal-profile file + calendar (what changed, source links, effective dates); a short REX note of the change lands in the second brain ([T17](#t17--knowledge-capture--retrieval-second-brain)).
3. [HUMAN] Reviews and merges the PR; disagreements go to the expert-comptable question list.
- **Guardrails:** official sources only; every claim carries its source URL and effective date; the watch *proposes*, the human *adopts*.
- **Today:** ad-hoc research inside Claude sessions (this PRD's regulatory table came from one).
- **Target:** **A1**; Claude tier (web research is frontier work).
## Records, audit & resilience — the floor
### T13 — ERP snapshot & drift detection
- **Trigger:** daily, plus before/after every promoted write batch.
- **Mode opératoire:** [AGENT] full read-side snapshot with `content_hash` (`dolibarr-data-snapshot`); compare against the previous hash; any drift not explained by journaled writes → alert with the object-level diff.
- **Guardrails:** read-only; snapshots exclude binaries (GED covered by T14 backups).
- **Today:** skill exists, on demand. **Target: A3**, cluster CronJob, no LLM in the loop.
### T14 — Backup & restore verification
- **Trigger:** daily CronJob (03:00, live since 2026-06-30: db + documents → GCS, skip-if-unchanged, 10-year tiered retention); monthly restore drill.
- **Mode opératoire:** [AGENT] verify last-backup freshness + fingerprint sanity daily (silence alarms if the CronJob stops); monthly: restore the latest prod backup **into the sandbox**, smoke-check (table count, company name, latest invoice present), report; [HUMAN] reads the drill report.
- **Guardrails:** drills only ever restore into the sandbox; prod restore remains a human-run runbook.
- **Today:** backup automated; restore proven but manual; no freshness watchdog. **Target: A3.**
### T15 — Monthly coherence audit
- **Trigger:** 1st of month (after T07 has converged); extended scope every quarter.
- **Mode opératoire:** [AGENT] compose the read skills into one audit pack: every invoice's payment state vs bank evidence, TVA bases vs invoice lines, thirdparty completeness, template health, credit-note consistency, GED attachment presence; attach the month's snapshot hash; archive the pack (git + GED) and distill a summary note into the second brain ([T17](#t17--knowledge-capture--retrieval-second-brain)); digest the exceptions only. **Quarterly, additionally:** export the FEC and validate it (*Test Compta Demat*), and verify ledger discipline — snapshot history shows pure appends, no validated document mutated, numbering gapless (BlockedLog chain check if adopted) — per [compliance](compliance.md#dolibarr-verifications-sandbox-first).
- **Guardrails:** read-only; exceptions route to the owning task's queue rather than being fixed inline.
- **Today:** each check exists as a skill; composition is manual (the ad-hoc "cohort review" audit sessions run in Claude Code today). **Target: A3**; Claude tier.
### T16 — Document filing & retention
- **Trigger:** any new business document (invoice PDF, government letter, contract, bank statement).
- **Mode opératoire:** [AGENT] classify + name (`YYYY-MM-DD_type_party_ref.pdf`), attach to the matching ERP object (GED) and/or the document tree, record the file hash in the journal; verify it lands in the backup scope (10-year retention, L.123-22).
- **Guardrails:** originals are never modified or deleted; unresolvable documents go to a "to-file" queue, not a best-guess folder.
- **Today:** ad-hoc. **Target: A2**; M4 tier (documents stay local until filed).
### T17 — Knowledge capture & retrieval (second brain)
- **Trigger:** after any significant run (audit pack, fiscal sheet, incident, decision); the existing weekly digest (Monday 08:00); on-demand retrieval before context-hungry tasks.
- **Substrate:** the operator's second brain — a PARA Obsidian vault (`00-Inbox``06-Zettel`), git-synced to the forge ([arcodange/SecondBrain](https://gitea.arcodange.lab/arcodange/SecondBrain)), already automated by `.automation/sb.py` (weekly digest, inbox triage, daily prefill, idempotent Gitea→Inbox ingest) on the **hermes cron ticker**, and exposed to agents via `mcp-obsidian` (local REST API). See the [knowledge layer](agent-architecture.md#knowledge-layer--the-second-brain).
- **Mode opératoire:**
1. [AGENT] **Capture:** deposit distilled notes (audit-pack summary, fiscal decision, supplier REX, incident post-mortem) into `00-Inbox/` — or the matching `02-Areas/Admin` / `02-Areas/Arcodange-Ops` / `01-Projects/Clients/…` page — with idempotent frontmatter, the pattern the Gitea ingest already proves (re-runs never duplicate; human notes never clobbered).
2. [AGENT] **Retrieval:** before context-hungry tasks ([T05](#t05--client-invoice-issuance) contract terms, [T06](#t06--receivables-watch--dunning) dunning tone/history, [T12](#t12--regulatory-watch) regulatory baseline), query the vault (dataview / `mcp-obsidian`) and carry retrieved facts *with their note dates*.
3. [AGENT] The existing weekly digest weaves fleet notes alongside personal ones; nothing new to build there.
4. [HUMAN] Files/links agent notes during the weekly PARA ritual (inbox → Projects/Areas/Resources); deleting a note is legitimate feedback, journaled.
- **Outputs:** inbox/area notes; retrieval bundles for other atoms.
- **Guardrails:** agents never edit human-authored notes in place (append/inbox only); the vault is **trusted-but-stale** context — the ERP is the book of record, and a note contradicting it (or older than its subject's last ERP change) triggers re-verification, not belief; vault content routes per the vault's own doctrine (Claude default · Mistral for well-defined tasks · Ornith/hermes local for the confidential).
- **Today:** the vault side is live (digest Monday 08:00, Gitea ingest daily 07:00, daily note 07:05); the fleet side (deposits from runs, retrieval into pipelines) does not exist yet.
- **Target:** **A3** (append-only inbox deposits are trivially reversible and human-curated weekly; retrieval is read-only); M4 tier via hermes.
---
## Backlog — deferred
Explicitly out of the current inventory; each becomes a task fiche when its trigger fires:
- **Paper mail** — scan + ingest lane (low volume; needs a scanning habit before automation makes sense).
- **Expense reports / personal-account visibility** — movements on the personal CCA (`fk_account=3`) are API-invisible; a manual CSV import lane or a banking-app export would open T07 coverage.
- **Payroll & DSN** — dormant until the first salary is paid (see hub non-goals).
- **Prospection/CRM admin** — the `prospection` repo exists; its admin loops (follow-ups, pipeline hygiene) can reuse this fleet's patterns later.
- **Contract lifecycle** — renewal reminders and obligation extraction from client/supplier contracts (extraction atoms generalize naturally).