claude-code-workflow 7.2.14 → 7.2.15

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 (75) hide show
  1. package/.claude/commands/workflow/analyze-with-file.md +7 -0
  2. package/.codex/skills/analyze-with-file/SKILL.md +1181 -1182
  3. package/.codex/skills/brainstorm/SKILL.md +723 -725
  4. package/.codex/skills/brainstorm-with-file/SKILL.md +10 -5
  5. package/.codex/skills/clean/SKILL.md +33 -26
  6. package/.codex/skills/collaborative-plan-with-file/SKILL.md +830 -831
  7. package/.codex/skills/csv-wave-pipeline/SKILL.md +906 -906
  8. package/.codex/skills/issue-discover/SKILL.md +57 -50
  9. package/.codex/skills/issue-discover/phases/01-issue-new.md +18 -11
  10. package/.codex/skills/issue-discover/phases/02-discover.md +31 -26
  11. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +13 -11
  12. package/.codex/skills/issue-discover/phases/04-quick-execute.md +32 -27
  13. package/.codex/skills/parallel-dev-cycle/SKILL.md +402 -402
  14. package/.codex/skills/project-documentation-workflow/SKILL.md +13 -3
  15. package/.codex/skills/roadmap-with-file/SKILL.md +901 -897
  16. package/.codex/skills/session-sync/SKILL.md +222 -212
  17. package/.codex/skills/spec-add/SKILL.md +620 -613
  18. package/.codex/skills/spec-generator/SKILL.md +2 -2
  19. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +10 -10
  20. package/.codex/skills/spec-generator/phases/01-discovery.md +11 -18
  21. package/.codex/skills/spec-generator/phases/02-product-brief.md +5 -5
  22. package/.codex/skills/spec-generator/phases/03-requirements.md +7 -7
  23. package/.codex/skills/spec-generator/phases/04-architecture.md +4 -4
  24. package/.codex/skills/spec-generator/phases/05-epics-stories.md +5 -6
  25. package/.codex/skills/spec-generator/phases/06-readiness-check.md +10 -17
  26. package/.codex/skills/spec-generator/phases/07-issue-export.md +326 -329
  27. package/.codex/skills/spec-setup/SKILL.md +669 -657
  28. package/.codex/skills/team-arch-opt/SKILL.md +50 -50
  29. package/.codex/skills/team-arch-opt/agents/completion-handler.md +3 -3
  30. package/.codex/skills/team-brainstorm/SKILL.md +724 -725
  31. package/.codex/skills/team-coordinate/SKILL.md +51 -51
  32. package/.codex/skills/team-coordinate/agents/completion-handler.md +3 -3
  33. package/.codex/skills/team-coordinate/agents/plan-reviewer.md +4 -4
  34. package/.codex/skills/team-designer/SKILL.md +691 -691
  35. package/.codex/skills/team-designer/agents/requirement-clarifier.md +11 -12
  36. package/.codex/skills/team-executor/SKILL.md +45 -45
  37. package/.codex/skills/team-frontend/SKILL.md +45 -45
  38. package/.codex/skills/team-frontend/agents/completion-handler.md +3 -3
  39. package/.codex/skills/team-frontend/agents/qa-gate-reviewer.md +4 -4
  40. package/.codex/skills/team-frontend-debug/SKILL.md +50 -50
  41. package/.codex/skills/team-frontend-debug/agents/completion-handler.md +3 -3
  42. package/.codex/skills/team-frontend-debug/agents/conditional-skip-gate.md +4 -4
  43. package/.codex/skills/team-issue/SKILL.md +751 -740
  44. package/.codex/skills/team-iterdev/SKILL.md +825 -826
  45. package/.codex/skills/team-lifecycle-v4/SKILL.md +775 -775
  46. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -165
  47. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -163
  48. package/.codex/skills/team-perf-opt/SKILL.md +50 -50
  49. package/.codex/skills/team-perf-opt/agents/completion-handler.md +3 -3
  50. package/.codex/skills/team-planex-v2/SKILL.md +652 -637
  51. package/.codex/skills/team-quality-assurance/SKILL.md +51 -52
  52. package/.codex/skills/team-review/SKILL.md +40 -40
  53. package/.codex/skills/team-roadmap-dev/SKILL.md +51 -51
  54. package/.codex/skills/team-roadmap-dev/agents/roadmap-discusser.md +8 -8
  55. package/.codex/skills/team-tech-debt/SKILL.md +50 -50
  56. package/.codex/skills/team-tech-debt/agents/plan-approver.md +5 -5
  57. package/.codex/skills/team-testing/SKILL.md +51 -52
  58. package/.codex/skills/team-uidesign/SKILL.md +40 -40
  59. package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -177
  60. package/.codex/skills/team-ultra-analyze/SKILL.md +786 -787
  61. package/.codex/skills/team-ultra-analyze/agents/discussion-feedback.md +8 -8
  62. package/.codex/skills/team-ux-improve/SKILL.md +51 -52
  63. package/.codex/skills/team-ux-improve/agents/ux-designer.md +2 -2
  64. package/.codex/skills/team-ux-improve/agents/ux-explorer.md +1 -1
  65. package/.codex/skills/unified-execute-with-file/SKILL.md +797 -796
  66. package/.codex/skills/workflow-execute/SKILL.md +1117 -1118
  67. package/.codex/skills/workflow-lite-planex/SKILL.md +1144 -1141
  68. package/.codex/skills/workflow-plan/SKILL.md +631 -636
  69. package/.codex/skills/workflow-tdd-plan/SKILL.md +753 -759
  70. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +402 -392
  71. package/README.md +25 -0
  72. package/ccw/dist/commands/install.d.ts.map +1 -1
  73. package/ccw/dist/commands/install.js +12 -0
  74. package/ccw/dist/commands/install.js.map +1 -1
  75. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: spec-generator
