Roadmap¶
In Progress 16
Appointments: near-real-time Doctolib ingestion
Backend dead-code sweep (2026-05 audit long-tail)
BE register — Star Dental / Asterisk, two-layer (shares + Entitlement)
Imports: GL_REGL practitioner-less lines rejected every run (bank cash deposits)
Infrastructure: Alerting Reliability
Infrastructure: Secret Management & Backup Improvements
Pennylane sync — migrate the source from Redshift to REST API v2
Canonical group seed — narrative bootstrap
groupe-suffren.com — Revamp Benchmark & Direction
groupe-suffren.com Revamp — Delivery Plan
groupe-suffren.com Revamp — Phase 0 Positioning Workshop
`/rejoindre` — Strawman page (Phase 1)
Websites CMS — Visual Editing (live preview + drafts)
Websites — Helios single-build convergence (Aletheia blocks as the source)
Practice Logo-Mark Library — curated pool + on-demand bespoke generation
Websites — personalisation / duplicate-content audit report
Backlog 90
Agent: ACTES_2 / GL_REGL column ↔ value misalignment (SELECT * positional drift)
Agent — ACTES_2 COUNT(*) ghost-record blocks export
Agent: CIVIL.FIC Additional Columns
Agent: Code-sign the build (Authenticode)
Agent: Data Quality Gates & Monitoring
Agent: Installer AV/EDR allow-list step
Agent: Ship Full Logs + Crash State to the Server
Agent: NDJSON + Hash-Manifest Pipeline
Agent: Retry Window After Failure
Agent: Self-Update Swap Lock — Misreport + Stalled-Run Watchdog
Use API-provided display labels as fallback
FINESS Data Enrichment
Annuaire: org_key consumer sweep — bootstrap-ready + forward-correct
Annuaire — retire the legacy change-detection engine + orphaned artifacts
ATS careers — public apply go-live hardening
Practice-scope the parent-fetch child CRUD + non-single-object sync triggers (security)
Authentication roadmap — reset now, SSO / passkeys / vault later
Backend: rename misnamed `*_namespace_tables.py` migrations that don't change schema
Backend: add `make audit-schema-drift` to detect managed/unmanaged ↔ schema mismatch
Budgets — Excel: P&L assumptions + entity-scoped budgets
Budgets — retire unwired models + dead service methods
Captable browser smoke — May 2026 supplemental findings
Captable legal register exports
Captable: warrants (BSA / BSPCE) + full conversion ratio support
Cleanup unwired Celery tasks — wire or delete
Collection: Replicate Production Uploads to Staging
Converge model field-clusters + form boilerplate into core bases
Converge the ETL / ingestion scaffold into shared bases
Converge list views onto the core list mixins
Converge duplicated template fragments into shared components
core — shared parsing/text/date utils module
Booking-device chart: get the data back from Doctolib, or drop the chart
Dashboard card info popovers: roll out the `{% card_info_popover %}` pattern
Define a richer "Internal" grouping scheme
Tighter Procedure ↔ Appointment join for per-visit metrics
Dentist onboarding portal
dentists — genericize the 12 child-CRUD views
E-signature provider-API integration (DocuSign / Yousign)
Entities: distinguish external companies from group companies
Greffe coverage — persisted worklist (V2)
Legal-corpus extraction — deal-bible inbox (FR/BE) → register evidence
Finance consolidation: derive from the register, retire `group_consolidation.json`
Finance: Dual-view "as-reported" vs "restated" toggle
Finance filter: fold scope + period into the generic mixins
finance_workflow — wire the write path, or shelve the app
Financing module — debt-servicing engine (deferred)
Hook: detect templates whose form uses SearchSelect but doesn't include form-search-select.js
Combo HR Integration
Silae Payroll Integration
imports — collapse the 5×/4×/6× import boilerplate
Ingestion audit follow-ups (deferred 2026-06-23)
Retire the server-side encoding pass (agent becomes sole cleaner)
Infra — dev override bind hygiene + rotate burned dev creds
Infra — confirm/gate `docs.groupe-suffren.com` access
Off-Site Backup for Irreplaceable Data
PgBouncer in Front of shared_postgres
Legal classify — Celery + Anthropic-API task (Phase B)
Operation grouping — a transaction/closing layer above movements & assemblies
Monitoring: Log-Based Alerting via the Loki Ruler
nomos_ccam — retire the orphaned live-search subsystem
Patients: Doctolib ↔ Aletheia/Logosw divergence
Pay: associate remuneration (rétrocession)
payments-deletion-controls
Pennylane bridged data — three open DQ flags
Pennylane prosthetics sync — enable the pipeline
People: affiliation curation (trombinoscope override table)
PRM — patient recalls & no-show follow-up
PRM — Patient Relationship Management
Register: share-premium reconciliation & entity valuation
Migrate static assets to per-app layout
Testing: coverage regression gate — enforcement + visibility
Testing: sweep high-risk 0%-coverage modules
UI: Sweep date inputs to the new hybrid widget
UI: purge nested `` / `class="small"` inside `table-dense` cells
UI: tokenise avatar/photo sizing if it recurs
UI: tokenise progress-bar dimensions if they recur
**Status:** Provisional — surfaced by the 2026-04-20 graduation of `guidelines/ux/feedback-and-confirmation.md`. Confirm or delete.
**Status:** Provisional — surfaced by the 2026-04-20 graduation of `guidelines/ux/feedback-and-confirmation.md`. Confirm or delete.
**Status:** Provisional — surfaced by the 2026-04-20 graduation of `guidelines/ux/feedback-and-confirmation.md`. Confirm or delete.
**Status:** Provisional — surfaced by the 2026-05-01 graduation of `guidelines/ux/microcopy.md`. Confirm or delete.
> **Status:** Provisional — surfaced by the 2026-05-01 graduation of `guidelines/ux/navigation.md`. Confirm or delete.
> **Status:** Provisional — surfaced by the 2026-05-01 graduation of `guidelines/ux/navigation.md`. Confirm or delete.
Websites: T3 Helios manifest drift test
Websites — Clinical sign-off of the platform illustration library
Websites — revisit dropping `related_pages` from the API
Workplan — Improvements & Follow-ups
Workplan: Tree-mode drag-and-drop reparenting
Workplan: Tree-mode KPI rollup on parent rows
Workplan: Tree-mode `+ enfant` elegant in-place swap
Workplan: weekly-review meeting screen polish
Ideas 36
Accounts: Additional User Roles
Backend: pick one style for raw-SQL references to `nomos.*` tables (qualified vs bare)
Claude working setup — make the style rules actually hold
Clinical: Knowledge Platform (référentiel + academy + veille)
CRM: M&A Due-Diligence Room
Dashboard: Analytics & KPI Dashboards
dashboard-collection-bank-reconciliation
Dashboard: Custom Report Builder
Idea: M1 → M2 cascade on GL mapping rule form
HR: Employee Onboarding Portal (all employees, not only dentists)
HR: Internal Planning Rebuild (replace Combo, feed Silae direct)
**Status:** Provisional — surfaced by the 2026-05-01 graduation of `guidelines/ux/microcopy.md`. Confirm or delete.
Imports: AJAX Progress & Notifications
Infrastructure: Multi-Factor Authentication & Security
Doc-driven register operations (going-forward: bible → match-or-create → confirm)
Questions et Remarques sur les Exports LogosW
Marketing: Catchment & Market Intelligence
Marketing: Unified Marketing Cockpit
Marketing: Google Reviews & E-Reputation Module
Marketing: Local SEO & Listings Management (the outbound half)
Marketing: Patient Acquisition Performance Tracking
Marketing Platform — pillar vision & sequencing
Marketing: Referral Channels (patient parrainage + referring-dentist CRM)
Marketing: Satisfaction → Review Funnel (the NPS bridge)
Marketing: Social-Media Presence Management
Nomos CCAM: Advanced Features
payments-reconciliation-automation
RCM: Revenue Cycle Management Platform
Register UX/UI Audit — April 2026
UI: converge `badge-entity-*` to a single naming scheme
UI: add a `SearchSelect` example to the form skeleton
UX: Active Alerting (passif → actif)
**Status:** Provisional — surfaced by the 2026-04-20 graduation of `guidelines/ux/feedback-and-confirmation.md`. Confirm or delete.
UX: Patient-Facing Self-Service Portal
> **Status:** Provisional — surfaced by the 2026-05-01 graduation of `guidelines/ux/navigation.md`. Confirm or delete.
Websites — per-practice blog authoring (Phase 3)
Done 97
Agenda analytics — operational dashboard at `/agenda/`
Agent: One-Shot Bootstrap Installer
Agent v4: Server→Agent Control Channel (fast update, on-demand rerun, config push)
Agent: csv.writer Migration
Agent: Housekeeping — Updates Pruning, Archive Compression, Log Relocation
Agent: Resilience & Early Bail on Server Failure
Agent: Self-Configuring Paths (self-contained dirs + auto-detected source/export)
Agent: Self-Update Mechanism
Done: geocode annuaire orgs as a bootstrap + sync step
Annuaire: stable Organization identity + position continuity across ANS reinit gaps
Practice-scoping gaps on object views (security)
Backend: restore soft-delete on the DeleteViews broken by the Django 5.2 upgrade
Budgets: Excel export/import of budget assumptions
Captable Improvements
Codebase audit — dead code / simplification / convergence (2026-05)
Collection: Alert on Batch Failures
Collection: batch never settles when orchestration outlives its time limit
Collectors: provision and rotate credentials from Aletheia, not ssh
Collection → ELT pipeline (epic / coordinating doc)
Extract Logosw into its own app; make `collection` the shared collector kernel
Collection: "Full re-export" dashboard button
Collection: Allow Partial Batch Imports
Core: Phase 1 Foundation
Core: Reset Test Data Tools
CRM: DSO Practice Acquisition Pipeline
Doctolib completeness tracker — practice-dashboard card
Dashboard CCAM grouping: pluggable schemes + faithful Logosw mapping
E-signature provenance — capture signing authority + reference (DocuSign / Yousign / …)
Document extraction & OCR — platform capability (`apps/documents`)
Garbage text-layer (`needs_ocr` false-negative) — a *quality* gate on extraction
Partial-scan `needs_ocr` false-positive on text-rich documents
Document repository + domain consumers — one byte store, many meanings
Entity legal-document store + register linkage
Entities CRUD on the website
Finance: Consolidated Cash Flow statement
Finance: Drill-down UI from report line to GL entry
Helios domain onboarding — wildcard the preview, decouple identity, single-source the registry
HR: Applicant Tracking System (ATS) linked to Helios + group website
ATS feature benchmark: Recruitee — the bar to replace and beat
ATS minimal schema draft (`apps/ats`)
i18n Audit Report — Exhaustive List of Violations
i18n French-source convergence — 2026-04-18 execution record
i18n: rewrite English model source strings to French source
i18n: sweep templates and views for English-source drift back to French
i18n: wrap hardcoded user-facing strings in views (imports + sync)
Imports: Capture & Reconcile Bad CSV Lines (stop silent row loss)
Imports: Bulk Operations, Error Export & Progress Tracking
Imports: Agent Encoding & Semicolon Fixes
Imports: GL Payment Cleanup (Phase 6)
Imports: GL-Based Payment Model Redesign
Imports: ELT large-load path (staging COPY + set-based merge, resumable)
Imports: Logging & Memory Optimization
Imports: Reap & Auto-Rerun Stuck Imports
Infrastructure: Monitoring, Observability & Alerting
Infra — perimeter hardening (exposed dev stack + IPv6 gap)
Legal document deletion workflow — "À supprimer" état on SoftDeleteModel
Documents juridiques — front-office (list + import + auto-tag review)
P4 matching — empirical findings: blind import vs. LU seed vs. ground truth
Legal matcher — deterministic noise reduction
Finance & Cap Table Planning Session Summary
Pennylane Redshift: surviving the first load of a dated ledger
Pennylane sync: schema drift vs live DB/API before relaunch
People: central `Person` master-data model
procedures-payments-banking-date-basis
Register — cap-table & movement import capability
Register — Luxembourg shareholder-register import (Suffren / Menthe stack)
Register holders UX rework
UI Design Audit & Polish
UI design-system: fix mechanical rule violations surfaced by 2026-04 audit
UI: audit forms.Select FK pickers for SearchSelect migration candidates
UI: tokenise hardcoded colors in module CSS (register, captable, crm, date_picker)
Website Pages Audit & Improvement Plan
Cosmos — code review punch list (2026-07 repo review)
Websites — Block schema validation audit + active enforcement
Websites CMS block-form buildout — schema parity + best-in-class editing UX
Websites CMS ↔ Helios consistency audit — June 2026
Websites — Aletheia→Helios on-demand revalidation (finish the half-built webhook)
Websites — converge every image field onto the library media picker
Image variant storage convergence (sidecar JSON vs DB column)
Multi-file drop zone for media uploads
Websites — Page tree row enrichment + readiness signal
Websites — Curated platform image library (C10)
Websites — retire the image variant pipeline (Helios owns responsive images)
Websites — retire `PatientNeed`
Websites app — review hardening (2026-07 module review)
Websites — collapse ServiceCategory into a Page tree
Helios shared-base buildout
Shared website content → DB authoritative (editable shared pages)
Websites — Shared content as source of truth (registry + content split)
Plan — replace Phase 2b's 12 manual batches with one generator-driven cut
Websites structure realignment — reconcile spec, contract, code, build
Websites — trim API payloads to what Helios actually consumes
Workplan: Hiérarchie (tree) view for Action list
Workplan: Project Layer + Type Convergence
Workplan — Routines & Template Projects
Workplan — Edit a template after creation
Workplan: Rework the weekly priority review (group-scoped, snapshot-based)