ai-workflow-init 6.4.2 → 6.6.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/agents/requirement-ba.md +203 -0
- package/.claude/agents/requirement-researcher.md +270 -0
- package/.claude/agents/requirement-sa.md +259 -0
- package/.claude/agents/requirement-uiux.md +349 -0
- package/.claude/commands/beads-breakdown.md +278 -0
- package/.claude/commands/beads-create-epic-plan.md +205 -0
- package/.claude/commands/beads-done.md +248 -0
- package/.claude/commands/beads-next.md +260 -0
- package/.claude/commands/beads-status.md +247 -0
- package/.claude/commands/clarify-requirements.md +445 -192
- package/.claude/commands/create-plan.md +79 -2
- package/.claude/commands/execute-plan.md +48 -2
- package/.claude/settings.json +3 -3
- package/.claude/skills/skill-creator/SKILL.md +355 -0
- package/.claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/README.md +97 -3
- package/cli.js +21 -1
- package/docs/ai/planning/epic-template.md +155 -0
- package/docs/ai/planning/feature-template.md +19 -0
- package/docs/ai/requirements/req-template.md +164 -58
- package/docs/ai/requirements/templates/ba-template.md +151 -0
- package/docs/ai/requirements/templates/research-template.md +190 -0
- package/docs/ai/requirements/templates/sa-template.md +184 -0
- package/docs/ai/requirements/templates/uiux-template.md +325 -0
- package/package.json +1 -1
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: beads-status
|
|
3
|
+
description: Shows epic progress overview with task status, dependencies, and metrics.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
Display a comprehensive overview of the current epic's progress, including task status, dependency graph, and completion metrics.
|
|
9
|
+
|
|
10
|
+
## Workflow Alignment
|
|
11
|
+
|
|
12
|
+
- Provide clear, visual progress reporting.
|
|
13
|
+
- Show actionable information (what's ready, what's blocked).
|
|
14
|
+
- Quick command for status checks without claiming tasks.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Step 1: Determine Which Epic to Show
|
|
19
|
+
|
|
20
|
+
### Option A: Current Epic Context Exists
|
|
21
|
+
|
|
22
|
+
**Read:** `.beads/current-epic.json`
|
|
23
|
+
|
|
24
|
+
If exists:
|
|
25
|
+
- Use epic_id from context
|
|
26
|
+
- Proceed to Step 2
|
|
27
|
+
|
|
28
|
+
### Option B: No Current Context
|
|
29
|
+
|
|
30
|
+
**Run:** `bd list --type epic --json`
|
|
31
|
+
|
|
32
|
+
If single epic exists:
|
|
33
|
+
- Use that epic automatically
|
|
34
|
+
|
|
35
|
+
If multiple epics exist:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
AskUserQuestion(questions=[{
|
|
39
|
+
question: "Which epic would you like to see status for?",
|
|
40
|
+
header: "Select Epic",
|
|
41
|
+
options: [
|
|
42
|
+
{ label: "{epic-1-id}: {title}", description: "{X}/{Y} tasks complete" },
|
|
43
|
+
{ label: "{epic-2-id}: {title}", description: "{X}/{Y} tasks complete" },
|
|
44
|
+
{ label: "Show all epics", description: "Overview of all epics" }
|
|
45
|
+
],
|
|
46
|
+
multiSelect: false
|
|
47
|
+
}])
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
If no epics exist:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
No epics found.
|
|
54
|
+
|
|
55
|
+
To create an epic:
|
|
56
|
+
/beads-breakdown "feature description"
|
|
57
|
+
/beads-breakdown @docs/ai/requirements/req-xxx.md
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Step 2: Load Epic Data
|
|
63
|
+
|
|
64
|
+
### 2a: Get Epic Details
|
|
65
|
+
|
|
66
|
+
**Run:** `bd show {epic-id} --json`
|
|
67
|
+
|
|
68
|
+
Extract:
|
|
69
|
+
- Epic title, description
|
|
70
|
+
- Creation date
|
|
71
|
+
- Total tasks count
|
|
72
|
+
|
|
73
|
+
### 2b: Get All Tasks
|
|
74
|
+
|
|
75
|
+
**Run:** `bd list --parent {epic-id} --json`
|
|
76
|
+
|
|
77
|
+
For each task, extract:
|
|
78
|
+
- Task ID, title, priority
|
|
79
|
+
- Status (open, in_progress, closed)
|
|
80
|
+
- Blocked by (dependencies)
|
|
81
|
+
- Assignee (if any)
|
|
82
|
+
|
|
83
|
+
### 2c: Load Epic Plan (if exists)
|
|
84
|
+
|
|
85
|
+
**Read:** `docs/ai/planning/epic-{name}.md`
|
|
86
|
+
|
|
87
|
+
If exists:
|
|
88
|
+
- Extract task-to-plan-doc mapping from Task Breakdown table
|
|
89
|
+
- Note any architectural updates
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Step 3: Calculate Metrics
|
|
94
|
+
|
|
95
|
+
```javascript
|
|
96
|
+
// Metrics calculation
|
|
97
|
+
const total = tasks.length;
|
|
98
|
+
const closed = tasks.filter(t => t.status === 'closed').length;
|
|
99
|
+
const inProgress = tasks.filter(t => t.status === 'in_progress').length;
|
|
100
|
+
const open = tasks.filter(t => t.status === 'open').length;
|
|
101
|
+
const ready = tasks.filter(t => t.status === 'open' && t.blockedBy.length === 0).length;
|
|
102
|
+
const blocked = tasks.filter(t => t.status === 'open' && t.blockedBy.length > 0).length;
|
|
103
|
+
|
|
104
|
+
const completionPercent = Math.round((closed / total) * 100);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Step 4: Display Status Report
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
═══════════════════════════════════════════════════════════════════
|
|
113
|
+
EPIC STATUS: {epic-id}
|
|
114
|
+
═══════════════════════════════════════════════════════════════════
|
|
115
|
+
|
|
116
|
+
📋 {Epic Title}
|
|
117
|
+
|
|
118
|
+
{If epic plan exists:}
|
|
119
|
+
📄 Epic Plan: docs/ai/planning/epic-{name}.md
|
|
120
|
+
{If requirement exists:}
|
|
121
|
+
📝 Requirement: docs/ai/requirements/req-{name}.md
|
|
122
|
+
|
|
123
|
+
───────────────────────────────────────────────────────────────────
|
|
124
|
+
PROGRESS
|
|
125
|
+
───────────────────────────────────────────────────────────────────
|
|
126
|
+
|
|
127
|
+
[████████████░░░░░░░░] {completionPercent}% Complete
|
|
128
|
+
|
|
129
|
+
✅ Completed: {closed}/{total} tasks
|
|
130
|
+
🔄 In Progress: {inProgress} tasks
|
|
131
|
+
📋 Open: {open} tasks
|
|
132
|
+
├─ Ready: {ready} tasks
|
|
133
|
+
└─ Blocked: {blocked} tasks
|
|
134
|
+
|
|
135
|
+
───────────────────────────────────────────────────────────────────
|
|
136
|
+
TASK LIST
|
|
137
|
+
───────────────────────────────────────────────────────────────────
|
|
138
|
+
|
|
139
|
+
{Group by status:}
|
|
140
|
+
|
|
141
|
+
✅ COMPLETED ({closed})
|
|
142
|
+
{For each closed task:}
|
|
143
|
+
✓ {task-id} "{title}"
|
|
144
|
+
└─ Plan: {plan-doc or "N/A"}
|
|
145
|
+
|
|
146
|
+
🔄 IN PROGRESS ({inProgress})
|
|
147
|
+
{For each in_progress task:}
|
|
148
|
+
→ {task-id} "{title}" (P{n})
|
|
149
|
+
├─ Plan: {plan-doc or "Not created"}
|
|
150
|
+
└─ Blocks: {list of dependent tasks or "None"}
|
|
151
|
+
|
|
152
|
+
📋 READY ({ready})
|
|
153
|
+
{For each ready task:}
|
|
154
|
+
○ {task-id} "{title}" (P{n})
|
|
155
|
+
|
|
156
|
+
🚫 BLOCKED ({blocked})
|
|
157
|
+
{For each blocked task:}
|
|
158
|
+
✗ {task-id} "{title}" (P{n})
|
|
159
|
+
└─ Waiting for: {blocker-id} "{blocker-title}"
|
|
160
|
+
|
|
161
|
+
───────────────────────────────────────────────────────────────────
|
|
162
|
+
DEPENDENCY GRAPH
|
|
163
|
+
───────────────────────────────────────────────────────────────────
|
|
164
|
+
|
|
165
|
+
{ASCII dependency graph}
|
|
166
|
+
|
|
167
|
+
✅ = completed, → = in_progress, ○ = ready, ✗ = blocked
|
|
168
|
+
|
|
169
|
+
Example:
|
|
170
|
+
✅ bd-auth.1 ──────────────────────┐
|
|
171
|
+
▼
|
|
172
|
+
○ bd-auth.3 ───▶ → bd-auth.2 ───▶ ✗ bd-auth.4
|
|
173
|
+
│
|
|
174
|
+
└──────▶ ✗ bd-auth.5
|
|
175
|
+
|
|
176
|
+
───────────────────────────────────────────────────────────────────
|
|
177
|
+
NEXT ACTIONS
|
|
178
|
+
───────────────────────────────────────────────────────────────────
|
|
179
|
+
|
|
180
|
+
{Based on current state:}
|
|
181
|
+
|
|
182
|
+
{If in_progress exists:}
|
|
183
|
+
Continue current work:
|
|
184
|
+
/execute-plan → Resume {in-progress-task-id}
|
|
185
|
+
/beads-done → Complete {in-progress-task-id}
|
|
186
|
+
|
|
187
|
+
{If ready tasks exist:}
|
|
188
|
+
Start new task:
|
|
189
|
+
/beads-next → Claim from {ready} ready tasks
|
|
190
|
+
|
|
191
|
+
{If all blocked:}
|
|
192
|
+
Unblock tasks:
|
|
193
|
+
Review blocked tasks and their dependencies
|
|
194
|
+
Complete blocking tasks first
|
|
195
|
+
|
|
196
|
+
{If all complete:}
|
|
197
|
+
🎉 Epic complete! Close with:
|
|
198
|
+
bd close {epic-id} --reason "All tasks complete"
|
|
199
|
+
|
|
200
|
+
═══════════════════════════════════════════════════════════════════
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Step 5: Optional Details
|
|
206
|
+
|
|
207
|
+
If user wants more details:
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
AskUserQuestion(questions=[{
|
|
211
|
+
question: "Would you like more details?",
|
|
212
|
+
header: "Details",
|
|
213
|
+
options: [
|
|
214
|
+
{ label: "View specific task", description: "Show full details of a task" },
|
|
215
|
+
{ label: "View epic plan", description: "Open the epic plan document" },
|
|
216
|
+
{ label: "Refresh status", description: "Reload latest status from Beads" },
|
|
217
|
+
{ label: "Done", description: "Exit status view" }
|
|
218
|
+
],
|
|
219
|
+
multiSelect: false
|
|
220
|
+
}])
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Notes
|
|
226
|
+
|
|
227
|
+
- **Quick overview**: Designed for fast status checks
|
|
228
|
+
- **Visual progress**: Progress bar makes completion visible at a glance
|
|
229
|
+
- **Actionable**: Always shows what can be done next
|
|
230
|
+
- **Dependency awareness**: Shows blocking relationships clearly
|
|
231
|
+
|
|
232
|
+
### Progress Bar Legend
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
[████████████░░░░░░░░] 60%
|
|
236
|
+
└── Filled = Completed
|
|
237
|
+
└── Empty = Remaining
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Status Icons
|
|
241
|
+
|
|
242
|
+
| Icon | Meaning |
|
|
243
|
+
|------|---------|
|
|
244
|
+
| ✅ / ✓ | Completed |
|
|
245
|
+
| 🔄 / → | In Progress |
|
|
246
|
+
| 📋 / ○ | Ready (open, not blocked) |
|
|
247
|
+
| 🚫 / ✗ | Blocked |
|