agile-context-engineering 0.1.0 → 0.2.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 (83) hide show
  1. package/LICENSE +30 -0
  2. package/README.md +272 -78
  3. package/agents/ace-code-discovery-analyst.md +245 -0
  4. package/agents/ace-code-integration-analyst.md +248 -0
  5. package/agents/ace-code-reviewer.md +375 -0
  6. package/agents/ace-product-owner.md +361 -0
  7. package/agents/ace-project-researcher.md +606 -0
  8. package/agents/ace-research-synthesizer.md +228 -0
  9. package/agents/ace-technical-application-architect.md +287 -0
  10. package/agents/ace-wiki-mapper.md +334 -0
  11. package/agile-context-engineering/src/ace-tools.js +2881 -0
  12. package/agile-context-engineering/src/ace-tools.test.js +1089 -0
  13. package/agile-context-engineering/templates/_command.md +54 -0
  14. package/agile-context-engineering/templates/_workflow.xml +17 -0
  15. package/agile-context-engineering/templates/config.json +0 -0
  16. package/agile-context-engineering/templates/product/external-solution.xml +832 -0
  17. package/agile-context-engineering/templates/product/feature.xml +361 -0
  18. package/agile-context-engineering/templates/product/integration-solution.xml +0 -0
  19. package/agile-context-engineering/templates/product/product-backlog.xml +231 -0
  20. package/agile-context-engineering/templates/product/product-vision.xml +227 -0
  21. package/agile-context-engineering/templates/product/story-integration-solution.xml +1014 -0
  22. package/agile-context-engineering/templates/product/story-technical-solution.xml +1025 -0
  23. package/agile-context-engineering/templates/product/story-wiki.xml +190 -0
  24. package/agile-context-engineering/templates/product/story.xml +451 -0
  25. package/agile-context-engineering/templates/wiki/coding-standards.xml +493 -0
  26. package/agile-context-engineering/templates/wiki/decizions.xml +115 -0
  27. package/agile-context-engineering/templates/wiki/guide.xml +137 -0
  28. package/agile-context-engineering/templates/wiki/module-discovery.xml +174 -0
  29. package/agile-context-engineering/templates/wiki/pattern.xml +159 -0
  30. package/agile-context-engineering/templates/wiki/subsystem-architecture.xml +343 -0
  31. package/agile-context-engineering/templates/wiki/subsystem-structure.xml +235 -0
  32. package/agile-context-engineering/templates/wiki/system-architecture.xml +254 -0
  33. package/agile-context-engineering/templates/wiki/system-cross-cutting.xml +197 -0
  34. package/agile-context-engineering/templates/wiki/system-structure.xml +178 -0
  35. package/agile-context-engineering/templates/wiki/system.xml +381 -0
  36. package/agile-context-engineering/templates/wiki/tech-debt-index.xml +125 -0
  37. package/agile-context-engineering/templates/wiki/testing-framework.xml +283 -0
  38. package/agile-context-engineering/utils/questioning.xml +111 -0
  39. package/agile-context-engineering/utils/ui-formatting.md +300 -0
  40. package/agile-context-engineering/workflows/execute-story.xml +1145 -0
  41. package/agile-context-engineering/workflows/help.xml +540 -0
  42. package/agile-context-engineering/workflows/init-coding-standards.xml +386 -0
  43. package/agile-context-engineering/workflows/map-story.xml +797 -0
  44. package/agile-context-engineering/workflows/map-subsystem.xml +1177 -0
  45. package/agile-context-engineering/workflows/map-system.xml +647 -0
  46. package/agile-context-engineering/workflows/plan-backlog.xml +1356 -0
  47. package/agile-context-engineering/workflows/plan-feature.xml +1495 -0
  48. package/agile-context-engineering/workflows/plan-product-vision.xml +342 -0
  49. package/agile-context-engineering/workflows/plan-story.xml +909 -0
  50. package/agile-context-engineering/workflows/research-external-solution.xml +659 -0
  51. package/agile-context-engineering/workflows/research-integration-solution.xml +712 -0
  52. package/agile-context-engineering/workflows/research-story-wiki.xml +474 -0
  53. package/agile-context-engineering/workflows/research-technical-solution.xml +762 -0
  54. package/agile-context-engineering/workflows/review-story.xml +281 -0
  55. package/bin/install.js +102 -166
  56. package/commands/ace/execute-story.md +137 -0
  57. package/commands/ace/help.md +93 -0
  58. package/commands/ace/init-coding-standards.md +83 -0
  59. package/commands/ace/map-story.md +156 -0
  60. package/commands/ace/map-subsystem.md +138 -0
  61. package/commands/ace/map-system.md +90 -0
  62. package/commands/ace/plan-backlog.md +83 -0
  63. package/commands/ace/plan-feature.md +89 -0
  64. package/commands/ace/plan-product-vision.md +81 -0
  65. package/commands/ace/plan-story.md +145 -0
  66. package/commands/ace/research-external-solution.md +138 -0
  67. package/commands/ace/research-integration-solution.md +135 -0
  68. package/commands/ace/research-story-wiki.md +116 -0
  69. package/commands/ace/research-technical-solution.md +147 -0
  70. package/commands/ace/review-story.md +109 -0
  71. package/package.json +5 -8
  72. package/agents/executor.md +0 -88
  73. package/agents/planner.md +0 -78
  74. package/agents/researcher.md +0 -77
  75. package/agents/verifier.md +0 -116
  76. package/commands/ace-execute-story.md +0 -114
  77. package/commands/ace-init.md +0 -254
  78. package/commands/ace-plan-epic.md +0 -79
  79. package/commands/ace-plan-feature.md +0 -78
  80. package/commands/ace-plan-project.md +0 -205
  81. package/commands/ace-plan-story.md +0 -97
  82. package/commands/ace-refine-story.md +0 -90
  83. package/commands/ace-verify-story.md +0 -127
