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,451 @@
|
|
|
1
|
+
<story>
|
|
2
|
+
|
|
3
|
+
<purpose>
|
|
4
|
+
Template for `.ace/artifacts/product/<id-epic_name>/<id-feature_name>/<id-story_name>/<id-story_name>.md` —
|
|
5
|
+
a story specification document that describes a single implementable unit of work,
|
|
6
|
+
its INVEST-compliant user story statement, Gherkin acceptance criteria, definition of done,
|
|
7
|
+
scope boundaries, and relevant wiki references for technical solution design.
|
|
8
|
+
This document defines EXACTLY what will be built — no more, no less.
|
|
9
|
+
|
|
10
|
+
The acceptance criteria are the SINGLE SOURCE OF TRUTH for story scope.
|
|
11
|
+
If a behavior is not captured in a named scenario, it is not in scope.
|
|
12
|
+
|
|
13
|
+
This is the COMPOSITION ROOT for the story specification pipeline.
|
|
14
|
+
The full story document is built incrementally across up to 3 passes
|
|
15
|
+
that write sections into the story file, plus up to 2 external research
|
|
16
|
+
artifacts that feed into the technical solution but live outside the story:
|
|
17
|
+
|
|
18
|
+
Pass 1 — Business Requirements (this template, sections 1-8)
|
|
19
|
+
Pass 2 — Wiki Research (story-wiki.xml) — appended to story
|
|
20
|
+
Pass 3 — External Analysis (external-solution.xml) — OPTIONAL, external artifact
|
|
21
|
+
Pass 4 — Integration Analysis (integration-solution.xml) — external artifact
|
|
22
|
+
Pass 5 — Technical Solution (story-technical-solution.xml) — appended to story
|
|
23
|
+
|
|
24
|
+
Passes 3 and 4 produce separate research artifacts in the story directory.
|
|
25
|
+
They are consumed as inputs by pass 5 but are NOT embedded in the story file.
|
|
26
|
+
The pipeline is sequential — earlier passes are inputs to later passes.
|
|
27
|
+
|
|
28
|
+
This document serves as both a local markdown file and a GitHub issue description.
|
|
29
|
+
All formatting must render cleanly in GitHub issue bodies.
|
|
30
|
+
</purpose>
|
|
31
|
+
|
|
32
|
+
<composition>
|
|
33
|
+
<!-- The story specification pipeline. Passes 1, 2, 5 write into the story file.
|
|
34
|
+
Passes 3, 4 produce external artifacts in the story directory that feed pass 5.
|
|
35
|
+
|
|
36
|
+
Story directory: .ace/artifacts/product/<epic>/<feature>/<story>/
|
|
37
|
+
Story file: <story>.md
|
|
38
|
+
External artifacts: external-analysis.md, integration-analysis.md -->
|
|
39
|
+
|
|
40
|
+
<pass order="1" template="story.xml" output="story-file" required="true">
|
|
41
|
+
Business Requirements — sections 1-8 (header through DoD).
|
|
42
|
+
Input: plain-text story seed from parent feature document.
|
|
43
|
+
</pass>
|
|
44
|
+
<pass order="2" template="story-wiki.xml" output="story-file" required="true">
|
|
45
|
+
Wiki Research — relevant-wiki section.
|
|
46
|
+
Input: User Story + Description + AC from pass 1.
|
|
47
|
+
Agent scans `.docs/wiki/` for documents relevant to technical solution.
|
|
48
|
+
</pass>
|
|
49
|
+
<pass order="3" template="external-solution.xml" output="external-analysis.md" required="false">
|
|
50
|
+
External Analysis — analyze reference implementations or external systems.
|
|
51
|
+
Input: story requirements + wiki refs from passes 1-2 + external code/docs.
|
|
52
|
+
OPTIONAL: only when the story or feature references external systems.
|
|
53
|
+
Output: separate artifact in story directory, NOT appended to story file.
|
|
54
|
+
</pass>
|
|
55
|
+
<pass order="4" template="integration-solution.xml" output="integration-analysis.md" required="true">
|
|
56
|
+
Integration Analysis — analyze our own codebase for integration points.
|
|
57
|
+
Input: story requirements + wiki refs + optional external analysis.
|
|
58
|
+
Agent reads relevant wiki docs and explores codebase to map affected code.
|
|
59
|
+
Output: separate artifact in story directory, NOT appended to story file.
|
|
60
|
+
</pass>
|
|
61
|
+
<pass order="5" template="story-technical-solution.xml" output="story-file" required="true">
|
|
62
|
+
Technical Solution — design the implementation approach.
|
|
63
|
+
Input: ALL prior passes (story file + external artifacts).
|
|
64
|
+
Produces the technical-solution section appended to the story file.
|
|
65
|
+
</pass>
|
|
66
|
+
|
|
67
|
+
<!-- Execution passes (written by /ace:execute-story, not /ace:plan-story) -->
|
|
68
|
+
<pass order="E1" populated-by="execute-story" output="story-file" required="false">
|
|
69
|
+
Summary & State — execution results, commit log, deviations, code review.
|
|
70
|
+
Written after implementation is complete and user approves.
|
|
71
|
+
</pass>
|
|
72
|
+
<pass order="E2" populated-by="execute-story" output="story-file" required="false">
|
|
73
|
+
Wiki Updates — table of wiki documents updated/created during implementation.
|
|
74
|
+
Written after wiki mapper completes post-implementation.
|
|
75
|
+
</pass>
|
|
76
|
+
</composition>
|
|
77
|
+
|
|
78
|
+
<output-format>
|
|
79
|
+
|
|
80
|
+
<section name="header">
|
|
81
|
+
# [ID]: [Story Title]
|
|
82
|
+
|
|
83
|
+
**Feature**: [Feature ID] [Feature Title] | **Epic**: [Epic ID] [Epic Title]
|
|
84
|
+
**Status**: [Status] | **Size**: [Size] | **Sprint**: [Sprint] | **Link**: [Link]
|
|
85
|
+
|
|
86
|
+
<!-- Example:
|
|
87
|
+
# S3: Display OAuth Provider Buttons
|
|
88
|
+
**Feature**: F3 OAuth2 Login Flow | **Epic**: #45 User Authentication
|
|
89
|
+
**Status**: Refined | **Size**: 3 | **Sprint**: Sprint 2 | **Link**: [#95](https://github.com/owner/repo/issues/95)
|
|
90
|
+
-->
|
|
91
|
+
</section>
|
|
92
|
+
|
|
93
|
+
<section name="user-story">
|
|
94
|
+
## User Story
|
|
95
|
+
|
|
96
|
+
> As a [persona/role],
|
|
97
|
+
> I want [action/capability],
|
|
98
|
+
> so that [benefit/value].
|
|
99
|
+
|
|
100
|
+
<!-- The user story MUST follow the As/I want/So that format exactly.
|
|
101
|
+
- Persona must match a persona defined in the product vision.
|
|
102
|
+
- Action describes observable user behavior, not system internals.
|
|
103
|
+
- Benefit ties to the parent feature's benefit hypothesis.
|
|
104
|
+
Example:
|
|
105
|
+
"As a returning customer, I want to click a Google or GitHub login button,
|
|
106
|
+
so that I can authenticate without remembering a site-specific password."
|
|
107
|
+
-->
|
|
108
|
+
</section>
|
|
109
|
+
|
|
110
|
+
<section name="description">
|
|
111
|
+
## Description
|
|
112
|
+
|
|
113
|
+
[What this story delivers and why it matters within the parent feature. 2-4 sentences.
|
|
114
|
+
Describe observable user behavior — what the user can do when this story is done.
|
|
115
|
+
How this story relates to adjacent stories in the feature (what it builds on, what it enables).
|
|
116
|
+
Focus on WHAT and WHY, not HOW.]
|
|
117
|
+
</section>
|
|
118
|
+
|
|
119
|
+
<section name="acceptance-criteria">
|
|
120
|
+
## Acceptance Criteria
|
|
121
|
+
|
|
122
|
+
<!-- Gherkin scenarios are the SINGLE SOURCE OF TRUTH for this story's scope.
|
|
123
|
+
If a behavior is not captured in a named scenario, it is NOT in scope.
|
|
124
|
+
Do not implement or test behaviors not defined here.
|
|
125
|
+
|
|
126
|
+
Minimum coverage: happy path + at least one edge case + at least one error path.
|
|
127
|
+
Each scenario must be independent — no scenario depends on another's state.
|
|
128
|
+
If more than 6-8 scenarios are needed, the story is likely too large — split it. -->
|
|
129
|
+
|
|
130
|
+
### Scenario: [Short descriptive name]
|
|
131
|
+
|
|
132
|
+
**Given** [precondition — the starting state]
|
|
133
|
+
**When** [action — what the user or system does]
|
|
134
|
+
**Then** [expected outcome — observable result]
|
|
135
|
+
|
|
136
|
+
### Scenario: [Short descriptive name]
|
|
137
|
+
|
|
138
|
+
**Given** [precondition]
|
|
139
|
+
**When** [action]
|
|
140
|
+
**Then** [expected outcome]
|
|
141
|
+
|
|
142
|
+
<!-- Example:
|
|
143
|
+
### Scenario: Successful Google login
|
|
144
|
+
|
|
145
|
+
**Given** the user is on the login page and has a valid Google account
|
|
146
|
+
**When** they click the "Sign in with Google" button and complete Google's OAuth flow
|
|
147
|
+
**Then** they are redirected to the dashboard and see their Google profile name
|
|
148
|
+
|
|
149
|
+
### Scenario: Provider unavailable
|
|
150
|
+
|
|
151
|
+
**Given** the user is on the login page and the Google OAuth service is unreachable
|
|
152
|
+
**When** they click the "Sign in with Google" button
|
|
153
|
+
**Then** they see an error message "Login service temporarily unavailable. Please try again."
|
|
154
|
+
-->
|
|
155
|
+
</section>
|
|
156
|
+
|
|
157
|
+
<section name="out-of-scope">
|
|
158
|
+
## Out of Scope
|
|
159
|
+
|
|
160
|
+
<!-- Explicitly excluded items to prevent scope creep. Only list things that someone
|
|
161
|
+
might reasonably assume are included but are NOT part of this story.
|
|
162
|
+
Do not list everything in the universe — only meaningful exclusions. -->
|
|
163
|
+
|
|
164
|
+
- [Excluded item — brief reason why it is not part of this story]
|
|
165
|
+
- [Excluded item — brief reason why it is not part of this story]
|
|
166
|
+
</section>
|
|
167
|
+
|
|
168
|
+
<section name="dependencies">
|
|
169
|
+
## Dependencies
|
|
170
|
+
|
|
171
|
+
### Blocked By
|
|
172
|
+
<!-- Stories, features, or external items that must be completed before this story can start. -->
|
|
173
|
+
- [Story ID or item — brief reason for the dependency]
|
|
174
|
+
|
|
175
|
+
### Blocks
|
|
176
|
+
<!-- Stories or items that cannot start until this story is complete. -->
|
|
177
|
+
- [Story ID or item — what it needs from this story]
|
|
178
|
+
|
|
179
|
+
### External
|
|
180
|
+
<!-- Third-party services, APIs, approvals, or infrastructure needed. -->
|
|
181
|
+
- [External dependency — current status]
|
|
182
|
+
</section>
|
|
183
|
+
|
|
184
|
+
<section name="definition-of-done">
|
|
185
|
+
## Definition of Done
|
|
186
|
+
|
|
187
|
+
- [ ] All acceptance criteria scenarios pass
|
|
188
|
+
- [ ] Code reviewed and approved
|
|
189
|
+
- [ ] Tests written and passing
|
|
190
|
+
- [ ] CI pipeline green
|
|
191
|
+
- [ ] Documentation updated (if applicable)
|
|
192
|
+
- [ ] Product Owner verified
|
|
193
|
+
</section>
|
|
194
|
+
|
|
195
|
+
<section name="relevant-wiki" pass="2" template="story-wiki.xml">
|
|
196
|
+
## Relevant Wiki
|
|
197
|
+
|
|
198
|
+
<!-- Pass 2. Populated by story-wiki.xml template.
|
|
199
|
+
A research agent reads the User Story, Description, and AC,
|
|
200
|
+
then scans `.docs/wiki/` to select documents relevant to
|
|
201
|
+
designing a good technical solution for this story.
|
|
202
|
+
See story-wiki.xml for full section structure and selection criteria. -->
|
|
203
|
+
</section>
|
|
204
|
+
|
|
205
|
+
<section name="technical-solution" pass="5" template="story-technical-solution.xml">
|
|
206
|
+
## Technical Solution
|
|
207
|
+
|
|
208
|
+
<!-- Pass 5. Populated by story-technical-solution.xml template.
|
|
209
|
+
Consumes ALL prior passes as input:
|
|
210
|
+
- Story file (sections 1-8 + relevant wiki)
|
|
211
|
+
- external-analysis.md (if it exists in story directory)
|
|
212
|
+
- integration-analysis.md (from story directory)
|
|
213
|
+
See story-technical-solution.xml for full section structure. -->
|
|
214
|
+
</section>
|
|
215
|
+
|
|
216
|
+
<section name="summary-and-state" populated-by="execute-story">
|
|
217
|
+
## Summary & State
|
|
218
|
+
|
|
219
|
+
<!-- Populated by /ace:execute-story after implementation.
|
|
220
|
+
Contains: status, execution date, duration, commit log,
|
|
221
|
+
implementation summary, deviations, and code review results.
|
|
222
|
+
Do NOT edit manually — this section is written by the execution workflow. -->
|
|
223
|
+
</section>
|
|
224
|
+
|
|
225
|
+
<section name="wiki-updates" populated-by="execute-story">
|
|
226
|
+
## Wiki Updates
|
|
227
|
+
|
|
228
|
+
<!-- Populated by /ace:execute-story after wiki mapping.
|
|
229
|
+
Contains: table of wiki documents updated/created during implementation.
|
|
230
|
+
Do NOT edit manually — this section is written by the execution workflow. -->
|
|
231
|
+
</section>
|
|
232
|
+
|
|
233
|
+
<section name="metadata">
|
|
234
|
+
---
|
|
235
|
+
*Created: [date] | Last refined: [date] | Refinements: [count]*
|
|
236
|
+
*Feature: [relative path to parent feature.md]*
|
|
237
|
+
</section>
|
|
238
|
+
|
|
239
|
+
</output-format>
|
|
240
|
+
|
|
241
|
+
<field-definitions>
|
|
242
|
+
|
|
243
|
+
<field name="ID">
|
|
244
|
+
S[number] for local stories, #[issue_number] for GitHub-linked.
|
|
245
|
+
Sequential within the parent feature. IDs are stable — never renumber after assignment.
|
|
246
|
+
When a local story gets a GitHub issue, ID changes from S[N] to #[issue_number]
|
|
247
|
+
and the parent feature's story index table is updated.
|
|
248
|
+
</field>
|
|
249
|
+
|
|
250
|
+
<field name="Status">
|
|
251
|
+
<allowed-values>
|
|
252
|
+
<value name="Todo">Story seed exists in feature doc, not yet formally specified</value>
|
|
253
|
+
<value name="Refined">Formal spec complete — user story, AC, DoD all defined and clear</value>
|
|
254
|
+
<value name="In Progress">Implementation has started</value>
|
|
255
|
+
<value name="Done">All AC scenarios verified, DoD met, story closed</value>
|
|
256
|
+
</allowed-values>
|
|
257
|
+
</field>
|
|
258
|
+
|
|
259
|
+
<field name="Size">
|
|
260
|
+
<allowed-values>
|
|
261
|
+
<value name="1">Trivial — a few hours of work</value>
|
|
262
|
+
<value name="2">Small — about a day</value>
|
|
263
|
+
<value name="3">Medium — 2-3 days</value>
|
|
264
|
+
<value name="5">Large — most of a sprint</value>
|
|
265
|
+
<value name="8">Very large — full sprint (1 dev / 10 days OR 1 AI agent - 1 day)</value>
|
|
266
|
+
</allowed-values>
|
|
267
|
+
Fibonacci relative sizing (NOT x10 like features).
|
|
268
|
+
If a story exceeds 8 points, it MUST be split into smaller stories.
|
|
269
|
+
</field>
|
|
270
|
+
|
|
271
|
+
<field name="Priority">
|
|
272
|
+
<allowed-values>
|
|
273
|
+
<value name="Critical">Blocks other work or has external deadline</value>
|
|
274
|
+
<value name="High">Core functionality, high user impact</value>
|
|
275
|
+
<value name="Medium">Important but not blocking</value>
|
|
276
|
+
<value name="Low">Nice to have, can be deferred</value>
|
|
277
|
+
</allowed-values>
|
|
278
|
+
</field>
|
|
279
|
+
|
|
280
|
+
<field name="Persona">
|
|
281
|
+
Must match a persona defined in the product vision document.
|
|
282
|
+
Do not introduce new personas at story level — update the product vision first.
|
|
283
|
+
</field>
|
|
284
|
+
|
|
285
|
+
</field-definitions>
|
|
286
|
+
|
|
287
|
+
<guidelines>
|
|
288
|
+
|
|
289
|
+
<guideline name="invest-compliance">
|
|
290
|
+
Every story MUST pass the INVEST checklist before it can move to "Refined" status:
|
|
291
|
+
- **Independent**: Can be developed without requiring another in-progress story
|
|
292
|
+
- **Negotiable**: Scope is defined by AC, not hardcoded implementation details
|
|
293
|
+
- **Valuable**: User story statement describes real user benefit
|
|
294
|
+
- **Estimable**: Can be sized in Fibonacci points (1, 2, 3, 5, 8)
|
|
295
|
+
- **Small**: Completable within a single sprint
|
|
296
|
+
- **Testable**: AC scenarios have clear pass/fail conditions
|
|
297
|
+
|
|
298
|
+
If any INVEST criterion fails, the story is not ready to be refined.
|
|
299
|
+
</guideline>
|
|
300
|
+
|
|
301
|
+
<guideline name="acceptance-criteria-as-scope">
|
|
302
|
+
Acceptance criteria define 100% of this story's scope.
|
|
303
|
+
No behavior should be implemented or tested unless it is captured in a named scenario.
|
|
304
|
+
|
|
305
|
+
- If it's not in the AC, it's OUT OF SCOPE
|
|
306
|
+
- If it's implied but not stated, it's OUT OF SCOPE
|
|
307
|
+
- If it would be "nice to have", it's OUT OF SCOPE
|
|
308
|
+
- ONLY build what the AC scenarios explicitly describe
|
|
309
|
+
|
|
310
|
+
This is the primary scope control mechanism. Adding requirements beyond the AC
|
|
311
|
+
causes scope creep. Extra features = extra work = missed deadlines.
|
|
312
|
+
</guideline>
|
|
313
|
+
|
|
314
|
+
<guideline name="gherkin-quality">
|
|
315
|
+
Gherkin scenarios must follow these rules:
|
|
316
|
+
- **Given**: Describes state or precondition — NEVER an action
|
|
317
|
+
- **When**: Describes exactly ONE action — the trigger being tested
|
|
318
|
+
- **Then**: Describes an observable outcome — NEVER internal system state
|
|
319
|
+
(Bad: "Then the database has a new row" — Good: "Then the user sees a confirmation message")
|
|
320
|
+
- Scenarios MUST be independent — no scenario depends on another scenario's state
|
|
321
|
+
- Use **And** for additional conditions within Given/When/Then, not separate steps
|
|
322
|
+
|
|
323
|
+
Bad: "Given the user clicks login" (action, not state)
|
|
324
|
+
Good: "Given the user is on the login page"
|
|
325
|
+
</guideline>
|
|
326
|
+
|
|
327
|
+
<guideline name="story-sizing">
|
|
328
|
+
Stories use Fibonacci sizing: 1, 2, 3, 5, 8 (NOT x10 like features).
|
|
329
|
+
If a story is estimated at more than 8 points, it MUST be split.
|
|
330
|
+
If a story requires more than 6-8 AC scenarios, it is likely too large — split it.
|
|
331
|
+
|
|
332
|
+
AC scenario count is a reliable proxy for complexity:
|
|
333
|
+
- 1-2 scenarios: likely a 1-2 point story
|
|
334
|
+
- 3-4 scenarios: likely a 3 point story
|
|
335
|
+
- 5-6 scenarios: likely a 5 point story
|
|
336
|
+
- 7-8 scenarios: likely an 8 point story; above 8 consider splitting
|
|
337
|
+
</guideline>
|
|
338
|
+
|
|
339
|
+
<guideline name="github-compatibility">
|
|
340
|
+
The entire story document must render cleanly as a GitHub issue body.
|
|
341
|
+
- Mermaid diagrams are supported and encouraged — GitHub renders them natively
|
|
342
|
+
in issue bodies and markdown files via ```mermaid fenced code blocks
|
|
343
|
+
- No HTML tables (use markdown tables only - make sure titles are aligned with columns)
|
|
344
|
+
- No custom CSS or HTML styling
|
|
345
|
+
- Named scenario H3 headers render as distinct sections in GitHub
|
|
346
|
+
- Blockquote (>) for the user story statement renders correctly
|
|
347
|
+
</guideline>
|
|
348
|
+
|
|
349
|
+
<guideline name="github-identity">
|
|
350
|
+
- GitHub-linked stories: ID = #[issue_number], Title = EXACT GitHub issue title
|
|
351
|
+
- Local stories: ID = S[N], sequential within the parent feature
|
|
352
|
+
- IDs are stable — never renumber after assignment
|
|
353
|
+
- When a story gets a GitHub issue, ID changes from S[N] to #[issue_number]
|
|
354
|
+
- The parent feature's story index table must be updated to reflect the new ID
|
|
355
|
+
</guideline>
|
|
356
|
+
|
|
357
|
+
<guideline name="definition-of-done">
|
|
358
|
+
The inline DoD checklist must stay compact: 5-10 items maximum.
|
|
359
|
+
It covers the universal quality bar for any story. Items are:
|
|
360
|
+
- Acceptance criteria verified (functional correctness)
|
|
361
|
+
- Code quality (review, tests, CI)
|
|
362
|
+
- Documentation (only when applicable)
|
|
363
|
+
- Product validation (PO sign-off)
|
|
364
|
+
|
|
365
|
+
Story-specific DoD items may be added when genuinely unique to that story
|
|
366
|
+
(e.g., "PCI compliance reviewed" for a payment story), but the default
|
|
367
|
+
checklist should suffice for most stories.
|
|
368
|
+
</guideline>
|
|
369
|
+
|
|
370
|
+
<guideline name="relevant-wiki-selection">
|
|
371
|
+
The Relevant Wiki section is populated by pass 2 using story-wiki.xml.
|
|
372
|
+
It runs AFTER sections 1-8 are complete.
|
|
373
|
+
See story-wiki.xml for detailed selection/exclusion criteria and section structure.
|
|
374
|
+
</guideline>
|
|
375
|
+
|
|
376
|
+
<guideline name="completeness">
|
|
377
|
+
Every run of plan-story should produce a COMPLETE story specification —
|
|
378
|
+
user story, description, all AC scenarios, out-of-scope, dependencies, DoD.
|
|
379
|
+
Do not defer sections to "later passes."
|
|
380
|
+
|
|
381
|
+
Re-running plan-story on the same story is supported for scope changes
|
|
382
|
+
or AC gaps, but is the exception, not the workflow.
|
|
383
|
+
When re-running, increment the metadata refinement count and update
|
|
384
|
+
the "Last refined" date.
|
|
385
|
+
</guideline>
|
|
386
|
+
|
|
387
|
+
</guidelines>
|
|
388
|
+
|
|
389
|
+
<evolution>
|
|
390
|
+
|
|
391
|
+
**Pass 1 — Business Requirements (story.xml → story file):**
|
|
392
|
+
The plan-story command takes the plain-text story seed from the parent feature
|
|
393
|
+
document and fills sections 1-8 (header through DoD).
|
|
394
|
+
All business requirements sections are complete after this pass.
|
|
395
|
+
|
|
396
|
+
**Pass 2 — Wiki Research (story-wiki.xml → story file):**
|
|
397
|
+
A research agent reads the User Story, Description, and AC from pass 1,
|
|
398
|
+
then scans `.docs/wiki/` to populate the Relevant Wiki section with documents
|
|
399
|
+
that inform the technical solution.
|
|
400
|
+
|
|
401
|
+
**Pass 3 — External Analysis (external-solution.xml → external-analysis.md) — OPTIONAL:**
|
|
402
|
+
When the story or feature references external systems, libraries, or reference
|
|
403
|
+
implementations, an agent analyzes that external code/documentation for insights.
|
|
404
|
+
Output is a separate artifact in the story directory — NOT part of the story file.
|
|
405
|
+
Skipped when no external references exist.
|
|
406
|
+
|
|
407
|
+
**Pass 4 — Integration Analysis (integration-solution.xml → integration-analysis.md):**
|
|
408
|
+
An agent reads the wiki references from pass 2 (and external analysis from pass 3
|
|
409
|
+
if present), then explores our own codebase to map affected files, existing APIs,
|
|
410
|
+
code patterns, and architectural constraints for this story.
|
|
411
|
+
Output is a separate artifact in the story directory — NOT part of the story file.
|
|
412
|
+
|
|
413
|
+
**Pass 5 — Technical Solution (story-technical-solution.xml → story file):**
|
|
414
|
+
Consumes ALL prior outputs: story file (requirements + wiki) plus the external
|
|
415
|
+
artifacts (external-analysis.md and integration-analysis.md from story directory).
|
|
416
|
+
Designs the implementation approach and appends the Technical Solution section
|
|
417
|
+
to the story file.
|
|
418
|
+
Story status moves from "Todo" to "Refined" in the parent feature's story index.
|
|
419
|
+
|
|
420
|
+
**Refinement (re-run any pass — exception, not norm):**
|
|
421
|
+
Only when scope changes, new information surfaces, or gaps are found.
|
|
422
|
+
Re-running an earlier pass may invalidate later passes — downstream passes
|
|
423
|
+
and their artifacts should be re-evaluated.
|
|
424
|
+
Updates metadata refinement count and "Last refined" date.
|
|
425
|
+
|
|
426
|
+
**During implementation (/ace:execute-story):**
|
|
427
|
+
Story status moves from Refined to In Progress.
|
|
428
|
+
Claude Code Plan Mode creates an execution plan from the Technical Solution.
|
|
429
|
+
Implementation proceeds (solo or agent teams mode).
|
|
430
|
+
Code review runs (ace-code-reviewer agent).
|
|
431
|
+
NO intermediary commits — changes accumulate until user approval.
|
|
432
|
+
|
|
433
|
+
**Execution Pass E1 — Summary & State (execute-story → story file):**
|
|
434
|
+
After user approves implementation, the Summary & State section is written
|
|
435
|
+
with: status, execution date, duration, commit log, implementation summary,
|
|
436
|
+
deviations from plan, and code review results.
|
|
437
|
+
|
|
438
|
+
**Execution Pass E2 — Wiki Updates (execute-story → story file):**
|
|
439
|
+
After wiki mapper completes, the Wiki Updates section is written with a table
|
|
440
|
+
of wiki documents updated/created during implementation. Tech debt discovered
|
|
441
|
+
during code review is integrated into wiki subsystem docs.
|
|
442
|
+
|
|
443
|
+
**Completion:**
|
|
444
|
+
All AC scenarios verified. DoD checklist complete. Story status moves to Done.
|
|
445
|
+
Parent feature's story index updated. Product backlog updated.
|
|
446
|
+
If GitHub-linked, the issue body is updated with full story content.
|
|
447
|
+
If all stories in the feature are Done, the feature status also moves to Done.
|
|
448
|
+
|
|
449
|
+
</evolution>
|
|
450
|
+
|
|
451
|
+
</story>
|
package/{agile-context-engineering/workflows/review-story.xml → skills/review-story/workflow.xml}
RENAMED
|
@@ -39,9 +39,7 @@
|
|
|
39
39
|
<substep order="1.2" name="run-init">
|
|
40
40
|
Execute environment detection:
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
INIT=$(node ~/.claude/agile-context-engineering/src/ace-tools.js init execute-story {story_param})
|
|
44
|
-
```
|
|
42
|
+
INIT is available from the preprocessed Environment Context above — do NOT re-run init.
|
|
45
43
|
|
|
46
44
|
Parse INIT JSON for:
|
|
47
45
|
- `has_git`, `has_gh_cli`, `github_project`
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: update
|
|
3
|
+
description: Update ACE to latest version with changelog display
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
allowed-tools:
|
|
7
|
+
- Bash
|
|
8
|
+
- AskUserQuestion
|
|
9
|
+
- WebFetch
|
|
10
|
+
model: sonnet
|
|
11
|
+
effort: medium
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Update
|
|
15
|
+
|
|
16
|
+
Update ACE to latest version with changelog display.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- When the statusline shows the update indicator
|
|
21
|
+
- When user wants to check for or install ACE updates
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
|
|
25
|
+
No parameters required.
|
|
26
|
+
|
|
27
|
+
## Supporting Resources
|
|
28
|
+
|
|
29
|
+
Read ALL of these before starting the workflow:
|
|
30
|
+
|
|
31
|
+
- **Workflow**: Read [workflow.xml](workflow.xml) — complete update process
|
|
32
|
+
- **UI formatting**: Read `${CLAUDE_SKILL_DIR}/../../shared/utils/ui-formatting.md` — ACE output formatting rules
|
|
33
|
+
|
|
34
|
+
## Process
|
|
35
|
+
|
|
36
|
+
Execute the workflow defined in [workflow.xml](workflow.xml) end-to-end.
|
|
37
|
+
|
|
38
|
+
The workflow handles all logic including:
|
|
39
|
+
|
|
40
|
+
1. Installation detection (local/global, Claude/Crush)
|
|
41
|
+
2. Latest version checking via npm
|
|
42
|
+
3. Version comparison
|
|
43
|
+
4. Changelog fetching and display
|
|
44
|
+
5. Clean install warning display
|
|
45
|
+
6. User confirmation
|
|
46
|
+
7. Update execution
|
|
47
|
+
8. Cache clearing and restart reminder
|
|
48
|
+
|
|
49
|
+
## Example Usage
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
/ace:update
|
|
53
|
+
```
|