From 44ae6ff323d10531e8a479a7ede5e9d6bb3a60bf Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Sat, 11 Jul 2026 20:32:35 +0200 Subject: [PATCH 1/3] =?UTF-8?q?docs(prd):=20client=20dossiers=20=E2=80=94?= =?UTF-8?q?=20the=20junction=20of=20the=20three=20agent=20families?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator insight 2026-07-11: the second brain's client dossiers (01-Projects/Clients//) are where the back-office fleet meets the sales chain and the future delivery agents working on client projects. Knowledge-layer bullet: agent-owned deposit files (never edits of human notes), each family feeds and reads the dossier (billing state + contract facts in; dunning tone, contract scope, new-business sightings out — the KM 4% settlement clause makes delivery observations a billing input); vault routing doctrine (local-first) for confidential client content. Backlog updated with the 2026-07-11 CRM audit facts (propal/contrat/projet modules empty, KM retainer terms only in WIP JSON — deferred schedule = T06's source of truth) and the third family (delivery agents; Granola→vault ingest as an sb.py job; REX → Mode B evidence → CMS). Co-Authored-By: Claude Fable 5 --- vibe/PRD/ai-back-office/agent-architecture.md | 1 + vibe/PRD/ai-back-office/task-inventory.md | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/vibe/PRD/ai-back-office/agent-architecture.md b/vibe/PRD/ai-back-office/agent-architecture.md index 776170a..8dc654e 100644 --- a/vibe/PRD/ai-back-office/agent-architecture.md +++ b/vibe/PRD/ai-back-office/agent-architecture.md @@ -176,6 +176,7 @@ The integration contract ([T17](task-inventory.md#t17--knowledge-capture--retrie - **Capture:** fleet outputs worth remembering land as **append-only inbox/area notes with idempotent frontmatter** — the pattern the Gitea ingest already proves; human-authored notes are never edited in place. - **Retrieval:** context-hungry atoms query the vault and carry facts *with their note dates* — notes are **trusted-but-stale**: anything contradicting the ERP, or older than its subject's last change, triggers re-verification rather than belief. - **Rails reused, not rebuilt:** M4-side access is direct filesystem + `mcp-obsidian`; the weekly digest and the human's PARA filing ritual remain the curation loop; cluster-side access is open decision [D7](#open-decisions). +- **Client dossiers — the junction of the agent families.** `01-Projects/Clients//` is where this fleet meets the sales chain (prospection → proposal → contract) and the future **delivery agents** working on client projects (the KM architecture notes already live there). Deposits are **agent-owned files** (e.g. a regenerated billing-snapshot note with `ai_generated` frontmatter), never edits of human notes; each family both feeds and reads the dossier — the back-office deposits billing state and contract facts and retrieves dunning tone; delivery agents deposit decisions, meeting notes and **new-business sightings** (contract clauses like the KM 4 % settlement make this a billing input) and retrieve contract scope and billing state. Client-project content is confidential by default — the vault's own routing doctrine applies (Ornith/local first). ## Open decisions diff --git a/vibe/PRD/ai-back-office/task-inventory.md b/vibe/PRD/ai-back-office/task-inventory.md index a3af24d..67314a6 100644 --- a/vibe/PRD/ai-back-office/task-inventory.md +++ b/vibe/PRD/ai-back-office/task-inventory.md @@ -250,5 +250,6 @@ Explicitly out of the current inventory; each becomes a task fiche when its trig - **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). +- **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 (Granola → vault ingest is a natural `sb.py` job) 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. From 5f2d7b77751f154f54cd31cc87ec575083bb0b48 Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Sat, 11 Jul 2026 20:35:29 +0200 Subject: [PATCH 2/3] docs(prd): meeting-notes lane is local-first (no proprietary notetaker) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator has no Granola account (proprietary, paid, cloud transcription — misfit with the vault doctrine). The delivery-agents backlog line now specifies the local transcription lane: Whisper-class model on the M4 + Ornith summary, as an sb.py job. Co-Authored-By: Claude Fable 5 --- vibe/PRD/ai-back-office/task-inventory.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vibe/PRD/ai-back-office/task-inventory.md b/vibe/PRD/ai-back-office/task-inventory.md index 67314a6..6ae232c 100644 --- a/vibe/PRD/ai-back-office/task-inventory.md +++ b/vibe/PRD/ai-back-office/task-inventory.md @@ -252,4 +252,4 @@ Explicitly out of the current inventory; each becomes a task fiche when its trig - **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 (Granola → vault ingest is a natural `sb.py` job) 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. +- **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 transcription lane** — Whisper-class model on the M4 + Ornith summary, per the vault doctrine; no proprietary notetaker — a natural `sb.py` job) 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. From 185208525eee37a6d9839811c8f0014df555c0f3 Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Sun, 12 Jul 2026 13:47:46 +0200 Subject: [PATCH 3/3] =?UTF-8?q?docs(prd):=20meeting=20capture=20decided=20?= =?UTF-8?q?=E2=80=94=20Hyprnote=20free=20tier,=20Meetily=20fallback=20(D9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Diarization and Google Calendar sync are both on Hyprnote's free plan, which satisfies the two operator criteria at once; Meetily (MIT, diarization in the community core) stays as OSS fallback with sb.py ICS-matching to compensate its missing calendar sync. Gate: quality judged on a real bilingual call before the lane is trusted (erp#49). Co-Authored-By: Claude Fable 5 --- vibe/PRD/ai-back-office/agent-architecture.md | 3 ++- vibe/PRD/ai-back-office/agent-catalog.md | 2 +- vibe/PRD/ai-back-office/task-inventory.md | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vibe/PRD/ai-back-office/agent-architecture.md b/vibe/PRD/ai-back-office/agent-architecture.md index 8dc654e..42af8c5 100644 --- a/vibe/PRD/ai-back-office/agent-architecture.md +++ b/vibe/PRD/ai-back-office/agent-architecture.md @@ -192,5 +192,6 @@ To be settled by POC evidence, each closing with a short ADR: | D6 | Pi inference serving | llama.cpp server vs. Ollama on arm64, resource limits, node pinning ([C5](challenges.md#c5--slm-capability-ceiling-on-pi-hardware)) | | D7 | Cluster↔vault access | git clone/pull of the SecondBrain remote (**leaning** — the Gitea remote exists, offline-friendly, reviewable) vs. tunneled Obsidian REST API (M4-only today) vs. keeping vault access M4-exclusive | | D8 | Fleet code home | erp repo `fleet/` next to the skills (**leaning** — the atoms are ERP-domain today; revisit into a dedicated repo when a second domain joins) vs. dedicated fleet repo vs. scattered per existing repo | +| D9 | Meeting capture tool (client-project notes lane) | **Leaning: Hyprnote free tier** (rebranded "Char" — local capture + transcription with **speaker diarization and Google Calendar sync both on the free plan**; manual trigger only, auto-record stays off by consent stance) vs. **Meetily** as OSS fallback (MIT, diarization in the community core, no calendar sync — `sb.py` can compensate by matching recording timestamps to the calendar ICS) vs. bare Whisper-class + Ornith | -D4–D6 close with their mapped POCs ([POC-6](poc-plan.md#poc-6--e-invoicing-readiness-spike), [POC-5](poc-plan.md#poc-5--model-routing-bench), [POC-2](poc-plan.md#poc-2--pi-sentinel)); D1–D2 are settled while building phase 3's standing fleet (the queue and scheduler *are* its skeleton); D3 lands with phase 4's money loops; D7 closes when the first cluster-side atom needs vault context (phase 3 at the earliest); D8 rides POC-1 — the first atoms need their home on day one. +D4–D6 close with their mapped POCs ([POC-6](poc-plan.md#poc-6--e-invoicing-readiness-spike), [POC-5](poc-plan.md#poc-5--model-routing-bench), [POC-2](poc-plan.md#poc-2--pi-sentinel)); D1–D2 are settled while building phase 3's standing fleet (the queue and scheduler *are* its skeleton); D3 lands with phase 4's money loops; D7 closes when the first cluster-side atom needs vault context (phase 3 at the earliest); D8 rides POC-1 — the first atoms need their home on day one; D9 closes on diarization quality judged over a **real bilingual call** (EN client / FR partner) — erp#49 carries the steps. diff --git a/vibe/PRD/ai-back-office/agent-catalog.md b/vibe/PRD/ai-back-office/agent-catalog.md index b120c6e..2a4a10e 100644 --- a/vibe/PRD/ai-back-office/agent-catalog.md +++ b/vibe/PRD/ai-back-office/agent-catalog.md @@ -45,7 +45,7 @@ Status legend: ✅ proven in operation · 🧪 built or designed, **to prove** ( | [T14](task-inventory.md#t14--backup--restore-verification) | Controller | `ops/backup` + freshness watchdog | **— no LLM** | daily CronJob (live) + monthly drill | restore drill green monthly | ✅ backup/restore · 🧪 watchdog+drill cadence | | [T15](task-inventory.md#t15--monthly-coherence-audit) | Composer + analyst | skill composition + exception narrative | — checks; Claude narrative | monthly CronJob → digest | first pack matches a manual cohort review | ⬜ | | [T16](task-inventory.md#t16--document-filing--retention) | Extractor | `fleet/atoms/doc-file/` | M4 local | per-document queue | document golden set | ⬜ | -| [T17](task-inventory.md#t17--knowledge-capture--retrieval-second-brain) | Knowledge archivist | `sb.py` + hermes `second-brain` skill + capture atom | vault doctrine (Ornith/Mistral/Claude) | hermes cron (live) + per-run hooks | deposits idempotent over re-runs; retrieval dated | ✅ vault side · 🧪 fleet side | +| [T17](task-inventory.md#t17--knowledge-capture--retrieval-second-brain) | Knowledge archivist | `sb.py` + hermes `second-brain` skill + capture atom; meeting capture via Hyprnote ([D9](agent-architecture.md#open-decisions)) | vault doctrine (Ornith/Mistral/Claude) | hermes cron (live) + per-run hooks | deposits idempotent over re-runs; retrieval dated | ✅ vault side · 🧪 fleet side | ## Proving protocol — how a 🧪 becomes a ✅ diff --git a/vibe/PRD/ai-back-office/task-inventory.md b/vibe/PRD/ai-back-office/task-inventory.md index 6ae232c..a96fa2d 100644 --- a/vibe/PRD/ai-back-office/task-inventory.md +++ b/vibe/PRD/ai-back-office/task-inventory.md @@ -252,4 +252,4 @@ Explicitly out of the current inventory; each becomes a task fiche when its trig - **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 transcription lane** — Whisper-class model on the M4 + Ornith summary, per the vault doctrine; no proprietary notetaker — a natural `sb.py` job) 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. +- **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.