living-ai-documentation 3.37.0 → 3.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/README.fr.md +200 -251
  2. package/README.md +200 -251
  3. package/dist/bin/cli.js +61 -9
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/frontend-svelte/assets/{index-c_1Dt9Nx.css → index-C--qu7y-.css} +1 -1
  6. package/dist/frontend-svelte/assets/index-DkgHblwj.js +181 -0
  7. package/dist/frontend-svelte/assets/{main-CgFZwst-.js → main-DchaZ2ad.js} +1 -1
  8. package/dist/frontend-svelte/i18n/en.json +1 -1
  9. package/dist/frontend-svelte/i18n/fr.json +1 -1
  10. package/dist/frontend-svelte/index.html +2 -2
  11. package/dist/src/lib/blueprint.d.ts +1 -1
  12. package/dist/src/lib/blueprint.d.ts.map +1 -1
  13. package/dist/src/lib/blueprint.js +27 -9
  14. package/dist/src/lib/blueprint.js.map +1 -1
  15. package/dist/src/lib/git-integration.js +5 -5
  16. package/dist/src/lib/git-integration.js.map +1 -1
  17. package/dist/starter-doc/000_DOCUMENTATION/2026_06_30_10_00_[DOCUMENTATION]_welcome_to_living_documentation.md +65 -0
  18. package/dist/starter-doc/000_DOCUMENTATION/2026_06_30_10_10_[DOCUMENTATION]_home_menu.md +131 -0
  19. package/dist/starter-doc/000_DOCUMENTATION/2026_06_30_10_20_[DOCUMENTATION]_markdown_document.md +163 -0
  20. package/dist/starter-doc/000_DOCUMENTATION/2026_07_01_14_04_[DOCUMENTATION]_workspace_menu.md +194 -0
  21. package/dist/starter-doc/000_DOCUMENTATION/2026_07_01_17_04_[DOCUMENTATION]_agents_menu.md +190 -0
  22. package/dist/starter-doc/000_DOCUMENTATION/2026_07_01_17_41_[DOCUMENTATION]_diagram_menu.md +227 -0
  23. package/dist/starter-doc/images/DOCUMENTATION/admin_git_integration.png +0 -0
  24. package/dist/starter-doc/images/DOCUMENTATION/concept-01-hero-produit.jpg +0 -0
  25. package/dist/starter-doc/images/DOCUMENTATION/concept-03-local-first.jpg +0 -0
  26. package/dist/starter-doc/images/DOCUMENTATION/concept-07-workspace-providers-agents.jpg +0 -0
  27. package/dist/starter-doc/images/DOCUMENTATION/execution_d_agents.png +0 -0
  28. package/dist/starter-doc/images/DOCUMENTATION/exemple_diagramme_documentation.png +0 -0
  29. package/dist/starter-doc/images/DOCUMENTATION/feedback_execution_agent.png +0 -0
  30. package/dist/starter-doc/images/DOCUMENTATION/living_documentation_context_demo_conf.png +0 -0
  31. package/dist/starter-doc/images/DOCUMENTATION/llm_provider_creation.png +0 -0
  32. package/dist/starter-doc/images/DOCUMENTATION/popup-creer-document.png +0 -0
  33. package/dist/starter-doc/images/DOCUMENTATION/popup-creer-dossier.png +0 -0
  34. package/dist/starter-doc/images/DOCUMENTATION/popup_execution_agent.png +0 -0
  35. package/dist/starter-doc/images/DOCUMENTATION/readme-sidebar.png +0 -0
  36. package/dist/starter-doc/images/DOCUMENTATION/run_agent_execution.jpg +0 -0
  37. package/dist/starter-doc/images/DOCUMENTATION/summary_agent_execution.png +0 -0
  38. package/dist/starter-doc/images/DOCUMENTATION/table_des_matieres_document.png +0 -0
  39. package/dist/starter-doc/images/DOCUMENTATION/workspace_configuration.jpg +0 -0
  40. package/dist/starter-doc-fr/000_DOCUMENTATION/2026_06_30_10_00_[DOCUMENTATION]_Bienvenue_dans_Living_Documentation.md +65 -0
  41. package/dist/starter-doc-fr/000_DOCUMENTATION/2026_06_30_10_10_[DOCUMENTATION]_menu_home.md +129 -0
  42. package/dist/starter-doc-fr/000_DOCUMENTATION/2026_06_30_10_20_[DOCUMENTATION]_document_markdown.md +163 -0
  43. package/dist/starter-doc-fr/000_DOCUMENTATION/2026_07_01_14_04_[DOCUMENTATION]_menu_workspace.md +194 -0
  44. package/dist/starter-doc-fr/000_DOCUMENTATION/2026_07_01_17_04_[DOCUMENTATION]_menu_agents.md +190 -0
  45. package/dist/starter-doc-fr/000_DOCUMENTATION/2026_07_01_17_41_[DOCUMENTATION]_menu_diagram.md +226 -0
  46. package/dist/starter-doc-fr/images/DOCUMENTATION/admin_git_integration.png +0 -0
  47. package/dist/starter-doc-fr/images/DOCUMENTATION/concept-01-hero-produit.jpg +0 -0
  48. package/dist/starter-doc-fr/images/DOCUMENTATION/concept-03-local-first.jpg +0 -0
  49. package/dist/starter-doc-fr/images/DOCUMENTATION/concept-07-workspace-providers-agents.jpg +0 -0
  50. package/dist/starter-doc-fr/images/DOCUMENTATION/execution_d_agents.png +0 -0
  51. package/dist/starter-doc-fr/images/DOCUMENTATION/exemple_diagramme_documentation.png +0 -0
  52. package/dist/starter-doc-fr/images/DOCUMENTATION/feedback_execution_agent.png +0 -0
  53. package/dist/starter-doc-fr/images/DOCUMENTATION/living_documentation_context_demo_conf.png +0 -0
  54. package/dist/starter-doc-fr/images/DOCUMENTATION/llm_provider_creation.png +0 -0
  55. package/dist/starter-doc-fr/images/DOCUMENTATION/popup-creer-document.png +0 -0
  56. package/dist/starter-doc-fr/images/DOCUMENTATION/popup-creer-dossier.png +0 -0
  57. package/dist/starter-doc-fr/images/DOCUMENTATION/popup_execution_agent.png +0 -0
  58. package/dist/starter-doc-fr/images/DOCUMENTATION/readme-sidebar.png +0 -0
  59. package/dist/starter-doc-fr/images/DOCUMENTATION/run_agent_execution.jpg +0 -0
  60. package/dist/starter-doc-fr/images/DOCUMENTATION/summary_agent_execution.png +0 -0
  61. package/dist/starter-doc-fr/images/DOCUMENTATION/table_des_matieres_document.png +0 -0
  62. package/dist/starter-doc-fr/images/DOCUMENTATION/workspace_configuration.jpg +0 -0
  63. package/images/DOCUMENTATION/concept-01-hero-produit.png +0 -0
  64. package/images/DOCUMENTATION/concept-03-local-first.png +0 -0
  65. package/images/DOCUMENTATION/concept-07-workspace-providers-agents.png +0 -0
  66. package/images/DOCUMENTATION/concept-08-git-versions-restore.png +0 -0
  67. package/images/DOCUMENTATION/concept-12-laboratoire-agentique.png +0 -0
  68. package/images/DOCUMENTATION/execution_d_agents.png +0 -0
  69. package/images/DOCUMENTATION/exemple_diagramme_documentation.png +0 -0
  70. package/package.json +1 -1
  71. package/dist/frontend-svelte/assets/index-BjHN0FJd.js +0 -181