3
3
  description: Specification generator - 7 phase document chain producing product brief, PRD, architecture, epics, and issues. Agent-delegated heavy phases (2-5, 6.5) with Codex review gates. Triggers on "generate spec", "create specification", "spec generator", "workflow:spec".
4
- allowed-tools: Agent, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep, Skill
4
+ allowed-tools: Agent, request_user_input, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep, Skill
5
5
  ---
6
6
 
7
7
  # Spec Generator
@@ -260,7 +260,7 @@ Bash(`mkdir -p "${workDir}"`);
260
260
  3. **Auto-Continue**: All phases run autonomously; check TaskList to execute next pending phase
261
261
  4. **Parse Every Output**: Extract required data from each phase for next phase context
262
262
  5. **DO NOT STOP**: Continuous 7-phase pipeline until all phases complete or user exits
263
- 6. **Respect -y Flag**: When auto mode, skip all AskUserQuestion calls, use recommended defaults
263
+ 6. **Respect -y Flag**: When auto mode, skip all request_user_input calls, use recommended defaults
264
264
  7. **Respect -c Flag**: When continue mode, load spec-config.json and resume from checkpoint
265
265
  8. **Inject Glossary**: From Phase 3 onward, inject glossary.json terms into every CLI prompt
266
266
  9. **Load Profile**: Read templates/profiles/{spec_type}-profile.md and inject requirements into Phase 2-5 prompts
