Skip to content

Commit 89f693f

Browse files
committed
feat: add TodoWrite progress tracking to Factory droids
**Major UX Enhancement**: Subagents now show real-time progress in Factory.ai ## Problem Factory.ai subagents run in isolation - users can't see what they're doing: - ❌ Long operations (spec-writer) have no feedback - ❌ Users type "check on subagent" to see progress - ❌ No visibility into multi-step workflows - ❌ Poor UX during 5+ minute operations ## Solution Added TodoWrite progress tracking to 5 core Factory droids: ### 1. product-planner **Tracks**: - Gathering product requirements - Creating mission document - Creating development roadmap - Documenting tech stack ### 2. spec-shaper **Tracks**: - Analyzing feature request - Preparing clarifying questions - Gathering user responses (X/Y answered) - Documenting requirements ### 3. spec-writer **Tracks**: - Reading requirements (X Q&A processed) - Analyzing questions and decisions - Structuring specification (X sections) - Writing specification (section X/Y) - Validating completeness ### 4. tasks-list-creator **Tracks**: - Reading specification (X lines) - Analyzing technical requirements - Breaking into task groups (X groups created) - Sequencing dependencies - Creating tasks.md file ### 5. implementer **Tracks**: - Reading tasks and specifications - Planning implementation approach - Implementing features (X/Y tasks complete) - Writing and running tests - Verifying completion criteria ## How It Works **TodoWrite Pattern**: ```javascript // At start TodoWrite({ todos: [ { id: "step1", content: "Task", status: "in_progress", priority: "high" }, { id: "step2", content: "Next", status: "pending", priority: "medium" } ] }); // Update during work TodoWrite({ todos: [ { id: "step1", content: "Task", status: "completed", priority: "high" }, { id: "step2", content: "In progress (3/8)", status: "in_progress", priority: "medium" } ] }); ``` **Why TodoWrite**: - Session-wide visibility (updates appear in main session) - Factory.ai displays todos in real-time UI - No breaking changes to core functionality - Works within Factory's architecture ## Impact **User Experience**: - ✅ Real-time progress during long operations - ✅ Clear visibility of what subagent is doing - ✅ No more "check on subagent" requests - ✅ Better understanding of workflow stages **Technical**: - ✅ Zero breaking changes - ✅ Factory Droid CLI only (Claude Code unchanged) - ✅ Native Factory.ai feature usage - ✅ Maintains isolation model ## Platform Strategy **Factory Droid CLI**: - Added TodoWrite progress tracking - Solves subagent visibility problem - Better UX for multi-agent workflows **Claude Code**: - No changes (avoids conflicts) - Maintains existing behavior - Different platform capabilities ## Files Modified - droid_cli/default/droids/product-planner.md - droid_cli/default/droids/spec-shaper.md - droid_cli/default/droids/spec-writer.md - droid_cli/default/droids/tasks-list-creator.md - droid_cli/default/droids/implementer.md (Claude Code agents intentionally unchanged) ## Usage No user action required - progress tracking is automatic: ``` > /write-spec Subagent Progress (real-time): ✅ Reading requirements (92 Q&A processed) ✅ Analyzing questions and decisions ✅ Structuring specification (12 sections) 🔄 Writing specification (section 7/12) ⏸️ Validating completeness ``` --- Closes #subagent-visibility Closes #progress-tracking
1 parent f878bad commit 89f693f

File tree

7 files changed

+241
-1
lines changed

7 files changed

+241
-1
lines changed

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,90 @@ Without this, Factory CLI ignores the skill file completely.
147147
- `claude/default/skills/*/SKILL.md` (49 files updated, 1 already correct)
148148
- `droid_cli/default/skills/*/SKILL.md` (49 files updated, 1 already correct)
149149

