living-documentation 7.50.0 → 7.51.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 (28) hide show
  1. package/dist/bin/cli.js +26 -0
  2. package/dist/bin/cli.js.map +1 -1
  3. package/dist/src/frontend/context.html +93 -0
  4. package/dist/src/frontend/i18n/en.json +12 -0
  5. package/dist/src/frontend/i18n/fr.json +12 -0
  6. package/dist/starter-doc/ADRS/2026_01_01_[ADR]_example_architecture_decision.md +2 -2
  7. package/dist/starter-doc/AI/2026_01_01_how_to.md +24 -18
  8. package/dist/starter-doc/AI/PROJECT-INSTRUCTIONS.md +137 -0
  9. package/dist/starter-doc/AI/default/AGENTS.md +22 -8
  10. package/dist/starter-doc/AI/default/CLAUDE.md +22 -8
  11. package/dist/starter-doc/AI/default/MEMORY.md +20 -3
  12. package/dist/starter-doc-fr/ADRS/2026_01_01_[ADR]_example_architecture_decision.md +2 -2
  13. package/dist/starter-doc-fr/AI/2026_01_01_how_to.md +28 -34
  14. package/dist/starter-doc-fr/AI/PROJECT-INSTRUCTIONS.md +137 -0
  15. package/dist/starter-doc-fr/AI/default/AGENTS.md +21 -7
  16. package/dist/starter-doc-fr/AI/default/CLAUDE.md +21 -7
  17. package/dist/starter-doc-fr/AI/default/MEMORY.md +20 -3
  18. package/package.json +1 -1
  19. package/dist/starter-doc/AI/flavors/project-instructions-backend-api.md +0 -41
  20. package/dist/starter-doc/AI/flavors/project-instructions-frontend-app.md +0 -42
  21. package/dist/starter-doc/AI/flavors/project-instructions-library-cli.md +0 -41
  22. package/dist/starter-doc/AI/flavors/project-instructions-monorepo.md +0 -41
  23. package/dist/starter-doc/AI/project-instructions.md +0 -78
  24. package/dist/starter-doc-fr/AI/flavors/project-instructions-backend-api.md +0 -41
  25. package/dist/starter-doc-fr/AI/flavors/project-instructions-frontend-app.md +0 -42
  26. package/dist/starter-doc-fr/AI/flavors/project-instructions-library-cli.md +0 -41
  27. package/dist/starter-doc-fr/AI/flavors/project-instructions-monorepo.md +0 -41
  28. package/dist/starter-doc-fr/AI/project-instructions.md +0 -78
package/dist/bin/cli.js CHANGED
@@ -34,6 +34,27 @@ function copyDir(src, dest) {
34
34
  }
35
35
  }
36
36
  }
