agile-context-engineering 0.2.2 → 0.5.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 (146) hide show
  1. package/.claude-plugin/plugin.json +10 -0
  2. package/CHANGELOG.md +82 -0
  3. package/README.md +27 -18
  4. package/agents/ace-product-owner.md +1 -1
  5. package/agents/ace-technical-application-architect.md +28 -0
  6. package/agents/ace-wiki-mapper.md +144 -29
  7. package/bin/install.js +67 -63
  8. package/hooks/ace-check-update.js +17 -9
  9. package/package.json +7 -5
  10. package/shared/lib/ace-core.js +308 -0
  11. package/shared/lib/ace-core.test.js +308 -0
  12. package/shared/lib/ace-github.js +753 -0
  13. package/shared/lib/ace-story.js +400 -0
  14. package/shared/lib/ace-story.test.js +250 -0
  15. package/{agile-context-engineering → shared}/utils/ui-formatting.md +299 -299
  16. package/skills/execute-story/SKILL.md +110 -0
  17. package/skills/execute-story/script.js +305 -0
  18. package/skills/execute-story/script.test.js +261 -0
  19. package/skills/execute-story/walkthrough-template.xml +255 -0
  20. package/{agile-context-engineering/workflows/execute-story.xml → skills/execute-story/workflow.xml} +83 -9
  21. package/skills/help/SKILL.md +69 -0
  22. package/skills/help/script.js +318 -0
  23. package/skills/help/script.test.js +183 -0
  24. package/{agile-context-engineering/workflows/help.xml → skills/help/workflow.xml} +8 -8
  25. package/skills/init-coding-standards/SKILL.md +72 -0
  26. package/{agile-context-engineering/templates/wiki/coding-standards.xml → skills/init-coding-standards/coding-standards-template.xml} +38 -0
  27. package/skills/init-coding-standards/script.js +59 -0
  28. package/skills/init-coding-standards/script.test.js +70 -0
  29. package/{agile-context-engineering/workflows/init-coding-standards.xml → skills/init-coding-standards/workflow.xml} +4 -9
  30. package/skills/map-cross-cutting/SKILL.md +89 -0
  31. package/skills/map-cross-cutting/workflow.xml +330 -0
  32. package/skills/map-guide/SKILL.md +89 -0
  33. package/skills/map-guide/workflow.xml +320 -0
  34. package/skills/map-pattern/SKILL.md +89 -0
  35. package/skills/map-pattern/workflow.xml +331 -0
  36. package/skills/map-story/SKILL.md +127 -0
  37. package/skills/map-story/templates/guide.xml +137 -0
  38. package/skills/map-story/templates/pattern.xml +159 -0
  39. package/skills/map-story/templates/system-cross-cutting.xml +197 -0
  40. package/skills/map-story/templates/walkthrough.xml +255 -0
  41. package/{agile-context-engineering/workflows/map-story.xml → skills/map-story/workflow.xml} +258 -9
  42. package/skills/map-subsystem/SKILL.md +111 -0
  43. package/skills/map-subsystem/script.js +60 -0
  44. package/skills/map-subsystem/script.test.js +68 -0
  45. package/skills/map-subsystem/templates/decizions.xml +115 -0
  46. package/skills/map-subsystem/templates/guide.xml +137 -0
  47. package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/module-discovery.xml +3 -3
  48. package/skills/map-subsystem/templates/pattern.xml +159 -0
  49. package/skills/map-subsystem/templates/system-cross-cutting.xml +197 -0
  50. package/skills/map-subsystem/templates/system.xml +381 -0
  51. package/skills/map-subsystem/templates/walkthrough.xml +255 -0
  52. package/{agile-context-engineering/workflows/map-subsystem.xml → skills/map-subsystem/workflow.xml} +17 -21
  53. package/skills/map-sys-doc/SKILL.md +90 -0
  54. package/skills/map-sys-doc/system.xml +381 -0
  55. package/skills/map-sys-doc/workflow.xml +336 -0
  56. package/skills/map-system/SKILL.md +85 -0
  57. package/skills/map-system/script.js +84 -0
  58. package/skills/map-system/script.test.js +73 -0
  59. package/skills/map-system/templates/wiki-readme.xml +297 -0
  60. package/{agile-context-engineering/workflows/map-system.xml → skills/map-system/workflow.xml} +11 -16
  61. package/skills/map-walkthrough/SKILL.md +92 -0
  62. package/skills/map-walkthrough/walkthrough.xml +255 -0
  63. package/skills/map-walkthrough/workflow.xml +457 -0
  64. package/skills/plan-backlog/SKILL.md +75 -0
  65. package/skills/plan-backlog/script.js +136 -0
  66. package/skills/plan-backlog/script.test.js +83 -0
  67. package/{agile-context-engineering/workflows/plan-backlog.xml → skills/plan-backlog/workflow.xml} +13 -21
  68. package/skills/plan-feature/SKILL.md +76 -0
  69. package/skills/plan-feature/script.js +148 -0
  70. package/skills/plan-feature/script.test.js +80 -0
  71. package/{agile-context-engineering/workflows/plan-feature.xml → skills/plan-feature/workflow.xml} +21 -29
  72. package/skills/plan-product-vision/SKILL.md +75 -0
  73. package/skills/plan-product-vision/script.js +60 -0
  74. package/skills/plan-product-vision/script.test.js +69 -0
  75. package/{agile-context-engineering/workflows/plan-product-vision.xml → skills/plan-product-vision/workflow.xml} +4 -9
  76. package/skills/plan-story/SKILL.md +116 -0
  77. package/skills/plan-story/script.js +326 -0
  78. package/skills/plan-story/script.test.js +240 -0
  79. package/skills/plan-story/story-template.xml +451 -0
  80. package/{agile-context-engineering/workflows/plan-story.xml → skills/plan-story/workflow.xml} +1285 -909
  81. package/skills/research-external-solution/SKILL.md +107 -0
  82. package/skills/research-external-solution/script.js +238 -0
  83. package/skills/research-external-solution/script.test.js +134 -0
  84. package/{agile-context-engineering/workflows/research-external-solution.xml → skills/research-external-solution/workflow.xml} +4 -6
  85. package/skills/research-integration-solution/SKILL.md +98 -0
  86. package/{agile-context-engineering/templates/product/story-integration-solution.xml → skills/research-integration-solution/integration-solution-template.xml} +1 -0
  87. package/skills/research-integration-solution/script.js +231 -0
  88. package/skills/research-integration-solution/script.test.js +134 -0
  89. package/{agile-context-engineering/workflows/research-integration-solution.xml → skills/research-integration-solution/workflow.xml} +4 -5
  90. package/skills/research-story-wiki/SKILL.md +92 -0
  91. package/skills/research-story-wiki/script.js +231 -0
  92. package/skills/research-story-wiki/script.test.js +138 -0
  93. package/{agile-context-engineering/templates/product/story-wiki.xml → skills/research-story-wiki/story-wiki-template.xml} +4 -0
  94. package/{agile-context-engineering/workflows/research-story-wiki.xml → skills/research-story-wiki/workflow.xml} +5 -6
  95. package/skills/research-technical-solution/SKILL.md +103 -0
  96. package/skills/research-technical-solution/script.js +231 -0
  97. package/skills/research-technical-solution/script.test.js +134 -0
  98. package/{agile-context-engineering/workflows/research-technical-solution.xml → skills/research-technical-solution/workflow.xml} +4 -5
  99. package/skills/review-story/SKILL.md +100 -0
  100. package/skills/review-story/script.js +257 -0
  101. package/skills/review-story/script.test.js +169 -0
  102. package/skills/review-story/story-template.xml +451 -0
  103. package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml} +1 -3
  104. package/skills/update/SKILL.md +53 -0
  105. package/{agile-context-engineering/workflows/update.xml → skills/update/workflow.xml} +237 -207
  106. package/agile-context-engineering/src/ace-tools.js +0 -2881
  107. package/agile-context-engineering/src/ace-tools.test.js +0 -1089
  108. package/agile-context-engineering/templates/_command.md +0 -54
  109. package/agile-context-engineering/templates/_workflow.xml +0 -17
  110. package/agile-context-engineering/templates/config.json +0 -0
  111. package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
  112. package/agile-context-engineering/templates/wiki/wiki-readme.xml +0 -276
  113. package/commands/ace/execute-story.md +0 -137
  114. package/commands/ace/help.md +0 -93
  115. package/commands/ace/init-coding-standards.md +0 -83
  116. package/commands/ace/map-story.md +0 -156
  117. package/commands/ace/map-subsystem.md +0 -138
  118. package/commands/ace/map-system.md +0 -92
  119. package/commands/ace/plan-backlog.md +0 -83
  120. package/commands/ace/plan-feature.md +0 -89
  121. package/commands/ace/plan-product-vision.md +0 -81
  122. package/commands/ace/plan-story.md +0 -145
  123. package/commands/ace/research-external-solution.md +0 -138
  124. package/commands/ace/research-integration-solution.md +0 -135
  125. package/commands/ace/research-story-wiki.md +0 -116
  126. package/commands/ace/research-technical-solution.md +0 -147
  127. package/commands/ace/review-story.md +0 -109
  128. package/commands/ace/update.md +0 -54
  129. /package/{agile-context-engineering → shared}/utils/questioning.xml +0 -0
  130. /package/{agile-context-engineering/templates/product/story.xml → skills/execute-story/story-template.xml} +0 -0
  131. /package/{agile-context-engineering/templates/wiki → skills/map-cross-cutting}/system-cross-cutting.xml +0 -0
  132. /package/{agile-context-engineering/templates/wiki → skills/map-guide}/guide.xml +0 -0
  133. /package/{agile-context-engineering/templates/wiki → skills/map-pattern}/pattern.xml +0 -0
  134. /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/decizions.xml +0 -0
  135. /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/system.xml +0 -0
  136. /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/tech-debt-index.xml +0 -0
  137. /package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-architecture.xml +0 -0
  138. /package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-structure.xml +0 -0
  139. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-architecture.xml +0 -0
  140. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-structure.xml +0 -0
  141. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/testing-framework.xml +0 -0
  142. /package/{agile-context-engineering/templates/product/product-backlog.xml → skills/plan-backlog/product-backlog-template.xml} +0 -0
  143. /package/{agile-context-engineering/templates/product/feature.xml → skills/plan-feature/feature-template.xml} +0 -0
  144. /package/{agile-context-engineering/templates/product/product-vision.xml → skills/plan-product-vision/product-vision-template.xml} +0 -0
  145. /package/{agile-context-engineering/templates/product/external-solution.xml → skills/research-external-solution/external-solution-template.xml} +0 -0
  146. /package/{agile-context-engineering/templates/product/story-technical-solution.xml → skills/research-technical-solution/technical-solution-template.xml} +0 -0