@@ -0,0 +1,283 @@
1
+ <!-- Credits: Testing template content adapted from GSD (Get Shit Done) by @raisiqueira -->
2
+ <!-- Original source: .gsd/get-shit-done/templates/codebase/testing.md -->
3
+
4
+ <testing-framework>
5
+ <purpose>
6
+ Template for `.docs/wiki/testing-framework.md` — captures test framework, patterns, and
7
+ conventions for the project. Answers "How do I write and run tests that match existing patterns?"
8
+
9
+ **Purpose:** Document how tests are written and run. Guide for adding tests that match
10
+ existing patterns.
11
+ </purpose>
12
+
13
+ <template>
14
+ <test-framework>
15
+ ## Test Framework
16
+
17
+ **Runner:**
18
+ - [Framework: e.g., "Jest 29.x", "Vitest 1.x"]
19
+ - [Config: e.g., "jest.config.js in project root"]
20
+
21
+ **Assertion Library:**
22
+ - [Library: e.g., "built-in expect", "chai"]
23
+ - [Matchers: e.g., "toBe, toEqual, toThrow"]
24
+
25
+ **Run Commands:**
26
+ ```bash
27
+ [e.g., "npm test" or "npm run test"] # Run all tests
28
+ [e.g., "npm test -- --watch"] # Watch mode
29
+ [e.g., "npm test -- path/to/file.test.ts"] # Single file
30
+ [e.g., "npm run test:coverage"] # Coverage report
31
+ ```
32
+ </test-framework>
33
+
34
+ <test-file-organization>
35
+ ## Test File Organization
36
+
37
+ **Location:**
38
+ - [Pattern: e.g., "*.test.ts alongside source files"]
39
+ - [Alternative: e.g., "__tests__/ directory" or "separate tests/ tree"]
40
+
41
+ **Naming:**
42
+ - [Unit tests: e.g., "module-name.test.ts"]
43
+ - [Integration: e.g., "feature-name.integration.test.ts"]
44
+ - [E2E: e.g., "user-flow.e2e.test.ts"]
45
+
46
+ **Structure:**
47
+ ```
48
+ [Show actual directory pattern, e.g.:
49
+ src/
50
+ lib/
51
+ utils.ts
52
+ utils.test.ts
53
+ services/
54
+ user-service.ts
55
+ user-service.test.ts
56
+ ]
57
+ ```
58
+ </test-file-organization>
59
+
60
+ <test-structure>
61
+ ## Test Structure
62
+
63
+ **Suite Organization:**
64
+ ```typescript
65
+ [Show actual pattern used, e.g.:
66
+
67
+ describe('ModuleName', () => {
68
+ describe('functionName', () => {
69
+ it('should handle success case', () => {
70
+ // arrange
71
+ // act
72
+ // assert
73
+ });
74
+
75
+ it('should handle error case', () => {
76
+ // test code
77
+ });
78
+ });
79
+ });
80
+ ]
81
+ ```
82
+
83
+ **Patterns:**
84
+ - [Setup: e.g., "beforeEach for shared setup, avoid beforeAll"]
85
+ - [Teardown: e.g., "afterEach to clean up, restore mocks"]
86
+ - [Structure: e.g., "arrange/act/assert pattern required"]
87
+ </test-structure>
88
+
89
+ <mocking>
90
+ ## Mocking
91
+
92
+ **Framework:**
93
+ - [Tool: e.g., "Jest built-in mocking", "Vitest vi", "Sinon"]
94
+ - [Import mocking: e.g., "vi.mock() at top of file"]
95
+
96
+ **Patterns:**
97
+ ```typescript
98
+ [Show actual mocking pattern, e.g.:
99
+
100
+ // Mock external dependency
101
+ vi.mock('./external-service', () => ({
102
+ fetchData: vi.fn()
103
+ }));
104
+
105
+ // Mock in test
106
+ const mockFetch = vi.mocked(fetchData);
107
+ mockFetch.mockResolvedValue({ data: 'test' });
108
+ ]
109
+ ```
110
+
111
+ **What to Mock:**
112
+ - [e.g., "External APIs, file system, database"]
113
+ - [e.g., "Time/dates (use vi.useFakeTimers)"]
114
+ - [e.g., "Network calls (use mock fetch)"]
115
+
116
+ **What NOT to Mock:**
117
+ - [e.g., "Pure functions, utilities"]
118
+ - [e.g., "Internal business logic"]
119
+ </mocking>
120
+
121
+ <fixtures-and-factories>
122
+ ## Fixtures and Factories
123
+
124
+ **Test Data:**
125
+ ```typescript
126
+ [Show pattern for creating test data, e.g.:
127
+
128
+ // Factory pattern
129
+ function createTestUser(overrides?: Partial&lt;User&gt;): User {
130
+ return {
131
+ id: 'test-id',
132
+ name: 'Test User',
133
+ email: 'test@example.com',
134
+ ...overrides
135
+ };
136
+ }
137
+
138
+ // Fixture file
139
+ // tests/fixtures/users.ts
140
+ export const mockUsers = [/* ... */];
141
+ ]
142
+ ```
143
+
144
+ **Location:**
145
+ - [e.g., "tests/fixtures/ for shared fixtures"]
146
+ - [e.g., "factory functions in test file or tests/factories/"]
147
+ </fixtures-and-factories>
148
+
149
+ <coverage>
150
+ ## Coverage
151
+
152
+ **Requirements:**
153
+ - [Target: e.g., "80% line coverage", "no specific target"]
154
+ - [Enforcement: e.g., "CI blocks &lt;80%", "coverage for awareness only"]
155
+
156
+ **Configuration:**
157
+ - [Tool: e.g., "built-in coverage via --coverage flag"]
158
+ - [Exclusions: e.g., "exclude *.test.ts, config files"]
159
+
160
+ **View Coverage:**
161
+ ```bash
162
+ [e.g., "npm run test:coverage"]
163
+ [e.g., "open coverage/index.html"]
164
+ ```
165
+ </coverage>
166
+
167
+ <test-types>
168
+ ## Test Types
169
+
170
+ **Unit Tests:**
171
+ - [Scope: e.g., "test single function/class in isolation"]
172
+ - [Mocking: e.g., "mock all external dependencies"]
173
+ - [Speed: e.g., "must run in &lt;1s per test"]
174
+
175
+ **Integration Tests:**
176
+ - [Scope: e.g., "test multiple modules together"]
177
+ - [Mocking: e.g., "mock external services, use real internal modules"]
178
+ - [Setup: e.g., "use test database, seed data"]
179
+
180
+ **E2E Tests:**
181
+ - [Framework: e.g., "Playwright for E2E"]
182
+ - [Scope: e.g., "test full user flows"]
183
+ - [Location: e.g., "e2e/ directory separate from unit tests"]
184
+ </test-types>
185
+
186
+ <common-patterns>
187
+ ## Common Patterns
188
+
189
+ **Async Testing:**
190
+ ```typescript
191
+ [Show pattern, e.g.:
192
+
193
+ it('should handle async operation', async () => {
194
+ const result = await asyncFunction();
195
+ expect(result).toBe('expected');
196
+ });
197
+ ]
198
+ ```
199
+
200
+ **Error Testing:**
201
+ ```typescript
202
+ [Show pattern, e.g.:
203
+
204
+ it('should throw on invalid input', () => {
205
+ expect(() => functionCall()).toThrow('error message');
206
+ });
207
+
208
+ // Async error
209
+ it('should reject on failure', async () => {
210
+ await expect(asyncCall()).rejects.toThrow('error message');
211
+ });
212
+ ]
213
+ ```
214
+
215
+ **Snapshot Testing:**
216
+ - [Usage: e.g., "for React components only" or "not used"]
217
+ - [Location: e.g., "__snapshots__/ directory"]
218
+ </common-patterns>
219
+ </template>
220
+
221
+ <guidelines>
222
+
223
+ **What belongs in testing-framework.md:**
224
+ - Test framework and runner configuration
225
+ - Test file location and naming patterns
226
+ - Test structure (describe/it, beforeEach patterns)
227
+ - Mocking approach and examples
228
+ - Fixture/factory patterns
229
+ - Coverage requirements
230
+ - How to run tests (commands)
231
+ - Common testing patterns in actual code
232
+
233
+ **What does NOT belong here:**
234
+ - Specific test cases (defer to actual test files)
235
+ - Technology choices (that's system-architecture.md)
236
+ - CI/CD setup (that's deployment docs)
237
+
238
+ **When filling this template:**
239
+ - Check package.json scripts for test commands
240
+ - Find test config file (jest.config.js, vitest.config.ts)
241
+ - Read 3-5 existing test files to identify patterns
242
+ - Look for test utilities in tests/ or test-utils/
243
+ - Check for coverage configuration
244
+ - Document actual patterns used, not ideal patterns
245
+
246
+ **Useful for story planning when:**
247
+ - Adding new features (write matching tests)
248
+ - Refactoring (maintain test patterns)
249
+ - Fixing bugs (add regression tests)
250
+ - Understanding verification approach
251
+ - Setting up test infrastructure
252
+
253
+ **Analysis approach:**
254
+ - Check package.json for test framework and scripts
255
+ - Read test config file for coverage, setup
256
+ - Examine test file organization (collocated vs separate)
257
+ - Review 5 test files for patterns (mocking, structure, assertions)
258
+ - Look for test utilities, fixtures, factories
259
+ - Note any test types (unit, integration, e2e)
260
+ - Document commands for running tests
261
+
262
+ </guidelines>
263
+
264
+ <evolution>
265
+
266
+ Update when testing patterns or framework changes.
267
+
268
+ **Update triggers:**
269
+ - Test framework or runner changed (e.g., Jest to Vitest)
270
+ - Mocking approach changed
271
+ - New test type introduced (e.g., adding E2E tests)
272
+ - Coverage requirements changed
273
+ - Test file organization restructured
274
+ - New test utilities or factories added
275
+
276
+ **NOT an update trigger:**
277
+ - New test files added following existing patterns
278
+ - Individual test case additions
279
+ - Bug fixes in test code
280
+
281
+ </evolution>
282
+
283
+ </testing-framework>
@@ -0,0 +1,111 @@
1
+ <!--
2
+ The contents of this file are taken from GSD project
3
+ All credits go to: https://github.com/gsd-build/get-shit-done
4
+ -->
5
+ <questioning-guide>
6
+ <purpose>Help the user discover and articulate what they want to build by doing collaborative thinking.</purpose>
7
+
8
+ <philosophy>
9
+ **You are a thinking partner, not an interviewer.**
10
+ The user often starts from a rough and fuzzy idea. Your job is to help them sharpen it.
11
+ Ask questions that make them think "oh, I hadn't considered that" or "yes, that's exactly what I mean."
12
+ Don't interrogate. Collaborate. Don't follow a script. Follow the thread.
13
+ </philosophy>
14
+
15
+ <how-to-question>
16
+ **Start open.** Let them dump their mental model. Don't interrupt with structure.
17
+ **Follow energy.** Whatever they emphasized, dig into that. What excited them? What problem sparked this?
18
+ **Challenge vagueness.** Never accept fuzzy answers. "Good" means what? "Users" means who? "Simple" means how?
19
+ **Make the abstract concrete.** "Walk me through using this." "What does that actually look like?"
20
+ **Clarify ambiguity.** "When you say Z, do you mean A or B?" "You mentioned X — tell me more."
21
+ **Know when to stop.** When you understand what they want, why they want it, who it's for, and what done looks like — offer to proceed.
22
+ </how-to-question>
23
+
24
+ <question-types>
25
+ Use these as inspiration, not a checklist. Pick what's relevant to the thread.
26
+
27
+ **Motivation — why this exists:**
28
+ - "What prompted this?"
29
+ - "What are you doing today that this replaces?"
30
+ - "What would you do if this existed?"
31
+
32
+ **Concreteness — what it actually is:**
33
+ - "Walk me through using this"
34
+ - "You said X — what does that actually look like?"
35
+ - "Give me an example"
36
+
37
+ **Clarification — what they mean:**
38
+ - "When you say Z, do you mean A or B?"
39
+ - "You mentioned X — tell me more about that"
40
+
41
+ **Success — how you'll know it's working:**
42
+ - "How will you know this is working?"
43
+ - "What does done look like?"
44
+ </question-types>
45
+
46
+ <using-askuserquestion-tool>
47
+
48
+ Use AskUserQuestion to help users think by presenting concrete options to react to.
49
+
50
+ **Good options:**
51
+ - Interpretations of what they might mean
52
+ - Specific examples to confirm or deny
53
+ - Concrete choices that reveal priorities
54
+
55
+ **Bad options:**
56
+ - Generic categories ("Technical", "Business", "Other")
57
+ - Leading options that presume an answer
58
+ - Too many options (2-4 is ideal)
59
+
60
+ **Example — vague answer:**
61
+ User says "it should be fast"
62
+
63
+ - header: "Fast"
64
+ - question: "Fast how?"
65
+ - options: ["Sub-second response", "Handles large datasets", "Quick to build", "Let me explain"]
66
+
67
+ **Example — following a thread:**
68
+ User mentions "frustrated with current tools"
69
+
70
+ - header: "Frustration"
71
+ - question: "What specifically frustrates you?"
72
+ - options: ["Too many clicks", "Missing features", "Unreliable", "Let me explain"]
73
+
74
+ </using-askuserquestion-tool>
75
+
76
+ <context-checklist>
77
+ Use this as a **background checklist**, not a conversation structure. Check these mentally as you go. If gaps remain, weave questions naturally.
78
+
79
+ - [ ] What they're building (concrete enough to explain to a stranger)
80
+ - [ ] Why it needs to exist (the problem or desire driving it)
81
+ - [ ] Who it's for (even if just themselves)
82
+ - [ ] What "done" looks like (observable outcomes)
83
+
84
+ Four things. If they volunteer more, capture it.
85
+ </context-checklist>
86
+
87
+ <decision-gate>
88
+ When you could write a clear product-vision.md, offer to proceed:
89
+
90
+ - header: "Ready?"
91
+ - question: "I think I understand what you're after. Ready to create product-vision.md?"
92
+ - options:
93
+ - "Create product-vision.md" — Let's move forward
94
+ - "Keep exploring" — I want to share more / ask me more
95
+
96
+ If "Keep exploring" — ask what they want to add or identify gaps and probe naturally.
97
+
98
+ Loop until "Create product-vision.md" selected.
99
+ </decision-gate>
100
+
101
+ <anti-patterns>
102
+ - **Checklist walking** — Going through domains regardless of what they said
103
+ - **Canned questions** — "What's your core value?" "What's out of scope?" regardless of context
104
+ - **Corporate speak** — "What are your success criteria?" "Who are your stakeholders?"
105
+ - **Interrogation** — Firing questions without building on answers
106
+ - **Rushing** — Minimizing questions to get to "the work"
107
+ - **Shallow acceptance** — Taking vague answers without probing
108
+ - **Premature constraints** — Asking about tech stack before understanding the idea
109
+ </anti-patterns>
110
+
111
+ </questioning-guide>
@@ -0,0 +1,300 @@
1
+ <ui_patterns>
2
+
3
+ # ACE UI Formatting Guide
4
+
5
+ All agent output MUST follow these patterns. Consistency is the product.
6
+
7
+ ---
8
+
9
+ ## Brand Identity
10
+
11
+ - **Prefix**: `ACE` — used in all banners and headers
12
+ - **Separator**: `>` — routes context after prefix
13
+ - **Hierarchy**: `Epic > Feature > Story > Task`
14
+ - **Voice**: Precise, confident, structured. No fluff. No filler.
15
+
16
+ ---
17
+
18
+ ## Banners
19
+
20
+ Banners frame every major output block. They signal phase transitions.
21
+
22
+ ### Primary Banner (phase start/end)
23
+
24
+ ```
25
+ ╔══════════════════════════════════════════════════╗
26
+ ║ ACE > Plan Project ║
27
+ ╚══════════════════════════════════════════════════╝
28
+ ```
29
+
30
+ ### Section Banner (within a phase)
31
+
32
+ ```
33
+ ┌──────────────────────────────────────────────────┐
34
+ │ ACE > Refine Story > E1-F2-S3 │
35
+ └──────────────────────────────────────────────────┘
36
+ ```
37
+
38
+ ### Completion Banner
39
+
40
+ ```
41
+ ╔══════════════════════════════════════════════════╗
42
+ ║ ACE > Story Verified ║
43
+ ║ E1-F2-S3 "User can reset password" ║
44
+ ╚══════════════════════════════════════════════════╝
45
+ ```
46
+
47
+ ### Rules
48
+
49
+ - Banner width: **exactly 52 characters** inner width
50
+ - Left-pad content with **2 spaces** inside the border
51
+ - Right-pad to fill the border width
52
+ - NEVER mix border styles (`═══` for primary, `───` for section)
53
+ - ALWAYS include the `ACE >` prefix
54
+
55
+ ---
56
+
57
+ ## Progress Indicators
58
+
59
+ ### Phase Progress Bar
60
+
61
+ ```
62
+ Progress [████████████░░░░░░░░] 60% (3/5 tasks)
63
+ ```
64
+
65
+ - Bar width: **20 characters** fixed
66
+ - `█` = completed, `░` = remaining
67
+ - Always show percentage AND fraction
68
+
69
+ ### Sprint Progress Table
70
+
71
+ ```
72
+ Story Status Tasks Progress
73
+ ───────── ────── ────── ────────
74
+ E1-F1-S1 done 4/4 ████ 100%
75
+ E1-F1-S2 active 2/6 █░░░ 33%
76
+ E1-F1-S3 queued 0/3 ░░░░ 0%
77
+ ```
78
+
79
+ ### Story Task Tracker
80
+
81
+ ```
82
+ Tasks for E1-F2-S3:
83
+ ────────────────────
84
+ [x] Set up password reset endpoint
85
+ [x] Create email template
86
+ [ ] Add rate limiting << active
87
+ [ ] Write integration tests
88
+ [ ] Update API documentation
89
+ ```
90
+
91
+ - `[x]` = done, `[ ]` = pending
92
+ - `<< active` marker on current task
93
+ - Indented with **2 spaces**
94
+
95
+ ### Status Symbols
96
+
97
+ | Symbol | Meaning | When to use |
98
+ |--------|---------------|--------------------------------|
99
+ | `[x]` | Done | Task/story completed |
100
+ | `[ ]` | Pending | Task/story not started |
101
+ | `[~]` | In progress | Currently executing |
102
+ | `[!]` | Blocked | Cannot proceed, dependency |
103
+ | `[?]` | Needs input | Waiting on user decision |
104
+
105
+ ---
106
+
107
+ ## Hierarchy Display
108
+
109
+ ### Backlog Tree
110
+
111
+ ```
112
+ E1 Platform Foundation
113
+ ├── F1 User Authentication 3 stories
114
+ │ ├── S1 Sign up flow [x] done
115
+ │ ├── S2 Login flow [~] active
116
+ │ └── S3 Password reset [ ] queued
117
+ ├── F2 Dashboard 2 stories
118
+ │ ├── S1 Layout scaffolding [ ] queued
119
+ │ └── S2 Data widgets [ ] queued
120
+ └── F3 Settings Page 0 stories
121
+ ```
122
+
123
+ - Tree characters: `├──`, `└──`, `│`
124
+ - ID left-aligned, name after **2 spaces**, metadata right-aligned
125
+ - Leaf nodes show status symbol
126
+
127
+ ### Breadcrumb Navigation
128
+
129
+ ```
130
+ ACE > E1 Platform Foundation > F2 Dashboard > S1 Layout scaffolding
131
+ ```
132
+
133
+ - Always show full path from Epic down
134
+ - Separate levels with ` > `
135
+
136
+ ---
137
+
138
+ ## Content Blocks
139
+
140
+ ### Info Block
141
+
142
+ ```
143
+ i Story E1-F1-S2 has 6 tasks estimated at ~4 hours total.
144
+ Prerequisites: E1-F1-S1 must be complete.
145
+ ```
146
+
147
+ - Prefix: `i` (lowercase, 2-space indent)
148
+ - Continuation lines aligned under text, not under prefix
149
+
150
+ ### Warning Block
151
+
152
+ ```
153
+ ! Story E1-F2-S3 has no acceptance criteria defined.
154
+ Run /ace:refine-story E1-F2-S3 before executing.
155
+ ```
156
+
157
+ - Prefix: `!`
158
+ - Include actionable next step
159
+
160
+ ### Success Block
161
+
162
+ ```
163
+ + All 4 tasks completed. Story E1-F1-S1 is done.
164
+ Commit: a3f7c2d "feat(auth): implement sign-up flow"
165
+ ```
166
+
167
+ - Prefix: `+`
168
+ - Include commit hash when relevant
169
+
170
+ ### Error Block
171
+
172
+ ```
173
+ x Task 3 failed: test suite has 2 failing assertions.
174
+ See output above. Fix and re-run /ace:execute-story E1-F1-S2.
175
+ ```
176
+
177
+ - Prefix: `x`
178
+ - Always include recovery instruction
179
+
180
+ ---
181
+
182
+ ## Decision Points
183
+
184
+ When presenting choices to the user:
185
+
186
+ ```
187
+ ┌──────────────────────────────────────────────────┐
188
+ │ ACE > Decision Required │
189
+ └──────────────────────────────────────────────────┘
190
+
191
+ This feature has two possible approaches:
192
+
193
+ [A] API-first — Build endpoints, then UI
194
+ Faster backend iteration, frontend blocked initially.
195
+
196
+ [B] Vertical slice — Build one flow end-to-end
197
+ Slower start, but validates assumptions early.
198
+
199
+ Recommendation: [B] for new domains, [A] for well-understood ones.
200
+ ```
201
+
202
+ - Options labeled `[A]`, `[B]`, `[C]` — never more than 4
203
+ - Each option: label + short name + description on next line
204
+ - Recommendation line at the end if applicable
205
+
206
+ ---
207
+
208
+ ## Transitions & Flow
209
+
210
+ ### Next Action Block
211
+
212
+ Every phase completion MUST end with a "Next" block:
213
+
214
+ ```
215
+ Next > /ace:plan-feature E1-F1
216
+ Break this epic into features and stories.
217
+ ```
218
+
219
+ - Format: `Next >` followed by the command
220
+ - Second line: brief description of what it does
221
+ - This is MANDATORY after every completion
222
+
223
+ ### Phase Transition
224
+
225
+ ```
226
+ ╔══════════════════════════════════════════════════╗
227
+ ║ ACE > Story Refined ║
228
+ ║ E1-F1-S2 ready for execution ║
229
+ ╚══════════════════════════════════════════════════╝
230
+
231
+ Summary:
232
+ ────────
233
+ 6 tasks defined, all acceptance criteria mapped.
234
+ Estimated effort: ~4 hours.
235
+
236
+ Next > /ace:execute-story E1-F1-S2
237
+ Execute this story with atomic commits.
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Commit Messages
243
+
244
+ ACE enforces conventional commits tied to the hierarchy:
245
+
246
+ ```
247
+ feat(auth): implement email verification flow
248
+
249
+ Story: E1-F1-S2
250
+ Task: 3/6 — Add verification endpoint
251
+ ```
252
+
253
+ - First line: conventional commit format
254
+ - Blank line, then `Story:` and `Task:` metadata
255
+ - Keep first line under 72 characters
256
+
257
+ ---
258
+
259
+ ## Spacing & Indentation Rules
260
+
261
+ | Element | Indentation |
262
+ |----------------------|-------------|
263
+ | Banner content | 2 spaces |
264
+ | Body text | 2 spaces |
265
+ | Nested list items | 4 spaces |
266
+ | Code/command blocks | 4 spaces |
267
+ | Table content | 2 spaces |
268
+ | Continuation lines | Align under text start |
269
+
270
+ - **One blank line** between sections
271
+ - **Two blank lines** before a new banner
272
+ - **No trailing whitespace**
273
+ - **No more than 3 consecutive blank lines** anywhere
274
+
275
+ ---
276
+
277
+ ## Typography
278
+
279
+ - IDs are **always monospace-styled**: `E1`, `F2`, `S3`
280
+ - Commands are **always code-formatted**: `/ace:plan-story`
281
+ - File paths are **always code-formatted**: `.ace/backlog/E1/F1-auth.md`
282
+ - Emphasis for key terms: **bold** only, never *italic* in output
283
+ - Numbers: use digits, not words (`3 stories`, not `three stories`)
284
+
285
+ ---
286
+
287
+ ## Anti-Patterns
288
+
289
+ - Varying banner widths or border styles within a session
290
+ - Missing `ACE >` prefix in banners
291
+ - Random emoji in output — ACE uses **zero emoji** in structured output
292
+ - Skipping the `Next >` block after a phase completion
293
+ - Using prose paragraphs where a table or list would be clearer
294
+ - Inconsistent ID formatting (`e1-f1` vs `E1-F1` — always uppercase)
295
+ - Status text without a symbol (`done` alone — use `[x] done`)
296
+ - Banners for trivial messages — only use banners for phase boundaries
297
+ - Mixing `ACE >` with other prefix styles
298
+ - Omitting the hierarchy breadcrumb when context is ambiguous
299
+
300
+ </ui_patterns>