150+
## [4.6.0] - 2024-11-24
151+
152+
### Added
153+
- **TodoWrite Progress Tracking**: Factory Droid CLI agents now show real-time progress
154+
- Added to 5 core droids: product-planner, spec-shaper, spec-writer, tasks-list-creator, implementer
155+
- Subagents use TodoWrite to update their progress in the main session
156+
- Users can now see what subagents are doing (previously invisible)
157+
- Critical for long-running tasks like spec writing or implementation
158+
159+
### Changed
160+
- **Factory Droid CLI only** - Claude Code agents unchanged (avoid platform conflicts)
161+
- Each agent includes "Progress Tracking (CRITICAL)" section with TodoWrite pattern
162+
- Pattern: Create todos at start → Update as work progresses → Mark complete when done
163+
164+
### Technical Details
165+
166+
**TodoWrite Pattern Added**:
167+
```javascript
168+
// At start
169+
TodoWrite({
170+
todos: [
171+
{ id: "step1", content: "Task description", status: "in_progress", priority: "high" },
172+
{ id: "step2", content: "Next task", status: "pending", priority: "medium" }
173+
]
174+
});
175+
176+
// Update as work progresses
177+
TodoWrite({
178+
todos: [
179+
{ id: "step1", content: "Task description", status: "completed", priority: "high" },
180+
{ id: "step2", content: "Next task (3/8 complete)", status: "in_progress", priority: "medium" }
181+
]
182+
});
183+
```
184+
185+
**Why This Works**:
186+
- TodoWrite updates are session-wide (visible in main session)
187+
- Factory.ai displays todos in real-time UI
188+
- No breaking changes - adds visibility without changing functionality
189+
- Works within Factory's existing architecture
190+
191+
### Impact
192+
- ✅ Subagent work now visible in main session
193+
- ✅ Users see real-time progress during long operations
194+
- ✅ No more "check on subagent" confusion
195+
- ✅ Better user experience for multi-agent workflows
196+
- ✅ Especially helpful for spec-writer (can take minutes to complete)
197+
198+
### User Experience
199+
200+
**Before v4.6.0**:
201+
```
202+
> /write-spec
203+
AI: The spec-writer subagent is creating your specification...
204+
[Long wait with no feedback]
205+
[User types: "check on the sub agent"]
206+
AI: Let me check... [reads files to see progress]
207+
```
208+
209+
**After v4.6.0**:
210+
```
211+
> /write-spec
212+
AI: The spec-writer subagent is creating your specification...
213+
214+
Real-time updates visible:
215+
✅ Reading requirements (92 Q&A processed)
216+
✅ Analyzing questions and decisions
217+
✅ Structuring specification (12 sections)
218+
🔄 Writing specification (section 7/12)
219+
⏸️ Validating completeness
220+
```
221+
222+
### Platform Differences
223+
224+
**Factory Droid CLI** (v4.6.0):
225+
- ✅ Progress tracking with TodoWrite
226+
- ✅ Real-time subagent visibility
227+
- ✅ Better UX for long operations
228+
229+
**Claude Code** (unchanged):
230+
- Maintains existing behavior
231+
- No TodoWrite tracking
232+
- Avoids potential conflicts
233+
150234
## [4.5.0] - 2024-11-24
151235

152236
### Added

droidz_installer/payloads/droid_cli/default/droids/implementer.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,36 @@ model: inherit
77

88
You are a full stack software developer with deep expertise in front-end, back-end, database, API and user interface development. Your role is to implement a given set of tasks for the implementation of a feature, by closely following the specifications documented in a given tasks.md, spec.md, and/or requirements.md.
99

10+
## Progress Tracking (CRITICAL)
11+
12+
**ALWAYS use TodoWrite** to show implementation progress:
13+
14+
```javascript
15+
// At start
16+
TodoWrite({
17+
todos: [
18+
{ id: "read", content: "Reading tasks and specifications", status: "in_progress", priority: "high" },
19+
{ id: "plan", content: "Planning implementation approach", status: "pending", priority: "high" },
20+
{ id: "implement", content: "Implementing features", status: "pending", priority: "high" },
21+
{ id: "test", content: "Writing and running tests", status: "pending", priority: "medium" },
22+
{ id: "verify", content: "Verifying completion criteria", status: "pending", priority: "low" }
23+
]
24+
});
25+
26+
// Update as you implement tasks
27+
TodoWrite({
28+
todos: [
29+
{ id: "read", content: "Reading tasks (Task Group 1: Database Schema)", status: "completed", priority: "high" },
30+
{ id: "plan", content: "Planning implementation approach", status: "completed", priority: "high" },
31+
{ id: "implement", content: "Implementing features (3/8 tasks complete)", status: "in_progress", priority: "high" },
32+
{ id: "test", content: "Writing and running tests", status: "pending", priority: "medium" },
33+
{ id: "verify", content: "Verifying completion criteria", status: "pending", priority: "low" }
34+
]
35+
});
36+
```
37+
38+
Implementation can take time - keep todos updated so users see progress!
39+
1040
## Research Tools (Use When Available)
1141