@@ -140,12 +140,12 @@ while (!userSatisfied && requirementState.discussion_rounds < 5) {
140
140
  // Format questions and suggestions from gapAnalysis for display
141
141
  // Present as a structured summary to the user
142
142
 
143
- AskUserQuestion({
143
+ request_user_input({
144
144
  questions: [
145
145
  {
146
- question: buildDiscussionPrompt(gapAnalysis, requirementState),
147
146
  header: "Req Expand",
148
- multiSelect: false,
147
+ id: "req_expand",
148
+ question: buildDiscussionPrompt(gapAnalysis, requirementState),
149
149
  options: [
150
150
  { label: "I'll answer", description: "I have answers/feedback to provide (type in 'Other')" },
151
151
  { label: "Accept all suggestions", description: "Accept all expansion recommendations as-is" },
@@ -194,12 +194,12 @@ CONSTRAINTS: 避免重复已回答的问题,聚焦未覆盖的领域
194
194
  // If status === "ready_for_confirmation", break to confirmation step
195
195
  // If status === "need_more_discussion", present follow-up questions
196
196
 
197
- AskUserQuestion({
197
+ request_user_input({
198
198
  questions: [
199
199
  {
200
- question: buildFollowUpPrompt(followUpAnalysis, requirementState),
201
200
  header: "Follow-up",
202
- multiSelect: false,
201
+ id: "follow_up",
202
+ question: buildFollowUpPrompt(followUpAnalysis, requirementState),
203
203
  options: [
204
204
  { label: "I'll answer", description: "I have more feedback (type in 'Other')" },
205
205
  { label: "Looks good", description: "Requirements are sufficiently clear now" },
@@ -300,14 +300,14 @@ if (!autoMode) {
300
300
  // Build confirmation summary from requirementState
301
301
  const summary = buildConfirmationSummary(requirementState);
302
302
 
303
- AskUserQuestion({
303
+ request_user_input({
304
304
  questions: [
305
305
  {
306
- question: `## Requirement Confirmation\n\n${summary}\n\nConfirm and proceed to specification generation?`,
307
306
  header: "Confirm",
308
- multiSelect: false,
307
+ id: "confirm",
308
+ question: `## Requirement Confirmation\n\n${summary}\n\nConfirm and proceed to specification generation?`,
309
309
  options: [
310
- { label: "Confirm & proceed", description: "Requirements confirmed, start spec generation" },
310
+ { label: "Confirm & proceed(Recommended)", description: "Requirements confirmed, start spec generation" },
311
311
  { label: "Need adjustments", description: "Go back and refine further" }
312
312
  ]
313
313
  }
@@ -159,42 +159,35 @@ Schema:
159
159
  ```javascript
160
160
  if (!autoMode) {
161
161
  // Confirm problem statement and select depth
162
- AskUserQuestion({
162
+ request_user_input({
163
163
  questions: [
164
164
  {
165
- question: `Problem statement: "${seedAnalysis.problem_statement}" - Is this accurate?`,
166
165
  header: "Problem",
167
- multiSelect: false,
166
+ id: "problem",
167
+ question: `Problem statement: "${seedAnalysis.problem_statement}" - Is this accurate?`,
168
168
  options: [
169
- { label: "Accurate", description: "Proceed with this problem statement" },
169
+ { label: "Accurate(Recommended)", description: "Proceed with this problem statement" },
170
170
  { label: "Needs adjustment", description: "I'll refine the problem statement" }
171
171
  ]
172
172
  },
173
173
  {
174
- question: "What specification depth do you need?",
175
174
  header: "Depth",
176
- multiSelect: false,
175
+ id: "depth",
176
+ question: "What specification depth do you need?",
177
177
  options: [
178
+ { label: "Standard(Recommended)", description: "Balanced detail for most projects" },
178
179
  { label: "Light", description: "Quick overview - key decisions only" },
179
- { label: "Standard (Recommended)", description: "Balanced detail for most projects" },
180
180
  { label: "Comprehensive", description: "Maximum detail for complex/critical projects" }
181
181
  ]
182
182
  },
183
183
  {
184
- question: "Which areas should we focus on?",
185
- header: "Focus",
186
- multiSelect: true,
187
- options: seedAnalysis.dimensions.map(d => ({ label: d, description: `Explore ${d} in depth` }))
188
- },
189
- {
190
- question: "What type of specification is this?",
191
184
  header: "Spec Type",
192
- multiSelect: false,
185
+ id: "spec_type",
186
+ question: "What type of specification is this?",
193
187
  options: [
194
- { label: "Service (Recommended)", description: "Long-running service with lifecycle, state machine, observability" },
188
+ { label: "Service(Recommended)", description: "Long-running service with lifecycle, state machine, observability" },
195
189
  { label: "API", description: "REST/GraphQL API with endpoints, auth, rate limiting" },
196
- { label: "Library/SDK", description: "Reusable package with public API surface, examples" },
197
- { label: "Platform", description: "Multi-component system, uses Service profile" }
190
+ { label: "Library/SDK", description: "Reusable package with public API surface, examples" }
198
191
  ]
199
192
  }
200
193
  ]
@@ -174,18 +174,18 @@ const synthesis = {
174
174
  ```javascript
175
175
  if (!autoMode) {
176
176
  // Present synthesis summary to user
177
- // AskUserQuestion with:
177
+ // request_user_input with:
178
178
  // - Confirm vision statement
179
179
  // - Resolve any conflicts between perspectives
180
180
  // - Adjust scope if needed
181
- AskUserQuestion({
181
+ request_user_input({
182
182
  questions: [
183
183
  {
184
- question: "Review the synthesized product brief. Any adjustments needed?",
185
184
  header: "Review",
186
- multiSelect: false,
185
+ id: "review",
186
+ question: "Review the synthesized product brief. Any adjustments needed?",
187
187
  options: [
188
- { label: "Looks good", description: "Proceed to PRD generation" },
188
+ { label: "Looks good(Recommended)", description: "Proceed to PRD generation" },
189
189
  { label: "Adjust scope", description: "Narrow or expand the scope" },
190
190
  { label: "Revise vision", description: "Refine the vision statement" }
191
191
  ]
@@ -123,24 +123,24 @@ CONSTRAINTS: Be genuinely critical. Focus on requirements that would block imple
123
123
  if (!autoMode) {
124
124
  // Present requirements grouped by initial priority
125
125
  // Allow user to adjust MoSCoW labels
126
- AskUserQuestion({
126
+ request_user_input({
127
127
  questions: [
128
128
  {
129
- question: "Review the Must-Have requirements. Any that should be reprioritized?",
130
129
  header: "Must-Have",
131
- multiSelect: false,
130
+ id: "must_have",
131
+ question: "Review the Must-Have requirements. Any that should be reprioritized?",
132
132
  options: [
133
- { label: "All correct", description: "Must-have requirements are accurate" },
133
+ { label: "All correct(Recommended)", description: "Must-have requirements are accurate" },
134
134
  { label: "Too many", description: "Some should be Should/Could" },
135
135
  { label: "Missing items", description: "Some Should requirements should be Must" }
136
136
  ]
137
137
  },
138
138
  {
139
- question: "What is the target MVP scope?",
140
139
  header: "MVP Scope",
141
- multiSelect: false,
140
+ id: "mvp_scope",
141
+ question: "What is the target MVP scope?",
142
142
  options: [
143
- { label: "Must-Have only (Recommended)", description: "MVP includes only Must requirements" },
143
+ { label: "Must-Have only(Recommended)", description: "MVP includes only Must requirements" },
144
144
  { label: "Must + key Should", description: "Include critical Should items in MVP" },
145
145
  { label: "Comprehensive", description: "Include all Must and Should" }
146
146
  ]
@@ -154,14 +154,14 @@ CONSTRAINTS: Be genuinely critical, not just validating. Focus on actionable imp
154
154
  if (!autoMode) {
155
155
  // Present ADRs with review feedback to user
156
156
  // For each ADR where review raised concerns:
157
- AskUserQuestion({
157
+ request_user_input({
158
158
  questions: [
159
159
  {
160
- question: "Architecture review raised concerns. How should we proceed?",
161
160
  header: "ADR Review",
162
- multiSelect: false,
161
+ id: "adr_review",
162
+ question: "Architecture review raised concerns. How should we proceed?",
163
163
  options: [
164
- { label: "Accept as-is", description: "Architecture is sound, proceed" },
164
+ { label: "Accept as-is(Recommended)", description: "Architecture is sound, proceed" },
165
165
  { label: "Incorporate feedback", description: "Adjust ADRs based on review" },
166
166
  { label: "Simplify", description: "Reduce complexity, fewer components" }
167
167
  ]
@@ -133,17 +133,16 @@ CONSTRAINTS: Focus on issues that would block execution planning. Be specific ab
133
133
  ```javascript
134
134
  if (!autoMode) {
135
135
  // Present Epic overview table and dependency diagram
136
- AskUserQuestion({
136
+ request_user_input({
137
137
  questions: [
138
138
  {
139
- question: "Review the Epic breakdown. Any adjustments needed?",
140
139
  header: "Epics",
141
- multiSelect: false,
140
+ id: "epics",
141
+ question: "Review the Epic breakdown. Any adjustments needed?",
142
142
  options: [
143
- { label: "Looks good", description: "Epic structure is appropriate" },
143
+ { label: "Looks good(Recommended)", description: "Epic structure is appropriate" },
144
144
  { label: "Merge epics", description: "Some epics should be combined" },
145
- { label: "Split epic", description: "An epic is too large, needs splitting" },
146
- { label: "Adjust MVP", description: "Change which epics are in MVP" }
145
+ { label: "Split epic", description: "An epic is too large, needs splitting" }
147
146
  ]
148
147
  }
149
148
  ]
@@ -312,28 +312,20 @@ Write(`${workDir}/spec-config.json`, JSON.stringify(specConfig, null, 2));
312
312
  ### Step 6: Handoff Options
313
313
 
314
314
  ```javascript
315
- AskUserQuestion({
315
+ request_user_input({
316
316
  questions: [
317
317
  {
318
- question: "Specification package is complete. What would you like to do next?",
319
318
  header: "Next Step",
320
- multiSelect: false,
319
+ id: "next_step",
320
+ question: "Specification package is complete. What would you like to do next?",
321
321
  options: [
322
322
  {
323
- label: "Execute via lite-plan",
324
- description: "Start implementing with /workflow-lite-plan, one Epic at a time"
325
- },
326
- {
327
- label: "Create roadmap",
328
- description: "Generate execution roadmap with /workflow:req-plan-with-file"
329
- },
330
- {
331
- label: "Full planning",
332
- description: "Detailed planning with /workflow-plan for the full scope"
323
+ label: "Export Issues(Recommended)",
324
+ description: "Create issues per Epic with spec links and wave assignment (Phase 7)"
333
325
  },
334
326
  {
335
- label: "Export Issues (Phase 7)",
336
- description: "Create issues per Epic with spec links and wave assignment"
327
+ label: "Execute via lite-plan",
328
+ description: "Start implementing with /workflow-lite-plan, one Epic at a time"
337
329
  },
338
330
  {
339
331
  label: "Iterate & improve",
@@ -344,7 +336,8 @@ AskUserQuestion({
344
336
  ]
345
337
  });
346
338
 
347
- // Based on user selection, execute the corresponding handoff:
339
+ // Based on user selection (answer.answers.next_step.answers[0]), execute the corresponding handoff:
340
+ const selection = answer.answers.next_step.answers[0];
348
341
 
349
342
  if (selection === "Execute via lite-plan") {
350
343
  // lite-plan accepts a text description directly
@@ -489,7 +482,7 @@ ${extractSection(epicContent, "Architecture")}
489
482
  }
490
483
  }
491
484
 
492
- if (selection === "Export Issues (Phase 7)") {
485
+ if (selection === "Export Issues(Recommended)") {
493
486
  // Proceed to Phase 7: Issue Export
494
487
  // Read phases/07-issue-export.md and execute
495
488
  }