@champpaba/claude-agent-kit 1.0.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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +561 -0
  3. package/bin/cli.js +61 -0
  4. package/lib/init.js +52 -0
  5. package/lib/update.js +73 -0
  6. package/package.json +47 -0
  7. package/template/.claude/CHANGELOG-v1.1.1.md +259 -0
  8. package/template/.claude/CLAUDE.md +329 -0
  9. package/template/.claude/agents/01-integration.md +797 -0
  10. package/template/.claude/agents/02-uxui-frontend.md +899 -0
  11. package/template/.claude/agents/03-test-debug.md +759 -0
  12. package/template/.claude/agents/04-frontend.md +1099 -0
  13. package/template/.claude/agents/05-backend.md +1217 -0
  14. package/template/.claude/agents/06-database.md +969 -0
  15. package/template/.claude/commands/agentsetup.md +1464 -0
  16. package/template/.claude/commands/cdev.md +327 -0
  17. package/template/.claude/commands/csetup.md +447 -0
  18. package/template/.claude/commands/cstatus.md +60 -0
  19. package/template/.claude/commands/cview.md +364 -0
  20. package/template/.claude/commands/psetup.md +101 -0
  21. package/template/.claude/contexts/design/accessibility.md +611 -0
  22. package/template/.claude/contexts/design/box-thinking.md +553 -0
  23. package/template/.claude/contexts/design/color-theory.md +498 -0
  24. package/template/.claude/contexts/design/index.md +247 -0
  25. package/template/.claude/contexts/design/layout.md +400 -0
  26. package/template/.claude/contexts/design/responsive.md +551 -0
  27. package/template/.claude/contexts/design/shadows.md +522 -0
  28. package/template/.claude/contexts/design/spacing.md +428 -0
  29. package/template/.claude/contexts/design/typography.md +465 -0
  30. package/template/.claude/contexts/domain/README.md +164 -0
  31. package/template/.claude/contexts/patterns/agent-coordination.md +388 -0
  32. package/template/.claude/contexts/patterns/agent-discovery.md +182 -0
  33. package/template/.claude/contexts/patterns/change-workflow.md +538 -0
  34. package/template/.claude/contexts/patterns/code-standards.md +515 -0
  35. package/template/.claude/contexts/patterns/development-principles.md +513 -0
  36. package/template/.claude/contexts/patterns/error-handling.md +478 -0
  37. package/template/.claude/contexts/patterns/error-recovery.md +365 -0
  38. package/template/.claude/contexts/patterns/frontend-component-strategy.md +365 -0
  39. package/template/.claude/contexts/patterns/git-workflow.md +207 -0
  40. package/template/.claude/contexts/patterns/logging.md +424 -0
  41. package/template/.claude/contexts/patterns/task-breakdown.md +452 -0
  42. package/template/.claude/contexts/patterns/task-classification.md +523 -0
  43. package/template/.claude/contexts/patterns/tdd-classification.md +516 -0
  44. package/template/.claude/contexts/patterns/testing.md +413 -0
  45. package/template/.claude/contexts/patterns/ui-component-consistency.md +304 -0
  46. package/template/.claude/contexts/patterns/validation-framework.md +776 -0
  47. package/template/.claude/lib/README.md +39 -0
  48. package/template/.claude/lib/agent-executor.md +258 -0
  49. package/template/.claude/lib/agent-router.md +572 -0
  50. package/template/.claude/lib/flags-updater.md +469 -0
  51. package/template/.claude/lib/tdd-classifier.md +345 -0
  52. package/template/.claude/lib/validation-gates.md +484 -0
  53. package/template/.claude/settings.local.json +42 -0
  54. package/template/.claude/templates/context-template.md +45 -0
  55. package/template/.claude/templates/flags-template.json +42 -0
  56. package/template/.claude/templates/phase-templates.json +124 -0
  57. package/template/.claude/templates/phases-sections/accessibility-test.md +17 -0
  58. package/template/.claude/templates/phases-sections/api-design.md +37 -0
  59. package/template/.claude/templates/phases-sections/backend-tests.md +16 -0
  60. package/template/.claude/templates/phases-sections/backend.md +37 -0
  61. package/template/.claude/templates/phases-sections/business-logic-validation.md +16 -0
  62. package/template/.claude/templates/phases-sections/component-tests.md +17 -0
  63. package/template/.claude/templates/phases-sections/contract-backend.md +16 -0
  64. package/template/.claude/templates/phases-sections/contract-frontend.md +16 -0
  65. package/template/.claude/templates/phases-sections/database.md +35 -0
  66. package/template/.claude/templates/phases-sections/documentation.md +17 -0
  67. package/template/.claude/templates/phases-sections/e2e-tests.md +16 -0
  68. package/template/.claude/templates/phases-sections/fix-implementation.md +17 -0
  69. package/template/.claude/templates/phases-sections/frontend-integration.md +18 -0
  70. package/template/.claude/templates/phases-sections/frontend-mockup.md +123 -0
  71. package/template/.claude/templates/phases-sections/manual-flow-test.md +15 -0
  72. package/template/.claude/templates/phases-sections/manual-ux-test.md +16 -0
  73. package/template/.claude/templates/phases-sections/refactor-implementation.md +17 -0
  74. package/template/.claude/templates/phases-sections/refactor.md +16 -0
  75. package/template/.claude/templates/phases-sections/regression-tests.md +15 -0
  76. package/template/.claude/templates/phases-sections/report.md +16 -0
  77. package/template/.claude/templates/phases-sections/responsive-test.md +16 -0
  78. package/template/.claude/templates/phases-sections/script-implementation.md +43 -0
  79. package/template/.claude/templates/phases-sections/test-coverage.md +16 -0
  80. package/template/.claude/templates/phases-sections/user-approval.md +14 -0