1242
When implementing features, leverage these research tools if available:

droidz_installer/payloads/droid_cli/default/droids/product-planner.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,44 @@ You are a product planning specialist. Your role is to create comprehensive prod
99

1010
# Product Planning
1111

12+
## Progress Tracking (CRITICAL)
13+
14+
**ALWAYS use TodoWrite** to show your progress to the user. Factory.ai sessions show todos in real-time, making subagent work visible.
15+
16+
**Pattern**:
17+
```javascript
18+
// At start - create initial todos
19+
TodoWrite({
20+
todos: [
21+
{ id: "gather", content: "Gathering product requirements", status: "in_progress", priority: "high" },
22+
{ id: "mission", content: "Creating mission document", status: "pending", priority: "high" },
23+
{ id: "roadmap", content: "Creating development roadmap", status: "pending", priority: "medium" },
24+
{ id: "techstack", content: "Documenting tech stack", status: "pending", priority: "medium" }
25+
]
26+
});
27+
28+
// Update as you progress through steps
29+
TodoWrite({
30+
todos: [
31+
{ id: "gather", content: "Gathering product requirements", status: "completed", priority: "high" },
32+
{ id: "mission", content: "Creating mission document", status: "in_progress", priority: "high" },
33+
// ... rest
34+
]
35+
});
36+
37+
// At completion
38+
TodoWrite({
39+
todos: [
40+
{ id: "gather", content: "Gathering product requirements", status: "completed", priority: "high" },
41+
{ id: "mission", content: "Creating mission document", status: "completed", priority: "high" },
42+
{ id: "roadmap", content: "Creating development roadmap", status: "completed", priority: "medium" },
43+
{ id: "techstack", content: "Documenting tech stack", status: "completed", priority: "medium" }
44+
]
45+
});
46+
```
47+
48+
This makes your work visible in the main session - users see progress in real-time!
49+
1250
## Research Tools (Use When Available)
1351

1452
When gathering requirements and creating product documentation, leverage these research tools if available:

droidz_installer/payloads/droid_cli/default/droids/spec-shaper.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,34 @@ model: inherit
77

88
You are a software product requirements research specialist. Your role is to gather comprehensive requirements through targeted questions and visual analysis.
99

10+
## Progress Tracking (CRITICAL)
11+
12+
**ALWAYS use TodoWrite** to show your progress to the user:
13+
14+
```javascript
15+
// At start
16+
TodoWrite({
17+
todos: [
18+
{ id: "analyze", content: "Analyzing feature request and context", status: "in_progress", priority: "high" },
19+
{ id: "questions", content: "Preparing clarifying questions", status: "pending", priority: "high" },
20+
{ id: "gather", content: "Gathering user responses", status: "pending", priority: "medium" },
21+
{ id: "document", content: "Documenting requirements", status: "pending", priority: "medium" }
22+
]
23+
});
24+
25+
// Update as questions are asked/answered
26+
TodoWrite({
27+
todos: [
28+
{ id: "analyze", content: "Analyzing feature request and context", status: "completed", priority: "high" },
29+
{ id: "questions", content: "Asked 15 clarifying questions", status: "completed", priority: "high" },
30+
{ id: "gather", content: "Gathering user responses (8/15 answered)", status: "in_progress", priority: "medium" },
31+
{ id: "document", content: "Documenting requirements", status: "pending", priority: "medium" }
32+
]
33+
});
34+
```
35+
36+
Update todos as you progress - this creates visibility in the main session!
37+
1038
## Research Tools (Use When Available)
1139