37
+ function docsFolderReference(docsPath) {
38
+ const projectRoot = path_1.default.dirname(docsPath);
39
+ return path_1.default.relative(projectRoot, docsPath).split(path_1.default.sep).join("/") || ".";
40
+ }
41
+ function replaceDocsFolderPlaceholders(rootPath, docsFolder) {
42
+ for (const entry of fs_1.default.readdirSync(rootPath, { withFileTypes: true })) {
43
+ const fullPath = path_1.default.join(rootPath, entry.name);
44
+ if (entry.isDirectory()) {
45
+ replaceDocsFolderPlaceholders(fullPath, docsFolder);
46
+ continue;
47
+ }
48
+ if (!entry.isFile() || path_1.default.extname(entry.name).toLowerCase() !== ".md") {
49
+ continue;
50
+ }
51
+ const content = fs_1.default.readFileSync(fullPath, "utf-8");
52
+ if (!content.includes("DOCS_FOLDER")) {
53
+ continue;
54
+ }
55
+ fs_1.default.writeFileSync(fullPath, content.split("DOCS_FOLDER").join(docsFolder), "utf-8");
56
+ }
57
+ }
37
58
  function validateRelativeFolder(folder) {
38
59
  if (path_1.default.isAbsolute(folder) || folder.startsWith("~")) {
39
60
  console.error(`\nError: The docs folder must be a relative path (got: ${folder}).\n` +
@@ -122,6 +143,9 @@ function createInitInstructionFiles(instructionFiles) {
122
143
  fs_1.default.symlinkSync(aiLinkTarget, aiLinkPath, "file");
123
144
  }
124
145
  }
146
+ function removeStarterDefaults(docsPath) {
147
+ fs_1.default.rmSync(path_1.default.join(docsPath, "AI", "default"), { recursive: true, force: true });
148
+ }
125
149
  async function runInitWizard(options) {
126
150
  const rl = (0, promises_1.createInterface)({ input: process.stdin, output: process.stdout });
127
151
  try {
@@ -169,8 +193,10 @@ async function runInitWizard(options) {
169
193
  fs_1.default.mkdirSync(docsPath, { recursive: true });
170
194
  }
171
195
  scaffoldStarter(docsPath, initLanguage);
196
+ replaceDocsFolderPlaceholders(docsPath, docsFolderReference(docsPath));
172
197
  const instructionFiles = initInstructionFiles(docsPath);
173
198
  createInitInstructionFiles(instructionFiles);
199
+ removeStarterDefaults(docsPath);
174
200
  const port = parseInt(options.port, 10);
175
201
  if (isNaN(port) || port < 1 || port > 65535) {
176
202
  console.error("\nError: Invalid port number\n");
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,42 @@
56
56
  </div>
57
57
 
58
58
  <aside class="min-w-0 max-w-full space-y-5">
59
+ <section class="min-w-0 rounded-lg border border-gray-200 bg-white dark:border-gray-800 dark:bg-gray-900 p-4 space-y-3">
60
+ <div class="flex items-center justify-between gap-3">
61
+ <h2 class="text-sm font-semibold" data-i18n="context.mcp_title">MCP explorer</h2>
62
+ <button id="btnRefreshMcp" class="rounded-md border border-gray-300 px-2 py-1 text-xs font-semibold text-gray-600 hover:bg-gray-50 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-gray-800" data-i18n="context.mcp_refresh">Refresh</button>
63
+ </div>
64
+ <p class="text-xs text-gray-500 dark:text-gray-400" data-i18n="context.mcp_intro">Verify the local Living Documentation MCP endpoint exposed to AI tools.</p>
65
+ <div class="grid grid-cols-2 gap-2 text-xs">
66
+ <div class="rounded-md border border-gray-100 dark:border-gray-800 px-2 py-2">
67
+ <div class="text-gray-400" data-i18n="context.mcp_status">Status</div>
68
+ <div id="mcpStatus" class="mt-1 font-semibold text-gray-500">-</div>
69
+ </div>
70
+ <div class="rounded-md border border-gray-100 dark:border-gray-800 px-2 py-2">
71
+ <div class="text-gray-400" data-i18n="context.mcp_transport">Transport</div>
72
+ <div id="mcpTransport" class="mt-1 font-mono text-gray-700 dark:text-gray-200 truncate">-</div>
73
+ </div>
74
+ <div class="col-span-2 rounded-md border border-gray-100 dark:border-gray-800 px-2 py-2">
75
+ <div class="text-gray-400" data-i18n="context.mcp_endpoint">Endpoint</div>
76
+ <div id="mcpEndpoint" class="mt-1 font-mono text-gray-700 dark:text-gray-200 break-all">-</div>
77
+ </div>
78
+ </div>
79
+ <div>
80
+ <div class="mb-2 flex items-center justify-between gap-3">
81
+ <h3 class="text-xs font-semibold text-gray-500" data-i18n="context.mcp_tools">Tools</h3>
82
+ <span id="mcpToolCount" class="text-xs text-gray-400"></span>
83
+ </div>
84
+ <div id="mcpToolList" class="flex max-h-36 flex-wrap gap-1 overflow-y-auto"></div>
85
+ </div>
86
+ <div>
87
+ <div class="mb-2 flex items-center justify-between gap-3">
88
+ <h3 class="text-xs font-semibold text-gray-500" data-i18n="context.mcp_prompts">Prompts</h3>
89
+ <span id="mcpPromptCount" class="text-xs text-gray-400"></span>
90
+ </div>
91
+ <div id="mcpPromptList" class="flex max-h-28 flex-wrap gap-1 overflow-y-auto"></div>
92
+ </div>
93
+ </section>
94
+
59
95
  <section class="min-w-0 rounded-lg border border-gray-200 bg-white dark:border-gray-800 dark:bg-gray-900 p-4 space-y-3">
60
96
  <h2 class="text-sm font-semibold" data-i18n="context.add_rule_title">Add AI rule</h2>
61
97
  <div>
@@ -131,6 +167,14 @@
131
167
  btnToggleInstructionBrowser: document.getElementById('btnToggleInstructionBrowser'),
132
168
  ruleList: document.getElementById('ruleList'),
133
169
  rulesFolder: document.getElementById('rulesFolder'),
170
+ btnRefreshMcp: document.getElementById('btnRefreshMcp'),
171
+ mcpStatus: document.getElementById('mcpStatus'),
172
+ mcpTransport: document.getElementById('mcpTransport'),
173
+ mcpEndpoint: document.getElementById('mcpEndpoint'),
174
+ mcpToolCount: document.getElementById('mcpToolCount'),
175
+ mcpToolList: document.getElementById('mcpToolList'),
176
+ mcpPromptCount: document.getElementById('mcpPromptCount'),
177
+ mcpPromptList: document.getElementById('mcpPromptList'),
134
178
  ruleTitle: document.getElementById('ruleTitle'),
135
179
  ruleSeverity: document.getElementById('ruleSeverity'),
136
180
  ruleDescription: document.getElementById('ruleDescription'),
@@ -346,6 +390,51 @@
346
390
  `).join('');
347
391
  }
348
392
 
393
+ function renderMcpItems(container, items, emptyKey) {
394
+ if (!items.length) {
395
+ container.innerHTML = `<p class="text-xs text-gray-400">${window.t(emptyKey)}</p>`;
396
+ return;
397
+ }
398
+ container.innerHTML = items.map((item) => {
399
+ const label = typeof item === 'string' ? item : item.name;
400
+ return `<span class="rounded bg-gray-100 px-2 py-1 font-mono text-xs text-gray-700 dark:bg-gray-800 dark:text-gray-200">${escapeHtml(label)}</span>`;
401
+ }).join('');
402
+ }
403
+
404
+ function renderMcpExplorer(data) {
405
+ const tools = Array.isArray(data.tools) ? data.tools : [];
406
+ const prompts = Array.isArray(data.prompts) ? data.prompts : [];
407
+ els.mcpStatus.textContent = window.t('context.mcp_available');
408
+ els.mcpStatus.className = 'mt-1 font-semibold text-green-600 dark:text-green-400';
409
+ els.mcpTransport.textContent = data.transport || '-';
410
+ els.mcpEndpoint.textContent = data.endpoint || 'POST /mcp';
411
+ els.mcpToolCount.textContent = String(tools.length);
412
+ els.mcpPromptCount.textContent = String(prompts.length);
413
+ renderMcpItems(els.mcpToolList, tools, 'context.mcp_no_tools');
414
+ renderMcpItems(els.mcpPromptList, prompts, 'context.mcp_no_prompts');
415
+ }
416
+
417
+ function renderMcpUnavailable() {
418
+ els.mcpStatus.textContent = window.t('context.mcp_unavailable');
419
+ els.mcpStatus.className = 'mt-1 font-semibold text-red-600 dark:text-red-400';
420
+ els.mcpTransport.textContent = '-';
421
+ els.mcpEndpoint.textContent = '/mcp';
422
+ els.mcpToolCount.textContent = '0';
423
+ els.mcpPromptCount.textContent = '0';
424
+ renderMcpItems(els.mcpToolList, [], 'context.mcp_no_tools');
425
+ renderMcpItems(els.mcpPromptList, [], 'context.mcp_no_prompts');
426
+ }
427
+
428
+ async function loadMcpExplorer() {
429
+ try {
430
+ const res = await fetch('/mcp');
431
+ if (!res.ok) throw new Error(await res.text());
432
+ renderMcpExplorer(await res.json());
433
+ } catch {
434
+ renderMcpUnavailable();
435
+ }
436
+ }
437
+
349
438
  function renderOrientation(data) {
350
439
  orientation = data;
351
440
  renderInstructionFiles(data.instructions || []);
@@ -404,12 +493,16 @@
404
493
  async function init() {
405
494
  await loadContextI18n();
406
495
  await loadOrientation();
496
+ await loadMcpExplorer();
407
497
  }
408
498
 
409
499
  els.btnAddRule.addEventListener('click', () => {
410
500
  addRule().catch((err) => setStatus(err.message));
411
501
  });
412
502
  els.btnToggleInstructionBrowser.addEventListener('click', toggleInstructionBrowser);
503
+ els.btnRefreshMcp.addEventListener('click', () => {
504
+ loadMcpExplorer().catch(() => renderMcpUnavailable());
505
+ });
413
506
  els.instructionBrowseUp.addEventListener('click', () => {
414
507
  if (instructionBrowseParent) loadInstructionBrowse(instructionBrowseParent);
415
508
  });
@@ -122,6 +122,18 @@
122
122
  "context.rules_title": "AI rules",
123
123
  "context.add_rule_title": "Add AI rule",
124
124
  "context.add_rule_button": "Add rule",
125
+ "context.mcp_title": "MCP explorer",
126
+ "context.mcp_intro": "Verify the local Living Documentation MCP endpoint exposed to AI tools.",
127
+ "context.mcp_refresh": "Refresh",
128
+ "context.mcp_status": "Status",
129
+ "context.mcp_transport": "Transport",
130
+ "context.mcp_endpoint": "Endpoint",
131
+ "context.mcp_tools": "Tools",
132
+ "context.mcp_prompts": "Prompts",
133
+ "context.mcp_available": "Available",
134
+ "context.mcp_unavailable": "Unavailable",
135
+ "context.mcp_no_tools": "No tools exposed.",
136
+ "context.mcp_no_prompts": "No prompts exposed.",
125
137
  "context.loading": "Loading…",
126
138
  "context.empty": "Nothing listed.",
127
139
  "context.exists": "Found",
@@ -122,6 +122,18 @@
122
122
  "context.rules_title": "Règles IA",
123
123
  "context.add_rule_title": "Ajouter une règle IA",
124
124
  "context.add_rule_button": "Ajouter la règle",
125
+ "context.mcp_title": "Explorateur MCP",
126
+ "context.mcp_intro": "Vérifiez l'endpoint MCP local Living Documentation exposé aux outils IA.",
127
+ "context.mcp_refresh": "Rafraîchir",
128
+ "context.mcp_status": "Statut",
129
+ "context.mcp_transport": "Transport",
130
+ "context.mcp_endpoint": "Endpoint",
131
+ "context.mcp_tools": "Outils",
132
+ "context.mcp_prompts": "Prompts",
133
+ "context.mcp_available": "Disponible",
134
+ "context.mcp_unavailable": "Indisponible",
135
+ "context.mcp_no_tools": "Aucun outil exposé.",
136
+ "context.mcp_no_prompts": "Aucun prompt exposé.",
125
137
  "context.loading": "Chargement…",
126
138
  "context.empty": "Aucun élément.",
127
139
  "context.exists": "Trouvé",
@@ -28,7 +28,7 @@ Be specific enough that another developer or AI assistant can apply the same rul
28
28
 
29
29
  Example:
30
30
 
31
- - store project-level AI instructions in `AI/project-instructions.md`;
31
+ - store project-level AI instructions in `AI/PROJECT-INSTRUCTIONS.md`;
32
32
  - expose tool-specific entry points through `AGENTS.md` and `CLAUDE.md`;
33
33
  - keep reusable AI rules in `AI/rules/*.md`;
34
34
  - use symbolic links when a document must appear in Living Documentation without duplicating the source of truth.
@@ -52,7 +52,7 @@ Example:
52
52
  When turning this example into a real ADR:
53
53
 
54
54
  - rename the file with the actual date, category, and decision title;
55
- - set `status` to `Proposed`, `Accepted`, `Superseded`, or the status convention used by the project;
55
+ - set `status` to `To be validated`, `Accepted`, `SuperSeeded`, `Partially SuperSeeded`, or the status convention used by the project;
56
56
  - replace `description` with a one-sentence summary that is useful during ADR discovery;
57
57
  - replace `tags` with searchable themes;
58
58
  - remove this follow-up section if it is no longer useful.
@@ -17,11 +17,15 @@ If one of these files already existed with content, the wizard stopped instead o
17
17
  Finally, it exposed these files inside Living Documentation through symbolic links:
18
18
 
19
19
  ```text
20
- <docs-folder>/AI/AGENTS.md -> ../AGENTS.md
21
- <docs-folder>/AI/CLAUDE.md -> ../CLAUDE.md
22
- <docs-folder>/AI/MEMORY.md -> ../memory/MEMORY.md
20
+ <docs-folder>/AI/AGENTS.md -> <project-root>/AGENTS.md
21
+ <docs-folder>/AI/CLAUDE.md -> <project-root>/CLAUDE.md
22
+ <docs-folder>/AI/MEMORY.md -> <project-root>/memory/MEMORY.md
23
23
  ```
24
24
 
25
+ In other words, these links do not point to another file inside the documentation folder. They expose, under `AI/`, the real files used by agents at the project root.
26
+
27
+ The internal `AI/default/` template folder is removed from the initialized documentation after these copies and links are created.
28
+
25
29
  ## What The Files Do
26
30
 
27
31
  `AGENTS.md` is the entry point for Codex and agent-style tools.
@@ -30,18 +34,30 @@ Finally, it exposed these files inside Living Documentation through symbolic lin
30
34
 
31
35
  `memory/MEMORY.md` is the project-local memory index.
32
36
 
33
- `AI/project-instructions.md` is the shared operating guide for every AI assistant working on the project.
37
+ `AI/PROJECT-INSTRUCTIONS.md` is the shared operating guide for every AI assistant working on the project.
34
38
 
35
39
  `AI/rules/*.md` contains reusable rules that AI assistants must apply when they touch matching files.
36
40
 
37
41
  `ADRS/*.md` contains durable decisions. ADRs explain why the project works a certain way.
38
42
 
43
+ ## First-Run Verification
44
+
45
+ Open the **AI Context** page from the main navigation.
46
+
47
+ This page should let you verify:
48
+
49
+ - that `AGENTS.md`, `CLAUDE.md`, and `memory/MEMORY.md` appear as documents under `AI/`;
50
+ - that AI rules are visible under `AI/rules/`;
51
+ - that the MCP explorer shows the `living-documentation` server, the `/mcp` endpoint, the available tools, and the prompts.
52
+
53
+ If the MCP explorer does not show tools, the AI assistant cannot use Living Documentation as an active source of truth. It can still propose documentation changes, but it must state that metadata and hashes could not be updated through MCP.
54
+
39
55
  ## Expected AI Workflow
40
56
 
41
57
  An AI assistant should:
42
58
 
43
59
  1. Read its entry point: `AGENTS.md` or `CLAUDE.md`.
44
- 2. Follow the link to `AI/project-instructions.md`.
60
+ 2. Follow the link to `AI/PROJECT-INSTRUCTIONS.md`.
45
61
  3. Read `memory/MEMORY.md` and load only relevant memory files.
46
62
  4. Read the matching rules in `AI/rules/*.md`.
47
63
  5. Inspect ADR frontmatter when a task may touch an existing decision.
@@ -49,22 +65,14 @@ An AI assistant should:
49
65
  7. At the end of a coherent feature, update durable documentation when needed.
50
66
  8. Attach Living Documentation metadata to created or updated documents when source files prove their content.
51
67
 
52
- ## Project Instructions Flavor
53
-
54
- The default shared instructions are in:
55
-
56
- ```text
57
- AI/project-instructions.md
58
- ```
68
+ ## Project Instructions
59
69
 
60
- Example flavors are available in:
70
+ The shared instructions are in:
61
71
 
62
72
  ```text
63
- AI/flavors/
73
+ AI/PROJECT-INSTRUCTIONS.md
64
74
  ```
65
75
 
66
- Use them as templates if this project is mainly a frontend app, backend API, library/CLI, or monorepo.
67
-
68
76
  ## ADRs
69
77
 
70
78
  The starter includes an ADR example:
@@ -91,7 +99,5 @@ After setup, remove only what is not useful for your project.
91
99
 
92
100
  Common cleanup:
93
101
 
94
- - remove unused files in `AI/flavors/`;
95
- - remove unused templates in `AI/default/` if the project only supports one AI tool;
96
102
  - keep this document if future contributors should understand the initialized structure;
97
103
  - keep the ADR example only if you want an in-project template.
@@ -0,0 +1,137 @@
1
+ # PROJECT-INSTRUCTIONS - Living Documentation
2
+
3
+ This file is the shared working contract for AI assistants working on this project. It explains how to integrate Living Documentation into the AI-assisted development workflow.
4
+
5
+ `AGENTS.md` and `CLAUDE.md` are tool-specific entry points. They should stay short and point to this file, which carries the common rules.
6
+
7
+ ## Startup Routine
8
+
9
+ Before changing the project:
10
+
11
+ 1. Read `AGENTS.md` or `CLAUDE.md`, depending on the tool.
12
+ 2. Read this file: `DOCS_FOLDER/AI/PROJECT-INSTRUCTIONS.md`.
13
+ 3. Read `memory/MEMORY.md` and load only the memory files relevant to the task.
14
+ 4. Read every rule in `DOCS_FOLDER/AI/rules/*.md`.
15
+ 5. Inspect existing ADRs: list `DOCS_FOLDER/ADRS/`, read only `description` and `tags` first, then open the full ADR only when relevant.
16
+ 6. Check whether the Living Documentation MCP server is available before creating or modifying documentation.
17
+
18
+ Replace `DOCS_FOLDER` with the real documentation folder used by this project, for example `documentation`, `docs`, or `doc`.
19
+
20
+ ## Living Documentation MCP
21
+
22
+ The Living Documentation MCP is the preferred channel for reading, creating, and maintaining project documentation. When it is available, the AI must use it instead of editing Markdown files by hand.
23
+
24
+ Use in particular:
25
+
26
+ - `list_documents` to discover existing documents;
27
+ - `read_document` to read a document source;
28
+ - `create_document` or `update_document` to create or correct a document;
29
+ - `list_source_files`, `read_source_file`, and `search_source` to connect documentation to code;
30
+ - `add_metadata` to attach a document to the source files that prove it;
31
+ - `refresh_metadata` to recalculate hashes after updates;
32
+ - `get_accuracy` or equivalent tools to detect drift between documentation and code.
33
+
34
+ If the MCP is not available, the AI may propose documentation changes, but it must explicitly state that metadata and hashes could not be updated.
35
+
36
+ ## Continuous Documentation
37
+
38
+ Documentation is not a separate step to do later. It is part of the normal AI-assisted development workflow.
39
+
40
+ At the end of every coherent feature, meaningful refactor, behavioral change, or durable decision, the AI must decide whether documentation should be updated.
41
+
42
+ Create or update a document when the change:
43
+
44
+ - modifies an architecture boundary;
45
+ - introduces or changes a public contract;
46
+ - changes a storage format, protocol, or workflow;
47
+ - adds a convention future changes must follow;
48
+ - makes an existing document incomplete, ambiguous, or wrong;
49
+ - resolves a trade-off that would be hard to infer from code alone.
50
+
51
+ Do not create durable documentation for trivial fixes, mechanical renames, or formatting-only changes.
52
+
53
+ ## ADRs
54
+
55
+ ADRs are the log of architecture and design decisions. They should stay short, traceable, and useful for deciding what to change later.
56
+
57
+ When a feature changes a durable decision:
58
+
59
+ 1. Search for existing ADRs about the same topic.
60
+ 2. If an ADR remains valid, complete or correct it.
61
+ 3. If an ADR is replaced, mark it with the exact status `SuperSeeded` or `Partially SuperSeeded` and create a new ADR explaining the new decision.
62
+ 4. Never delete a replaced ADR: the history is useful.
63
+ 5. In the new ADR, explicitly mention the replaced ADR and why it is no longer enough.
64
+
65
+ The recommended initial status for an AI-created ADR is `To be validated`. A human can later validate it and change it to `Accepted`.
66
+
67
+ Each ADR should include frontmatter useful for discovery:
68
+
69
+ ```markdown
70
+ ---
71
+ **date:** YYYY-MM-DD
72
+ **status:** To be validated
73
+ **description:** One sentence summarizing the decision and why it matters.
74
+ **tags:** architecture, mcp, metadata
75
+ ---
76
+ ```
77
+
78
+ ## Metadata And Reliability Gauge
79
+
80
+ A Living Documentation document should be linked to the source files that prove what it says. These links are stored as metadata and allow the document reliability score to be calculated.
81
+
82
+ When the AI creates or updates an ADR or technical document:
83
+
84
+ 1. Identify the source files that are actually involved.
85
+ 2. Attach those files to the document with `add_metadata`.
86
+ 3. Avoid attaching overly generic files when a more precise file proves the content better.
87
+ 4. After correcting the document, call `refresh_metadata` to recalculate hashes.
88
+ 5. If a document remains correct after a cosmetic code change, use `refresh_metadata` to re-baseline the hash without rewriting the document unnecessarily.
89
+
90
+ Metadata is not optional for documents that describe code. If metadata cannot be updated, the AI must say so in its final response and list the files that should be attached.
91
+
92
+ ## AI Rules
93
+
94
+ Rules live in `DOCS_FOLDER/AI/rules/*.md`.
95
+
96
+ Each rule uses frontmatter:
97
+
98
+ - `id` - stable identifier;
99
+ - `title` - short human-readable name;
100
+ - `severity` - `guideline`, `warning`, or `required`;
101
+ - `description` - concise summary;
102
+ - `tags` - themes used for discovery;
103
+ - `appliesTo` - globs describing where the rule applies.
104
+
105
+ Apply every rule whose `appliesTo` patterns match files you touch. If a rule conflicts with the user request or another project instruction, state the conflict explicitly before proceeding.
106
+
107
+ ## Memory
108
+
109
+ Memory files live in the project under `memory/`.
110
+
111
+ Do not store project memory in a tool-specific global folder if the user expects project-local memory. Update `memory/MEMORY.md` whenever memory files are added or removed.
112
+
113
+ Memory is for stable, frequently reused context. Durable decisions should instead be written as ADRs.
114
+
115
+ ## Changing AI Instruction Files
116
+
117
+ The AI may propose changes to `AGENTS.md`, `CLAUDE.md`, `PROJECT-INSTRUCTIONS.md`, `memory/MEMORY.md`, or rules in `AI/rules/`.
118
+
119
+ But these files directly steer AI assistant behavior. Before changing them, the AI must:
120
+
121
+ 1. explain to the user what it wants to change;
122
+ 2. explain why the change improves the workflow;
123
+ 3. state any possible risks;
124
+ 4. wait for explicit validation if the change may reduce visibility, remove a rule, weaken a constraint, or make the agent more autonomous.
125
+
126
+ No destructive change to these files should be made silently.
127
+
128
+ ## Verification
129
+
130
+ Before finishing a task, run the smallest useful verification:
131
+
132
+ - build command if typed code or build files changed;
133
+ - focused tests if behavior changed;
134
+ - lint or formatting command if the project has one;
135
+ - MCP/documentation verification if ADRs or metadata were created or modified.
136
+
137
+ If a verification cannot be run, explain why.
@@ -1,14 +1,28 @@
1
- # AGENTS.md Living Documentation
1
+ # AGENTS.md - Living Documentation
2
2
 
3
- This file is the Codex entry point for this repository.
3
+ This file is the entry point for Codex and agent-style tools.
4
4
 
5
5
  Before making changes:
6
6
 
7
- 1. Read `DOCS_FOLDER/AI/project-instructions.md`.
8
- 2. Read `memory/MEMORY.md` and load the relevant memory files listed there.
9
- 3. Read every rule in `DOCS_FOLDER/AI/rules/*.md` and apply the rules whose `appliesTo` patterns match files you touch.
10
- 4. To understand existing decisions, glob the ADR folder, read only each ADR frontmatter `description` and `tags`, then load the full ADR only when relevant.
7
+ 1. Read `DOCS_FOLDER/AI/PROJECT-INSTRUCTIONS.md`.
8
+ 2. Read `memory/MEMORY.md` and load only useful memory files.
9
+ 3. Read rules in `DOCS_FOLDER/AI/rules/*.md`.
10
+ 4. Inspect ADRs in `DOCS_FOLDER/ADRS/` by reading `description` and `tags` first.
11
+ 5. Use the Living Documentation MCP to create, update, and keep documentation reliable when it is available.
11
12
 
12
- Replace `DOCS_FOLDER` with the real documentation folder path for this project.
13
+ Replace `DOCS_FOLDER` with the real documentation folder for this project.
13
14
 
14
- If an AI rule conflicts with the user request or another project instruction, state the conflict explicitly before proceeding.
15
+ ## Living Documentation MCP
16
+
17
+ The Living Documentation server exposes its MCP on `/mcp` with Streamable HTTP transport, for example `http://localhost:4321/mcp` when the server uses the default port.
18
+
19
+ When the MCP is available:
20
+
21
+ - use document tools to read, create, or update documentation;
22
+ - use source tools to inspect code only when documentation is not enough;
23
+ - attach source files with `add_metadata` after creating or updating an ADR or technical document;
24
+ - call `refresh_metadata` once the document is aligned with the code.
25
+
26
+ If the MCP is not available, state that explicitly in the final response.
27
+
28
+ If a rule or project instruction conflicts with the user request, state the conflict explicitly before proceeding.
@@ -1,14 +1,28 @@
1
- # CLAUDE.md Living Documentation
1
+ # CLAUDE.md - Living Documentation
2
2
 
3
- This file is the Claude entry point for this repository.
3
+ This file is the entry point for Claude.
4
4
 
5
5
  Before making changes:
6
6
 
7
- 1. Read `DOCS_FOLDER/AI/project-instructions.md`.
8
- 2. Read `memory/MEMORY.md` and load the relevant memory files listed there.
9
- 3. Read every rule in `DOCS_FOLDER/AI/rules/*.md` and apply the rules whose `appliesTo` patterns match files you touch.
10
- 4. To understand existing decisions, glob the ADR folder, read only each ADR frontmatter `description` and `tags`, then load the full ADR only when relevant.
7
+ 1. Read `DOCS_FOLDER/AI/PROJECT-INSTRUCTIONS.md`.
8
+ 2. Read `memory/MEMORY.md` and load only useful memory files.
9
+ 3. Read rules in `DOCS_FOLDER/AI/rules/*.md`.
10
+ 4. Inspect ADRs in `DOCS_FOLDER/ADRS/` by reading `description` and `tags` first.
11
+ 5. Use the Living Documentation MCP to create, update, and keep documentation reliable when it is available.
11
12
 
12
- Replace `DOCS_FOLDER` with the real documentation folder path for this project.
13
+ Replace `DOCS_FOLDER` with the real documentation folder for this project.
13
14
 
14
- If an AI rule conflicts with the user request or another project instruction, state the conflict explicitly before proceeding.
15
+ ## Living Documentation MCP
16
+
17
+ The Living Documentation server exposes its MCP on `/mcp` with Streamable HTTP transport, for example `http://localhost:4321/mcp` when the server uses the default port.
18
+
19
+ When the MCP is available:
20
+
21
+ - use document tools to read, create, or update documentation;
22
+ - use source tools to inspect code only when documentation is not enough;
23
+ - attach source files with `add_metadata` after creating or updating an ADR or technical document;
24
+ - call `refresh_metadata` once the document is aligned with the code.
25
+
26
+ If the MCP is not available, state that explicitly in the final response.
27
+
28
+ If a rule or project instruction conflicts with the user request, state the conflict explicitly before proceeding.
@@ -1,7 +1,24 @@
1
1
  # Memory Index
2
2
 
3
- Toujours stocker les fichiers mémoire dans le dossier `memory/` du projet courant, pas dans `~/.claude`.
3
+ Always store project memory in the current project's `memory/` folder.
4
4
 
5
- **Why:** L'utilisateur préfère avoir tout le contexte dans le projet lui-même pour plus de visibilité et de contrôle.
5
+ Do not write project memory to a tool-specific global folder, for example `~/.claude`.
6
6
 
7
- **How to apply:** Écrire les fichiers mémoire dans `<project_root>/memory/` au lieu de `~/.claude/projects/.../memory/`. Mettre à jour `memory/MEMORY.md` en conséquence.
7
+ ## Recommended Memory Files
8
+
9
+ List the memory files that are actually useful to this project, for example:
10
+
11
+ ```text
12
+ memory/project-overview.md
13
+ memory/architecture.md
14
+ memory/testing.md
15
+ memory/domain-language.md
16
+ ```
17
+
18
+ ## Usage Rule
19
+
20
+ Memory is for stable, frequently reused context.
21
+
22
+ Durable decisions should be written as ADRs under `DOCS_FOLDER/ADRS/`.
23
+
24
+ Update this file when memory files are added, renamed, or removed.
@@ -28,7 +28,7 @@ Soyez assez spécifique pour qu'un autre développeur ou assistant IA puisse app
28
28
 
29
29
  Exemple :
30
30
 
31
- - stocker les instructions IA projet dans `AI/project-instructions.md` ;
31
+ - stocker les instructions IA projet dans `AI/PROJECT-INSTRUCTIONS.md` ;
32
32
  - exposer les points d'entrée propres aux outils via `AGENTS.md` et `CLAUDE.md` ;
33
33
  - garder les règles IA réutilisables dans `AI/rules/*.md` ;
34
34
  - utiliser des liens symboliques quand un document doit apparaître dans Living Documentation sans dupliquer la source de vérité.
@@ -52,7 +52,7 @@ Exemple :
52
52
  Quand cet exemple devient un vrai ADR :
53
53
 
54
54
  - renommer le fichier avec la vraie date, catégorie et titre de décision ;
55
- - définir `status` selon la convention du projet : `Proposed`, `Accepted`, `Superseded`, etc. ;
55
+ - définir `status` selon la convention du projet : `To be validated`, `Accepted`, `SuperSeeded`, `Partially SuperSeeded`, etc. ;
56
56
  - remplacer `description` par une phrase utile pour la découverte ;
57
57
  - remplacer `tags` par des thèmes recherchables ;
58
58
  - supprimer cette section si elle n'est plus utile.