ace-experience 0.1.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/LICENSE +22 -0
- package/README.md +40 -0
- package/ace/references/continuation-format.md +249 -0
- package/ace/references/gates.md +1078 -0
- package/ace/references/git-integration.md +254 -0
- package/ace/references/horsepower-profiles.md +73 -0
- package/ace/references/planning-config.md +189 -0
- package/ace/references/questioning.md +141 -0
- package/ace/references/tdd.md +263 -0
- package/ace/references/ui-brand.md +160 -0
- package/ace/references/verification-patterns.md +612 -0
- package/ace/templates/architect-prompt.md +117 -0
- package/ace/templates/brief.md +184 -0
- package/ace/templates/codebase/architecture.md +264 -0
- package/ace/templates/codebase/concerns.md +310 -0
- package/ace/templates/codebase/conventions.md +307 -0
- package/ace/templates/codebase/integrations.md +280 -0
- package/ace/templates/codebase/stack.md +186 -0
- package/ace/templates/codebase/structure.md +295 -0
- package/ace/templates/codebase/testing.md +480 -0
- package/ace/templates/config.json +36 -0
- package/ace/templates/continue-here.md +78 -0
- package/ace/templates/debug.md +159 -0
- package/ace/templates/detective-prompt.md +91 -0
- package/ace/templates/intel.md +283 -0
- package/ace/templates/milestone-archive.md +123 -0
- package/ace/templates/milestone.md +115 -0
- package/ace/templates/proof.md +322 -0
- package/ace/templates/pulse.md +176 -0
- package/ace/templates/recap.md +246 -0
- package/ace/templates/research/architecture.md +204 -0
- package/ace/templates/research/features.md +147 -0
- package/ace/templates/research/pitfalls.md +200 -0
- package/ace/templates/research/recap.md +170 -0
- package/ace/templates/research/stack.md +120 -0
- package/ace/templates/research-lite.md +146 -0
- package/ace/templates/research.md +552 -0
- package/ace/templates/specs.md +231 -0
- package/ace/templates/stage-prompt.md +567 -0
- package/ace/templates/track.md +202 -0
- package/ace/templates/uat.md +247 -0
- package/ace/templates/user-setup.md +311 -0
- package/ace/workflows/audit-stage.md +628 -0
- package/ace/workflows/audit-work.md +596 -0
- package/ace/workflows/continue-project.md +305 -0
- package/ace/workflows/diagnose-issues.md +231 -0
- package/ace/workflows/list-assumptions.md +178 -0
- package/ace/workflows/map-codebase.md +322 -0
- package/ace/workflows/research-stage.md +289 -0
- package/ace/workflows/run-plan.md +1844 -0
- package/ace/workflows/run-stage.md +686 -0
- package/ace/workflows/scope-stage.md +433 -0
- package/ace/workflows/ship-milestone.md +833 -0
- package/ace/workflows/transition.md +556 -0
- package/agents/ace-architect.md +1415 -0
- package/agents/ace-auditor.md +778 -0
- package/agents/ace-codebase-mapper.md +738 -0
- package/agents/ace-detective.md +1203 -0
- package/agents/ace-integration-checker.md +423 -0
- package/agents/ace-navigator.md +605 -0
- package/agents/ace-plan-reviewer.md +812 -0
- package/agents/ace-project-scout.md +865 -0
- package/agents/ace-runner.md +784 -0
- package/agents/ace-stage-scout.md +669 -0
- package/agents/ace-synthesizer.md +256 -0
- package/bin/install.js +1432 -0
- package/commands/ace.add-stage.md +211 -0
- package/commands/ace.add-todo.md +194 -0
- package/commands/ace.audit-milestone.md +277 -0
- package/commands/ace.audit.md +219 -0
- package/commands/ace.check-todos.md +229 -0
- package/commands/ace.complete-milestone.md +134 -0
- package/commands/ace.continue.md +46 -0
- package/commands/ace.dash.md +308 -0
- package/commands/ace.debug.md +169 -0
- package/commands/ace.discuss-stage.md +86 -0
- package/commands/ace.help.md +465 -0
- package/commands/ace.insert-stage.md +231 -0
- package/commands/ace.list-stage-assumptions.md +49 -0
- package/commands/ace.map-codebase.md +71 -0
- package/commands/ace.new-milestone.md +710 -0
- package/commands/ace.pause.md +132 -0
- package/commands/ace.plan-milestone-gaps.md +295 -0
- package/commands/ace.plan-stage.md +568 -0
- package/commands/ace.remove-stage.md +353 -0
- package/commands/ace.research-stage.md +200 -0
- package/commands/ace.run-stage.md +343 -0
- package/commands/ace.set-profile.md +116 -0
- package/commands/ace.settings.md +151 -0
- package/commands/ace.start.md +1008 -0
- package/commands/ace.status.md +364 -0
- package/hooks/dist/ace-check-update.js +67 -0
- package/hooks/dist/ace-statusline.js +96 -0
- package/package.json +85 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ace.dash
|
|
3
|
+
description: Execute a quick task with ACE guarantees (atomic commits, state tracking) but skip optional agents
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Edit
|
|
8
|
+
- Glob
|
|
9
|
+
- Grep
|
|
10
|
+
- Bash
|
|
11
|
+
- Task
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<objective>
|
|
16
|
+
Execute small, ad-hoc tasks with ACE guarantees (atomic commits, pulse.md tracking) while skipping optional agents (research, plan-reviewer, auditor).
|
|
17
|
+
|
|
18
|
+
Dash mode is the same system with a shorter path:
|
|
19
|
+
- Spawns ace-architect (quick mode) + ace-runner(s)
|
|
20
|
+
- Skips ace-stage-scout, ace-plan-reviewer, ace-auditor
|
|
21
|
+
- Dash tasks live in `.ace/quick/` separate from planned stages
|
|
22
|
+
- Updates pulse.md "Quick Tasks Completed" table (NOT track.md)
|
|
23
|
+
|
|
24
|
+
Use when: You know exactly what to do and the task is small enough to not need research or verification.
|
|
25
|
+
</objective>
|
|
26
|
+
|
|
27
|
+
<execution_context>
|
|
28
|
+
Orchestration is inline - no separate workflow file. Dash mode is deliberately simpler than full ACE.
|
|
29
|
+
</execution_context>
|
|
30
|
+
|
|
31
|
+
<context>
|
|
32
|
+
@.ace/pulse.md
|
|
33
|
+
</context>
|
|
34
|
+
|
|
35
|
+
<process>
|
|
36
|
+
**Step 0: Resolve Horsepower Profile**
|
|
37
|
+
|
|
38
|
+
Read horsepower profile for agent spawning:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
HORSEPOWER=$(cat .ace/config.json 2>/dev/null | grep -o '"horsepower"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Default to "balanced" if not set.
|
|
45
|
+
|
|
46
|
+
**Model lookup table:**
|
|
47
|
+
|
|
48
|
+
| Agent | max | balanced | eco |
|
|
49
|
+
|-------|-----|----------|-----|
|
|
50
|
+
| ace-architect | opus | opus | sonnet |
|
|
51
|
+
| ace-runner | opus | sonnet | sonnet |
|
|
52
|
+
|
|
53
|
+
Store resolved models for use in Task calls below.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
**Step 1: Pre-flight validation**
|
|
58
|
+
|
|
59
|
+
Check that an active ACE project exists:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
if [ ! -f .ace/track.md ]; then
|
|
63
|
+
echo "Dash mode requires an active project with track.md."
|
|
64
|
+
echo "Run /ace.start first."
|
|
65
|
+
exit 1
|
|
66
|
+
fi
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If validation fails, stop immediately with the error message.
|
|
70
|
+
|
|
71
|
+
Dash tasks can run mid-stage - validation only checks track.md exists, not stage status.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
**Step 2: Get task description**
|
|
76
|
+
|
|
77
|
+
Prompt user interactively for the task description:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
AskUserQuestion(
|
|
81
|
+
header: "Dash Task",
|
|
82
|
+
question: "What do you want to do?",
|
|
83
|
+
followUp: null
|
|
84
|
+
)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Store response as `$DESCRIPTION`.
|
|
88
|
+
|
|
89
|
+
If empty, re-prompt: "Please provide a task description."
|
|
90
|
+
|
|
91
|
+
Generate slug from description:
|
|
92
|
+
```bash
|
|
93
|
+
slug=$(echo "$DESCRIPTION" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//;s/-$//' | cut -c1-40)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
**Step 3: Calculate next dash task number**
|
|
99
|
+
|
|
100
|
+
Ensure `.ace/quick/` directory exists and find the next sequential number:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Ensure .ace/quick/ exists
|
|
104
|
+
mkdir -p .ace/quick
|
|
105
|
+
|
|
106
|
+
# Find highest existing number and increment
|
|
107
|
+
last=$(ls -1d .ace/quick/[0-9][0-9][0-9]-* 2>/dev/null | sort -r | head -1 | xargs -I{} basename {} | grep -oE '^[0-9]+')
|
|
108
|
+
|
|
109
|
+
if [ -z "$last" ]; then
|
|
110
|
+
next_num="001"
|
|
111
|
+
else
|
|
112
|
+
next_num=$(printf "%03d" $((10#$last + 1)))
|
|
113
|
+
fi
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
**Step 4: Create dash task directory**
|
|
119
|
+
|
|
120
|
+
Create the directory for this dash task:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
DASH_DIR=".ace/quick/${next_num}-${slug}"
|
|
124
|
+
mkdir -p "$DASH_DIR"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Report to user:
|
|
128
|
+
```
|
|
129
|
+
Creating dash task ${next_num}: ${DESCRIPTION}
|
|
130
|
+
Directory: ${DASH_DIR}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Store `$DASH_DIR` for use in orchestration.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
**Step 5: Spawn architect (quick mode)**
|
|
138
|
+
|
|
139
|
+
Spawn ace-architect with quick mode context:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Task(
|
|
143
|
+
prompt="
|
|
144
|
+
<planning_context>
|
|
145
|
+
|
|
146
|
+
**Mode:** quick
|
|
147
|
+
**Directory:** ${DASH_DIR}
|
|
148
|
+
**Description:** ${DESCRIPTION}
|
|
149
|
+
|
|
150
|
+
**Project State:**
|
|
151
|
+
@.ace/pulse.md
|
|
152
|
+
|
|
153
|
+
</planning_context>
|
|
154
|
+
|
|
155
|
+
<constraints>
|
|
156
|
+
- Create a SINGLE run with 1-3 focused tasks
|
|
157
|
+
- Dash tasks should be atomic and self-contained
|
|
158
|
+
- No research stage, no reviewer stage
|
|
159
|
+
- Target ~30% context usage (simple, focused)
|
|
160
|
+
</constraints>
|
|
161
|
+
|
|
162
|
+
<output>
|
|
163
|
+
Write run to: ${DASH_DIR}/${next_num}-run.md
|
|
164
|
+
Return: ## PLANNING COMPLETE with run path
|
|
165
|
+
</output>
|
|
166
|
+
",
|
|
167
|
+
subagent_type="ace-architect",
|
|
168
|
+
model="{architect_model}",
|
|
169
|
+
description="Dash run: ${DESCRIPTION}"
|
|
170
|
+
)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
After architect returns:
|
|
174
|
+
1. Verify run exists at `${DASH_DIR}/${next_num}-run.md`
|
|
175
|
+
2. Extract run count (typically 1 for dash tasks)
|
|
176
|
+
3. Report: "Run created: ${DASH_DIR}/${next_num}-run.md"
|
|
177
|
+
|
|
178
|
+
If run not found, error: "Architect failed to create ${next_num}-run.md"
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
**Step 6: Spawn runner**
|
|
183
|
+
|
|
184
|
+
Spawn ace-runner with run reference:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
Task(
|
|
188
|
+
prompt="
|
|
189
|
+
Execute dash task ${next_num}.
|
|
190
|
+
|
|
191
|
+
Run: @${DASH_DIR}/${next_num}-run.md
|
|
192
|
+
Project state: @.ace/pulse.md
|
|
193
|
+
|
|
194
|
+
<constraints>
|
|
195
|
+
- Execute all tasks in the run
|
|
196
|
+
- Commit each task atomically
|
|
197
|
+
- Create recap at: ${DASH_DIR}/${next_num}-recap.md
|
|
198
|
+
- Do NOT update track.md (dash tasks are separate from planned stages)
|
|
199
|
+
</constraints>
|
|
200
|
+
",
|
|
201
|
+
subagent_type="ace-runner",
|
|
202
|
+
model="{runner_model}",
|
|
203
|
+
description="Execute: ${DESCRIPTION}"
|
|
204
|
+
)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
After runner returns:
|
|
208
|
+
1. Verify recap exists at `${DASH_DIR}/${next_num}-recap.md`
|
|
209
|
+
2. Extract commit hash from runner output
|
|
210
|
+
3. Report completion status
|
|
211
|
+
|
|
212
|
+
If recap not found, error: "Runner failed to create ${next_num}-recap.md"
|
|
213
|
+
|
|
214
|
+
Note: For dash tasks producing multiple runs (rare), spawn runners in parallel batches per run-stage patterns.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
**Step 7: Update pulse.md**
|
|
219
|
+
|
|
220
|
+
Update pulse.md with dash task completion record.
|
|
221
|
+
|
|
222
|
+
**7a. Check if "Quick Tasks Completed" section exists:**
|
|
223
|
+
|
|
224
|
+
Read pulse.md and check for `### Quick Tasks Completed` section.
|
|
225
|
+
|
|
226
|
+
**7b. If section doesn't exist, create it:**
|
|
227
|
+
|
|
228
|
+
Insert after `### Blockers/Concerns` section:
|
|
229
|
+
|
|
230
|
+
```markdown
|
|
231
|
+
### Quick Tasks Completed
|
|
232
|
+
|
|
233
|
+
| # | Description | Date | Commit | Directory |
|
|
234
|
+
|---|-------------|------|--------|-----------|
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**7c. Append new row to table:**
|
|
238
|
+
|
|
239
|
+
```markdown
|
|
240
|
+
| ${next_num} | ${DESCRIPTION} | $(date +%Y-%m-%d) | ${commit_hash} | [${next_num}-${slug}](./quick/${next_num}-${slug}/) |
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**7d. Update "Last activity" line:**
|
|
244
|
+
|
|
245
|
+
Find and update the line:
|
|
246
|
+
```
|
|
247
|
+
Last activity: $(date +%Y-%m-%d) - Completed dash task ${next_num}: ${DESCRIPTION}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Use Edit tool to make these changes atomically
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
**Step 8: Final commit and completion**
|
|
255
|
+
|
|
256
|
+
Stage and commit dash task artifacts:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
# Stage dash task artifacts
|
|
260
|
+
git add ${DASH_DIR}/${next_num}-run.md
|
|
261
|
+
git add ${DASH_DIR}/${next_num}-recap.md
|
|
262
|
+
git add .ace/pulse.md
|
|
263
|
+
|
|
264
|
+
# Commit with dash task format
|
|
265
|
+
git commit -m "$(cat <<'EOF'
|
|
266
|
+
docs(dash-${next_num}): ${DESCRIPTION}
|
|
267
|
+
|
|
268
|
+
Dash task completed.
|
|
269
|
+
|
|
270
|
+
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
|
271
|
+
EOF
|
|
272
|
+
)"
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Get final commit hash:
|
|
276
|
+
```bash
|
|
277
|
+
commit_hash=$(git rev-parse --short HEAD)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Display completion output:
|
|
281
|
+
```
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
ACE > DASH TASK COMPLETE
|
|
285
|
+
|
|
286
|
+
Dash Task ${next_num}: ${DESCRIPTION}
|
|
287
|
+
|
|
288
|
+
Recap: ${DASH_DIR}/${next_num}-recap.md
|
|
289
|
+
Commit: ${commit_hash}
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
Ready for next task: /ace.dash
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
</process>
|
|
297
|
+
|
|
298
|
+
<success_criteria>
|
|
299
|
+
- [ ] track.md validation passes
|
|
300
|
+
- [ ] User provides task description
|
|
301
|
+
- [ ] Slug generated (lowercase, hyphens, max 40 chars)
|
|
302
|
+
- [ ] Next number calculated (001, 002, 003...)
|
|
303
|
+
- [ ] Directory created at `.ace/quick/NNN-slug/`
|
|
304
|
+
- [ ] `${next_num}-run.md` created by architect
|
|
305
|
+
- [ ] `${next_num}-recap.md` created by runner
|
|
306
|
+
- [ ] pulse.md updated with dash task row
|
|
307
|
+
- [ ] Artifacts committed
|
|
308
|
+
</success_criteria>
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ace.debug
|
|
3
|
+
description: Systematic debugging with persistent state across context resets
|
|
4
|
+
argument-hint: [issue description]
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Task
|
|
9
|
+
- AskUserQuestion
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Debug issues using scientific method with subagent isolation.
|
|
14
|
+
|
|
15
|
+
**Orchestrator role:** Gather symptoms, spawn ace-detective agent, handle gates, spawn continuations.
|
|
16
|
+
|
|
17
|
+
**Why subagent:** Investigation burns context fast (reading files, forming hypotheses, testing). Fresh 200k context per investigation. Main context stays lean for user interaction.
|
|
18
|
+
</objective>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
User's issue: $ARGUMENTS
|
|
22
|
+
|
|
23
|
+
Check for active sessions:
|
|
24
|
+
```bash
|
|
25
|
+
ls .ace/debug/*.md 2>/dev/null | grep -v resolved | head -5
|
|
26
|
+
```
|
|
27
|
+
</context>
|
|
28
|
+
|
|
29
|
+
<process>
|
|
30
|
+
|
|
31
|
+
## 0. Resolve Horsepower Profile
|
|
32
|
+
|
|
33
|
+
Read horsepower profile for agent spawning:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
HORSEPOWER=$(cat .ace/config.json 2>/dev/null | grep -o '"horsepower"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Default to "balanced" if not set.
|
|
40
|
+
|
|
41
|
+
**Model lookup table:**
|
|
42
|
+
|
|
43
|
+
| Agent | max | balanced | eco |
|
|
44
|
+
|-------|---------|----------|--------|
|
|
45
|
+
| ace-detective | opus | sonnet | sonnet |
|
|
46
|
+
|
|
47
|
+
Store resolved model for use in Task calls below.
|
|
48
|
+
|
|
49
|
+
## 1. Check Active Sessions
|
|
50
|
+
|
|
51
|
+
If active sessions exist AND no $ARGUMENTS:
|
|
52
|
+
- List sessions with status, hypothesis, next action
|
|
53
|
+
- User picks number to resume OR describes new issue
|
|
54
|
+
|
|
55
|
+
If $ARGUMENTS provided OR user describes new issue:
|
|
56
|
+
- Continue to symptom gathering
|
|
57
|
+
|
|
58
|
+
## 2. Gather Symptoms (if new issue)
|
|
59
|
+
|
|
60
|
+
Use AskUserQuestion for each:
|
|
61
|
+
|
|
62
|
+
1. **Expected behavior** - What should happen?
|
|
63
|
+
2. **Actual behavior** - What happens instead?
|
|
64
|
+
3. **Error messages** - Any errors? (paste or describe)
|
|
65
|
+
4. **Timeline** - When did this start? Ever worked?
|
|
66
|
+
5. **Reproduction** - How do you trigger it?
|
|
67
|
+
|
|
68
|
+
After all gathered, confirm ready to investigate.
|
|
69
|
+
|
|
70
|
+
## 3. Spawn ace-detective Agent
|
|
71
|
+
|
|
72
|
+
Fill prompt and spawn:
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
<objective>
|
|
76
|
+
Investigate issue: {slug}
|
|
77
|
+
|
|
78
|
+
**Summary:** {trigger}
|
|
79
|
+
</objective>
|
|
80
|
+
|
|
81
|
+
<symptoms>
|
|
82
|
+
expected: {expected}
|
|
83
|
+
actual: {actual}
|
|
84
|
+
errors: {errors}
|
|
85
|
+
reproduction: {reproduction}
|
|
86
|
+
timeline: {timeline}
|
|
87
|
+
</symptoms>
|
|
88
|
+
|
|
89
|
+
<mode>
|
|
90
|
+
symptoms_prefilled: true
|
|
91
|
+
goal: find_and_fix
|
|
92
|
+
</mode>
|
|
93
|
+
|
|
94
|
+
<debug_file>
|
|
95
|
+
Create: .ace/debug/{slug}.md
|
|
96
|
+
</debug_file>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Task(
|
|
101
|
+
prompt=filled_prompt,
|
|
102
|
+
subagent_type="ace-detective",
|
|
103
|
+
model="{detective_model}",
|
|
104
|
+
description="Debug {slug}"
|
|
105
|
+
)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 4. Handle Agent Return
|
|
109
|
+
|
|
110
|
+
**If `## CULPRIT FOUND`:**
|
|
111
|
+
- Display root cause and evidence summary
|
|
112
|
+
- Offer options:
|
|
113
|
+
- "Fix now" - spawn fix subagent
|
|
114
|
+
- "Plan fix" - suggest ace.plan-stage --gaps
|
|
115
|
+
- "Manual fix" - done
|
|
116
|
+
|
|
117
|
+
**If `## GATE REACHED`:**
|
|
118
|
+
- Present gate details to user
|
|
119
|
+
- Get user response
|
|
120
|
+
- Spawn continuation agent (see step 5)
|
|
121
|
+
|
|
122
|
+
**If `## INVESTIGATION INCONCLUSIVE`:**
|
|
123
|
+
- Show what was checked and eliminated
|
|
124
|
+
- Offer options:
|
|
125
|
+
- "Continue investigating" - spawn new agent with additional context
|
|
126
|
+
- "Manual investigation" - done
|
|
127
|
+
- "Add more context" - gather more symptoms, spawn again
|
|
128
|
+
|
|
129
|
+
## 5. Spawn Continuation Agent (After Gate)
|
|
130
|
+
|
|
131
|
+
When user responds to gate, spawn fresh agent:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
<objective>
|
|
135
|
+
Continue debugging {slug}. Evidence is in the debug file.
|
|
136
|
+
</objective>
|
|
137
|
+
|
|
138
|
+
<prior_state>
|
|
139
|
+
Debug file: @.ace/debug/{slug}.md
|
|
140
|
+
</prior_state>
|
|
141
|
+
|
|
142
|
+
<checkpoint_response>
|
|
143
|
+
**Type:** {checkpoint_type}
|
|
144
|
+
**Response:** {user_response}
|
|
145
|
+
</checkpoint_response>
|
|
146
|
+
|
|
147
|
+
<mode>
|
|
148
|
+
goal: find_and_fix
|
|
149
|
+
</mode>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Task(
|
|
154
|
+
prompt=continuation_prompt,
|
|
155
|
+
subagent_type="ace-detective",
|
|
156
|
+
model="{detective_model}",
|
|
157
|
+
description="Continue debug {slug}"
|
|
158
|
+
)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
</process>
|
|
162
|
+
|
|
163
|
+
<success_criteria>
|
|
164
|
+
- [ ] Active sessions checked
|
|
165
|
+
- [ ] Symptoms gathered (if new)
|
|
166
|
+
- [ ] ace-detective spawned with context
|
|
167
|
+
- [ ] Gates handled correctly
|
|
168
|
+
- [ ] Root cause confirmed before fixing
|
|
169
|
+
</success_criteria>
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ace.discuss-stage
|
|
3
|
+
description: Gather stage context through adaptive questioning before architecting
|
|
4
|
+
argument-hint: "<stage>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- AskUserQuestion
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<objective>
|
|
15
|
+
Extract implementation decisions that downstream agents need — scout and architect will use intel.md to know what to investigate and what choices are locked.
|
|
16
|
+
|
|
17
|
+
**How it works:**
|
|
18
|
+
1. Analyze the stage to identify gray areas (UI, UX, behavior, etc.)
|
|
19
|
+
2. Present gray areas — user selects which to discuss
|
|
20
|
+
3. Deep-dive each selected area until satisfied
|
|
21
|
+
4. Create intel.md with decisions that guide research and architecting
|
|
22
|
+
|
|
23
|
+
**Output:** `{stage}-intel.md` — decisions clear enough that downstream agents can act without asking the user again
|
|
24
|
+
</objective>
|
|
25
|
+
|
|
26
|
+
<execution_context>
|
|
27
|
+
@~/.claude/ace/workflows/scope-stage.md
|
|
28
|
+
@~/.claude/ace/templates/intel.md
|
|
29
|
+
</execution_context>
|
|
30
|
+
|
|
31
|
+
<context>
|
|
32
|
+
Stage number: $ARGUMENTS (required)
|
|
33
|
+
|
|
34
|
+
**Load project state:**
|
|
35
|
+
@.ace/pulse.md
|
|
36
|
+
|
|
37
|
+
**Load track:**
|
|
38
|
+
@.ace/track.md
|
|
39
|
+
</context>
|
|
40
|
+
|
|
41
|
+
<process>
|
|
42
|
+
1. Validate stage number (error if missing or not in track)
|
|
43
|
+
2. Check if intel.md exists (offer update/view/skip if yes)
|
|
44
|
+
3. **Analyze stage** — Identify domain and generate stage-specific gray areas
|
|
45
|
+
4. **Present gray areas** — Multi-select: which to discuss? (NO skip option)
|
|
46
|
+
5. **Deep-dive each area** — 4 questions per area, then offer more/next
|
|
47
|
+
6. **Write intel.md** — Sections match areas discussed
|
|
48
|
+
7. Offer next steps (research or architect)
|
|
49
|
+
|
|
50
|
+
**CRITICAL: Scope guardrail**
|
|
51
|
+
- Stage boundary from track.md is FIXED
|
|
52
|
+
- Discussion clarifies HOW to implement, not WHETHER to add more
|
|
53
|
+
- If user suggests new capabilities: "That's its own stage. I'll note it for later."
|
|
54
|
+
- Capture deferred ideas — don't lose them, don't act on them
|
|
55
|
+
|
|
56
|
+
**Domain-aware gray areas:**
|
|
57
|
+
Gray areas depend on what's being built. Analyze the stage goal:
|
|
58
|
+
- Something users SEE → layout, density, interactions, states
|
|
59
|
+
- Something users CALL → responses, errors, auth, versioning
|
|
60
|
+
- Something users RUN → output format, flags, modes, error handling
|
|
61
|
+
- Something users READ → structure, tone, depth, flow
|
|
62
|
+
- Something being ORGANIZED → criteria, grouping, naming, exceptions
|
|
63
|
+
|
|
64
|
+
Generate 3-4 **stage-specific** gray areas, not generic categories.
|
|
65
|
+
|
|
66
|
+
**Probing depth:**
|
|
67
|
+
- Ask 4 questions per area before checking
|
|
68
|
+
- "More questions about [area], or move to next?"
|
|
69
|
+
- If more → ask 4 more, check again
|
|
70
|
+
- After all areas → "Ready to create intel?"
|
|
71
|
+
|
|
72
|
+
**Do NOT ask about (Claude handles these):**
|
|
73
|
+
- Technical implementation
|
|
74
|
+
- Architecture choices
|
|
75
|
+
- Performance concerns
|
|
76
|
+
- Scope expansion
|
|
77
|
+
</process>
|
|
78
|
+
|
|
79
|
+
<success_criteria>
|
|
80
|
+
- Gray areas identified through intelligent analysis
|
|
81
|
+
- User chose which areas to discuss
|
|
82
|
+
- Each selected area explored until satisfied
|
|
83
|
+
- Scope creep redirected to deferred ideas
|
|
84
|
+
- intel.md captures decisions, not vague vision
|
|
85
|
+
- User knows next steps
|
|
86
|
+
</success_criteria>
|