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.
- package/.claude-plugin/plugin.json +10 -0
- package/CHANGELOG.md +82 -0
- package/README.md +27 -18
- package/agents/ace-product-owner.md +1 -1
- package/agents/ace-technical-application-architect.md +28 -0
- package/agents/ace-wiki-mapper.md +144 -29
- package/bin/install.js +67 -63
- package/hooks/ace-check-update.js +17 -9
- package/package.json +7 -5
- package/shared/lib/ace-core.js +308 -0
- package/shared/lib/ace-core.test.js +308 -0
- package/shared/lib/ace-github.js +753 -0
- package/shared/lib/ace-story.js +400 -0
- package/shared/lib/ace-story.test.js +250 -0
- package/{agile-context-engineering → shared}/utils/ui-formatting.md +299 -299
- package/skills/execute-story/SKILL.md +110 -0
- package/skills/execute-story/script.js +305 -0
- package/skills/execute-story/script.test.js +261 -0
- package/skills/execute-story/walkthrough-template.xml +255 -0
- package/{agile-context-engineering/workflows/execute-story.xml → skills/execute-story/workflow.xml} +83 -9
- package/skills/help/SKILL.md +69 -0
- package/skills/help/script.js +318 -0
- package/skills/help/script.test.js +183 -0
- package/{agile-context-engineering/workflows/help.xml → skills/help/workflow.xml} +8 -8
- package/skills/init-coding-standards/SKILL.md +72 -0
- package/{agile-context-engineering/templates/wiki/coding-standards.xml → skills/init-coding-standards/coding-standards-template.xml} +38 -0
- package/skills/init-coding-standards/script.js +59 -0
- package/skills/init-coding-standards/script.test.js +70 -0
- package/{agile-context-engineering/workflows/init-coding-standards.xml → skills/init-coding-standards/workflow.xml} +4 -9
- package/skills/map-cross-cutting/SKILL.md +89 -0
- package/skills/map-cross-cutting/workflow.xml +330 -0
- package/skills/map-guide/SKILL.md +89 -0
- package/skills/map-guide/workflow.xml +320 -0
- package/skills/map-pattern/SKILL.md +89 -0
- package/skills/map-pattern/workflow.xml +331 -0
- package/skills/map-story/SKILL.md +127 -0
- package/skills/map-story/templates/guide.xml +137 -0
- package/skills/map-story/templates/pattern.xml +159 -0
- package/skills/map-story/templates/system-cross-cutting.xml +197 -0
- package/skills/map-story/templates/walkthrough.xml +255 -0
- package/{agile-context-engineering/workflows/map-story.xml → skills/map-story/workflow.xml} +258 -9
- package/skills/map-subsystem/SKILL.md +111 -0
- package/skills/map-subsystem/script.js +60 -0
- package/skills/map-subsystem/script.test.js +68 -0
- package/skills/map-subsystem/templates/decizions.xml +115 -0
- package/skills/map-subsystem/templates/guide.xml +137 -0
- package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/module-discovery.xml +3 -3
- package/skills/map-subsystem/templates/pattern.xml +159 -0
- package/skills/map-subsystem/templates/system-cross-cutting.xml +197 -0
- package/skills/map-subsystem/templates/system.xml +381 -0
- package/skills/map-subsystem/templates/walkthrough.xml +255 -0
- package/{agile-context-engineering/workflows/map-subsystem.xml → skills/map-subsystem/workflow.xml} +17 -21
- package/skills/map-sys-doc/SKILL.md +90 -0
- package/skills/map-sys-doc/system.xml +381 -0
- package/skills/map-sys-doc/workflow.xml +336 -0
- package/skills/map-system/SKILL.md +85 -0
- package/skills/map-system/script.js +84 -0
- package/skills/map-system/script.test.js +73 -0
- package/skills/map-system/templates/wiki-readme.xml +297 -0
- package/{agile-context-engineering/workflows/map-system.xml → skills/map-system/workflow.xml} +11 -16
- package/skills/map-walkthrough/SKILL.md +92 -0
- package/skills/map-walkthrough/walkthrough.xml +255 -0
- package/skills/map-walkthrough/workflow.xml +457 -0
- package/skills/plan-backlog/SKILL.md +75 -0
- package/skills/plan-backlog/script.js +136 -0
- package/skills/plan-backlog/script.test.js +83 -0
- package/{agile-context-engineering/workflows/plan-backlog.xml → skills/plan-backlog/workflow.xml} +13 -21
- package/skills/plan-feature/SKILL.md +76 -0
- package/skills/plan-feature/script.js +148 -0
- package/skills/plan-feature/script.test.js +80 -0
- package/{agile-context-engineering/workflows/plan-feature.xml → skills/plan-feature/workflow.xml} +21 -29
- package/skills/plan-product-vision/SKILL.md +75 -0
- package/skills/plan-product-vision/script.js +60 -0
- package/skills/plan-product-vision/script.test.js +69 -0
- package/{agile-context-engineering/workflows/plan-product-vision.xml → skills/plan-product-vision/workflow.xml} +4 -9
- package/skills/plan-story/SKILL.md +116 -0
- package/skills/plan-story/script.js +326 -0
- package/skills/plan-story/script.test.js +240 -0
- package/skills/plan-story/story-template.xml +451 -0
- package/{agile-context-engineering/workflows/plan-story.xml → skills/plan-story/workflow.xml} +1285 -909
- package/skills/research-external-solution/SKILL.md +107 -0
- package/skills/research-external-solution/script.js +238 -0
- package/skills/research-external-solution/script.test.js +134 -0
- package/{agile-context-engineering/workflows/research-external-solution.xml → skills/research-external-solution/workflow.xml} +4 -6
- package/skills/research-integration-solution/SKILL.md +98 -0
- package/{agile-context-engineering/templates/product/story-integration-solution.xml → skills/research-integration-solution/integration-solution-template.xml} +1 -0
- package/skills/research-integration-solution/script.js +231 -0
- package/skills/research-integration-solution/script.test.js +134 -0
- package/{agile-context-engineering/workflows/research-integration-solution.xml → skills/research-integration-solution/workflow.xml} +4 -5
- package/skills/research-story-wiki/SKILL.md +92 -0
- package/skills/research-story-wiki/script.js +231 -0
- package/skills/research-story-wiki/script.test.js +138 -0
- package/{agile-context-engineering/templates/product/story-wiki.xml → skills/research-story-wiki/story-wiki-template.xml} +4 -0
- package/{agile-context-engineering/workflows/research-story-wiki.xml → skills/research-story-wiki/workflow.xml} +5 -6
- package/skills/research-technical-solution/SKILL.md +103 -0
- package/skills/research-technical-solution/script.js +231 -0
- package/skills/research-technical-solution/script.test.js +134 -0
- package/{agile-context-engineering/workflows/research-technical-solution.xml → skills/research-technical-solution/workflow.xml} +4 -5
- package/skills/review-story/SKILL.md +100 -0
- package/skills/review-story/script.js +257 -0
- package/skills/review-story/script.test.js +169 -0
- package/skills/review-story/story-template.xml +451 -0
- package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml} +1 -3
- package/skills/update/SKILL.md +53 -0
- package/{agile-context-engineering/workflows/update.xml → skills/update/workflow.xml} +237 -207
- package/agile-context-engineering/src/ace-tools.js +0 -2881
- package/agile-context-engineering/src/ace-tools.test.js +0 -1089
- package/agile-context-engineering/templates/_command.md +0 -54
- package/agile-context-engineering/templates/_workflow.xml +0 -17
- package/agile-context-engineering/templates/config.json +0 -0
- package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
- package/agile-context-engineering/templates/wiki/wiki-readme.xml +0 -276
- package/commands/ace/execute-story.md +0 -137
- package/commands/ace/help.md +0 -93
- package/commands/ace/init-coding-standards.md +0 -83
- package/commands/ace/map-story.md +0 -156
- package/commands/ace/map-subsystem.md +0 -138
- package/commands/ace/map-system.md +0 -92
- package/commands/ace/plan-backlog.md +0 -83
- package/commands/ace/plan-feature.md +0 -89
- package/commands/ace/plan-product-vision.md +0 -81
- package/commands/ace/plan-story.md +0 -145
- package/commands/ace/research-external-solution.md +0 -138
- package/commands/ace/research-integration-solution.md +0 -135
- package/commands/ace/research-story-wiki.md +0 -116
- package/commands/ace/research-technical-solution.md +0 -147
- package/commands/ace/review-story.md +0 -109
- package/commands/ace/update.md +0 -54
- /package/{agile-context-engineering → shared}/utils/questioning.xml +0 -0
- /package/{agile-context-engineering/templates/product/story.xml → skills/execute-story/story-template.xml} +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-cross-cutting}/system-cross-cutting.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-guide}/guide.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-pattern}/pattern.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/decizions.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/system.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-story/templates}/tech-debt-index.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-architecture.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-subsystem/templates}/subsystem-structure.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-architecture.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/system-structure.xml +0 -0
- /package/{agile-context-engineering/templates/wiki → skills/map-system/templates}/testing-framework.xml +0 -0
- /package/{agile-context-engineering/templates/product/product-backlog.xml → skills/plan-backlog/product-backlog-template.xml} +0 -0
- /package/{agile-context-engineering/templates/product/feature.xml → skills/plan-feature/feature-template.xml} +0 -0
- /package/{agile-context-engineering/templates/product/product-vision.xml → skills/plan-product-vision/product-vision-template.xml} +0 -0
- /package/{agile-context-engineering/templates/product/external-solution.xml → skills/research-external-solution/external-solution-template.xml} +0 -0
- /package/{agile-context-engineering/templates/product/story-technical-solution.xml → skills/research-technical-solution/technical-solution-template.xml} +0 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<decisions>
|
|
2
|
+
<purpose>
|
|
3
|
+
Template for `.docs/wiki/subsystems/[subsystem-name]/decisions/<decision-name>.md` — an
|
|
4
|
+
Architecture Decision Record (ADR) capturing WHY a significant choice was made.
|
|
5
|
+
Answers "Why did we choose X over Y?"
|
|
6
|
+
|
|
7
|
+
Each decision doc captures one significant technical decision with its context and
|
|
8
|
+
trade-offs. It is the document an AI agent reads to understand WHY things are built
|
|
9
|
+
a certain way, preventing it from making the wrong choice.
|
|
10
|
+
|
|
11
|
+
Create an ADR ONLY when a significant "why" decision was made:
|
|
12
|
+
- Choosing one approach over another with meaningful trade-offs
|
|
13
|
+
- Deviating from an established pattern for a specific reason
|
|
14
|
+
- Adopting a new technology, pattern, or architectural approach
|
|
15
|
+
- Rejecting a seemingly obvious solution for non-obvious reasons
|
|
16
|
+
|
|
17
|
+
Do NOT create ADRs for trivial or obvious decisions.
|
|
18
|
+
|
|
19
|
+
Complements:
|
|
20
|
+
- systems/ docs (WHAT exists — systems reference decisions that shaped them)
|
|
21
|
+
- patterns/ docs (HOW things work — patterns reference decisions that defined them)
|
|
22
|
+
- cross-cutting/ docs (shared infrastructure shaped by architectural decisions)
|
|
23
|
+
</purpose>
|
|
24
|
+
|
|
25
|
+
<template>
|
|
26
|
+
<decision-record>
|
|
27
|
+
# ADR-NNN: [Decision Title]
|
|
28
|
+
|
|
29
|
+
**Status**: Accepted | Superseded by [ADR-MMM](./ADR-MMM-slug.md)
|
|
30
|
+
**Date**: YYYY-MM-DD
|
|
31
|
+
**Story**: [story reference, if applicable]
|
|
32
|
+
|
|
33
|
+
## Context
|
|
34
|
+
What situation prompted this decision. 2-3 sentences max.
|
|
35
|
+
|
|
36
|
+
## Decision
|
|
37
|
+
What was decided. 2-3 sentences max.
|
|
38
|
+
|
|
39
|
+
## Alternatives Considered
|
|
40
|
+
- **[Alternative A]**: [Why rejected — 1 sentence]
|
|
41
|
+
- **[Alternative B]**: [Why rejected — 1 sentence]
|
|
42
|
+
|
|
43
|
+
## Consequences
|
|
44
|
+
- Pro: [positive outcome]
|
|
45
|
+
- Pro: [positive outcome]
|
|
46
|
+
- Con: [trade-off accepted]
|
|
47
|
+
</decision-record>
|
|
48
|
+
</template>
|
|
49
|
+
|
|
50
|
+
<guidelines>
|
|
51
|
+
|
|
52
|
+
**Documentation Style:**
|
|
53
|
+
- EXTREMELY SUCCINCT — each ADR should be under 30 lines
|
|
54
|
+
- NO FLUFF — every sentence must convey a decision, reason, or consequence
|
|
55
|
+
- Bullet points for alternatives and consequences
|
|
56
|
+
- Code references as `file-path:ClassName` only when the decision is about specific code
|
|
57
|
+
|
|
58
|
+
**ADR Numbering:**
|
|
59
|
+
- Sequential within the subsystem: ADR-001, ADR-002, etc.
|
|
60
|
+
- Filename format: `ADR-NNN-kebab-case-slug.md`
|
|
61
|
+
- To find the next number, read existing ADRs in the decisions/ directory.
|
|
62
|
+
|
|
63
|
+
**Status:**
|
|
64
|
+
- `Accepted` — the decision is in effect
|
|
65
|
+
- `Superseded by ADR-MMM` — replaced by a later decision (link to it)
|
|
66
|
+
- ADRs are IMMUTABLE — never edit an accepted ADR. Create a new one that supersedes it.
|
|
67
|
+
|
|
68
|
+
**Context:**
|
|
69
|
+
- 2-3 sentences. What problem or situation forced a choice.
|
|
70
|
+
- Reference the system or pattern this decision affects.
|
|
71
|
+
|
|
72
|
+
**Decision:**
|
|
73
|
+
- 2-3 sentences. What was chosen and at what scope.
|
|
74
|
+
- Be specific — "We use X for Y" not "We decided to improve things."
|
|
75
|
+
|
|
76
|
+
**Alternatives Considered:**
|
|
77
|
+
- List each rejected alternative with ONE sentence explaining why.
|
|
78
|
+
- If there were no meaningful alternatives, omit this section.
|
|
79
|
+
|
|
80
|
+
**Consequences:**
|
|
81
|
+
- Bullet list of pros and cons.
|
|
82
|
+
- Be honest about trade-offs — future agents need to know the downsides.
|
|
83
|
+
- Include migration/compatibility consequences if applicable.
|
|
84
|
+
|
|
85
|
+
**What does NOT belong here:**
|
|
86
|
+
- Implementation details (that's in systems/ and patterns/ docs)
|
|
87
|
+
- Step-by-step instructions (that's in guides/)
|
|
88
|
+
- Full analysis or research documents (those are in .ace/artifacts/)
|
|
89
|
+
- Revision history or meeting notes
|
|
90
|
+
|
|
91
|
+
</guidelines>
|
|
92
|
+
|
|
93
|
+
<evolution>
|
|
94
|
+
|
|
95
|
+
ADRs are IMMUTABLE once accepted. They are historical records.
|
|
96
|
+
|
|
97
|
+
**When to create a new ADR:**
|
|
98
|
+
- A significant architectural or pattern choice is made during a story
|
|
99
|
+
- An existing decision is reversed or significantly modified (supersede the old one)
|
|
100
|
+
- A new technology, pattern, or approach is adopted
|
|
101
|
+
|
|
102
|
+
**When NOT to create an ADR:**
|
|
103
|
+
- Routine implementation following existing patterns
|
|
104
|
+
- Bug fixes or refactoring that don't change architectural direction
|
|
105
|
+
- Trivial decisions with no meaningful trade-offs
|
|
106
|
+
- Decisions already captured in an existing ADR
|
|
107
|
+
|
|
108
|
+
**Superseding:**
|
|
109
|
+
- Create the new ADR with its own number
|
|
110
|
+
- Update the old ADR's Status to: `Superseded by [ADR-MMM](./ADR-MMM-slug.md)`
|
|
111
|
+
- This is the ONLY edit allowed on an accepted ADR
|
|
112
|
+
|
|
113
|
+
</evolution>
|
|
114
|
+
|
|
115
|
+
</decisions>
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
<guide>
|
|
2
|
+
<purpose>
|
|
3
|
+
Template for `.docs/wiki/subsystems/[subsystem-name]/guides/<task-name>.md` — a step-by-step
|
|
4
|
+
recipe for a common implementation task. Answers "How do I add/create/implement X?"
|
|
5
|
+
|
|
6
|
+
Each guide combines knowledge from multiple systems, patterns, and cross-cutting concerns
|
|
7
|
+
into one actionable recipe. It is the document an AI agent follows when performing a
|
|
8
|
+
recurring task end-to-end.
|
|
9
|
+
|
|
10
|
+
A "guide" is a task recipe for something developers do repeatedly:
|
|
11
|
+
e.g., "How to Add a New Drawing Tool", "How to Add a New CRUD Endpoint",
|
|
12
|
+
"How to Add a New Indicator", "How to Add a New Repository".
|
|
13
|
+
|
|
14
|
+
Complements:
|
|
15
|
+
- patterns/ docs (the structural patterns that guides reference)
|
|
16
|
+
- systems/ docs (the domain systems where guide steps take place)
|
|
17
|
+
- cross-cutting/ docs (the registrations and setup that guides include as steps)
|
|
18
|
+
</purpose>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<title>
|
|
22
|
+
# How to [Task]
|
|
23
|
+
</title>
|
|
24
|
+
|
|
25
|
+
<prerequisites>
|
|
26
|
+
## Prerequisites
|
|
27
|
+
|
|
28
|
+
What you need to know or have in place before starting.
|
|
29
|
+
- Read: [Pattern Doc](../patterns/relevant-pattern.md) — understand the structural pattern
|
|
30
|
+
- Read: [System Doc](../systems/relevant-system.md) — understand the domain context
|
|
31
|
+
- Read: [Cross-Cutting Doc](../cross-cutting/relevant-concern.md) — understand registrations
|
|
32
|
+
</prerequisites>
|
|
33
|
+
|
|
34
|
+
<steps>
|
|
35
|
+
## Steps
|
|
36
|
+
|
|
37
|
+
### 1. [First Step]
|
|
38
|
+
|
|
39
|
+
What to do, where to do it, reference implementation to copy from.
|
|
40
|
+
- Create file: `[path]`
|
|
41
|
+
- Copy from: `file:ExistingImplementation` (closest reference)
|
|
42
|
+
- Key changes: [what to modify from the reference]
|
|
43
|
+
|
|
44
|
+
### 2. [Second Step]
|
|
45
|
+
|
|
46
|
+
...
|
|
47
|
+
|
|
48
|
+
### 3. [Third Step]
|
|
49
|
+
|
|
50
|
+
...
|
|
51
|
+
</steps>
|
|
52
|
+
|
|
53
|
+
<verification>
|
|
54
|
+
## Verification
|
|
55
|
+
|
|
56
|
+
How to verify the implementation works.
|
|
57
|
+
- [ ] [Check 1]: [What to verify and how]
|
|
58
|
+
- [ ] [Check 2]: [What to verify and how]
|
|
59
|
+
- [ ] [Check 3]: [What to verify and how]
|
|
60
|
+
</verification>
|
|
61
|
+
|
|
62
|
+
<common-mistakes>
|
|
63
|
+
## Common Mistakes
|
|
64
|
+
|
|
65
|
+
What people typically get wrong.
|
|
66
|
+
- [Mistake 1]: [Why it happens and how to avoid it]
|
|
67
|
+
- [Mistake 2]: [Why it happens and how to avoid it]
|
|
68
|
+
</common-mistakes>
|
|
69
|
+
</template>
|
|
70
|
+
|
|
71
|
+
<guidelines>
|
|
72
|
+
|
|
73
|
+
**Documentation Style:**
|
|
74
|
+
- EXTREMELY SUCCINCT — every word must add value
|
|
75
|
+
- NO FLUFF — direct, actionable information only
|
|
76
|
+
- Numbered steps — the agent follows these in order
|
|
77
|
+
- Code references as `file-path:ClassName.methodName` (not line numbers)
|
|
78
|
+
- Inline snippets ONLY for non-obvious configuration or registration code
|
|
79
|
+
- Every step must have a clear deliverable (a file created, a registration added, etc.)
|
|
80
|
+
|
|
81
|
+
**Prerequisites:**
|
|
82
|
+
- Link to the docs an agent should read BEFORE starting.
|
|
83
|
+
- Don't repeat content from those docs — just link.
|
|
84
|
+
- List any tools, dependencies, or environment requirements.
|
|
85
|
+
|
|
86
|
+
**Steps:**
|
|
87
|
+
- NUMBERED, ORDERED steps. An agent follows these sequentially.
|
|
88
|
+
- Each step has: WHAT to do, WHERE to do it, WHAT to copy from.
|
|
89
|
+
- Reference existing implementations as "copy from" targets — agents copy patterns, not invent.
|
|
90
|
+
- Include ALL steps: file creation, registration, configuration, wiring.
|
|
91
|
+
- Don't skip "obvious" steps — agents don't infer implicit requirements.
|
|
92
|
+
|
|
93
|
+
**Verification:**
|
|
94
|
+
- Checklist format. Agent runs through these after completing all steps.
|
|
95
|
+
- Include compilation check, runtime check, and behavioral check.
|
|
96
|
+
- Reference specific files or commands for verification.
|
|
97
|
+
|
|
98
|
+
**Common Mistakes:**
|
|
99
|
+
- Things agents (and developers) typically get wrong on first attempt.
|
|
100
|
+
- Each mistake should include WHY it happens and HOW to avoid it.
|
|
101
|
+
- Drawn from actual experience (gotchas from pattern and system docs).
|
|
102
|
+
|
|
103
|
+
**What does NOT belong here:**
|
|
104
|
+
- Detailed pattern explanations (link to patterns/ docs instead)
|
|
105
|
+
- System domain knowledge (link to systems/ docs instead)
|
|
106
|
+
- Cross-cutting mechanism details (link to cross-cutting/ docs instead)
|
|
107
|
+
- Story numbers, sprint context, revision history
|
|
108
|
+
- Testing strategy or test code (verification section covers basic checks only)
|
|
109
|
+
|
|
110
|
+
</guidelines>
|
|
111
|
+
|
|
112
|
+
<evolution>
|
|
113
|
+
|
|
114
|
+
This is a LIVING document — updated when the recipe changes.
|
|
115
|
+
|
|
116
|
+
**Update triggers:**
|
|
117
|
+
- New step required (new registration, new file to create)
|
|
118
|
+
- Step removed (registration no longer needed)
|
|
119
|
+
- Step order changed
|
|
120
|
+
- New common mistake discovered
|
|
121
|
+
- Reference implementation changed (new "copy from" target)
|
|
122
|
+
- Prerequisite docs added or removed
|
|
123
|
+
|
|
124
|
+
**NOT an update trigger:**
|
|
125
|
+
- New feature that follows the existing recipe without changes
|
|
126
|
+
- Bug fix in one implementation that followed the guide
|
|
127
|
+
- Internal refactoring that doesn't change the steps
|
|
128
|
+
|
|
129
|
+
**Update rules:**
|
|
130
|
+
- UPDATE steps when the recipe changes
|
|
131
|
+
- ADD new common mistakes as they are discovered
|
|
132
|
+
- UPDATE "copy from" references when better examples exist
|
|
133
|
+
- Keep the guide current — an agent should be able to follow it TODAY
|
|
134
|
+
|
|
135
|
+
</evolution>
|
|
136
|
+
|
|
137
|
+
</guide>
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
Each module is a coherent group of related files that together represent one concern.
|
|
10
10
|
map-story receives the files and autonomously decides what documentation to produce —
|
|
11
|
-
it may create systems/ docs, patterns/ docs, cross-cutting/ docs, guides/ docs,
|
|
12
|
-
decisions/ docs, all from a single call. Discovery does NOT pre-categorize modules
|
|
11
|
+
it may create systems/ docs, patterns/ docs, cross-cutting/ docs, guides/ docs,
|
|
12
|
+
walkthroughs/ docs, and decisions/ docs, all from a single call. Discovery does NOT pre-categorize modules
|
|
13
13
|
by document type.
|
|
14
14
|
|
|
15
15
|
Files CAN appear in multiple modules. A domain model shared by two systems legitimately
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Each row is one coherent group of related files. map-story receives these files
|
|
25
25
|
and autonomously decides what docs to create or update (systems/, patterns/,
|
|
26
|
-
cross-cutting/, guides/, decisions/).
|
|
26
|
+
cross-cutting/, guides/, walkthroughs/, decisions/).
|
|
27
27
|
|
|
28
28
|
| # | Module Name | Files | Relevant Docs |
|
|
29
29
|
|---|-------------|-------|---------------|
|
|
@@ -0,0 +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
|
+
<<interface>>
|
|
37
|
+
+method() ReturnType
|
|
38
|
+
}
|
|
39
|
+
class AbstractBase {
|
|
40
|
+
<<abstract>>
|
|
41
|
+
+templateMethod()
|
|
42
|
+
#factoryMethod()* ReturnType
|
|
43
|
+
}
|
|
44
|
+
IContract <|.. AbstractBase
|
|
45
|
+
AbstractBase <|-- ConcreteA
|
|
46
|
+
AbstractBase <|-- 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>
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
<system-cross-cutting>
|
|
2
|
+
<purpose>
|
|
3
|
+
Template for `.docs/wiki/subsystems/[subsystem-name]/cross-cutting/<concern-name>.md` — a
|
|
4
|
+
concern that spans multiple systems within a codebase subsystem. Answers "How does this
|
|
5
|
+
shared infrastructure/concern work, and how do I plug into it?"
|
|
6
|
+
|
|
7
|
+
Each cross-cutting doc describes shared infrastructure or mechanisms that multiple domain
|
|
8
|
+
systems depend on. It is the document an AI agent reads to understand how to register,
|
|
9
|
+
configure, or interact with shared concerns.
|
|
10
|
+
|
|
11
|
+
Examples of cross-cutting concerns:
|
|
12
|
+
- Dependency injection and container registration
|
|
13
|
+
- Factory/registry registration patterns
|
|
14
|
+
- Event systems, invalidation, pub/sub
|
|
15
|
+
- Serialization/deserialization
|
|
16
|
+
- Error handling and logging infrastructure
|
|
17
|
+
- Authentication/authorization middleware
|
|
18
|
+
- Cache/invalidation infrastructure
|
|
19
|
+
- Shared abstract base classes
|
|
20
|
+
|
|
21
|
+
Complements:
|
|
22
|
+
- systems/ docs (domain systems that USE these cross-cutting concerns)
|
|
23
|
+
- patterns/ docs (reusable structural patterns, not shared infrastructure)
|
|
24
|
+
- guides/ docs (task recipes that reference cross-cutting setup steps)
|
|
25
|
+
</purpose>
|
|
26
|
+
|
|
27
|
+
<template>
|
|
28
|
+
<overview>
|
|
29
|
+
# [Cross-Cutting Concern]
|
|
30
|
+
|
|
31
|
+
## Overview
|
|
32
|
+
What this concern addresses, why it exists. One paragraph.
|
|
33
|
+
</overview>
|
|
34
|
+
|
|
35
|
+
<how-it-works>
|
|
36
|
+
## How It Works
|
|
37
|
+
|
|
38
|
+
The pattern/mechanism used. Reference actual code locations.
|
|
39
|
+
|
|
40
|
+
1. **Step**: Description at `file:ClassName.method`
|
|
41
|
+
2. **Step**: Description at `file:ClassName.method`
|
|
42
|
+
3. **Step**: Description at `file:ClassName.method`
|
|
43
|
+
</how-it-works>
|
|
44
|
+
|
|
45
|
+
<registration-and-setup>
|
|
46
|
+
## Registration / Setup
|
|
47
|
+
|
|
48
|
+
Where and how components register with this concern.
|
|
49
|
+
- **Container**: `file:container.ts:registerServices`
|
|
50
|
+
- **Factory**: `file:DrawingFactory.ts:DrawingFactory`
|
|
51
|
+
- **Registry**: `file:DrawingRegistry.ts:DrawingRegistry`
|
|
52
|
+
</registration-and-setup>
|
|
53
|
+
|
|
54
|
+
<usage>
|
|
55
|
+
## Usage
|
|
56
|
+
|
|
57
|
+
How other systems interact with this concern.
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// Usage pattern (inline only if non-obvious)
|
|
61
|
+
```
|
|
62
|
+
</usage>
|
|
63
|
+
|
|
64
|
+
<current-registrations>
|
|
65
|
+
## Current Registrations / Implementations
|
|
66
|
+
|
|
67
|
+
What is currently registered/using this concern:
|
|
68
|
+
- `TrendLine` registered at `file:container.ts:registerDrawings`
|
|
69
|
+
- `ParallelChannel` registered at `file:container.ts:registerDrawings`
|
|
70
|
+
- ...
|
|
71
|
+
</current-registrations>
|
|
72
|
+
|
|
73
|
+
<integration-points>
|
|
74
|
+
## Integration Points
|
|
75
|
+
|
|
76
|
+
Where this concern connects to other systems.
|
|
77
|
+
- [System A](../systems/system-a.md) — uses this for [purpose]
|
|
78
|
+
- [System B](../systems/system-b.md) — uses this for [purpose]
|
|
79
|
+
</integration-points>
|
|
80
|
+
|
|
81
|
+
<gotchas>
|
|
82
|
+
## Gotchas
|
|
83
|
+
|
|
84
|
+
Common mistakes when working with this concern.
|
|
85
|
+
- [Common mistake 1]
|
|
86
|
+
- [Common mistake 2]
|
|
87
|
+
</gotchas>
|
|
88
|
+
|
|
89
|
+
<tech-debt>
|
|
90
|
+
## Tech Debt
|
|
91
|
+
|
|
92
|
+
Known quality issues in this cross-cutting concern discovered during story code reviews.
|
|
93
|
+
Items are added by the wiki mapper and removed when fixed by a future story.
|
|
94
|
+
Include ONLY if this concern has known tech debt items. Omit section entirely if clean.
|
|
95
|
+
|
|
96
|
+
### [Short descriptive title of the issue]
|
|
97
|
+
- **Severity:** high | medium | low
|
|
98
|
+
- **File:** `[file-path:SymbolName]`
|
|
99
|
+
- **Description:** What the issue is, why it matters, and what could go wrong
|
|
100
|
+
if left unfixed. For cross-cutting concerns, note which dependent systems are affected.
|
|
101
|
+
- **Discovered during:** [story-id] — [story title]
|
|
102
|
+
|
|
103
|
+
### [Another issue]
|
|
104
|
+
- **Severity:** ...
|
|
105
|
+
- **File:** ...
|
|
106
|
+
- **Description:** ...
|
|
107
|
+
- **Discovered during:** ...
|
|
108
|
+
</tech-debt>
|
|
109
|
+
</template>
|
|
110
|
+
|
|
111
|
+
<guidelines>
|
|
112
|
+
|
|
113
|
+
**Documentation Style:**
|
|
114
|
+
- EXTREMELY SUCCINCT — every word must add value
|
|
115
|
+
- NO FLUFF — direct, actionable information only
|
|
116
|
+
- Bullet points over paragraphs
|
|
117
|
+
- Code references as `file-path:ClassName.methodName` (not line numbers)
|
|
118
|
+
- Inline snippets ONLY for usage patterns and registration examples
|
|
119
|
+
- **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.**
|
|
120
|
+
|
|
121
|
+
**Overview:**
|
|
122
|
+
- ONE paragraph. What the concern does and why it exists.
|
|
123
|
+
- Focus on what an agent needs to know to interact with this concern.
|
|
124
|
+
|
|
125
|
+
**How It Works:**
|
|
126
|
+
- Numbered steps explaining the mechanism.
|
|
127
|
+
- Reference actual code locations — not theoretical descriptions.
|
|
128
|
+
- If the mechanism has a flow (event dispatching, DI resolution), show a mermaid sequence diagram.
|
|
129
|
+
|
|
130
|
+
**Registration / Setup:**
|
|
131
|
+
- The MOST CRITICAL section for AI agents. They need to know WHERE to register new things.
|
|
132
|
+
- List every registration point with exact file paths.
|
|
133
|
+
- Show the registration pattern (inline code only if non-obvious).
|
|
134
|
+
|
|
135
|
+
**Usage:**
|
|
136
|
+
- How consuming code interacts with this concern.
|
|
137
|
+
- Inline code snippet ONLY if the usage pattern is non-obvious.
|
|
138
|
+
- If usage is straightforward (e.g., inject via constructor), a one-liner suffices.
|
|
139
|
+
|
|
140
|
+
**Current Registrations / Implementations:**
|
|
141
|
+
- Complete list of everything currently registered/using this concern.
|
|
142
|
+
- Agent uses this to verify its new registration is consistent with existing ones.
|
|
143
|
+
- Update when new registrations are added.
|
|
144
|
+
|
|
145
|
+
**Integration Points:**
|
|
146
|
+
- Cross-reference with markdown links to system docs that depend on this concern.
|
|
147
|
+
- Helps agents understand the blast radius of changes to this concern.
|
|
148
|
+
|
|
149
|
+
**Gotchas:**
|
|
150
|
+
- Registration order dependencies, naming conventions, initialization timing.
|
|
151
|
+
- Anything that silently fails if done wrong.
|
|
152
|
+
|
|
153
|
+
**Tech Debt:**
|
|
154
|
+
- One `###` subsection per known issue — NOT a table. Each issue needs enough context
|
|
155
|
+
for an agent to understand the problem without reading the code.
|
|
156
|
+
- For cross-cutting concerns, always note which dependent systems are affected.
|
|
157
|
+
- Severity: `high` (security, data loss, production instability), `medium` (quality,
|
|
158
|
+
maintainability), `low` (cosmetic, minor inefficiency).
|
|
159
|
+
- Always link to the discovering story for traceability.
|
|
160
|
+
- REMOVE items when fixed by a future story.
|
|
161
|
+
- Omit the entire section if no tech debt exists in this concern.
|
|
162
|
+
|
|
163
|
+
**What does NOT belong here:**
|
|
164
|
+
- Domain-specific logic (that's in systems/ docs)
|
|
165
|
+
- Reusable structural patterns (that's in patterns/ docs)
|
|
166
|
+
- Step-by-step task recipes (that's in guides/ docs)
|
|
167
|
+
- Story numbers, sprint context, revision history
|
|
168
|
+
- Testing instructions, performance benchmarks
|
|
169
|
+
|
|
170
|
+
</guidelines>
|
|
171
|
+
|
|
172
|
+
<evolution>
|
|
173
|
+
|
|
174
|
+
This is a LIVING document — updated when the cross-cutting concern changes.
|
|
175
|
+
|
|
176
|
+
**Update triggers:**
|
|
177
|
+
- New registration added (update Current Registrations list)
|
|
178
|
+
- Registration mechanism changed (new file, new pattern)
|
|
179
|
+
- New integration point discovered
|
|
180
|
+
- New gotcha discovered
|
|
181
|
+
- Setup/initialization process changed
|
|
182
|
+
- Tech debt discovered or resolved in this concern's files
|
|
183
|
+
|
|
184
|
+
**NOT an update trigger:**
|
|
185
|
+
- New feature that registers with existing mechanism without changing it
|
|
186
|
+
- Bug fix in one registered component
|
|
187
|
+
- Internal refactoring of the mechanism that doesn't change the external API
|
|
188
|
+
|
|
189
|
+
**Update rules:**
|
|
190
|
+
- ADD new registrations to the list
|
|
191
|
+
- UPDATE Registration / Setup if the process changed
|
|
192
|
+
- ADD new gotchas as they are discovered
|
|
193
|
+
- REMOVE registrations for deleted components
|
|
194
|
+
|
|
195
|
+
</evolution>
|
|
196
|
+
|
|
197
|
+
</system-cross-cutting>
|