[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). The concrete agent bound to each task — prompt, model, orchestrator, and its proof status — is assigned in the [agent catalog](agent-catalog.md#assignment-matrix). ## 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 `gabrielradureau@arcodange.fr`, `/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 own PRD, daily pipeline, Mode A/B scoring); its admin loops (follow-ups, pipeline hygiene) and the conversion bridge (a Mode-B prospect becoming a Dolibarr thirdparty + proposal through the gated write path) reuse this fleet's patterns later. Audited 2026-07-11: Dolibarr's propal/contrat/projet modules are enabled but empty — proposals and contracts live outside the ERP today. - **Contract lifecycle** — record contracts in the ERP (the KM retainer terms exist only as WIP JSON today: $5,500/mo = $2,500 net-30 + $3,000 deferred +3 months — the deferred schedule is the source of truth T06 dunning needs), renewal reminders, obligation extraction (the KM 4 % new-business clause), signed originals in the GED. Needs write-skill ops for contacts/contracts/products (same extension pattern as the GED-attach issue). - **Client delivery agents — the third family.** Agents working *on* client projects (the KM architecture notes in the vault are the embryo) share the [client dossiers](agent-architecture.md#knowledge-layer--the-second-brain) with this fleet: they deposit decisions, meeting notes (via a **local capture lane** — [D9](agent-architecture.md#open-decisions): Hyprnote free tier on the M4 — local transcription + speaker diarization + Google Calendar sync, manual trigger; Meetily as OSS fallback; markdown export → `sb.py` ingest matched to the calendar event → Ornith summary, per the vault doctrine — no cloud notetaker) and new-business sightings; they retrieve contract scope, contacts and billing state. Reuses T17 rails and the vault routing doctrine; REX at project close feeds `03-Resources` → prospection Mode B evidence → CMS case studies.