package/README.fr.md CHANGED
@@ -1,370 +1,319 @@
1
- ---
2
- **language:** fr
3
- ---
4
-
5
1
  # Living Documentation
6
2
 
7
3
  [🇬🇧 Read in English](./README.md)
8
4
 
9
- > **Hub local de documentation Markdown avec serveur MCP intégré , vos agents de code créent les ADR, dessinent les diagrammes et détectent la dérive pendant que vous codez.**
5
+ > **Un atelier local pour générer, maintenir, versionner et automatiser votre documentation.**
10
6
 
11
- Du Markdown sur disque, pas de cloud, pas de base de données, pas d'étape de build. Pointez l'outil vers un dossier, ouvrez `http://localhost:4321`. Branchez n'importe quel agent IA compatible MCP (Claude Code, Claude Desktop, Cursor…) et votre documentation se maintient à mesure que le code évolue.
7
+ **Living Documentation** n'est pas un générateur de code. C'est un outil de production documentaire : Markdown local, notes, process, ADR, diagrammes, Git, agents IA, providers LLM, images générées, MCP et automatisations.
8
+
9
+ Tout reste dans vos fichiers. Vous lancez l'outil, vous ouvrez le navigateur, vous documentez. Puis vous pouvez brancher Git, vos agents, vos LLMs et vos workflows.
12
10
 
