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.
Files changed (51) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/LICENSE +51 -51
  3. package/README.md +324 -323
  4. package/agents/ace-research-synthesizer.md +228 -228
  5. package/agents/ace-technical-application-architect.md +28 -0
  6. package/agents/ace-wiki-mapper.md +445 -334
  7. package/agile-context-engineering/src/ace-tools.test.js +1089 -1089
  8. package/agile-context-engineering/templates/_command.md +53 -53
  9. package/agile-context-engineering/templates/_workflow.xml +16 -16
  10. package/agile-context-engineering/templates/product/product-backlog.xml +231 -231
  11. package/agile-context-engineering/templates/product/story-integration-solution.xml +1 -0
  12. package/agile-context-engineering/templates/product/story-wiki.xml +4 -0
  13. package/agile-context-engineering/templates/wiki/coding-standards.xml +38 -0
  14. package/agile-context-engineering/templates/wiki/decizions.xml +115 -115
  15. package/agile-context-engineering/templates/wiki/guide.xml +137 -137
  16. package/agile-context-engineering/templates/wiki/module-discovery.xml +174 -174
  17. package/agile-context-engineering/templates/wiki/pattern.xml +159 -159
  18. package/agile-context-engineering/templates/wiki/system-architecture.xml +254 -254
  19. package/agile-context-engineering/templates/wiki/system-cross-cutting.xml +197 -197
  20. package/agile-context-engineering/templates/wiki/system.xml +381 -381
  21. package/agile-context-engineering/templates/wiki/walkthrough.xml +255 -0
  22. package/agile-context-engineering/templates/wiki/wiki-readme.xml +297 -276
  23. package/agile-context-engineering/utils/questioning.xml +110 -110
  24. package/agile-context-engineering/workflows/execute-story.xml +1219 -1145
  25. package/agile-context-engineering/workflows/help.xml +540 -540
  26. package/agile-context-engineering/workflows/init-coding-standards.xml +386 -386
  27. package/agile-context-engineering/workflows/map-story.xml +1046 -797
  28. package/agile-context-engineering/workflows/map-subsystem.xml +2 -1
  29. package/agile-context-engineering/workflows/map-walkthrough.xml +457 -0
  30. package/agile-context-engineering/workflows/plan-feature.xml +1495 -1495
  31. package/agile-context-engineering/workflows/plan-story.xml +36 -1
  32. package/agile-context-engineering/workflows/research-integration-solution.xml +1 -0
  33. package/agile-context-engineering/workflows/research-story-wiki.xml +2 -1
  34. package/agile-context-engineering/workflows/research-technical-solution.xml +1 -0
  35. package/agile-context-engineering/workflows/review-story.xml +281 -281
  36. package/agile-context-engineering/workflows/update.xml +238 -207
  37. package/bin/install.js +8 -0
  38. package/commands/ace/execute-story.md +1 -0
  39. package/commands/ace/help.md +93 -93
  40. package/commands/ace/init-coding-standards.md +83 -83
  41. package/commands/ace/map-story.md +165 -156
  42. package/commands/ace/map-subsystem.md +140 -138
  43. package/commands/ace/map-system.md +92 -92
  44. package/commands/ace/map-walkthrough.md +127 -0
  45. package/commands/ace/plan-feature.md +89 -89
  46. package/commands/ace/plan-story.md +15 -1
  47. package/commands/ace/review-story.md +109 -109
  48. package/commands/ace/update.md +56 -54
  49. package/hooks/ace-check-update.js +62 -62
  50. package/hooks/ace-statusline.js +89 -89
  51. 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>