- Rust 63%
- TypeScript 19.1%
- Svelte 14.1%
- Shell 2.4%
- Fluent 0.9%
- Other 0.4%
|
Some checks failed
ci.yml / chore(release): v0.0.36-alpha (push) Failing after 0s
Refonte facturation : /factures = tableau de bord (KPIs + CA annuel/N-1 + barres mensuelles + camembert paye/reste-a-encaisser + relances), en-tete brouillon editable inline, devis telechargeable PDF (krilla, ADR-0114). Backend facturation_dashboard_stats (agregats fiscaux centimes). Migration additive 0077. Puis 3 revues multi-agents + correctifs : completude spec (309 exigences, rapport + decisions Tim flaggees), chasse de bugs (8 reels corriges dont TVA devis arrondie, avoirs exclus des relances, camembert anneau 100%, date locale), verif a11y/runes (focus-visible, touche Espace, titres SVG, label « Reste a encaisser »). Gate vert, 1811 vitest. Sans deploiement Mac (sur go Tim). |
||
|---|---|---|
| .cargo | ||
| .claude | ||
| .forgejo/workflows | ||
| .husky | ||
| .vscode | ||
| benches | ||
| crates | ||
| docs | ||
| frontend | ||
| infra | ||
| installer/win | ||
| packages | ||
| scripts | ||
| src-tauri | ||
| tests | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .npmrc | ||
| .nvmrc | ||
| ARCHITECTURE.md | ||
| bench-config.toml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| clippy.toml | ||
| commitlint.config.cjs | ||
| CONTRIBUTING.md | ||
| deny.toml | ||
| docker-compose.test.yml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| rust-toolchain.toml | ||
Scribe
Logiciel de gestion de cabinet d'avocat moderne, cross-platform et IA-augmenté.
Statut : V1 alpha en cours — tag courant v0.0.35-alpha.
WP1 + WP1.5 + WP2 + WP3 + WP4 livrés (fondations + cœur métier complet :
Annuaire, Dossiers, GED, Mail, Temps, Facturation, Templates, Dashboard,
Installation/MAJ, Configuration), plus 3 campagnes d'audit pré-alpha-test
(Sécurité/DR, UI/UX, Observabilité), GED chunk A (pièces dans le dossier) et le
programme stratégie de test (incréments 4-5). Reste avant V1 alpha formelle :
agents IA (WP5) et reliquats (PDF facture réel, doc utilisateur).
Statut détaillé →
CLAUDE.md; historique des jalons →docs/process/historique-jalons.md.
Installation
Voir docs/release-notes/ (notes par version) et
docs/process/historique-jalons.md (jalons)
pour les détails des releases (features livrées + known issues).
Téléchargement
Bundles signés (à venir β) disponibles sur Forgejo Releases — pour l'alpha, le warning Gatekeeper / SmartScreen est normal (codesign Apple + notarisation
- signtool Windows arrivent V1 beta).
| Plateforme | Architecture | Fichier | Lien |
|---|---|---|---|
| macOS 12+ | Apple Silicon (M1/M2/M3/M4) | scribe-macos-arm64.dmg |
https://scribe.timothy.greil.fr/scribe/darwin-aarch64/ |
| macOS 12+ | Intel x86_64 | scribe-macos-x86_64.dmg |
https://scribe.timothy.greil.fr/scribe/darwin-x86_64/ |
| Windows 11 | x86_64 (MSVC) | scribe-windows-x86_64.msi |
https://scribe.timothy.greil.fr/scribe/windows-x86_64/ |
Ou directement depuis la page Forgejo Releases :
git.greil.fr/chipster/scribe/releases
Premier lancement
- macOS : monter le
.dmg, glisserScribe.appdans Applications. Au premier lancement, Gatekeeper bloque l'app (non codesignée en alpha) : click droit surScribe.app→ "Ouvrir" → confirmer. - Windows : double-cliquer le
.msi, accepter le warning SmartScreen ("Plus d'infos" → "Exécuter quand même"), suivre l'installer. - Onboarding wizard : 5 étapes guidées (compte → recovery → Claude skip → mail skip → add-in skip). Étapes 1 et 2 obligatoires (password + recovery passphrase BIP-39 française). Imprimer la recovery card PDF générée à l'étape 2 — sans elle, pas de récupération possible si oubli du password.
- Test alpha : pas de fonctionnalité métier client-facing. Le but de cette alpha est de valider le wizard, la création de l'identité, la génération de la recovery card, et le parcours Paramètres. Les frictions remontées alimentent les sub-jalons α-1.x.
Désinstallation
- macOS : déplacer
Scribe.appvers la corbeille + supprimer~/Library/Application Support/Scribe/(DB + backups + logs). - Windows : Paramètres → Applications → Scribe → Désinstaller. La DB et les
backups dans
%APPDATA%\Scribe\sont conservés (suppression manuelle si voulu).
Vision
Scribe est conçu pour remplacer (puis concurrencer) le logiciel Audience de FBI Services en apportant :
- Une UI moderne et sobre : design system natif premium (Things 3 / Bear-like), 6 palettes accent, densité confortable/dense
- Cross-platform natif : Windows, macOS, Linux desktop (mobile éventuel en V2)
- Trois agents IA intégrés progressivement :
- α-2 Automatisation proactive (41 cas, rule engine + LLM classifier + apprentissage par observation)
- α-3 Rédacteur à la voix de l'avocat (16 toggles, RAG sur archives, 3 modes)
- α-4 Conversationnel (15 toggles, function calling, UI tools)
- Bridge add-in Office.js pour Word/Outlook (SSE streaming loopback, design tokens partagés)
- Contrôle utilisateur granulaire : toggles hiérarchiques (master switch global → par agent → par sous-fonction), master kill switch en 2 clics, chaque cas IA activable/désactivable individuellement
- Conformité RGPD + déontologie barreau : embeddings 100% locaux dès V1 alpha, données chiffrées SQLCipher, recovery passphrase, option LLM 100% local en V2
- Observabilité opt-in : Sentry self-hosted (greil.fr) avec PII scrub aggressive — aucune donnée client transmise
Stack technique
| Couche | Choix | Note |
|---|---|---|
| Client desktop | Tauri 2.11.x | Shell natif Windows (WebView2) / macOS (WebKit) / Linux (WebKitGTK) |
| Backend client | Rust 1.96 (MSVC sur Windows) | MSRV 1.96 (krilla, lib PDF/A-3 Factur-X — cf ADR-0109) ; antérieurement 1.88 pour Tauri 2.11. See rust-toolchain.toml |
| Node | ≥20 (testé 24) | Frontend toolchain via pnpm |
| pnpm | ≥9 | Package manager via corepack |
| UI frontend | Svelte 5 (runes) + SvelteKit 2 + CSS vanilla | adapter-static pour Tauri |
| Logique métier partagée | Crate Rust domain |
— |
| Serveur cabinet (V1 beta) | Axum (Rust async) | — |
| DB locale | SQLCipher 4.x (rusqlite + bundled-sqlcipher) |
Chiffré AES-256, prévu α-0.4+ |
| DB serveur (V1 beta) | PostgreSQL | — |
| Sync (V1 beta) | WebSocket + REST | — |
| LLM provider V1 | Claude Agent SDK + abonnement utilisateur (OAuth) | — |
| Embeddings | bge-m3 local (LocalEmbedder tokio actor) |
— |
| Store vectoriel | sqlite-vec (solo) / pgvector (cabinet) | — |
| Tests | proptest, insta, wiremock, greenmail, criterion, vitest, MSW, tauri-driver, cargo-llvm-cov | — |
| CI | Forgejo Actions matrix Mac+Windows | Rust cache via Swatinem/rust-cache@v2 |
| Observabilité | Sentry self-hosted (opt-in, anonymisé) | — |
| LLM provider V2 | Ollama embarqué (LLM 100% local) | — |
Roadmap
V1 alpha — Mono-utilisateur, livrée par sub-jalons granulaires
| Sub-jalon | Contenu | Utilisatrice teste ? |
|---|---|---|
| α-0.0 → α-0.12 | Fondations + infra tests + workspace + crates de base + auth + packaging + shell Configuration | Non |
| α-0.1bis | Backfill ADR + Setup CI maintenabilité (linting strict, cargo-deny, complexity gates, commitlint, perf budgets, Sentry crate) | Non |
| α-1.1 → α-1.11 | Cœur métier (ordre figé S2) : Annuaire → Dossiers → GED → Mail → Temps → Facturation → Templates → Dashboard → Install/MAJ → Configuration (Clients fusionné dans Annuaire, ADR-0080) | Oui — démarre l'usage en remplacement d'Audience |
| α-2 | Agent automatisation actif (41 cas, rule engine + LLM classifier + apprentissage) | Continue |
| α-3 | Agent rédacteur actif (16 toggles, RAG sur archives, 3 modes) | Continue |
| α-4 | Agent conversationnel actif (15 toggles, function calling, UI tools ACK) | Toutes les fonctionnalités dispo |
V1 beta
Multi-utilisateurs cabinet via VPN (Tailscale/WireGuard), serveur Postgres, RBAC actif, MFA optionnel, enrichissements des agents.
V2 commercial
LLM local (Ollama), fine-tuning style cabinet, mobile, intégrations métier France (RPVA, e-Barreau), migration depuis Audience.
Politique qualité (vibe code solo → maintenabilité long terme)
Scribe est développé en solo (Timothy) avec assistance IA (Claude). Sans reviewer humain, les filets en place :
- TDD strict : tests d'abord, seuils coverage différenciés par crate (gate local-first ; seuils canoniques →
scripts/coverage-gate.sh+ ADR-0099) - Linting maximal : clippy pedantic + nursery deny, cargo-deny (advisories + licenses + bans), cargo-machete, Knip
- Hard limits complexité : 400 LOC/fichier
.rs, 250 LOC/composant.svelte, 80 LOC/fonction, cognitive_complexity ≤ 15 - PR discipline : limit 400 LOC, Conventional Commits + commitlint, trunk-based + branches courtes
- Ultrareview obligatoire avant merge (findings CRIT/HIGH bloquants)
- ADRs MADR 4.0 light pour toute décision structurante (techno, migration BDD, flux IA, contrat API, renoncement)
- Performance budgets : criterion CI fail si régression > 20% vs baseline
- Évolution post-V1 alpha : mini-cycle brainstorm → spec → ADR → plan → impl TDD
Détail dans docs/superpowers/audits/2026-05-16-decisions-maintenabilite.md et spec transverse §9.6.
Documentation
Specs
| Fichier | Description |
|---|---|
docs/superpowers/specs/2026-05-13-scribe-vision.md |
Doc de vision — référence permanente, toutes les décisions transverses |
docs/superpowers/specs/2026-05-13-scribe-fondations-coeur-metier-design.md |
Spec transverse V1 alpha — DDL, commands, logging, §9.5 tests, §9.6 maintenabilité, plan sub-jalons |
docs/superpowers/specs/2026-05-15-scribe-design-system-design.md |
Design system Native premium, palettes, tokens, ui-kit catalog |
docs/superpowers/specs/2026-05-15-scribe-spec-utilisateur.md |
Spec utilisateur Marie — plain French, sans jargon |
docs/superpowers/specs/modules/ |
Specs modules métier : Dossiers, Annuaire, GED/Documents, Mail, Temps passés, Facturation, Templates Word, Dashboard, Installation/MAJ, Configuration, Rendez-vous, Recherche globale (le module Clients est fusionné dans Annuaire via ADR-0080 — spec clients archivée, superseded) |
docs/superpowers/specs/agents/ |
3 specs agents IA (α-2, α-3, α-4) |
Audits & décisions
| Fichier | Description |
|---|---|
docs/superpowers/audits/2026-05-15-decisions-metier.md |
16 décisions métier M1-M16 |
docs/superpowers/audits/2026-05-15-decisions-stack.md |
15 décisions stack S1-S15 |
docs/superpowers/audits/2026-05-16-decisions-tests.md |
Politique tests TDD strict |
docs/superpowers/audits/2026-05-16-decisions-maintenabilite.md |
Politique maintenabilité (linting, ADR, PR, Sentry, évolution) |
Plans dry-run v2 (5 WPs, 167 steps + 4 spikes)
Voir docs/superpowers/plans/ (plans actifs).
Architecture Decision Records
Voir docs/adr/README.md — 113 ADRs (le backfill seed initialement prévu en α-0.1bis est fait).
Setup développement
Prérequis :
- Rust (toolchain auto via
rust-toolchain.toml) + componentsclippyrustfmtllvm-tools - Node.js LTS + pnpm (via corepack)
- Tauri 2 CLI
- Docker (pour
greenmailIMAP/SMTP en tests E2E) cargo-llvm-cov,cargo-deny,cargo-machete,cargo-criterion
Setup local
# 1. Activate pnpm via corepack (no global install needed)
corepack enable && corepack prepare pnpm@9 --activate
# 2. Install Node deps (auto-builds @scribe/ui-tokens via prepare hook)
pnpm install
# 3. Install Rust toolchain (auto-installed by rustup via rust-toolchain.toml)
rustup show
# 4. Verify
cargo check --workspace
cargo test --workspace
pnpm --filter @scribe/frontend run build
# 5. Run desktop dev shell (opens native window)
cargo install tauri-cli --version "^2.0" --locked # one-time
cargo tauri dev
Branding
Le nom Scribe est un nom de travail (trademark + domaine non vérifiés). Le code applicatif est conçu pour rendre le rename trivial (1 module app-info central + i18n + crates Cargo aux noms techniques neutres). Voir doc vision §7. Coût attendu d'un rename : 30 minutes.
Licence
À définir.
Co-conçu avec Claude (Anthropic) — voir l'historique des commits.