@@ -0,0 +1,447 @@
1
+ ---
2
+ name: Change Setup
3
+ description: Setup change context by analyzing tasks and generating agent workflow
4
+ category: Multi-Agent
5
+ tags: [setup, change, multi-agent]
6
+ ---
7
+
8
+ ## Usage
9
+
10
+ ```bash
11
+ /csetup {change-id}
12
+ ```
13
+
14
+ ## What It Does
15
+
16
+ Analyzes OpenSpec files (proposal, tasks, design) and:
17
+ 1. Detects task types (frontend, backend, API, script, etc.)
18
+ 2. Selects appropriate phase template
19
+ 3. Generates `.claude/phases.md` (agent workflow)
20
+ 4. Generates `.claude/flags.json` (progress tracking)
21
+ 5. Generates `.claude/context.md` (change-specific tech)
22
+
23
+ ## Steps
24
+
25
+ ### Step 1: Check Prerequisites
26
+
27
+ ```bash
28
+ # Check if change exists
29
+ ls openspec/changes/{change-id}/
30
+ ```
31
+
32
+ If not found:
33
+ ```
34
+ ❌ Error: Change {change-id} not found
35
+ Please create the change with OpenSpec first
36
+ ```
37
+
38
+ ### Step 2: Read OpenSpec Files
39
+
40
+ Read in order:
41
+ 1. `openspec/changes/{change-id}/proposal.md`
42
+ 2. `openspec/changes/{change-id}/tasks.md`
43
+ 3. `openspec/changes/{change-id}/design.md` (if exists)
44
+
45
+ ### Step 3: Analyze Tasks
46
+
47
+ **Parse tasks.md content and detect keywords:**
48
+
49
+ ```typescript
50
+ // Load detection keywords
51
+ const keywords = Read('.claude/templates/phase-templates.json').detection_keywords
52
+
53
+ // Analyze tasks.md
54
+ const tasksContent = Read('openspec/changes/{change-id}/tasks.md')
55
+ const lower = tasksContent.toLowerCase()
56
+
57
+ // Detect categories
58
+ const hasFrontend = keywords.frontend.some(kw => lower.includes(kw))
59
+ const hasBackend = keywords.backend.some(kw => lower.includes(kw))
60
+ const hasDatabase = keywords.database.some(kw => lower.includes(kw))
61
+ const hasAPI = keywords.api_integration.some(kw => lower.includes(kw))
62
+ const hasScript = keywords.script.some(kw => lower.includes(kw))
63
+ const isBugFix = keywords.bug_fix.some(kw => lower.includes(kw))
64
+ const isRefactor = keywords.refactor.some(kw => lower.includes(kw))
65
+ ```
66
+
67
+ **Output detection results:**
68
+ ```
69
+ 🔍 Analyzing tasks.md...
70
+
71
+ Detected:
72
+ ✅ Frontend work: YES (found: component, ui, responsive)
73
+ ✅ Backend work: YES (found: api, endpoint)
74
+ ✅ Database work: YES (found: database, schema)
75
+ ❌ Script/CLI: NO
76
+ ❌ Bug fix: NO
77
+ ❌ Refactor: NO
78
+
79
+ Change type: feature
80
+ ```
81
+
82
+ ### Step 4: Select Template
83
+
84
+ **Selection logic:**
85
+ ```typescript
86
+ let template: string
87
+
88
+ if (isBugFix) {
89
+ template = 'bug-fix'
90
+ } else if (isRefactor) {
91
+ template = 'refactor'
92
+ } else if (hasScript && !hasFrontend && !hasBackend) {
93
+ template = 'script-only'
94
+ } else if (hasFrontend && hasBackend) {
95
+ template = 'full-stack'
96
+ } else if (hasFrontend && !hasBackend && !hasAPI) {
97
+ template = 'frontend-only'
98
+ } else if (hasBackend && !hasFrontend) {
99
+ template = 'backend-only'
100
+ } else {
101
+ // Default to safest option
102
+ template = 'full-stack'
103
+ }
104
+ ```
105
+
106
+ **Output:**
107
+ ```
108
+ 📋 Template selected: full-stack
109
+ - Total phases: 19
110
+ - Estimated time: 7 hours
111
+ - Reason: Frontend + Backend + Database detected
112
+ ```
113
+
114
+ ### Step 5: Generate phases.md
115
+
116
+ **Load template and phase sections:**
117
+ ```typescript
118
+ // Load template
119
+ const templateData = Read('.claude/templates/phase-templates.json').templates[template]
120
+
121
+ // Load phase sections
122
+ const phaseSections = templateData.phases.map(phaseId => {
123
+ return Read(`.claude/templates/phases-sections/${phaseId}.md`)
124
+ })
125
+
126
+ // Extract task IDs from tasks.md
127
+ const taskIds = extractTaskIds(tasksContent) // e.g., ["1.1", "1.2", "2.1", ...]
128
+ ```
129
+
130
+ **🆕 ENHANCED: Add TDD Classification**
131
+
132
+ For each phase, add TDD metadata:
133
+ 1. Extract task description from tasks.md
134
+ 2. Estimate complexity (time + keywords + length)
135
+ 3. Classify TDD requirement (phase type + keywords + complexity)
136
+ 4. Add TDD metadata to phase: `tdd_required`, `tdd_reason`, `tdd_workflow`
137
+
138
+ **See:** `.claude/lib/tdd-classifier.md` for complete classification logic
139
+
140
+ **Quick Reference:**
141
+ - Backend auth/payment → TDD required (critical logic)
142
+ - Simple CRUD read → test-alongside OK
143
+ - Multi-step wizard UI → TDD required (complex state machine)
144
+ - Database schema → no TDD needed (declarative)
145
+
146
+ ---
147
+
148
+ **Generate phases.md:**
149
+ ```markdown
150
+ # Agent Workflow: {CHANGE_ID} {Change Title}
151
+
152
+ > **Auto-generated by `/csetup {change-id}`**
153
+ > **Template:** {template-name} ({total-phases} phases)
154
+ > **Reason:** {detection-reason}
155
+ > **Source:** proposal.md + tasks.md + design.md
156
+ > **Last updated:** {current-datetime}
157
+
158
+ ---
159
+
160
+ ## 📊 Workflow Overview
161
+
162
+ | Phase | Agent | Type | Est. Time | Status |
163
+ |-------|-------|------|-----------|--------|
164
+ {phase-table-rows}
165
+
166
+ **Total estimated time:** ~{total-hours} hours
167
+
168
+ **Phases skipped (not needed for {template-name}):**
169
+ {skipped-phases-list}
170
+
171
+ ---
172
+
173
+ {phase-section-1}
174
+
175
+ ---
176
+
177
+ {phase-section-2}
178
+
179
+ ---
180
+
181
+ ... (all phases)
182
+
183
+ ---
184
+
185
+ **End of phases.md**
186
+ ```
187
+
188
+ Write to: `openspec/changes/{change-id}/.claude/phases.md`
189
+
190
+ ### Step 6: Generate flags.json
191
+
192
+ **Load template and populate:**
193
+ ```typescript
194
+ // Load template
195
+ const flagsTemplate = Read('.claude/templates/flags-template.json')
196
+
197
+ // Populate with change data
198
+ const flags = {
199
+ ...flagsTemplate,
200
+ change_id: changeId,
201
+ change_type: changeType, // from proposal or detection
202
+ template: templateName,
203
+ created_at: new Date().toISOString(),
204
+ updated_at: new Date().toISOString(),
205
+ current_phase: templateData.phases[0], // First phase
206
+ meta: {
207
+ ...flagsTemplate.meta,
208
+ total_phases: templateData.total_phases,
209
+ pending_phases: templateData.total_phases,
210
+ total_estimated_minutes: templateData.estimated_minutes
211
+ }
212
+ }
213
+
214
+ // Initialize all phases as pending
215
+ templateData.phases.forEach((phaseId, index) => {
216
+ flags.phases[phaseId] = {
217
+ phase_number: index + 1,
218
+ status: 'pending',
219
+ agent: getAgentForPhase(phaseId),
220
+ estimated_minutes: getEstimatedMinutes(phaseId)
221
+ }
222
+ })
223
+ ```
224
+
225
+ Write to: `openspec/changes/{change-id}/.claude/flags.json`
226
+
227
+ ### Step 7: Generate context.md
228
+
229
+ **Load template and populate:**
230
+ ```typescript
231
+ // Load template
232
+ let contextTemplate = Read('.claude/templates/context-template.md')
233
+
234
+ // Load project tech stack
235
+ const projectTech = Read('.claude/contexts/domain/project/tech-stack.md')
236
+
237
+ // Detect additional tech from proposal/tasks
238
+ const additionalTech = detectAdditionalTech(proposalContent, tasksContent)
239
+
240
+ // Replace placeholders
241
+ contextTemplate = contextTemplate
242
+ .replace('{CHANGE_ID}', changeId)
243
+ .replace('{CHANGE_TITLE}', extractTitle(proposalContent))
244
+ .replace('{CHANGE_TYPE}', changeType)
245
+ .replace('{CURRENT_PHASE_NUMBER}', '1')
246
+ .replace('{TOTAL_PHASES}', templateData.total_phases)
247
+ .replace('{CREATED_DATE}', new Date().toISOString())
248
+ .replace('{CORE_TECH_LIST}', generateCoreTechList(projectTech))
249
+ .replace('{ADDITIONAL_TECH_LIST}', generateAdditionalTechList(additionalTech))
250
+ .replace('{CURRENT_PHASE}', templateData.phases[0])
251
+ .replace('{STATUS}', 'pending')
252
+ ```
253
+
254
+ Write to: `openspec/changes/{change-id}/.claude/context.md`
255
+
256
+ ### Step 8: Output Summary
257
+
258
+ ```
259
+ ✅ Change setup complete!
260
+
261
+ 📦 Change: {change-id}
262
+ 📋 Template: {template-name} ({total-phases} phases)
263
+ 🛠️ Detected: {detected-categories}
264
+
265
+ 📁 Files created:
266
+ ✓ openspec/changes/{change-id}/.claude/phases.md
267
+ ✓ openspec/changes/{change-id}/.claude/flags.json
268
+ ✓ openspec/changes/{change-id}/.claude/context.md
269
+
270
+ 📊 Workflow:
271
+ Phase 1: {first-phase-name} ({agent} agent, {estimated} min)
272
+ ...
273
+ Phase {n}: {last-phase-name}
274
+
275
+ ⏱️ Total estimated time: ~{hours}h {minutes}m
276
+
277
+ 🚀 Ready to start development!
278
+
279
+ Next steps:
280
+ 1. Review generated workflow: openspec/changes/{change-id}/.claude/phases.md
281
+ 2. Start development: /cdev {change-id}
282
+ 3. View progress: /cview {change-id}
283
+ ```
284
+
285
+ ---
286
+
287
+ ## Helper Functions
288
+
289
+ ### extractTaskIds()
290
+ ```typescript
291
+ // Extract task IDs like "1.1", "1.2", "2.1" from tasks.md
292
+ function extractTaskIds(content: string): string[] {
293
+ const regex = /-\s*\[\s*\]\s*(\d+\.\d+)/g
294
+ const matches = [...content.matchAll(regex)]
295
+ return matches.map(m => m[1])
296
+ }
297
+ ```
298
+
299
+ ### getAgentForPhase()
300
+ ```typescript
301
+ function getAgentForPhase(phaseId: string): string {
302
+ const agentMap = {
303
+ 'frontend-mockup': 'uxui-frontend',
304
+ 'accessibility-test': 'test-debug',
305
+ 'manual-ux-test': 'user',
306
+ 'business-logic-validation': 'integration',
307
+ 'user-approval': 'user',
308
+ 'api-design': 'integration',
309
+ 'backend': 'backend',
310
+ 'database': 'database',
311
+ 'backend-tests': 'test-debug',
312
+ 'contract-backend': 'integration',
313
+ 'frontend-integration': 'frontend',
314
+ 'contract-frontend': 'integration',
315
+ 'component-tests': 'test-debug',
316
+ 'responsive-test': 'user',
317
+ 'e2e-tests': 'test-debug',
318
+ 'manual-flow-test': 'user',
319
+ 'refactor': 'test-debug',
320
+ 'regression-tests': 'test-debug',
321
+ 'test-coverage': 'test-debug',
322
+ 'documentation': 'integration',
323
+ 'report': 'integration',
324
+ 'script-implementation': 'backend',
325
+ 'automated-tests': 'test-debug',
326
+ 'manual-testing': 'user',
327
+ 'fix-implementation': 'varies',
328
+ 'unit-tests': 'test-debug',
329
+ 'manual-verification': 'user',
330
+ 'refactor-implementation': 'test-debug'
331
+ }
332
+ return agentMap[phaseId] || 'integration'
333
+ }
334
+ ```
335
+
336
+ ### detectAdditionalTech()
337
+ ```typescript
338
+ // Detect change-specific tech (Stripe, WebSocket, etc.)
339
+ function detectAdditionalTech(proposal: string, tasks: string): string[] {
340
+ const combined = proposal + ' ' + tasks
341
+ const tech = []
342
+
343
+ if (combined.includes('stripe') || combined.includes('payment')) tech.push('Stripe')
344
+ if (combined.includes('websocket') || combined.includes('realtime')) tech.push('WebSocket')
345
+ if (combined.includes('redis')) tech.push('Redis')
346
+ if (combined.includes('s3') || combined.includes('storage')) tech.push('S3/Storage')
347
+ // Add more as needed
348
+
349
+ return tech
350
+ }
351
+ ```
352
+
353
+ ---
354
+
355
+ ## Error Handling
356
+
357
+ **If tasks.md is missing or empty:**
358
+ ```
359
+ ❌ Error: tasks.md not found or empty
360
+ Please ensure the change has been properly initialized with OpenSpec
361
+ ```
362
+
363
+ **If template selection is ambiguous:**
364
+ ```
365
+ ⚠️ Warning: Could not confidently detect change type
366
+ Defaulting to 'full-stack' template (safest option)
367
+
368
+ If this is incorrect, please:
369
+ 1. Add more descriptive keywords to tasks.md
370
+ 2. Or manually specify template (future feature)
371
+ ```
372
+
373
+ ---
374
+
375
+ ## Example Session
376
+
377
+ ```bash
378
+ $ /csetup CHANGE-003
379
+
380
+ 🔍 Reading OpenSpec files...
381
+ ✓ Read: proposal.md (2.3 KB)
382
+ ✓ Read: tasks.md (1.8 KB)
383
+ ✓ Read: design.md (not found - optional)
384
+
385
+ 🔍 Analyzing tasks.md...
386
+
387
+ Detected:
388
+ ✅ Frontend work: YES (found: component, page, responsive, ui)
389
+ ❌ Backend work: NO
390
+ ❌ Database work: NO
391
+ ❌ API integration: NO
392
+ ❌ Script/CLI: NO
393
+
394
+ Change type: feature
395
+
396
+ 📋 Template selected: frontend-only
397
+ - Total phases: 11
398
+ - Estimated time: 3.25 hours
399
+ - Reason: Frontend work detected, no backend/API needed
400
+
401
+ Generating workflow...
402
+ ✓ Generated phases.md (127 lines, 11 phases)
403
+ ✓ Generated flags.json (initialized all phases as pending)
404
+ ✓ Generated context.md (change context with core tech references)
405
+
406
+ ✅ Change setup complete!
407
+
408
+ 📦 Change: CHANGE-003
409
+ 📋 Template: frontend-only (11 phases)
410
+ 🛠️ Detected: Frontend
411
+
412
+ 📁 Files created:
413
+ ✓ openspec/changes/CHANGE-003/.claude/phases.md
414
+ ✓ openspec/changes/CHANGE-003/.claude/flags.json
415
+ ✓ openspec/changes/CHANGE-003/.claude/context.md
416
+
417
+ 📊 Workflow:
418
+ Phase 1: Frontend Mockup (uxui-frontend, 90 min)
419
+ Phase 2: Accessibility Test (test-debug, 10 min)
420
+ Phase 3: Manual UX Test (user, 15 min)
421
+ Phase 4: Business Logic Validation (integration, 10 min)
422
+ Phase 5: User Approval (user, 5 min)
423
+ Phase 6: Component Tests (test-debug, 20 min)
424
+ Phase 7: Responsive Test (user, 15 min)
425
+ Phase 8: Refactor (test-debug, 20 min)
426
+ Phase 9: Test Coverage (test-debug, 5 min)
427
+ Phase 10: Documentation (integration, 15 min)
428
+ Phase 11: Final Report (integration, 10 min)
429
+
430
+ ⏱️ Total estimated time: ~3h 15m
431
+
432
+ 🚀 Ready to start development!
433
+
434
+ Next steps:
435
+ 1. Review workflow: openspec/changes/CHANGE-003/.claude/phases.md
436
+ 2. Start development: /cdev CHANGE-003
437
+ 3. View progress: /cview CHANGE-003
438
+ ```
439
+
440
+ ---
441
+
442
+ ## Important Notes
443
+
444
+ 1. **Re-run safe:** Running `/csetup` again will **overwrite** existing files. Use with caution.
445
+ 2. **Manual adjustments:** You can manually edit phases.md after generation if needed
446
+ 3. **Template accuracy:** Detection is heuristic-based. Review generated workflow before starting.
447
+ 4. **Context7 integration:** Additional tech detection can trigger Context7 queries (future enhancement)
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: Change Status
3
+ description: Quick progress status for a change
4
+ category: Multi-Agent
5
+ tags: [status, progress, quick]
6
+ ---
7
+
8
+ ## Usage
9
+
10
+ ```bash
11
+ /cstatus {change-id}
12
+ ```
13
+
14
+ ## What It Does
15
+
16
+ Shows quick progress summary:
17
+ - Progress percentage with bar
18
+ - Current phase
19
+ - Time spent/remaining
20
+ - Quick stats
21
+
22
+ ## Output Format
23
+
24
+ ```
25
+ 📊 CHANGE-{id}: {type} | {template}
26
+
27
+ Progress: [████████░░] 64% (7/11 phases)
28
+
29
+ Current Phase: #8 Refactor (test-debug)
30
+ ├─ Started: 14:15 (15 minutes ago)
31
+ ├─ Estimated: 20 minutes
32
+ └─ Status: in_progress
33
+
34
+ ✅ Completed: 7 phases
35
+ 🔄 In Progress: 1 phase
36
+ ⏳ Remaining: 3 phases
37
+
38
+ ⏱️ Time:
39
+ ├─ Spent: 2h 55min (estimated: 3h 15min)
40
+ ├─ Remaining: ~35 minutes
41
+ └─ Efficiency: 111% (ahead of estimate)
42
+
43
+ 📈 Stats:
44
+ ├─ Tests: 12 passed, 0 failed (75% coverage)
45
+ ├─ Issues: 2 found, 2 fixed, 0 remaining
46
+ └─ Files: 4 created, 2 modified
47
+
48
+ 🎯 Next Steps:
49
+ 1. Complete refactoring (20 min)
50
+ 2. Test coverage report (5 min)
51
+ 3. Documentation (15 min)
52
+
53
+ Commands:
54
+ → Detailed view: /cview {change-id}
55
+ → Continue dev: /cdev {change-id}
56
+ ```
57
+
58
+ ## Implementation
59
+
60
+ Read `openspec/changes/{change-id}/.claude/flags.json` and format output using helper functions.