agile-context-engineering 0.2.2 → 0.3.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/CHANGELOG.md +82 -0
- package/LICENSE +51 -51
- package/README.md +324 -323
- package/agents/ace-research-synthesizer.md +228 -228
- package/agents/ace-technical-application-architect.md +28 -0
- package/agents/ace-wiki-mapper.md +445 -334
- package/agile-context-engineering/src/ace-tools.test.js +1089 -1089
- package/agile-context-engineering/templates/_command.md +53 -53
- package/agile-context-engineering/templates/_workflow.xml +16 -16
- package/agile-context-engineering/templates/product/product-backlog.xml +231 -231
- package/agile-context-engineering/templates/product/story-integration-solution.xml +1 -0
- package/agile-context-engineering/templates/product/story-wiki.xml +4 -0
- package/agile-context-engineering/templates/wiki/coding-standards.xml +38 -0
- package/agile-context-engineering/templates/wiki/decizions.xml +115 -115
- package/agile-context-engineering/templates/wiki/guide.xml +137 -137
- package/agile-context-engineering/templates/wiki/module-discovery.xml +174 -174
- package/agile-context-engineering/templates/wiki/pattern.xml +159 -159
- package/agile-context-engineering/templates/wiki/system-architecture.xml +254 -254
- package/agile-context-engineering/templates/wiki/system-cross-cutting.xml +197 -197
- package/agile-context-engineering/templates/wiki/system.xml +381 -381
- package/agile-context-engineering/templates/wiki/walkthrough.xml +255 -0
- package/agile-context-engineering/templates/wiki/wiki-readme.xml +297 -276
- package/agile-context-engineering/utils/questioning.xml +110 -110
- package/agile-context-engineering/workflows/execute-story.xml +1219 -1145
- package/agile-context-engineering/workflows/help.xml +540 -540
- package/agile-context-engineering/workflows/init-coding-standards.xml +386 -386
- package/agile-context-engineering/workflows/map-story.xml +1046 -797
- package/agile-context-engineering/workflows/map-subsystem.xml +2 -1
- package/agile-context-engineering/workflows/map-walkthrough.xml +457 -0
- package/agile-context-engineering/workflows/plan-feature.xml +1495 -1495
- package/agile-context-engineering/workflows/plan-story.xml +36 -1
- package/agile-context-engineering/workflows/research-integration-solution.xml +1 -0
- package/agile-context-engineering/workflows/research-story-wiki.xml +2 -1
- package/agile-context-engineering/workflows/research-technical-solution.xml +1 -0
- package/agile-context-engineering/workflows/review-story.xml +281 -281
- package/agile-context-engineering/workflows/update.xml +238 -207
- package/bin/install.js +8 -0
- package/commands/ace/execute-story.md +1 -0
- package/commands/ace/help.md +93 -93
- package/commands/ace/init-coding-standards.md +83 -83
- package/commands/ace/map-story.md +165 -156
- package/commands/ace/map-subsystem.md +140 -138
- package/commands/ace/map-system.md +92 -92
- package/commands/ace/map-walkthrough.md +127 -0
- package/commands/ace/plan-feature.md +89 -89
- package/commands/ace/plan-story.md +15 -1
- package/commands/ace/review-story.md +109 -109
- package/commands/ace/update.md +56 -54
- package/hooks/ace-check-update.js +62 -62
- package/hooks/ace-statusline.js +89 -89
- package/package.json +4 -3
|
@@ -60,6 +60,44 @@
|
|
|
60
60
|
- **NEVER leave stub implementations** — No `throw NotImplemented`, no `pass`, no `...`
|
|
61
61
|
- If code exists in the codebase, it must be complete and functional
|
|
62
62
|
|
|
63
|
+
### Defensive Programming — Zero Tolerance for Permissive Code
|
|
64
|
+
|
|
65
|
+
**WE USE DEFENSIVE PROGRAMMING + FAIL-FAST. PERMISSIVE PROGRAMMING IS BANNED.**
|
|
66
|
+
|
|
67
|
+
Permissive programming ("be liberal in what you accept") has caused catastrophic bugs.
|
|
68
|
+
It hides errors, delays failures, and makes debugging impossible. Every parameter must
|
|
69
|
+
be validated. Every error must be surfaced. No exceptions.
|
|
70
|
+
|
|
71
|
+
**MANDATORY — Do This:**
|
|
72
|
+
- **Validate EVERY input at the boundary** — check types, ranges, formats, required
|
|
73
|
+
fields BEFORE processing
|
|
74
|
+
- **Fail fast and loud** — if something is wrong, return an error immediately with a
|
|
75
|
+
clear message explaining WHAT is wrong and WHY
|
|
76
|
+
- **Read the function you're calling** — check its constructor/signature to know EXACTLY
|
|
77
|
+
what parameters it requires before writing the caller
|
|
78
|
+
- **Required means required** — if a function needs a value, the caller MUST provide it.
|
|
79
|
+
No nullable wrappers. No default fallbacks that mask missing data
|
|
80
|
+
- **Return errors, not defaults** — if a value is missing or invalid, return an error
|
|
81
|
+
string/throw, do NOT return `""`, `0`, `null`, `[]`, or any placeholder
|
|
82
|
+
- **Validate on BOTH client and server** — server validates before processing/pushing,
|
|
83
|
+
client validates as a redundant safety net. Both layers reject garbage
|
|
84
|
+
- **Surface errors visibly** — errors must reach whoever can fix them (the LLM, the user,
|
|
85
|
+
the developer). Log them, display them, return them. Never swallow them
|
|
86
|
+
|
|
87
|
+
**ABSOLUTELY FORBIDDEN — Never Do This:**
|
|
88
|
+
- `string? param = null` when the value is actually required — use `string param` and validate
|
|
89
|
+
- `return ""` or `return null` or `return []` when an operation fails — return an error with context
|
|
90
|
+
- `.optional()` or `.nullable()` on schema fields that the consuming function REQUIRES
|
|
91
|
+
- Fallback defaults that hide missing data (e.g., `value ?? defaultValue` to mask a null
|
|
92
|
+
that should never be null)
|
|
93
|
+
- `try/catch` that swallows exceptions and returns empty objects
|
|
94
|
+
- Silently stripping, transforming, or cleaning invalid data to make it pass validation
|
|
95
|
+
- Writing a caller without reading the callee's actual parameter signature first
|
|
96
|
+
- Using Postel's Law ("be liberal in what you accept") as justification for accepting garbage
|
|
97
|
+
|
|
98
|
+
**The Principle:**
|
|
99
|
+
**Garbage in → ERROR out. Never garbage in → silence.**
|
|
100
|
+
|
|
63
101
|
### No Assumptions
|
|
64
102
|
- **Use LSPs first when available** — Check diagnostics, go-to-definition, and find-references before guessing. The LSP knows the codebase better than a text search.
|
|
65
103
|
- **NEVER assume** libraries, classes, models, methods, or APIs exist
|
|
@@ -1,115 +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>
|
|
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>
|
|
@@ -1,137 +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>
|
|
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>
|