agile-context-engineering 0.3.0 → 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 (147) hide show
  1. package/.claude-plugin/plugin.json +10 -0
  2. package/LICENSE +51 -51
  3. package/README.md +332 -324
  4. package/agents/ace-product-owner.md +1 -1
  5. package/agents/ace-research-synthesizer.md +228 -228
  6. package/agents/ace-wiki-mapper.md +449 -445
  7. package/bin/install.js +60 -64
  8. package/hooks/ace-check-update.js +70 -62
  9. package/hooks/ace-statusline.js +89 -89
  10. package/package.json +5 -4
  11. package/shared/lib/ace-core.js +308 -0
  12. package/shared/lib/ace-core.test.js +308 -0
  13. package/shared/lib/ace-github.js +753 -0
  14. package/shared/lib/ace-story.js +400 -0
  15. package/shared/lib/ace-story.test.js +250 -0
  16. package/{agile-context-engineering → shared}/utils/questioning.xml +110 -110
  17. package/{agile-context-engineering → shared}/utils/ui-formatting.md +299 -299
  18. package/skills/execute-story/SKILL.md +110 -0
  19. package/skills/execute-story/script.js +305 -0
  20. package/skills/execute-story/script.test.js +261 -0
  21. package/skills/execute-story/walkthrough-template.xml +255 -0
  22. package/{agile-context-engineering/workflows/execute-story.xml → skills/execute-story/workflow.xml} +1219 -1219
  23. package/skills/help/SKILL.md +69 -0
  24. package/skills/help/script.js +318 -0
  25. package/skills/help/script.test.js +183 -0
  26. package/{agile-context-engineering/workflows/help.xml → skills/help/workflow.xml} +540 -540
  27. package/skills/init-coding-standards/SKILL.md +72 -0
  28. package/skills/init-coding-standards/script.js +59 -0
  29. package/skills/init-coding-standards/script.test.js +70 -0
  30. package/{agile-context-engineering/workflows/init-coding-standards.xml → skills/init-coding-standards/workflow.xml} +381 -386
  31. package/skills/map-cross-cutting/SKILL.md +89 -0
  32. package/{agile-context-engineering/templates/wiki → skills/map-cross-cutting}/system-cross-cutting.xml +197 -197
  33. package/skills/map-cross-cutting/workflow.xml +330 -0
  34. package/skills/map-guide/SKILL.md +89 -0
  35. package/{agile-context-engineering/templates/wiki → skills/map-guide}/guide.xml +137 -137
  36. package/skills/map-guide/workflow.xml +320 -0
  37. package/skills/map-pattern/SKILL.md +89 -0
  38. package/{agile-context-engineering/templates/wiki → skills/map-pattern}/pattern.xml +159 -159
  39. package/skills/map-pattern/workflow.xml +331 -0
  40. package/skills/map-story/SKILL.md +127 -0
  41. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/decizions.xml +115 -115
  42. package/skills/map-story/templates/guide.xml +137 -0
  43. package/skills/map-story/templates/pattern.xml +159 -0
  44. package/skills/map-story/templates/system-cross-cutting.xml +197 -0
  45. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/system.xml +381 -381
  46. package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/walkthrough.xml +255 -255
  47. package/{agile-context-engineering/workflows/map-story.xml → skills/map-story/workflow.xml} +1046 -1046
  48. package/skills/map-subsystem/SKILL.md +111 -0
  49. package/skills/map-subsystem/script.js +60 -0
  50. package/skills/map-subsystem/script.test.js +68 -0
  51. package/skills/map-subsystem/templates/decizions.xml +115 -0
  52. package/skills/map-subsystem/templates/guide.xml +137 -0
  53. package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/module-discovery.xml +174 -174
  54. package/skills/map-subsystem/templates/pattern.xml +159 -0
  55. package/skills/map-subsystem/templates/system-cross-cutting.xml +197 -0
  56. package/skills/map-subsystem/templates/system.xml +381 -0
  57. package/skills/map-subsystem/templates/walkthrough.xml +255 -0
  58. package/{agile-context-engineering/workflows/map-subsystem.xml → skills/map-subsystem/workflow.xml} +15 -20
  59. package/skills/map-sys-doc/SKILL.md +90 -0
  60. package/skills/map-sys-doc/system.xml +381 -0
  61. package/skills/map-sys-doc/workflow.xml +336 -0
  62. package/skills/map-system/SKILL.md +85 -0
  63. package/skills/map-system/script.js +84 -0
  64. package/skills/map-system/script.test.js +73 -0
  65. package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-architecture.xml +254 -254
  66. package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/wiki-readme.xml +296 -296
  67. package/{agile-context-engineering/workflows/map-system.xml → skills/map-system/workflow.xml} +11 -16
  68. package/skills/map-walkthrough/SKILL.md +92 -0
  69. package/skills/map-walkthrough/walkthrough.xml +255 -0
  70. package/skills/plan-backlog/SKILL.md +75 -0
  71. package/{agile-context-engineering/templates/product/product-backlog.xml → skills/plan-backlog/product-backlog-template.xml} +231 -231
  72. package/skills/plan-backlog/script.js +136 -0
  73. package/skills/plan-backlog/script.test.js +83 -0
  74. package/{agile-context-engineering/workflows/plan-backlog.xml → skills/plan-backlog/workflow.xml} +13 -21
  75. package/skills/plan-feature/SKILL.md +76 -0
  76. package/skills/plan-feature/script.js +148 -0
  77. package/skills/plan-feature/script.test.js +80 -0
  78. package/{agile-context-engineering/workflows/plan-feature.xml → skills/plan-feature/workflow.xml} +1487 -1495
  79. package/skills/plan-product-vision/SKILL.md +75 -0
  80. package/skills/plan-product-vision/script.js +60 -0
  81. package/skills/plan-product-vision/script.test.js +69 -0
  82. package/{agile-context-engineering/workflows/plan-product-vision.xml → skills/plan-product-vision/workflow.xml} +4 -9
  83. package/skills/plan-story/SKILL.md +116 -0
  84. package/skills/plan-story/script.js +326 -0
  85. package/skills/plan-story/script.test.js +240 -0
  86. package/skills/plan-story/story-template.xml +451 -0
  87. package/{agile-context-engineering/workflows/plan-story.xml → skills/plan-story/workflow.xml} +1285 -944
  88. package/skills/research-external-solution/SKILL.md +107 -0
  89. package/skills/research-external-solution/script.js +238 -0
  90. package/skills/research-external-solution/script.test.js +134 -0
  91. package/{agile-context-engineering/workflows/research-external-solution.xml → skills/research-external-solution/workflow.xml} +4 -6
  92. package/skills/research-integration-solution/SKILL.md +98 -0
  93. package/skills/research-integration-solution/script.js +231 -0
  94. package/skills/research-integration-solution/script.test.js +134 -0
  95. package/{agile-context-engineering/workflows/research-integration-solution.xml → skills/research-integration-solution/workflow.xml} +3 -5
  96. package/skills/research-story-wiki/SKILL.md +92 -0
  97. package/skills/research-story-wiki/script.js +231 -0
  98. package/skills/research-story-wiki/script.test.js +138 -0
  99. package/{agile-context-engineering/workflows/research-story-wiki.xml → skills/research-story-wiki/workflow.xml} +3 -5
  100. package/skills/research-technical-solution/SKILL.md +103 -0
  101. package/skills/research-technical-solution/script.js +231 -0
  102. package/skills/research-technical-solution/script.test.js +134 -0
  103. package/{agile-context-engineering/workflows/research-technical-solution.xml → skills/research-technical-solution/workflow.xml} +3 -5
  104. package/skills/review-story/SKILL.md +100 -0
  105. package/skills/review-story/script.js +257 -0
  106. package/skills/review-story/script.test.js +169 -0
  107. package/skills/review-story/story-template.xml +451 -0
  108. package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml} +279 -281
  109. package/skills/update/SKILL.md +53 -0
  110. package/{agile-context-engineering/workflows/update.xml → skills/update/workflow.xml} +12 -13
  111. package/agile-context-engineering/src/ace-tools.js +0 -2881
  112. package/agile-context-engineering/src/ace-tools.test.js +0 -1089
  113. package/agile-context-engineering/templates/_command.md +0 -54
  114. package/agile-context-engineering/templates/_workflow.xml +0 -17
  115. package/agile-context-engineering/templates/config.json +0 -0
  116. package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
  117. package/commands/ace/execute-story.md +0 -138
  118. package/commands/ace/help.md +0 -93
  119. package/commands/ace/init-coding-standards.md +0 -83
  120. package/commands/ace/map-story.md +0 -165
  121. package/commands/ace/map-subsystem.md +0 -140
  122. package/commands/ace/map-system.md +0 -92
  123. package/commands/ace/map-walkthrough.md +0 -127
  124. package/commands/ace/plan-backlog.md +0 -83
  125. package/commands/ace/plan-feature.md +0 -89
  126. package/commands/ace/plan-product-vision.md +0 -81
  127. package/commands/ace/plan-story.md +0 -159
  128. package/commands/ace/research-external-solution.md +0 -138
  129. package/commands/ace/research-integration-solution.md +0 -135
  130. package/commands/ace/research-story-wiki.md +0 -116
  131. package/commands/ace/research-technical-solution.md +0 -147
  132. package/commands/ace/review-story.md +0 -109
  133. package/commands/ace/update.md +0 -56
  134. /package/{agile-context-engineering/templates/product/story.xml → skills/execute-story/story-template.xml} +0 -0
  135. /package/{agile-context-engineering/templates/wiki/coding-standards.xml → skills/init-coding-standards/coding-standards-template.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-structure.xml +0 -0
  140. /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/testing-framework.xml +0 -0
  141. /package/{agile-context-engineering/workflows/map-walkthrough.xml → skills/map-walkthrough/workflow.xml} +0 -0
  142. /package/{agile-context-engineering/templates/product/feature.xml → skills/plan-feature/feature-template.xml} +0 -0
  143. /package/{agile-context-engineering/templates/product/product-vision.xml → skills/plan-product-vision/product-vision-template.xml} +0 -0
  144. /package/{agile-context-engineering/templates/product/external-solution.xml → skills/research-external-solution/external-solution-template.xml} +0 -0
  145. /package/{agile-context-engineering/templates/product/story-integration-solution.xml → skills/research-integration-solution/integration-solution-template.xml} +0 -0
  146. /package/{agile-context-engineering/templates/product/story-wiki.xml → skills/research-story-wiki/story-wiki-template.xml} +0 -0
  147. /package/{agile-context-engineering/templates/product/story-technical-solution.xml → skills/research-technical-solution/technical-solution-template.xml} +0 -0
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: map-pattern
3
+ description: Create or update a pattern document in .docs/wiki/subsystems/[name]/patterns/ — reusable implementation patterns
4
+ argument-hint: "text='Template Method pattern used by all drawing paths' 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 Pattern
21
+
22
+ Create or update a pattern document describing reusable implementation patterns.
23
+
24
+ ## When to Use
25
+
26
+ - When a reusable structural pattern needs documentation
27
+ - After identifying a recurring approach used by 2+ implementations
28
+ - When agents need to understand HOW to implement something following an established pattern
29
+ - A structural approach appears across 2+ implementations
30
+ - New code must follow the same pattern for consistency
31
+ - An agent needs to know the abstract structure + concrete steps to add a new implementation
32
+
33
+ ## Input
34
+
35
+ ### Required
36
+
37
+ - **`text`** (text) — Natural language description of the pattern to document. Describes WHAT the pattern is and WHERE it appears in the codebase. E.g.: "Template Method pattern used by all drawing paths", "Repository pattern for all database access", "CQRS command/query handler pattern". If not provided, pause and ask the user.
38
+
39
+ - **`subsystem`** (path | text) — Subsystem where this pattern doc belongs. Wiki location: `.docs/wiki/subsystems/[subsystem]/patterns/`. 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 context about a story that introduced or modified this pattern. When not provided, the agent discovers the pattern from codebase analysis.
44
+
45
+ - **`commits`** (number | comma-separated commit SHAs) — Specifies which commits to analyze for understanding pattern changes. 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 to find all implementations and extract the pattern structure.
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
+ - **Pattern template**: Read [pattern.xml](pattern.xml) — output format for the pattern 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 pattern document that describes a reusable structural approach — structure diagram (mermaid classDiagram), how it works step-by-step, how to apply it for new implementations, current implementations list, and gotchas. The document an AI agent reads to ensure new code follows established conventions.
63
+
64
+ ## Artifacts
65
+
66
+ ```
67
+ .docs/wiki/subsystems/[subsystem-name]/patterns/[pattern-name].md
68
+ ```
69
+
70
+ ## Example Usage
71
+
72
+ ```
73
+ # Basic pattern
74
+ /ace:map-pattern text='Template Method pattern used by all drawing paths' subsystem='qarc-charts-v2'
75
+
76
+ # With recent commits
77
+ /ace:map-pattern text='Repository pattern for all database access' subsystem='api' commits=3
78
+
79
+ # With story context
80
+ /ace:map-pattern text='CQRS command/query handler pattern' subsystem='api' story-context='.ace/artifacts/product/e1-api/f2-cqrs/s1-setup/s1-setup.md'
81
+ ```
82
+
83
+ ## Next Steps
84
+
85
+ - `/clear` first for a fresh context window
86
+ - `/ace:map-pattern` — create another pattern document
87
+ - `/ace:map-guide` — create a guide that uses this pattern
88
+ - `/ace:map-sys-doc` — document a system that uses this pattern
89
+ - Review file at `.docs/wiki/subsystems/[subsystem-name]/patterns/`
@@ -1,159 +1,159 @@
1
- <pattern>
2
- <purpose>
3
- Template for `.docs/wiki/subsystems/[subsystem-name]/patterns/<pattern-name>.md` — a reusable
4
- implementation pattern within a codebase subsystem. Answers "HOW do I implement something
5
- that follows this pattern?"
6
-
7
- Each pattern doc describes a structural template that appears across multiple implementations.
8
- It is the document an AI agent reads to ensure new code follows established conventions.
9
-
10
- A "pattern" is a recurring structural approach used by 2+ implementations:
11
- e.g., Template Method (Path base class with 5 factory methods), Repository Pattern,
12
- Mapper Pattern, Factory/Registry, CQRS Command/Query handlers.
13
-
14
- Complements:
15
- - systems/ docs (WHAT exists — the domain subsystems that USE these patterns)
16
- - guides/ docs (step-by-step recipes that COMBINE multiple patterns into a task)
17
- - cross-cutting/ docs (shared infrastructure that patterns depend on)
18
- </purpose>
19
-
20
- <template>
21
- <the-pattern>
22
- # [Pattern Name]
23
-
24
- ## The Pattern
25
- What it is, when to use it. One paragraph max.
26
- </the-pattern>
27
-
28
- <structure>
29
- ## Structure
30
-
31
- Class/interface diagram showing the pattern's structure.
32
-
33
- ```mermaid
34
- classDiagram
35
- class IContract {
36
- &lt;&lt;interface&gt;&gt;
37
- +method() ReturnType
38
- }
39
- class AbstractBase {
40
- &lt;&lt;abstract&gt;&gt;
41
- +templateMethod()
42
- #factoryMethod()* ReturnType
43
- }
44
- IContract &lt;|.. AbstractBase
45
- AbstractBase &lt;|-- ConcreteA
46
- AbstractBase &lt;|-- ConcreteB
47
- ```
48
- </structure>
49
-
50
- <how-it-works>
51
- ## How It Works
52
-
53
- Step-by-step of the pattern mechanics. Reference actual code locations.
54
-
55
- 1. **Step**: Description at `file:ClassName.method`
56
- 2. **Step**: Description at `file:ClassName.method`
57
- 3. **Step**: Description at `file:ClassName.method`
58
- </how-it-works>
59
-
60
- <how-to-apply>
61
- ## How to Apply
62
-
63
- When implementing something new that uses this pattern:
64
-
65
- 1. [First step] (reference: `file:ClassName.method`)
66
- 2. [Second step]
67
- 3. [Third step]
68
- ...
69
- </how-to-apply>
70
-
71
- <current-implementations>
72
- ## Current Implementations
73
-
74
- Where this pattern is currently used:
75
- - `TrendLine` at `src/infrastructure/primitives/trend-line/TrendLine.ts`
76
- - `ParallelChannel` at `src/infrastructure/primitives/parallel-channel/ParallelChannel.ts`
77
- - ...
78
- </current-implementations>
79
-
80
- <gotchas>
81
- ## Gotchas
82
-
83
- Things that commonly go wrong or are easy to forget when applying this pattern.
84
- - [Common mistake 1]
85
- - [Common mistake 2]
86
- </gotchas>
87
- </template>
88
-
89
- <guidelines>
90
-
91
- **Documentation Style:**
92
- - EXTREMELY SUCCINCT — every word must add value
93
- - NO FLUFF — direct, actionable information only
94
- - Bullet points over paragraphs
95
- - Code references as `file-path:ClassName.methodName` (not line numbers)
96
- - Inline snippets ONLY for interface contracts and pattern structure definitions
97
- - **ALL visual representations of architecture, dependencies, flows, or relationships MUST be ```mermaid fenced code blocks (use `classDiagram` for structure). NO ASCII arrows (->), NO dependency trees, NO PlantUML. Only mermaid. The ONLY ASCII exception is file trees.**
98
-
99
- **The Pattern:**
100
- - ONE paragraph. Name the GoF/industry pattern if applicable, then explain how it
101
- manifests in THIS codebase. Not a textbook definition — the codebase-specific version.
102
-
103
- **Structure:**
104
- - Mermaid classDiagram showing the abstract/interface hierarchy.
105
- - Show the pattern skeleton only — not every concrete implementation.
106
- - Include key method signatures that define the contract.
107
-
108
- **How It Works:**
109
- - Numbered steps tracing the pattern's execution flow.
110
- - Every step references actual code with `file:ClassName.method`.
111
- - Focus on the mechanics an agent needs to understand to add a new implementation.
112
-
113
- **How to Apply:**
114
- - The MOST ACTIONABLE section. An agent follows these steps to create a new instance.
115
- - Reference existing implementations as "copy from" targets.
116
- - Include which files to create, which registrations to add, which factories to update.
117
-
118
- **Current Implementations:**
119
- - Complete list of all known implementations with file paths.
120
- - Agent uses this as a reference gallery — "pick the closest one and copy its structure."
121
- - Update when new implementations are added.
122
-
123
- **Gotchas:**
124
- - Timing issues, naming conventions, registration requirements, common mistakes.
125
- - Anything an agent would get wrong on first attempt without being told.
126
-
127
- **What does NOT belong here:**
128
- - System-specific domain logic (that's in systems/ docs)
129
- - Step-by-step task recipes that combine multiple patterns (that's in guides/)
130
- - Cross-cutting infrastructure details (that's in cross-cutting/)
131
- - Story numbers, sprint context, revision history
132
- - Testing instructions, performance benchmarks
133
-
134
- </guidelines>
135
-
136
- <evolution>
137
-
138
- This is a LIVING document — updated when the pattern itself evolves.
139
-
140
- **Update triggers:**
141
- - New implementation added (update Current Implementations list)
142
- - Pattern structure changed (new factory method, new interface method)
143
- - How to Apply steps changed (new registration requirement, new file to create)
144
- - New gotcha discovered during implementation
145
-
146
- **NOT an update trigger:**
147
- - New feature that follows the existing pattern without changing it
148
- - Bug fix in one implementation
149
- - Internal refactoring that doesn't change the pattern contract
150
-
151
- **Update rules:**
152
- - ADD new implementations to the list
153
- - UPDATE How to Apply if the recipe changed
154
- - ADD new gotchas as they are discovered
155
- - Do NOT remove historical gotchas unless they are no longer relevant
156
-
157
- </evolution>
158
-
159
- </pattern>
1
+ <pattern>
2
+ <purpose>
3
+ Template for `.docs/wiki/subsystems/[subsystem-name]/patterns/<pattern-name>.md` — a reusable
4
+ implementation pattern within a codebase subsystem. Answers "HOW do I implement something
5
+ that follows this pattern?"
6
+
7
+ Each pattern doc describes a structural template that appears across multiple implementations.
8
+ It is the document an AI agent reads to ensure new code follows established conventions.
9
+
10
+ A "pattern" is a recurring structural approach used by 2+ implementations:
11
+ e.g., Template Method (Path base class with 5 factory methods), Repository Pattern,
12
+ Mapper Pattern, Factory/Registry, CQRS Command/Query handlers.
13
+
14
+ Complements:
15
+ - systems/ docs (WHAT exists — the domain subsystems that USE these patterns)
16
+ - guides/ docs (step-by-step recipes that COMBINE multiple patterns into a task)
17
+ - cross-cutting/ docs (shared infrastructure that patterns depend on)
18
+ </purpose>
19
+
20
+ <template>
21
+ <the-pattern>
22
+ # [Pattern Name]
23
+
24
+ ## The Pattern
25
+ What it is, when to use it. One paragraph max.
26
+ </the-pattern>
27
+
28
+ <structure>
29
+ ## Structure
30
+
31
+ Class/interface diagram showing the pattern's structure.
32
+
33
+ ```mermaid
34
+ classDiagram
35
+ class IContract {
36
+ &lt;&lt;interface&gt;&gt;
37
+ +method() ReturnType
38
+ }
39
+ class AbstractBase {
40
+ &lt;&lt;abstract&gt;&gt;
41
+ +templateMethod()
42
+ #factoryMethod()* ReturnType
43
+ }
44
+ IContract &lt;|.. AbstractBase
45
+ AbstractBase &lt;|-- ConcreteA
46
+ AbstractBase &lt;|-- ConcreteB
47
+ ```
48
+ </structure>
49
+
50
+ <how-it-works>
51
+ ## How It Works
52
+
53
+ Step-by-step of the pattern mechanics. Reference actual code locations.
54
+
55
+ 1. **Step**: Description at `file:ClassName.method`
56
+ 2. **Step**: Description at `file:ClassName.method`
57
+ 3. **Step**: Description at `file:ClassName.method`
58
+ </how-it-works>
59
+
60
+ <how-to-apply>
61
+ ## How to Apply
62
+
63
+ When implementing something new that uses this pattern:
64
+
65
+ 1. [First step] (reference: `file:ClassName.method`)
66
+ 2. [Second step]
67
+ 3. [Third step]
68
+ ...
69
+ </how-to-apply>
70
+
71
+ <current-implementations>
72
+ ## Current Implementations
73
+
74
+ Where this pattern is currently used:
75
+ - `TrendLine` at `src/infrastructure/primitives/trend-line/TrendLine.ts`
76
+ - `ParallelChannel` at `src/infrastructure/primitives/parallel-channel/ParallelChannel.ts`
77
+ - ...
78
+ </current-implementations>
79
+
80
+ <gotchas>
81
+ ## Gotchas
82
+
83
+ Things that commonly go wrong or are easy to forget when applying this pattern.
84
+ - [Common mistake 1]
85
+ - [Common mistake 2]
86
+ </gotchas>
87
+ </template>
88
+
89
+ <guidelines>
90
+
91
+ **Documentation Style:**
92
+ - EXTREMELY SUCCINCT — every word must add value
93
+ - NO FLUFF — direct, actionable information only
94
+ - Bullet points over paragraphs
95
+ - Code references as `file-path:ClassName.methodName` (not line numbers)
96
+ - Inline snippets ONLY for interface contracts and pattern structure definitions
97
+ - **ALL visual representations of architecture, dependencies, flows, or relationships MUST be ```mermaid fenced code blocks (use `classDiagram` for structure). NO ASCII arrows (->), NO dependency trees, NO PlantUML. Only mermaid. The ONLY ASCII exception is file trees.**
98
+
99
+ **The Pattern:**
100
+ - ONE paragraph. Name the GoF/industry pattern if applicable, then explain how it
101
+ manifests in THIS codebase. Not a textbook definition — the codebase-specific version.
102
+
103
+ **Structure:**
104
+ - Mermaid classDiagram showing the abstract/interface hierarchy.
105
+ - Show the pattern skeleton only — not every concrete implementation.
106
+ - Include key method signatures that define the contract.
107
+
108
+ **How It Works:**
109
+ - Numbered steps tracing the pattern's execution flow.
110
+ - Every step references actual code with `file:ClassName.method`.
111
+ - Focus on the mechanics an agent needs to understand to add a new implementation.
112
+
113
+ **How to Apply:**
114
+ - The MOST ACTIONABLE section. An agent follows these steps to create a new instance.
115
+ - Reference existing implementations as "copy from" targets.
116
+ - Include which files to create, which registrations to add, which factories to update.
117
+
118
+ **Current Implementations:**
119
+ - Complete list of all known implementations with file paths.
120
+ - Agent uses this as a reference gallery — "pick the closest one and copy its structure."
121
+ - Update when new implementations are added.
122
+
123
+ **Gotchas:**
124
+ - Timing issues, naming conventions, registration requirements, common mistakes.
125
+ - Anything an agent would get wrong on first attempt without being told.
126
+
127
+ **What does NOT belong here:**
128
+ - System-specific domain logic (that's in systems/ docs)
129
+ - Step-by-step task recipes that combine multiple patterns (that's in guides/)
130
+ - Cross-cutting infrastructure details (that's in cross-cutting/)
131
+ - Story numbers, sprint context, revision history
132
+ - Testing instructions, performance benchmarks
133
+
134
+ </guidelines>
135
+
136
+ <evolution>
137
+
138
+ This is a LIVING document — updated when the pattern itself evolves.
139
+
140
+ **Update triggers:**
141
+ - New implementation added (update Current Implementations list)
142
+ - Pattern structure changed (new factory method, new interface method)
143
+ - How to Apply steps changed (new registration requirement, new file to create)
144
+ - New gotcha discovered during implementation
145
+
146
+ **NOT an update trigger:**
147
+ - New feature that follows the existing pattern without changing it
148
+ - Bug fix in one implementation
149
+ - Internal refactoring that doesn't change the pattern contract
150
+
151
+ **Update rules:**
152
+ - ADD new implementations to the list
153
+ - UPDATE How to Apply if the recipe changed
154
+ - ADD new gotchas as they are discovered
155
+ - Do NOT remove historical gotchas unless they are no longer relevant
156
+
157
+ </evolution>
158
+
159
+ </pattern>