@@ -12,6 +12,7 @@
12
12
  - patterns/*.md — reusable implementation patterns (via map-story)
13
13
  - cross-cutting/*.md — concerns spanning multiple systems (via map-story)
14
14
  - guides/*.md — step-by-step recipes for common tasks (via map-story)
15
+ - walkthroughs/*.md — deep tutorial-style flow explanations (via map-story)
15
16
  - decisions/*.md — architecture decision records (via map-story)
16
17
 
17
18
  Also produces `.ace/artifacts/subsystems/[subsystem-name]/module-discovery/module-discovery.md`.
@@ -38,18 +39,13 @@
38
39
  MANDATORY FIRST STEP — Execute environment detection before any user interaction:
39
40
 
40
41
  ```bash
41
- INIT=$(node ~/.claude/agile-context-engineering/src/ace-tools.js init map-subsystem)
42
- ```
42
+ INIT is available from the preprocessed Environment Context above — do NOT re-run init.
43
43
 
44
- Parse JSON for: `mapper_model`, `commit_docs`, `is_brownfield`, `wiki_dir_exists`, `has_git`.
44
+ Parse INIT JSON for: `mapper_model`, `commit_docs`, `is_brownfield`, `wiki_dir_exists`, `has_git`.
45
45
  </substep>
46
46
 
47
47
  <substep order="1.2" name="resolve-mapper-model">
48
- Resolve the mapper model for spawning agents:
49
-
50
- ```bash
51
- MAPPER_MODEL=$(node ~/.claude/agile-context-engineering/src/ace-tools.js resolve-model ace-wiki-mapper --raw)
52
- ```
48
+ MAPPER_MODEL is available from INIT.mapper_model do NOT re-run resolve-model.
53
49
  </substep>
54
50
 
55
51
  <substep order="1.3" name="display-banner">
@@ -273,7 +269,7 @@
273
269
  **Subsystem path:** [subsystem_path]
274
270
  **Subsystem name:** [subsystem_name]
275
271
 
276
- **Template:** Read ~/.claude/agile-context-engineering/templates/wiki/subsystem-structure.xml
272
+ **Template:** Read ${CLAUDE_SKILL_DIR}/templates/subsystem-structure.xml
277
273
  **System context (if exists):** Read .docs/wiki/system-wide/system-structure.md
278
274
  **Output:** Write to .docs/wiki/subsystems/[subsystem_name]/structure.md
279
275
 
@@ -314,7 +310,7 @@
314
310
 
315
311
  **Subsystem path:** [subsystem_path]
316
312
  **Current document:** Read .docs/wiki/subsystems/[subsystem_name]/structure.md
317
- **Template:** Read ~/.claude/agile-context-engineering/templates/wiki/subsystem-structure.xml
313
+ **Template:** Read ${CLAUDE_SKILL_DIR}/templates/subsystem-structure.xml
318
314
 
319
315
  <agent-instructions>
320
316
  <instruction order="1" name="compare">
@@ -364,7 +360,7 @@
364
360
  **Subsystem path:** [subsystem_path]
365
361
  **Subsystem name:** [subsystem_name]
366
362
 
367
- **Template:** Read ~/.claude/agile-context-engineering/templates/wiki/subsystem-architecture.xml
363
+ **Template:** Read ${CLAUDE_SKILL_DIR}/templates/subsystem-architecture.xml
368
364
  **System context (if exists):** Read .docs/wiki/system-wide/system-architecture.md
369
365
  **Structure doc (if exists):** Read .docs/wiki/subsystems/[subsystem_name]/structure.md
370
366
  **Output:** Write to .docs/wiki/subsystems/[subsystem_name]/architecture.md
@@ -408,7 +404,7 @@
408
404
 
409
405
  **Subsystem path:** [subsystem_path]
410
406
  **Current document:** Read .docs/wiki/subsystems/[subsystem_name]/architecture.md
411
- **Template:** Read ~/.claude/agile-context-engineering/templates/wiki/subsystem-architecture.xml
407
+ **Template:** Read ${CLAUDE_SKILL_DIR}/templates/subsystem-architecture.xml
412
408
  **System context (if exists):** Read .docs/wiki/system-wide/system-architecture.md
413
409
 
414
410
  <agent-instructions>
@@ -564,7 +560,7 @@
564
560
 
565
561
  <substep order="10.1" name="read-template">
566
562
  Read the module-discovery template first:
567
- `.claude/templates/module-discovery.xml`
563
+ `${CLAUDE_SKILL_DIR}/templates/module-discovery.xml`
568
564
  </substep>
569
565
 
570
566
  <substep order="10.2" name="create-artifacts-dir">
@@ -852,7 +848,7 @@
852
848
 
853
849
  Synthesize three discovery reports into the final module-discovery.md artifact.
854
850
 
855
- **Output template:** Read ~/.claude/agile-context-engineering/templates/wiki/module-discovery.xml
851
+ **Output template:** Read ${CLAUDE_SKILL_DIR}/templates/module-discovery.xml
856
852
  **Discovery inputs (read all three):**
857
853
  - .ace/artifacts/subsystems/[subsystem_name]/module-discovery/discovery-flows.md (systems)
858
854
  - .ace/artifacts/subsystems/[subsystem_name]/module-discovery/discovery-patterns.md (patterns)
@@ -967,7 +963,7 @@
967
963
  Task(
968
964
  prompt="Load and follow the map-story workflow in file mode.
969
965
 
970
- **Workflow:** Read and follow ~/.claude/agile-context-engineering/workflows/map-story.xml
966
+ **Workflow:** This agent should invoke /ace:map-story or follow the map-story skill workflow
971
967
  **Mode:** file mode — document existing code (no git diff)
972
968
 
973
969
  **Module name:** [Module Name from row]
@@ -977,11 +973,11 @@
977
973
  **Subsystem name:** [subsystem_name]
978
974
 
979
975
  **TEMPLATES — Read ALL of these before writing ANY docs:**
980
- - System docs: .claude/templates/system.xml
981
- - Pattern docs: .claude/templates/pattern.xml
982
- - Cross-cutting docs: .claude/templates/system-cross-cutting.xml
983
- - Guide docs: .claude/templates/guide.xml
984
- - Decision docs: .claude/templates/decizions.xml
976
+ - System docs: ${CLAUDE_SKILL_DIR}/templates/system.xml
977
+ - Pattern docs: ${CLAUDE_SKILL_DIR}/templates/pattern.xml
978
+ - Cross-cutting docs: ${CLAUDE_SKILL_DIR}/templates/system-cross-cutting.xml
979
+ - Guide docs: ${CLAUDE_SKILL_DIR}/templates/guide.xml
980
+ - Decision docs: ${CLAUDE_SKILL_DIR}/templates/decizions.xml
985
981
 
986
982
  <agent-instructions>
987
983
  <instruction order="1" name="read-source">
@@ -1005,7 +1001,7 @@
1005
1001
 
1006
1002
  <instruction order="4" name="decide-docs">
1007
1003
  You decide what docs to create or update — systems/, patterns/, cross-cutting/,
1008
- guides/, decisions/ — based on what you find in the code files. One call may
1004
+ guides/, walkthroughs/, decisions/ — based on what you find in the code files. One call may
1009
1005
  produce multiple docs across different categories.
1010
1006
  </instruction>
1011
1007
 
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: map-sys-doc
3
+ description: Create or update a system document in .docs/wiki/subsystems/[name]/systems/ — describes WHAT exists, HOW it works, WHERE things live
4
+ argument-hint: "text='Drawing system - manages all drawing tools on chart' subsystem='qarc-charts-v2' commits=3"
5
+ disable-model-invocation: true
6
+ allowed-tools:
7
+ - Read
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Write
12
+ - Edit
13
+ - AskUserQuestion
14
+ model: opus
15
+ effort: max
16
+ context: fork
17
+ agent: ace-wiki-mapper
18
+ ---
19
+
20
+ # Map Sys Doc
21
+
22
+ Create or update a system document describing WHAT exists, HOW it works, WHERE things live.
23
+
24
+ ## When to Use
25
+
26
+ - When a coherent domain system needs dedicated documentation
27
+ - After implementing a new system or significantly changing an existing one
28
+ - When an AI agent needs a reference doc for a domain system before implementing stories
29
+ - A logical grouping of components delivers one domain capability
30
+ - The system spans multiple files with entry points, data flow, and state
31
+ - A system doc would benefit from dedicated focused analysis outside map-story
32
+
33
+ ## Input
34
+
35
+ ### Required
36
+
37
+ - **`text`** (text) — Natural language description of the system to document. Describes WHAT the system does, its domain concern, and key components. E.g.: "Drawing system - manages all drawing tools on the chart", "User authentication and authorization system", "Order processing pipeline from cart to confirmation". If not provided, pause and ask the user.
38
+
39
+ - **`subsystem`** (path | text) — Subsystem where this system doc belongs. Wiki location: `.docs/wiki/subsystems/[subsystem]/systems/`. If not provided, pause and ask the user.
40
+
41
+ ### Optional
42
+
43
+ - **`story-context`** (path | GitHub issue) — Path to story artifacts folder (in `.ace/artifacts/`) OR GitHub issue number/URL. Provides intent context for WHY the system was built/changed. When not provided, the agent relies solely on code analysis.
44
+
45
+ - **`commits`** (number | comma-separated commit SHAs) — Specifies which commits to analyze for understanding what was built/changed. As a number: analyze the N most recent commits (e.g., commits=3). As commit SHAs: analyze specific commits (e.g., commits='abc123,def456'). When not provided: search the codebase directly using the text description.
46
+
47
+ ## Supporting Resources
48
+
49
+ Read ALL of these before starting the workflow:
50
+
51
+ - **Workflow**: Read [workflow.xml](workflow.xml) — complete orchestration process with all steps
52
+ - **System template**: Read [system.xml](system.xml) — output format for the system document
53
+ - **Questioning guide**: Read `${CLAUDE_SKILL_DIR}/../../shared/utils/questioning.xml` — deep questioning techniques
54
+ - **UI formatting**: Read `${CLAUDE_SKILL_DIR}/../../shared/utils/ui-formatting.md` — ACE output formatting rules
55
+
56
+ ## Process
57
+
58
+ Use the `ace-wiki-mapper` agent that's specialized in wiki exploration and documentation writing.
59
+
60
+ Read all supporting resources listed above, then execute the workflow defined in [workflow.xml](workflow.xml) end-to-end. Preserve all workflow gates (validation, user questions, commits).
61
+
62
+ **Objective:** Create or update a system document that describes a coherent domain system — WHAT exists, HOW it works, WHERE things live. Includes file tree, system boundary diagram, class hierarchy, entry points, data flow sequence diagrams (mandatory), components, key behaviors, state management, error propagation, and constants/enums. The primary document an AI agent reads before implementing a related story.
63
+
64
+ ## Artifacts
65
+
66
+ ```
67
+ .docs/wiki/subsystems/[subsystem-name]/systems/[system-name].md
68
+ ```
69
+
70
+ ## Example Usage
71
+
72
+ ```
73
+ # Basic system doc
74
+ /ace:map-sys-doc text='Drawing system - manages all drawing tools on chart' subsystem='qarc-charts-v2'
75
+
76
+ # With recent commits
77
+ /ace:map-sys-doc text='User authentication and authorization system' subsystem='api' commits=3
78
+
79
+ # With story context
80
+ /ace:map-sys-doc text='Order processing pipeline' subsystem='commerce' story-context='.ace/artifacts/product/e1-orders/f1-pipeline/s1-cart/s1-cart.md'
81
+ ```
82
+
83
+ ## Next Steps
84
+
85
+ - `/clear` first for a fresh context window
86
+ - `/ace:map-sys-doc` — create another system document
87
+ - `/ace:map-pattern` — document a pattern used by this system
88
+ - `/ace:map-guide` — create a how-to guide for this system
89
+ - `/ace:map-cross-cutting` — document a cross-cutting concern
90
+ - Review file at `.docs/wiki/subsystems/[subsystem-name]/systems/`
@@ -0,0 +1,381 @@
1
+ <system>
2
+ <purpose>
3
+ Template for `.docs/wiki/subsystems/[subsystem-name]/systems/<system-name>.md` — a coherent
4
+ domain system within a codebase subsystem. Answers "How does this system work RIGHT NOW?"
5
+
6
+ Each system doc describes WHAT exists, HOW it works, and WHERE things live for one
7
+ domain concern. It is the primary document an AI agent reads before implementing a
8
+ related story.
9
+
10
+ A "system" is a logical grouping of components that together deliver one domain capability
11
+ (e.g., Drawing System, User Management, Order Processing). A codebase subsystem may
12
+ contain multiple systems.
13
+
14
+ Complements:
15
+ - patterns/ docs (HOW to apply reusable implementation patterns)
16
+ - cross-cutting/ docs (concerns spanning multiple systems)
17
+ - guides/ docs (step-by-step recipes combining multiple patterns)
18
+ - decisions/ docs (WHY significant choices were made)
19
+ </purpose>
20
+
21
+ <template>
22
+ <overview>
23
+ # [System Name]
24
+
25
+ ## Overview
26
+ One paragraph: what this system does, why it exists.
27
+ </overview>
28
+
29
+ <file-tree>
30
+ ## File Tree
31
+
32
+ All files belonging to this system with purpose annotations.
33
+ Update when new files are added by a story.
34
+
35
+ ```
36
+ src/[layer]/[area]/
37
+ |-- FileA.ts # Brief purpose
38
+ |-- FileB.ts # Brief purpose
39
+ `-- subfolder/
40
+ |-- FileC.ts # Brief purpose
41
+ `-- FileD.ts # Brief purpose
42
+ ```
43
+ </file-tree>
44
+
45
+ <system-boundary>
46
+ ## System Boundary
47
+
48
+ Mermaid diagram showing what is INSIDE this system vs what it connects to OUTSIDE.
49
+ Helps agents understand scope — what to touch, what NOT to touch.
50
+
51
+ ```mermaid
52
+ graph TB
53
+ subgraph "System Name"
54
+ A[Component A]
55
+ B[Component B]
56
+ C[Component C]
57
+ end
58
+ External[External System]
59
+ B --&gt; External
60
+ ```
61
+ </system-boundary>
62
+
63
+ <class-and-interface-hierarchy>
64
+ ## Class and Interface Hierarchy
65
+
66
+ Inheritance chains and interface implementations.
67
+
68
+ ```mermaid
69
+ classDiagram
70
+ class IExample {
71
+ &lt;&lt;interface&gt;&gt;
72
+ }
73
+ class BaseClass {
74
+ &lt;&lt;abstract&gt;&gt;
75
+ }
76
+ IExample &lt;|.. BaseClass
77
+ BaseClass &lt;|-- ConcreteA
78
+ BaseClass &lt;|-- ConcreteB
79
+ ```
80
+
81
+ Key contracts INLINE (only interfaces/types that define the API shape):
82
+
83
+ ```typescript
84
+ export interface IExample {
85
+ // Only the contract shape — not implementation code
86
+ }
87
+ ```
88
+ </class-and-interface-hierarchy>
89
+
90
+ <entry-points>
91
+ ## Entry Points
92
+
93
+ Where flows begin. Each entry point is a "front door" into this system.
94
+ - User action: Click on chart -&gt; `file:MouseHandler.onClick`
95
+ - API endpoint: POST /api/resource -&gt; `file:ResourceController.create`
96
+ - Event handler: onTimeframeChange -&gt; `file:VisibilityManager.handleTimeframeChange`
97
+ </entry-points>
98
+
99
+ <data-flow-and-sequence-diagrams required="true">
100
+ ## Data Flow and Sequence Diagrams
101
+
102
+ **MANDATORY — every system doc MUST have at least one mermaid sequenceDiagram.**
103
+ This is the most critical section. Without E2E flow diagrams, an agent cannot
104
+ understand how data moves through the system.
105
+
106
+ How data moves through this system for each key behavior.
107
+ Use mermaid sequence diagrams showing the complete flow through all layers.
108
+
109
+ ### Flow: [Behavior Name]
110
+
111
+ ```mermaid
112
+ sequenceDiagram
113
+ participant User
114
+ participant Entry as EntryPoint
115
+ participant Svc as Service
116
+ participant Domain as DomainEntity
117
+ participant Repo as Repository
118
+ participant DB as DataStore
119
+
120
+ User-&gt;&gt;Entry: action
121
+ Entry-&gt;&gt;Svc: command/query
122
+ Svc-&gt;&gt;Domain: business logic
123
+ Domain--&gt;&gt;Svc: result
124
+ Svc-&gt;&gt;Repo: persist/retrieve
125
+ Repo-&gt;&gt;DB: SQL/query
126
+ DB--&gt;&gt;Repo: result
127
+ Repo--&gt;&gt;Svc: domain object
128
+ Svc--&gt;&gt;Entry: response
129
+ Entry--&gt;&gt;User: feedback
130
+ ```
131
+ </data-flow-and-sequence-diagrams>
132
+
133
+ <components>
134
+ ## Components
135
+
136
+ ### [Component A]
137
+ - **Location**: `src/infrastructure/primitives/trend-line/TrendLine.ts:TrendLine`
138
+ - **Purpose**: One line
139
+ - **Key interface**: `src/domain/interfaces/IDrawing.ts:IDrawing`
140
+ - **Implements**: ISeriesPrimitive, IDrawing
141
+
142
+ ### [Component B]
143
+ ...
144
+ </components>
145
+
146
+ <key-behaviors>
147
+ ## Key Behaviors
148
+
149
+ ### [Behavior 1]
150
+ - **Trigger**: What causes this behavior
151
+ - **Logic**: Where the logic lives (`file:ClassName.method`), brief description
152
+ - **Effect**: What happens as a result
153
+
154
+ ### [Behavior 2]
155
+ ...
156
+ </key-behaviors>
157
+
158
+ <state-management>
159
+ ## State Management
160
+
161
+ What state this system owns, where it lives, how it flows.
162
+ - **State location**: Redux store at `file:drawingSlice` / local state in `file:DrawingManager`
163
+ - **Key state shape**: (inline only if non-obvious)
164
+ - **State transitions**: What actions/events cause state changes
165
+ </state-management>
166
+
167
+ <error-propagation>
168
+ ## Error Propagation
169
+
170
+ What errors this system throws/handles and how they propagate through layers.
171
+ - `DrawingValidationError` at `file:Path.validate` -&gt; caught by `file:DrawingFactory` -&gt; user notification
172
+ - `RepositoryError` at `file:ResourceRepository.save` -&gt; propagates to controller -&gt; HTTP 500
173
+ </error-propagation>
174
+
175
+ <constants-and-enums>
176
+ ## Constants and Enums
177
+
178
+ Where constants and enums for this system are defined. Agent MUST use these, never hardcode.
179
+ - **Constants**: `src/domain/constants/DrawingConstants.ts:DrawingConstants`
180
+ - **Enums**: `src/domain/enums/DrawingType.ts:DrawingType`
181
+ - **Config lookup**: `src/domain/configs/DrawingConfigLookup.ts:DrawingConfigLookup`
182
+ </constants-and-enums>
183
+
184
+ <related-systems>
185
+ ## Related Systems
186
+
187
+ What other systems this one interacts with. Agent should read these docs before modifying.
188
+ - [Event System](../cross-cutting/event-system.md) — publishes/subscribes to events
189
+ - [Settings System](./settings-system.md) — configuration modal
190
+ </related-systems>
191
+
192
+ <integration-points>
193
+ ## Integration Points
194
+
195
+ - Connects to: [other system] via [mechanism] at `file:ClassName.method`
196
+ - Consumed by: [component] at `file:ClassName.method`
197
+ </integration-points>
198
+
199
+ <configuration-and-options>
200
+ ## Configuration and Options
201
+
202
+ Options interface shape and defaults. Agent needs this to implement new variants.
203
+
204
+ ```typescript
205
+ export interface ISystemOptions {
206
+ // Contract shape — what options this system accepts
207
+ }
208
+ ```
209
+
210
+ Default values: `file:SystemDefaults.ts:SYSTEM_DEFAULTS`
211
+ </configuration-and-options>
212
+
213
+ <database>
214
+ ## Database
215
+
216
+ Include ONLY if this system has database interactions. Omit entirely for pure frontend systems.
217
+
218
+ - **Table**: `table_name` — migration at `file:migrations/20240101_CreateTable.sql`
219
+ - **Key columns**: id, type, data (jsonb), created_at
220
+ - **Indexes**: `idx_table_column` on `column`
221
+ </database>
222
+
223
+ <gotchas>
224
+ ## Gotchas
225
+
226
+ Things that commonly go wrong or are easy to forget when working with this system.
227
+ - Constructor timing: factory methods called from `super()` BEFORE subclass fields initialize
228
+ - Button IDs have NO hyphens, registry types DO have hyphens
229
+ </gotchas>
230
+
231
+ <tech-debt>
232
+ ## Tech Debt
233
+
234
+ Known quality issues in this system discovered during story code reviews.
235
+ Items are added by the wiki mapper and removed when fixed by a future story.
236
+ Include ONLY if this system has known tech debt items. Omit section entirely if clean.
237
+
238
+ ### [Short descriptive title of the issue]
239
+ - **Severity:** high | medium | low
240
+ - **File:** `[file-path:SymbolName]`
241
+ - **Description:** What the issue is, why it matters, and what could go wrong
242
+ if left unfixed. Reference specific code constructs where applicable.
243
+ - **Discovered during:** [story-id] — [story title]
244
+
245
+ ### [Another issue]
246
+ - **Severity:** ...
247
+ - **File:** ...
248
+ - **Description:** ...
249
+ - **Discovered during:** ...
250
+ </tech-debt>
251
+ </template>
252
+
253
+ <guidelines>
254
+
255
+ **Documentation Style:**
256
+ - EXTREMELY SUCCINCT — every word must add value
257
+ - NO FLUFF — direct, actionable information only
258
+ - Bullet points over paragraphs
259
+ - File trees: ASCII only (`|--`, backtick-dash-dash) — never Unicode box-drawing characters
260
+ - **ALL visual representations of architecture, dependencies, flows, or relationships MUST be ```mermaid fenced code blocks. NO ASCII arrows (->), NO dependency trees, NO PlantUML. Only mermaid. The ONLY ASCII exception is file trees (directory listings).**
261
+ - Code references as `file-path:ClassName.methodName` or `file-path:functionName` (not line numbers)
262
+ - Inline snippets ONLY for interfaces, types, and short patterns that define contracts
263
+ - When referencing a whole class/module: `file-path:ClassName`
264
+ - When referencing a specific method: `file-path:ClassName.methodName`
265
+ - When referencing a standalone function: `file-path:functionName`
266
+ - When referencing a type/interface: `file-path:InterfaceName`
267
+
268
+ **Overview:**
269
+ - ONE paragraph. If you need more, the system boundary is too large — split it.
270
+ - State what the system DOES, not what it IS.
271
+
272
+ **File Tree:**
273
+ - List ALL files belonging to this system, grouped by directory.
274
+ - Every file gets a `# Brief purpose` comment.
275
+ - Use ASCII only: `|--` for branches, backtick-dash-dash for last item, `|` for continuation.
276
+ - Paths relative to subsystem root.
277
+
278
+ **System Boundary:**
279
+ - The mermaid diagram must clearly separate INSIDE from OUTSIDE.
280
+ - An agent reading this knows: "If my change touches something inside, I'm in scope.
281
+ If it touches something outside, I need to read that system's doc too."
282
+
283
+ **Class and Interface Hierarchy:**
284
+ - Use mermaid `classDiagram` for inheritance and interface implementation.
285
+ - Inline code snippets ONLY for interface/type contracts — never implementation code.
286
+ - If the hierarchy is trivial (1 class, no inheritance), omit this section.
287
+
288
+ **Entry Points:**
289
+ - Every "front door" into this system. An agent needs to know WHERE flows start.
290
+ - Use `file:ClassName.methodName` references.
291
+
292
+ **Data Flow and Sequence Diagrams (MANDATORY — never skip):**
293
+ - Every system doc MUST have at least one ```mermaid sequenceDiagram.
294
+ - One sequence diagram per key behavior (1-5 behaviors typically).
295
+ - Show COMPLETE E2E flow through all layers — entry to data store and back.
296
+ - Participants = components, not files. Keep it at the right abstraction level.
297
+ - If you cannot trace the flow, read more source files until you can. Do NOT skip.
298
+
299
+ **Components:**
300
+ - One subsection per major component. Location + Purpose + Key interface.
301
+ - Skip trivial components (DTOs, simple value objects) unless they define important contracts.
302
+
303
+ **Key Behaviors:**
304
+ - Trigger -&gt; Logic -&gt; Effect format. Concise.
305
+ - Reference code locations with `file:ClassName.method`.
306
+
307
+ **State Management:**
308
+ - Where state lives (Redux, local, database) and what causes transitions.
309
+ - Omit if the system is stateless or state is trivial.
310
+
311
+ **Error Propagation:**
312
+ - How errors flow through layers. What gets caught where.
313
+ - Omit if error handling follows a system-wide pattern documented in cross-cutting.
314
+
315
+ **Constants and Enums:**
316
+ - CRITICAL for AI agents — they must NEVER hardcode values.
317
+ - Always list the exact file paths where constants and enums are defined.
318
+
319
+ **Related Systems:**
320
+ - Cross-reference with markdown links to other docs.
321
+ - Agent should read these before modifying this system.
322
+
323
+ **Tech Debt:**
324
+ - One `###` subsection per known issue — NOT a table. Each issue needs enough context
325
+ for an agent to understand the problem without reading the code.
326
+ - Severity: `high` (security, data loss, production instability), `medium` (quality,
327
+ maintainability), `low` (cosmetic, minor inefficiency).
328
+ - Always link to the discovering story for traceability.
329
+ - REMOVE items when fixed by a future story.
330
+ - Omit the entire section if no tech debt exists in this system.
331
+
332
+ **Section Inclusion:**
333
+ - Include ALL sections that are relevant to the system.
334
+ - OMIT sections that genuinely don't apply (e.g., no Database for pure frontend).
335
+ - **NEVER omit Data Flow and Sequence Diagrams** — this section is always required.
336
+ - When updating, ADD or expand sections — don't rewrite sections that haven't changed.
337
+
338
+ **What does NOT belong here:**
339
+ - Story numbers, sprint context, or agile artifacts
340
+ - Planned vs Actual comparisons
341
+ - Acceptance criteria checklists
342
+ - Revision history (git handles this)
343
+ - Duplicated implementation code (reference it, don't copy it)
344
+ - Line numbers in references (they go stale)
345
+ - Testing docs, coverage metrics, test code
346
+ - Performance benchmarks
347
+ - Debugging utilities
348
+ - ASCII arrows or dependency trees (use mermaid; exception: file trees use ASCII)
349
+
350
+ </guidelines>
351
+
352
+ <evolution>
353
+
354
+ This is a LIVING document — updated after each story that touches this system.
355
+
356
+ **Update triggers:**
357
+ - New component added to this system
358
+ - New behavior or entry point introduced
359
+ - Existing behavior changed significantly
360
+ - New integration point or dependency added
361
+ - Class hierarchy changed (new subclass, interface change)
362
+ - State management approach changed
363
+ - New constants or enums added
364
+ - File tree changed (new files, removed files, moved files)
365
+ - Tech debt discovered or resolved in this system's files
366
+
367
+ **NOT an update trigger:**
368
+ - Bug fixes that don't change system behavior
369
+ - Internal refactoring within existing components
370
+ - New test files
371
+ - Style/formatting changes
372
+
373
+ **Update rules:**
374
+ - ADD new sections or expand existing ones — don't rewrite unchanged sections
375
+ - UPDATE file tree to reflect current state
376
+ - REMOVE references to deleted files or components
377
+ - The document must always reflect the CURRENT state, not history
378
+
379
+ </evolution>
380
+
381
+ </system>