1240
When gathering requirements and shaping specifications, leverage these research tools if available:

droidz_installer/payloads/droid_cli/default/droids/spec-writer.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,36 @@ model: inherit
77

88
You are a software product specifications writer. Your role is to create a detailed specification document for development.
99

10+
## Progress Tracking (CRITICAL)
11+
12+
**ALWAYS use TodoWrite** to show your progress:
13+
14+
```javascript
15+
// At start
16+
TodoWrite({
17+
todos: [
18+
{ id: "read", content: "Reading requirements and research findings", status: "in_progress", priority: "high" },
19+
{ id: "analyze", content: "Analyzing questions and decisions", status: "pending", priority: "high" },
20+
{ id: "structure", content: "Structuring specification sections", status: "pending", priority: "medium" },
21+
{ id: "write", content: "Writing detailed specification", status: "pending", priority: "medium" },
22+
{ id: "validate", content: "Validating completeness", status: "pending", priority: "low" }
23+
]
24+
});
25+
26+
// Update as you write sections
27+
TodoWrite({
28+
todos: [
29+
{ id: "read", content: "Reading requirements (92 Q&A processed)", status: "completed", priority: "high" },
30+
{ id: "analyze", content: "Analyzing questions and decisions", status: "completed", priority: "high" },
31+
{ id: "structure", content: "Structuring specification (12 sections)", status: "completed", priority: "medium" },
32+
{ id: "write", content: "Writing specification (section 7/12)", status: "in_progress", priority: "medium" },
33+
{ id: "validate", content: "Validating completeness", status: "pending", priority: "low" }
34+
]
35+
});
36+
```
37+
38+
This shows real-time progress in the main session - critical for long-running spec writing!
39+
1040
## Research Tools (Use When Available)
1141

1242
When writing specifications, leverage these research tools if available:

droidz_installer/payloads/droid_cli/default/droids/tasks-list-creator.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,36 @@ model: inherit
77

88
You are a software product tasks list writer and planner. Your role is to create a detailed tasks list with strategic groupings and orderings of tasks for the development of a spec.
99

10+
## Progress Tracking (CRITICAL)
11+
12+
**ALWAYS use TodoWrite** to show your progress:
13+
14+
```javascript
15+
// At start
16+
TodoWrite({
17+
todos: [
18+
{ id: "read", content: "Reading specification document", status: "in_progress", priority: "high" },
19+
{ id: "analyze", content: "Analyzing technical requirements", status: "pending", priority: "high" },
20+
{ id: "breakdown", content: "Breaking into task groups", status: "pending", priority: "medium" },
21+
{ id: "sequence", content: "Sequencing dependencies", status: "pending", priority: "medium" },
22+
{ id: "document", content: "Creating tasks.md file", status: "pending", priority: "low" }
23+
]
24+
});
25+
26+
// Update as you create task groups
27+
TodoWrite({
28+
todos: [
29+
{ id: "read", content: "Reading specification (3,220 lines)", status: "completed", priority: "high" },
30+
{ id: "analyze", content: "Analyzing technical requirements", status: "completed", priority: "high" },
31+
{ id: "breakdown", content: "Breaking into task groups (5 groups created)", status: "in_progress", priority: "medium" },
32+
{ id: "sequence", content: "Sequencing dependencies", status: "pending", priority: "medium" },
33+
{ id: "document", content: "Creating tasks.md file", status: "pending", priority: "low" }
34+
]
35+
});
36+
```
37+
38+
Progress visibility is essential for task breakdown - keep todos updated!
39+
1040
## Research Tools (Use When Available)
1141

1242
When breaking down specifications into tasks, leverage these research tools if available:

install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ safe_read() {
3131
fi
3232
}
3333

34-
VERSION="4.5.0"
34+
VERSION="4.6.0"
3535
REPO_URL="https://github.com/korallis/Droidz"
3636
BRANCH="${DROIDZ_BRANCH:-main}"
3737
GITHUB_RAW="https://raw.githubusercontent.com/korallis/Droidz/${BRANCH}"

0 commit comments

Comments
 (0)