13
11
  ![npm](https://img.shields.io/npm/v/living-ai-documentation) ![Node.js](https://img.shields.io/badge/Node.js-20.19%2B-green) ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue) ![License](https://img.shields.io/badge/License-AGPL--3.0-blue) ![MCP](https://img.shields.io/badge/MCP-Streamable_HTTP-purple)
14
12
 
15
13
  ```bash
16
- npx living-ai-documentation@latest # assistant interactif (EN/FR)
17
- npx living-ai-documentation@latest ./docs # servir un dossier existant
14
+ npx living-ai-documentation@latest
18
15
  ```
19
16
 
20
- ![Viewer Living Documentation](/images/living_documentation.jpg)
17
+ ![Atelier Living Documentation](./images/DOCUMENTATION/concept-01-hero-produit.png)
18
+
19
+ ---
20
+
21
+ ## Pourquoi l'utiliser ?
22
+
23
+ La documentation finit souvent dispersée : README, notes, tickets, captures, ADR, prompts, exports, diagrammes, conversations IA, fichiers joints. **Living Documentation** sert à remettre tout cela dans un espace local unique, lisible, versionnable et exploitable par des agents.
24
+
25
+ | Besoin | Ce que Living Documentation apporte |
26
+ | ------------------ | ------------------------------------------------------------------------------------ |
27
+ | Écrire vite | Éditeur Markdown, snippets, tableaux, images, fichiers joints, annotations. |
28
+ | Structurer | Dossiers, catégories, conventions de nommage, recherche plein texte. |
29
+ | Versionner | Intégration Git, commits automatiques, comparaison visuelle, restauration par blocs. |
30
+ | Visualiser | Éditeur de diagrammes, images, exports, liens cliquables dans les documents. |
31
+ | Automatiser | Workspace, providers LLM, agents réutilisables, tools MCP internes. |
32
+ | Garder la maîtrise | Fichiers locaux, pas de cloud imposé, pas de base de données propriétaire. |
21
33
 
22
34
  ---
23
35
 
24
- ## Deux façons de l'utiliser
36
+ ## Les fonctionnalités qui changent tout
37
+
38
+ ### Documentation local-first
39
+
40
+ Vos documents sont de simples fichiers Markdown dans un dossier.
25
41
 
26
- ### 1. Avec un agent de code IA , la fonctionnalité phare
42
+ - lisibles dans n'importe quel éditeur
43
+ - versionnables avec Git
44
+ - utilisables par vos LLMs
45
+ - portables d'un projet à l'autre
46
+ - faciles à sauvegarder
27
47
 
28
- Living Documentation embarque un **serveur MCP** sur `POST /mcp`. N'importe quel agent compatible MCP peut lire, créer et auditer la documentation de votre projet de façon autonome.
48
+ ![Modèle local-first](./images/DOCUMENTATION/concept-03-local-first.png)
29
49
 
30
- | Vous dites… | L'agent déclenche… | Ce qui se passe |
31
- | ------------------------------------------------------------ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
32
- | _« feature done »_ / _« feature terminée »_ | `create-adr` | Cherche les ADR existants, supplante l'ADR obsolète s'il y en a un, écrit un nouvel ADR en `To be validated`, attache les fichiers source via les métadonnées. |
33
- | _« audit the ADRs »_ / _« vérifie la fiabilité des ADR »_ | `audit-adrs-drift` | Liste chaque ADR sous 80 % de fiabilité et remet chacun en cohérence , re-baseline ou supersession après votre confirmation. |
34
- | _« review this ADR »_ / _« vérifie la pertinence de cet ADR »_ | `review-adr-relevance` | Examine un seul ADR à la lumière des fichiers source liés ; rafraîchit les hashes ou propose la supersession. |
35
- | _« backfill ADRs from git »_ / _« retrodocumente depuis git »_ | `retrodocument-adrs-from-git` | Parcourt l'historique git du plus ancien au plus récent et crée des ADR pour les décisions durables qui n'ont jamais été documentées. |
36
- | _« give me the big picture »_ | `generate-context-diagram` | Crée un diagramme C4 de contexte **dérivé des documents**, jamais inventé. |
50
+ ### Git intégré, versions et restauration
37
51
 
38
- **Tous les nouveaux ADR atterrissent en `To be validated`.** _Vous_ les promouvez. L'agent ne promeut jamais à votre place.
52
+ Quand l'intégration Git est activée, Living Documentation peut créer un commit à chaque sauvegarde documentaire. Vous pouvez ensuite ouvrir l'historique d'un document, comparer le HEAD avec un ancien commit et restaurer des blocs précis dans le document courant.
39
53
 
40
- ### 2. En solo, sans IA
54
+ ![Git, versions et restauration](./images/DOCUMENTATION/concept-08-git-versions-restore.png)
41
55
 
42
- Un hub de documentation personnel : ADR, notes de réunion, journaux de développement, plans de fonctionnalités, esquisses d'architecture , tout reste en Markdown sur disque, git-friendly, zéro vendor lock-in. Édition inline, snippets, collage d'image, pièces jointes, éditeur de diagrammes, recherche plein-texte, export PDF/HTML/Notion/Confluence.
56
+ ### Workspace, LLMs et agents
43
57
 
44
- Les deux modes se mélangent librement : prenez des notes en solo toute la semaine, puis laissez votre agent enregistrer l'ADR quand la fonctionnalité est effectivement livrée.
58
+ Le <kbd>Workspace</kbd> permet de configurer des providers LLM et de créer des agents documentaires : traduction, correction, résumé, génération d'image, amélioration Markdown, production de brouillons, audit de documents.
59
+
60
+ Les agents peuvent travailler en mode **Chat only** ou avec les **tools MCP** de Living Documentation quand le provider les accepte.
61
+
62
+ ![Workspace providers agents](./images/DOCUMENTATION/concept-07-workspace-providers-agents.png)
63
+
64
+ ### Agents lancés depuis toute l'application
65
+
66
+ Une fois créés, les agents sont disponibles depuis le menu <kbd>Agents</kbd>, quelle que soit la page ouverte. Chaque exécution produit un document de run avec statut, input, réponse, et debug optionnel.
67
+
68
+ ![Menu Agents](./images/DOCUMENTATION/execution_d_agents.png)
69
+
70
+ ### Diagrammes et schémas
71
+
72
+ Living Documentation contient un éditeur de diagrammes intégré. Vous pouvez dessiner à la main, relier des diagrammes à des documents Markdown, exporter, ou laisser un agent proposer une première version à partir d'un document.
73
+
74
+ ![Exemple de diagramme](./images/DOCUMENTATION/exemple_diagramme_documentation.png)
75
+
76
+ ### Laboratoire d'automatisation agentique
77
+
78
+ Avec Workspace, MCP, les providers LLM et les tools internes, Living Documentation devient un laboratoire d'automatisation appliquée à la documentation. Vous pouvez créer des agents qui lisent un document, le transforment, génèrent une image, écrivent un compte rendu ou enrichissent votre base documentaire.
79
+
80
+ ![Laboratoire agentique](./images/DOCUMENTATION/concept-12-laboratoire-agentique.png)
45
81
 
46
82
  ---
47
83
 
48
84
  ## Démarrage rapide
49
85
 
86
+ Nécessite **Node.js 20.19 ou plus récent**.
87
+
50
88
  ```bash
51
- # Assistant interactif , crée un dossier de doc de démarrage (EN ou FR), scaffold
52
- # AGENTS.md / CLAUDE.md / memory/MEMORY.md à la racine du projet et crée des symlinks
53
- # dans <docs>/AI/ pour que les agents IA les trouvent.
89
+ # Détecter un projet proche ou créer un starter EN/FR
54
90
  npx living-ai-documentation@latest
55
91
 
56
92
  # Ou servir un dossier existant
57
93
  npx living-ai-documentation@latest ./docs
94
+
95
+ # Port explicite
58
96
  npx living-ai-documentation@latest ./docs --port 4000 --open
59
97
  ```
60
98
 
61
- Ensuite ouvrez [http://localhost:4321](http://localhost:4321) (viewer) et [http://localhost:4321/admin](http://localhost:4321/admin) (config).
99
+ Puis ouvrez :
62
100
 
63
- > L'argument du dossier doit être un **chemin relatif** (`./docs`, `../shared/docs`…). Les chemins absolus et `~` sont rejetés pour que le fichier `.living-doc.json` généré reste portable et puisse être commité.
101
+ - application : [http://localhost:4321](http://localhost:4321)
102
+ - admin : [http://localhost:4321/admin](http://localhost:4321/admin)
103
+ - MCP : [http://localhost:4321/mcp](http://localhost:4321/mcp)
64
104
 
65
- ### Installation
105
+ Sans dossier en argument, le CLI cherche d'abord `.living-doc.json` dans le dossier courant, puis un niveau en dessous. S'il trouve un projet Living Documentation existant, il propose de le lancer ; sinon il crée un starter documentaire complet, en français ou en anglais, avec des guides intégrés pour comprendre Home, Markdown, Workspace, Agents et Diagram.
66
106
 
67
- Nécessite **Node.js 20.19 ou plus récent** (Vite 8 et Commander 14 ne prennent plus en charge Node.js 18).
107
+ Quand un dossier est fourni en argument mais qu'il ne contient pas encore `.living-doc.json`, le CLI initialise ce dossier au lieu de le servir comme projet non configuré.
68
108
 
69
- ```bash
70
- npx living-ai-documentation@latest # zéro installation
71
- npm install -g living-ai-documentation # global
72
- ```
109
+ > Le dossier passé au CLI doit être un chemin relatif (`./docs`, `../documentation`). Les chemins absolus et `~` sont rejetés pour garder `.living-doc.json` portable.
73
110
 
74
111
  ---
75
112
 
76
- ## Connectez votre agent IA
113
+ ## Ce que contient l'application
77
114
 
78
- ### Claude Code
115
+ | Surface | Usage |
116
+ | --------------------- | ------------------------------------------------------------------------- |
117
+ | <kbd>Home</kbd> | Lire, créer, éditer, rechercher et organiser les documents Markdown. |
118
+ | <kbd>Workspace</kbd> | Configurer les providers LLM, MCP, agents et providers image. |
119
+ | <kbd>Agents</kbd> | Lancer les agents depuis n'importe quelle page. |
120
+ | <kbd>Diagram</kbd> | Créer et modifier des diagrammes liés aux documents. |
121
+ | <kbd>Files</kbd> | Parcourir les fichiers joints et assets documentaires. |
122
+ | <kbd>AI Context</kbd> | Inspecter le contexte IA, les règles, la mémoire et l'explorateur MCP. |
123
+ | <kbd>Admin</kbd> | Configurer thème, langue, Git, patterns, sécurité fichiers, debug agents. |
79
124
 
80
- ```bash
81
- claude mcp add --transport http living-ai-documentation http://localhost:4321/mcp
82
- ```
125
+ ---
83
126
 
84
- Ou manuellement dans `.claude/settings.json` :
127
+ ## Écrire dans Living Documentation
85
128
 
86
- ```json
87
- {
88
- "mcpServers": {
89
- "living-ai-documentation": {
90
- "type": "http",
91
- "url": "http://localhost:4321/mcp"
92
- }
93
- }
94
- }
95
- ```
129
+ Le viewer Home est aussi un éditeur Markdown.
96
130
 
97
- ### Claude Desktop
131
+ Fonctions utiles :
98
132
 
99
- Dans `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), puis redémarrez :
133
+ - édition inline avec sauvegarde disque
134
+ - snippets Markdown
135
+ - tableaux assistés
136
+ - arbres ASCII
137
+ - blocs repliables
138
+ - callouts
139
+ - images collées depuis le presse-papier
140
+ - fichiers joints
141
+ - annotations
142
+ - table des matières automatique
143
+ - recherche plein texte
100
144
 
101
- ```json
102
- {
103
- "mcpServers": {
104
- "living-ai-documentation": {
105
- "type": "http",
106
- "url": "http://localhost:4321/mcp"
107
- }
108
- }
109
- }
110
- ```
145
+ Les fichiers sont classés par dossiers réels et par catégories extraites du nom :
111
146
 
112
- ### Cursor, Continue, tout client MCP
147
+ ```text
148
+ PROCESSUS/2026_06_30_10_00_[GUIDE]_preparer_une_reunion.md
149
+ ```
113
150
 
114
- Utilisez le même endpoint HTTP : `http://localhost:4321/mcp` (transport Streamable HTTP, sans état).
151
+ Ici :
115
152
 
116
- > Le serveur Living Documentation doit être lancé en premier (`npx living-ai-documentation@latest ./docs`) avant que l'agent ne se connecte.
153
+ - `PROCESSUS` est le dossier
154
+ - `GUIDE` est la catégorie
155
+ - `preparer_une_reunion` est le titre
117
156
 
118
157
  ---
119
158
 
120
- ## Concepts clés
159
+ ## Git et versions
121
160
 
122
- - **Markdown sur disque** , chaque document est un fichier `.md`. La configuration vit dans `.living-doc.json` à côté. Les deux sont git-friendly.
123
- - **Pattern de nom de fichier** , par défaut `YYYY_MM_DD_HH_mm_[Category]_title.md`. Le pattern est configurable ; la date, la catégorie et le titre sont extraits. Les fichiers qui ne correspondent pas apparaissent sous **General**.
124
- - **Dossiers → catégories → docs** dans la barre latérale. Les noms de dossiers deviennent les libellés ; les préfixes numériques (`1_TUTORIAL`, `2_REFERENCE`) contrôlent l'ordre sans s'afficher dans l'UI.
125
- - **Les ADR** sont l'enregistrement canonique des décisions. Le serveur MCP impose un frontmatter normalisé (`**date:**`, `**status:**`, `**description:**`, `**tags:**`) et un statut initial `To be validated` que seul un humain peut promouvoir.
126
- - **`sourceRoot`** pointe vers le code du projet. Les tools MCP source (`list_source_files`, `read_source_file`, `search_source`) et l'attache de métadonnées en dépendent. Valeur par défaut : le parent du dossier de documentation.
127
- - **Métadonnées de fichiers source + jauge de fiabilité** , liez un document aux fichiers source qu'il décrit. Chaque liaison stocke un SHA-256. La jauge dans l'en-tête du document (`🔴 → 🟡 → 🟢`) reflète le ratio `unchanged / total`. Dès qu'un fichier lié est modifié ou supprimé, la dérive est visible. Les **god files** (`package.json`, lock files, manifests, barrels) sont exclus par convention.
128
- - **Les diagrammes sont des vues dérivées** , ils citent les documents sur lesquels ils s'appuient (`evidence`). Ils ne peuvent pas introduire des concepts absents de la documentation.
161
+ L'intégration Git est optionnelle, mais fortement recommandée.
129
162
 
130
- ---
163
+ Elle permet :
131
164
 
132
- ## Référence MCP
133
-
134
- ### Tools (19)
135
-
136
- | Groupe | Tool | Description |
137
- | ---------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
138
- | Onboarding | `get_server_guide` | Retourne le guide du serveur : workflow, conventions, règles de diagrammes. |
139
- | Documents | `list_documents` | Inventaire : `id`, `title`, `category`, `folder`, `linkHref`. |
140
- | | `read_document` | Contenu Markdown brut d'un document. |
141
- | | `create_document` | Crée un nouveau fichier `.md` (nom de fichier dérivé du pattern configuré, paramètre `date` optionnel pour la rétrodocumentation). |
142
- | | `update_document` | Écrase un document existant (correction de dérive, supersession). |
143
- | Diagrammes | `list_diagrams` | Liste les diagrammes sauvegardés. |
144
- | | `read_diagram` | Lit les nœuds + arêtes d'un diagramme. |
145
- | | `create_diagram` | Crée / écrase un diagramme (garde-fous côté serveur appliquent la progression C4 et les labels d'arêtes). |
146
- | Code source (fallback) | `list_source_files` | Liste les fichiers sous `sourceRoot` (ignore : `node_modules`, `dist`, `.git`…). |
147
- | | `read_source_file` | Lit un fichier sous `sourceRoot`. |
148
- | | `search_source` | Recherche texte de type grep sous `sourceRoot`. |
149
- | Métadonnées | `list_metadata` | Liaisons de fichiers source d'un document. |
150
- | | `get_accuracy` | Statut par entrée (`unchanged` / `modified` / `missing`) + accuracy pondérée ∈ [0, 1]. |
151
- | | `add_metadata` | Lie un fichier source (chemin sous `sourceRoot`), enregistre le SHA-256. **Ignore les god files.** |
152
- | | `remove_metadata` | Détache une liaison (idempotent , pour les renommages/suppressions). |
153
- | | `refresh_metadata` | Re-hashe chaque liaison (re-baseline après une mise à jour). |
154
- | Audit ADR | `list_adrs_below_accuracy` | Jusqu'à 10 ADR dont l'accuracy < 80 %, triés du plus dégradé au moins dégradé. Exclut `SuperSeeded` et les non-ADR. |
155
- | | `review_adr_relevance` | Rapport factuel sur un ADR + fichiers en dérive à relire. Retourne un `state` qui pilote l'arbre de décision du LLM. |
156
- | Rétrodocumentation | `retrodocument_adrs_from_git` | Jusqu'à 200 commits git (du plus ancien) classés `candidate` / `trivial` / `merge`, avec flags god-file. Pour backfiller les ADR manquants. |
157
-
158
- ### Prompts (10)
159
-
160
- | Groupe | Prompt | Quand |
161
- | ---------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
162
- | Cycle de vie ADR | `create-adr` | Une fonctionnalité vient d'être implémentée ou modifiée. Enregistre la décision, supplante un ADR antérieur le cas échéant. |
163
- | | `audit-adrs-drift` | Audit par lot : ramener chaque ADR en dérive à un état clair (re-baseline ou supersession confirmée par l'utilisateur). |
164
- | | `review-adr-relevance` | Examen d'un seul ADR à la lumière des fichiers source liés. |
165
- | | `retrodocument-adrs-from-git` | Backfill d'ADR depuis l'historique git quand le projet en manque. |
166
- | Diagrammes | `generate-context-diagram` | DÉFAUT. Diagramme C4 de contexte, gardé côté serveur. |
167
- | | `generate-container-diagram` | Sur demande explicite uniquement. Diagramme C4 de conteneur d'un système. |
168
- | | `generate-uml-diagram` | Sur demande explicite uniquement. UML classe/séquence/état/activité/cas d'utilisation. |
169
- | | `generate-screen-guide` | Sur demande explicite uniquement. Capture d'écran annotée avec callouts post-it. |
170
- | | `update-diagram-from-docs` | Relit les documents source pour mettre à jour les diagrammes existants. |
171
- | | `flow`, `erd` | Diagrammes de flux linéaire / entité-relation. |
172
-
173
- Un `GET http://localhost:4321/mcp` retourne les schémas live des tools + prompts pour inspection.
165
+ - commits automatiques après les sauvegardes
166
+ - push désactivé ou push tous les N commits
167
+ - avertissement si Git n'est pas configuré
168
+ - détection des changements hors dossier documentaire
169
+ - bouton <kbd>Versions</kbd> sur les documents
170
+ - diff visuel entre HEAD et un commit sélectionné
171
+ - restauration de blocs depuis une ancienne version
174
172
 
175
- ---
173
+ Living Documentation ne commit que le dossier documentaire configuré. Les changements hors de ce dossier sont ignorés et signalés.
176
174
 
177
- ## Fonctionnalités d'édition
175
+ ---
178
176
 
179
- - **Éditeur inline** , éditez n'importe quel document dans le navigateur, sauvegarde instantanée sur disque.
180
- - **Panneau Snippets** (`🧩 Snippets`) , constructions Markdown préfabriquées au curseur : blocs repliables, liens (intra-doc, inter-doc, ancre), listes, blocs de code, blockquotes, séparateurs, images. Plus un **éditeur de tableaux** (grille dynamique → tableau Markdown aligné) et un **éditeur d'arborescence** (indentation → arbre ASCII avec `├──` / `└──`). Sélectionner un snippet existant **détecte son type** et pré-remplit le formulaire pour édition.
181
- - **Collage d'image** , collez depuis le presse-papier pendant l'édition, auto-upload vers `<docs>/images/`, inséré en Markdown.
182
- - **Pièces jointes** , glissez, déposez, collez ou choisissez tout fichier non-image (PDF, archive, document bureautique). Uploadé sous `<docs>/files/`, inséré comme un pill trombone. Extensions bloquées et limites de taille configurables dans l'Admin.
183
- - **Recherche plein-texte** , filtre instantané par nom de fichier + recherche serveur dans le contenu ; pour chaque fichier, liste chaque occurrence, les surligne et permet de naviguer vers elles.
184
- - **Préfixe de recherche `metadata://<nomdefichier>`** , recherche inversée : quels documents référencent cette pièce jointe ?
185
- - **Annotations** , marqueurs de surlignage persistants par document (jaune / rose / vert / bleu).
186
- - **Navigation par ancre** , `[label](#heading-slug)` scrolle correctement après rendu asynchrone ; IDs auto-générés.
187
- - **Mode sombre** , suit la préférence système, basculable manuellement. Coloration syntaxique toujours en mode sombre.
177
+ ## Agents et MCP
188
178
 
189
- ![Sidebar groupé par dossier catégorie](/images/readme-sidebar.png)
179
+ Living Documentation expose un serveur MCP local sur :
190
180
 
191
- ![Recherche plein-texte](/images/readme-intelligent-search-demo.jpg)
181
+ ```text
182
+ http://localhost:4321/mcp
183
+ ```
192
184
 
193
- ---
185
+ Les agents compatibles MCP peuvent utiliser les tools internes pour :
194
186
 
195
- ## Éditeur de diagrammes
187
+ - lister et lire les documents
188
+ - créer ou mettre à jour un document
189
+ - gérer les métadonnées
190
+ - générer des diagrammes
191
+ - générer des images via un provider image configuré
192
+ - lire le sourceRoot quand c'est nécessaire
193
+ - sauvegarder un contexte d'exécution
196
194
 
197
- Éditeur de diagrammes canvas intégré (vis-network), accessible via `/diagram?id=...`.
195
+ L'endpoint `GET /mcp` retourne les schémas live des tools et prompts disponibles. Le README ne duplique volontairement pas cette liste : elle évolue avec le produit.
198
196
 
199
- - **Progression C4 imposée** , contexte d'abord (défaut), conteneur/composant uniquement sur demande explicite. UML sur demande explicite.
200
- - **`kind` architectural vs `renderAs` visuel** , sépare le concept (`software_system`, `database`, `queue`, `api`, `cloud_service`…) de la forme (`box`, `ellipse`, `database`, `actor`, `post-it`…). Le MCP choisit des valeurs par défaut pertinentes pour chaque `kind`.
201
- - **Provenance documentaire (`evidence`)** , chaque nœud/arête architectural peut citer le document et la section qui le justifient. L'éditeur signale les warnings d'evidence manquante.
202
- - **Bibliothèques de formes personnalisées** sur `/shape-editor` , définissez vos propres formes (icônes SVG, ports, couleurs par défaut) et réutilisez-les dans tous les diagrammes.
203
- - **Ports** pour arêtes ancrées, **guides d'alignement**, **undo/redo**, **snap-to-grid**, **collage d'images**, **export PNG**, **deep-link** vers un diagramme par id.
197
+ ### Exemple Claude Code
204
198
 
205
- ---
199
+ ```bash
200
+ claude mcp add --transport http living-ai-documentation http://localhost:4321/mcp
201
+ ```
206
202
 
207
- ## Organisation des fichiers
203
+ ### Exemple Claude Desktop
208
204
 
205
+ ```json
206
+ {
207
+ "mcpServers": {
208
+ "living-ai-documentation": {
209
+ "type": "http",
210
+ "url": "http://localhost:4321/mcp"
211
+ }
212
+ }
213
+ }
209
214
  ```
210
- docs/
211
- ├── 2024_01_15_09_30_[DevOps]_deploy.md → catégorie : DevOps
212
- ├── 1_tutorial/ → dossier : Tutorial (préfixe caché dans l'UI)
213
- │ └── 2024_03_01_10_00_[Onboarding]_setup.md → dossier : Tutorial / catégorie : Onboarding
214
- ├── adrs/
215
- │ └── 2024_04_01_10_15_[Architecture]_event_sourcing.md
216
- └── 2_reference/
217
- └── api.md → dossier : Reference / catégorie : General
218
- ```
219
-
220
- - Le tag `[Category]` est extrait du nom de fichier quel que soit le dossier.
221
- - Les fichiers sans `[Category]` tombent sous **General**. **General** est toujours rendu en premier.
222
- - Les dossiers sont triés alphabétiquement , préfixez par `1_`, `2_`… pour forcer un ordre ; le préfixe est caché dans l'UI mais visible au survol.
223
- - L'imbrication de sous-dossiers est supportée récursivement.
224
215
 
225
- ![Pattern de nom de fichier](/images/readme-filename-pattern.png)
216
+ Même endpoint pour Cursor, Continue ou tout client MCP compatible Streamable HTTP.
226
217
 
227
218
  ---
228
219
 
229
- ## Configuration (`.living-doc.json`)
220
+ ## Configuration
221
+
222
+ La configuration est stockée dans `.living-doc.json`, dans le dossier documentaire.
230
223
 
231
- Créé automatiquement dans votre dossier de documentation au premier lancement. Modifiable depuis l'Admin ou à la main.
224
+ Exemple :
232
225
 
233
226
  ```json
234
227
  {
235
228
  "filenamePattern": "YYYY_MM_DD_HH_mm_[Category]_title",
236
229
  "title": "Living Documentation",
237
230
  "theme": "system",
231
+ "language": "fr",
238
232
  "port": 4321,
239
- "extraFiles": ["../README.md", "../CLAUDE.md"],
240
- "sourceRoot": "../src",
241
- "blockedFileExtensions": [".exe", ".bin"]
233
+ "sourceRoot": "..",
234
+ "extraFiles": [],
235
+ "gitIntegration": {
236
+ "mode": "enabled",
237
+ "pushMode": "never",
238
+ "pushEveryCommits": 1,
239
+ "commitMessage": "docs: update living documentation"
240
+ }
242
241
  }
243
242
  ```
244
243
 
245
- | Champ | Rôle |
246
- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
247
- | `filenamePattern` | Convention de nom de fichier utilisée pour extraire date / catégorie / titre. Le token `[Category]` est obligatoire, exactement une fois. |
248
- | `extraFiles` | Fichiers Markdown ordonnés **hors** du dossier docs (ex. `README.md`, `CLAUDE.md`). Affichés en premier dans General. |
249
- | `sourceRoot` | Où vit votre code (relatif au dossier docs). Défaut : `..`. Utilisé par les tools MCP source + métadonnées. |
250
- | `blockedFileExtensions` | Liste de sécurité des extensions de pièces jointes, éditable depuis l'Admin. |
251
-
252
- **Tous les chemins sont relatifs POSIX** pour que `.living-doc.json` reste portable. Les chemins absolus legacy sont migrés silencieusement à la première lecture.
253
-
254
- ![Extra files](/images/readme-extra-files.png)
244
+ Points importants :
255
245
 
256
- ---
257
-
258
- ## Export
259
-
260
- | Format | Endpoint | Notes |
261
- | ----------------------- | --------------------------- | ------------------------------------------------------------------ |
262
- | PDF (par document) | `POST /api/export/html` | Boîte de dialogue d'impression du navigateur depuis le HTML rendu. |
263
- | HTML , mode Notion | `POST /api/export/html` | Bundle HTML unique adapté à l'import Notion. |
264
- | HTML , mode Confluence | `POST /api/export/html` | Bundle HTML zippé adapté à l'import Confluence. |
265
- | Bundle Markdown | `POST /api/export/markdown` | Zip de tous les documents avec liens normalisés. |
246
+ - les chemins sont stockés en relatif quand c'est possible
247
+ - `sourceRoot` sert aux tools source et aux agents
248
+ - `[Category]` est utilisé pour classer les documents
249
+ - Git peut rester non configuré, désactivé, ou activé explicitement
250
+ - les extensions de fichiers jointes peuvent être bloquées dans Admin
266
251
 
267
252
  ---
268
253
 
269
- ## Surfaces de l'UI
254
+ ## Exports
270
255
 
271
- | URL | Page |
272
- | --------------- | --------------------------------------------------------------------------------------------------------- |
273
- | `/` | Viewer , sidebar, rendu de document, édition inline, snippets, recherche, pièces jointes. |
274
- | `/admin` | Config , titre, thème, pattern de nom de fichier, extra files, source root, liste de sécurité des fichiers. |
275
- | `/diagram?id=` | Éditeur de diagrammes (vis-network) avec conventions C4, ports, guides d'alignement, undo/redo. |
276
- | `/shape-editor` | Éditeur de bibliothèques de formes personnalisées , icônes SVG, couleurs par défaut, ports. |
277
- | `/context` | Page de contexte IA , instructions, règles, mémoire, **explorateur MCP** (testez les tools en live dans le navigateur). |
256
+ Living Documentation sait exporter :
278
257
 
279
- ---
280
-
281
- ## API REST
282
-
283
- <details>
284
- <summary>API HTTP complète (cliquer pour déplier)</summary>
285
-
286
- | Méthode | Endpoint | Description |
287
- | -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
288
- | `GET` | `/api/documents` | Liste les documents avec métadonnées (inclut les extra files). |
289
- | `GET` | `/api/documents/:id` | Contenu du document + HTML rendu. |
290
- | `POST` | `/api/documents` | Crée à partir de `{ title, category, folder?, content?, date? }`. |
291
- | `PUT` | `/api/documents/:id` | Sauvegarde le contenu sur disque. |
292
- | `DELETE` | `/api/documents/:id` | Supprime un document. |
293
- | `GET` | `/api/documents/search?q=` | Recherche plein-texte. |
294
- | `GET` | `/api/config` | Lit la configuration. |
295
- | `PUT` | `/api/config` | Met à jour la configuration (`title`, `theme`, `filenamePattern`, `extraFiles`, `sourceRoot`, `blockedFileExtensions`…). |
296
- | `GET` | `/api/browse?path=` | Liste les dossiers et fichiers `.md` à un chemin donné. |
297
- | `POST` | `/api/browse/mkdir` | Crée un dossier sous la racine docs. |
298
- | `POST` | `/api/images/upload` | Upload d'une image base64 → `<docs>/images/`. |
299
- | `POST` | `/api/files/upload` | Upload d'une pièce jointe base64 → `<docs>/files/`. |
300
- | `GET` | `/api/files` | Liste toutes les pièces jointes (ordre chronologique). |
301
- | `PUT` | `/api/files/:filename` | Remplace une pièce jointe. |
302
- | `DELETE` | `/api/files/:filename` | Supprime une pièce jointe. |
303
- | `GET` | `/api/metadata/:docId` | Rapport de fiabilité pour un document. |
304
- | `POST` | `/api/metadata/:docId` | Ajoute ou remplace une liaison. |
305
- | `DELETE` | `/api/metadata/:docId` | Retire une liaison. |
306
- | `POST` | `/api/metadata/:docId/refresh` | Re-baseline les hashes. |
307
- | `GET` | `/api/browse-source?path=` | Navigue dans l'arbre source ancré sur `sourceRoot`. |
308
- | `GET` | `/api/diagrams` | Liste les diagrammes sauvegardés. |
309
- | `GET` | `/api/diagrams/:id` | Lit un diagramme (nœuds + arêtes). |
310
- | `PUT` | `/api/diagrams/:id` | Crée ou met à jour un diagramme. |
311
- | `DELETE` | `/api/diagrams/:id` | Supprime un diagramme. |
312
- | `GET` | `/api/shape-libraries` | Liste les bibliothèques de formes personnalisées. |
313
- | `PUT` | `/api/shape-libraries/:id` | Sauvegarde une bibliothèque de formes. |
314
- | `GET` | `/api/annotations[/:docId]` | Liste les annotations (tous les docs / un doc). |
315
- | `POST` | `/api/annotations/:docId` | Ajoute une annotation. |
316
- | `DELETE` | `/api/annotations/:docId/:id` | Supprime une annotation. |
317
- | `POST` | `/api/export/html` | Export HTML , modes Notion / Confluence. |
318
- | `POST` | `/api/export/markdown` | Export bundle Markdown. |
319
- | `GET` | `/api/wordcloud?path=&ext=` | Concatène récursivement les fichiers source correspondants en texte brut. |
320
- | `POST` | `/mcp` | Endpoint Model Context Protocol (Streamable HTTP). |
321
- | `GET` | `/mcp` | Résumé live des schémas tools + prompts. |
322
-
323
- </details>
258
+ - un document en HTML imprimable / PDF navigateur
259
+ - un bundle HTML pour Notion ou Confluence
260
+ - un bundle Markdown complet
261
+ - des diagrammes en image ou `.drawio` selon le cas
324
262
 
325
263
  ---
326
264
 
327
- ## Build et test
265
+ ## Développement local
328
266
 
329
267
  ```bash
330
268
  git clone https://github.com/craftskillz/living-documentation.git
331
269
  cd living-documentation
332
270
  npm install
333
- npm run setup-hooks # une fois : active .githooks/ comme core.hooksPath
334
- npm run dev -- ./documentation # Vite (UI sur :5174, HMR) + backend Express (:4321)
335
- npm run build # tsc (serveur) + vite build (UI → dist/frontend-svelte)
336
- npm run test:e2e # Playwright end-to-end (~3 s, ~30 specs MCP)
337
- npm run test:coverage # couverture c8 V8-natif
271
+ npm run dev -- ./documentation
338
272
  ```
339
273
 
340
- En **dev**, ouvrez l'UI sur **http://localhost:5174** (Vite sert l'app Svelte avec HMR et proxifie `/api`, `/mcp`, `/images`, `/files` vers le backend Express sur `:4321`).
274
+ En développement :
341
275
 
342
- Les tests end-to-end utilisent **Playwright**. Chaque test lance un vrai processus CLI enfant sur un fixture frais sur un port aléatoire , pas de fuite d'état, exécution en parallèle. Couverture côté serveur via **c8** (V8 natif, ~72 % de référence globale, 83 % sur `src/routes` et `src/lib`).
276
+ - UI Vite : [http://localhost:5174](http://localhost:5174)
277
+ - backend Express : [http://localhost:4321](http://localhost:4321)
278
+ - proxy Vite : `/api`, `/mcp`, `/images`, `/files`
343
279
 
344
- ### Tester le package publié en local
280
+ Commandes utiles :
345
281
 
346
- Pas besoin de publier une version. Le CLI démarre un **serveur Express unique** qui sert l'UI Svelte pré-buildée **et** l'API/MCP sur un seul port , Vite (`:5174`) est uniquement pour le développement et n'existe pas pour les utilisateurs finaux.
282
+ ```bash
283
+ npm run build
284
+ npm run test:e2e
285
+ npm run test:coverage
286
+ npm run setup-hooks
287
+ ```
288
+
289
+ Pour tester le package comme il sera publié :
347
290
 
348
291
  ```bash
349
- # Lancer l'artefact de production exact, puis ouvrir http://localhost:4321
350
292
  npm run build
351
293
  node dist/bin/cli.js ./documentation
352
294
 
353
- # Le plus fidèle : construire le tarball que npm publierait (respecte "files"), puis le lancer
354
- npm pack # → living-ai-documentation-<version>.tgz
295
+ npm pack
355
296
  npx ./living-ai-documentation-*.tgz ./documentation
356
-
357
- npm pack --dry-run # inspecter exactement quels fichiers seraient publiés
358
297
  ```
359
298
 
360
- > En production, il n'y a pas de `:5174`. L'endpoint MCP auquel les clients se connectent est **`http://localhost:4321/mcp`** (Express, port par défaut).
299
+ > En production, il n'y a pas de serveur Vite sur `:5174`. Le CLI sert l'UI, l'API et MCP depuis Express, sur le port configuré.
300
+
301
+ ---
361
302
 
362
- ### Contribuer
303
+ ## Contribution
304
+
305
+ Le dépôt applique un contrat de README bilingue : si vous modifiez `README.fr.md`, vous devez aussi mettre à jour `README.md`, et inversement.
306
+
307
+ Activez les hooks locaux après le clone :
308
+
309
+ ```bash
310
+ npm run setup-hooks
311
+ ```
363
312
 
364
- Ce dépôt embarque un hook `pre-commit` (dans `.githooks/`) qui impose le contrat de README bilingue : si vous touchez `README.md`, vous devez aussi toucher `README.fr.md`, et inversement. Lancez `npm run setup-hooks` une fois après le clone pour l'activer. La même vérification s'exécute en CI sur chaque PR (voir `.github/workflows/readme-sync.yml`), donc la règle est appliquée même si un contributeur oublie la configuration locale.
313
+ La même vérification tourne en CI via `.github/workflows/readme-sync.yml`.
365
314
 
366
315
  ---
367
316
 
368
317
  ## Licence
369
318
 
370
- [AGPL-3.0](./LICENSE) , © Youssef MEDAGHRI-ALAOUI.
319
+ [AGPL-3.0](./LICENSE), © Youssef MEDAGHRI-ALAOUI.