cc-dev-template 0.1.56 → 0.1.58
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/package.json +1 -1
- package/src/skills/spec-interview/references/step-4-deep-dive.md +22 -0
- package/src/skills/spec-to-tasks/references/step-1-identify-spec.md +13 -4
- package/src/skills/spec-to-tasks/references/step-2-explore.md +33 -15
- package/src/skills/spec-to-tasks/references/step-3-generate.md +52 -18
- package/src/skills/spec-to-tasks/references/step-4-review.md +44 -0
- package/src/skills/spec-to-tasks/templates/task.md +30 -0
- package/src/skills/task-review/SKILL.md +17 -0
- package/src/skills/task-review/references/checklist.md +101 -0
- package/src/skills/spec-to-tasks/templates/tasks.yaml +0 -25
package/package.json
CHANGED
|
@@ -27,6 +27,19 @@ Example: To understand auth integration:
|
|
|
27
27
|
|
|
28
28
|
No assumptions. If you don't know how something works, send an Explorer to find out.
|
|
29
29
|
|
|
30
|
+
### File Landscape
|
|
31
|
+
|
|
32
|
+
Once the feature is understood, identify concrete file paths. Ask an Explorer:
|
|
33
|
+
|
|
34
|
+
> "To implement [this feature], what files would need to be created or modified? Give me concrete file paths."
|
|
35
|
+
|
|
36
|
+
Capture:
|
|
37
|
+
- **Files to create**: New files with full paths (e.g., `src/models/notification.ts`)
|
|
38
|
+
- **Files to modify**: Existing files that need changes (e.g., `src/routes/index.ts`)
|
|
39
|
+
- **Directory conventions**: Where each type of code lives in this project
|
|
40
|
+
|
|
41
|
+
This becomes the File Landscape section of the spec, which spec-to-tasks uses directly.
|
|
42
|
+
|
|
30
43
|
### Data Model
|
|
31
44
|
- Entities and relationships
|
|
32
45
|
- Constraints (required fields, validations, limits)
|
|
@@ -67,6 +80,14 @@ Write to `docs/specs/<name>/spec.md` with this structure:
|
|
|
67
80
|
- External: [APIs, services, libraries]
|
|
68
81
|
- Data flows: [in/out]
|
|
69
82
|
|
|
83
|
+
## File Landscape
|
|
84
|
+
|
|
85
|
+
### Files to Create
|
|
86
|
+
- [path/to/new-file.ts]: [purpose]
|
|
87
|
+
|
|
88
|
+
### Files to Modify
|
|
89
|
+
- [path/to/existing-file.ts]: [what changes]
|
|
90
|
+
|
|
70
91
|
## Data Model
|
|
71
92
|
[Entities, relationships, constraints]
|
|
72
93
|
|
|
@@ -79,6 +100,7 @@ Write to `docs/specs/<name>/spec.md` with this structure:
|
|
|
79
100
|
|
|
80
101
|
## Acceptance Criteria
|
|
81
102
|
- [ ] [Testable requirement]
|
|
103
|
+
**Verify:** [verification method]
|
|
82
104
|
|
|
83
105
|
## Blockers
|
|
84
106
|
- [ ] [Blocker]: [what's needed]
|
|
@@ -19,11 +19,20 @@ If no specs found in git history, check `docs/specs/` for any spec files and ask
|
|
|
19
19
|
## Verify the Spec
|
|
20
20
|
|
|
21
21
|
Read the spec file. Confirm it contains enough detail to generate implementation tasks:
|
|
22
|
-
- Clear requirements or user stories
|
|
23
|
-
- Technical approach or architecture decisions
|
|
24
|
-
- Defined scope
|
|
25
22
|
|
|
26
|
-
|
|
23
|
+
**Required:**
|
|
24
|
+
- Acceptance Criteria with verification methods (each criterion becomes a task)
|
|
25
|
+
- Clear behavior descriptions
|
|
26
|
+
|
|
27
|
+
**Expected (from spec-interview):**
|
|
28
|
+
- File Landscape section listing files to create/modify
|
|
29
|
+
- Integration points and data model
|
|
30
|
+
|
|
31
|
+
**If missing acceptance criteria or verification methods:**
|
|
32
|
+
Inform the user: "This spec doesn't have acceptance criteria with verification methods. Each task needs a clear pass/fail test. Would you like to add them now, or run spec-interview to complete the spec?"
|
|
33
|
+
|
|
34
|
+
**If missing file landscape:**
|
|
35
|
+
Proceed to step 2 where we'll discover file paths via exploration.
|
|
27
36
|
|
|
28
37
|
## Next Step
|
|
29
38
|
|
|
@@ -1,25 +1,43 @@
|
|
|
1
|
-
# Step 2:
|
|
1
|
+
# Step 2: Verify File Landscape
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The spec should already contain a File Landscape section from the interview process. This step verifies and supplements it.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Check the Spec
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Read the spec's File Landscape section. It should list:
|
|
8
|
+
- **Files to create**: New files with paths and purposes
|
|
9
|
+
- **Files to modify**: Existing files that need changes
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
- **Naming conventions**: How are files and directories named?
|
|
11
|
-
- **Files to modify**: Which existing files need changes for this feature?
|
|
12
|
-
- **Files to create**: What new files are needed and where should they go?
|
|
11
|
+
If the File Landscape section is missing or incomplete, use an Explorer to fill the gaps:
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
> "To implement [feature from spec], what files would need to be created or modified? Give me concrete file paths."
|
|
15
14
|
|
|
16
|
-
##
|
|
15
|
+
## Map Files to Acceptance Criteria
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
For each acceptance criterion in the spec, identify which files are involved. This mapping drives task generation.
|
|
18
|
+
|
|
19
|
+
Example:
|
|
20
|
+
```
|
|
21
|
+
"User can receive notifications"
|
|
22
|
+
→ src/models/notification.ts
|
|
23
|
+
→ src/services/notificationService.ts
|
|
24
|
+
→ src/services/notificationService.test.ts
|
|
25
|
+
|
|
26
|
+
"User can view notification list"
|
|
27
|
+
→ src/routes/notifications.ts
|
|
28
|
+
→ src/components/NotificationList.tsx
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If a criterion's files aren't clear from the spec, ask an Explorer:
|
|
32
|
+
|
|
33
|
+
> "What files would be involved in making this criterion pass: [criterion]?"
|
|
34
|
+
|
|
35
|
+
## Output
|
|
36
|
+
|
|
37
|
+
You should now have:
|
|
38
|
+
1. Complete list of files to create and modify
|
|
39
|
+
2. Each acceptance criterion mapped to its files
|
|
22
40
|
|
|
23
41
|
## Next Step
|
|
24
42
|
|
|
25
|
-
Once
|
|
43
|
+
Once files are mapped to criteria, read `references/step-3-generate.md`.
|
|
@@ -1,31 +1,65 @@
|
|
|
1
|
-
# Step 3: Generate Task
|
|
1
|
+
# Step 3: Generate Task Files
|
|
2
2
|
|
|
3
|
-
Create
|
|
3
|
+
Create individual task files based on the spec and codebase exploration.
|
|
4
4
|
|
|
5
5
|
## Task Principles
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Criterion-based**: Each task corresponds to one acceptance criterion from the spec. A task includes all files needed to make that criterion pass. Do NOT split by file or architectural layer.
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Verifiable**: Every task has a verification method from the spec. A coder implements, a QA agent verifies, and the loop continues until it passes.
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**Ordered**: Name files so they sort in dependency order (T001, T002, etc.). Tasks with no dependencies on each other can be worked in parallel.
|
|
12
12
|
|
|
13
|
-
**
|
|
13
|
+
**Concrete file paths**: Use the file paths discovered in Step 2. Every task lists all files it touches.
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Deriving Tasks from Acceptance Criteria
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Each acceptance criterion in the spec becomes one task.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
**For each criterion, determine:**
|
|
20
|
+
1. What files must exist or change for this to pass?
|
|
21
|
+
2. What's the verification method from the spec?
|
|
22
|
+
3. What other criteria must pass first? (dependencies)
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
**Grouping rules:**
|
|
25
|
+
- If two criteria share foundational work (e.g., both need a model), the first task creates the foundation, later tasks build on it
|
|
26
|
+
- If a criterion is too large (touches 10+ files), flag it — the spec may need refinement
|
|
27
|
+
- Small tasks are fine; artificial splits are not
|
|
25
28
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
**Anti-patterns to avoid:**
|
|
30
|
+
- "Create the User model" — no verifiable outcome
|
|
31
|
+
- "Add service layer" — implementation detail, not behavior
|
|
32
|
+
- "Set up database schema" — means to an end, not the end
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
**Good task boundaries:**
|
|
35
|
+
- "User can register with email" — verifiable, coherent
|
|
36
|
+
- "Duplicate emails are rejected" — verifiable, coherent
|
|
37
|
+
- "Dashboard shows notification count" — verifiable, coherent
|
|
38
|
+
|
|
39
|
+
## Validate Criteria Quality
|
|
40
|
+
|
|
41
|
+
Before generating tasks, verify each acceptance criterion has:
|
|
42
|
+
- A specific, testable condition
|
|
43
|
+
- A verification method (test command, agent-browser script, or query)
|
|
44
|
+
|
|
45
|
+
If criteria are vague or missing verification, stop and ask:
|
|
46
|
+
> "The criterion '[X]' doesn't have a clear verification method. Should I suggest one, or would you like to refine the spec first?"
|
|
47
|
+
|
|
48
|
+
## Generate Task Files
|
|
49
|
+
|
|
50
|
+
Create a `tasks/` directory inside the spec folder:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
docs/specs/<name>/
|
|
54
|
+
├── spec.md
|
|
55
|
+
└── tasks/
|
|
56
|
+
├── T001-<slug>.md
|
|
57
|
+
├── T002-<slug>.md
|
|
58
|
+
└── T003-<slug>.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Use the template in `templates/task.md` for each file. Name files in dependency order so alphabetical sorting reflects execution order.
|
|
62
|
+
|
|
63
|
+
## Next Step
|
|
64
|
+
|
|
65
|
+
Once task files are generated, read `references/step-4-review.md` to run the review before presenting to the user.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Step 4: Review Task Breakdown
|
|
2
|
+
|
|
3
|
+
Before presenting to the user, run a review to catch issues.
|
|
4
|
+
|
|
5
|
+
## Run Task Review
|
|
6
|
+
|
|
7
|
+
Invoke the `task-review` skill, specifying the spec name:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Skill(skill: "task-review", args: "<spec-name>")
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The review will check:
|
|
14
|
+
- Coverage (all criteria have tasks)
|
|
15
|
+
- Dependency order (tasks properly sequenced)
|
|
16
|
+
- File plausibility (paths make sense)
|
|
17
|
+
- Verification executability (concrete commands)
|
|
18
|
+
- Task scope (appropriately sized)
|
|
19
|
+
- Consistency (format, frontmatter)
|
|
20
|
+
|
|
21
|
+
## Handle Findings
|
|
22
|
+
|
|
23
|
+
The review returns findings categorized as Critical, Warning, or Note.
|
|
24
|
+
|
|
25
|
+
**Critical issues**: Fix before proceeding. Update the affected task files.
|
|
26
|
+
|
|
27
|
+
**Warnings**: Present to user with your recommendation (fix or skip).
|
|
28
|
+
|
|
29
|
+
**Notes**: Mention briefly, no action required.
|
|
30
|
+
|
|
31
|
+
## Present to User
|
|
32
|
+
|
|
33
|
+
After addressing critical issues, present:
|
|
34
|
+
|
|
35
|
+
1. Number of tasks generated
|
|
36
|
+
2. Task titles in dependency order
|
|
37
|
+
3. Any warnings from the review (with recommendations)
|
|
38
|
+
4. Offer to show task files or proceed to implementation
|
|
39
|
+
|
|
40
|
+
If the user wants changes, update the task files and re-run the review.
|
|
41
|
+
|
|
42
|
+
## Complete
|
|
43
|
+
|
|
44
|
+
Once the user approves the task breakdown, the skill is complete. The tasks are ready for implementation.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: T00X
|
|
3
|
+
title: <Short descriptive title — the acceptance criterion>
|
|
4
|
+
status: pending
|
|
5
|
+
depends_on: []
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Criterion
|
|
9
|
+
|
|
10
|
+
<The acceptance criterion from the spec, verbatim or lightly edited for clarity>
|
|
11
|
+
|
|
12
|
+
## Files
|
|
13
|
+
|
|
14
|
+
- <path/to/file.ts>
|
|
15
|
+
- <path/to/another-file.ts>
|
|
16
|
+
- <path/to/test-file.test.ts>
|
|
17
|
+
|
|
18
|
+
## Verification
|
|
19
|
+
|
|
20
|
+
<The verification method from the spec — test command, agent-browser script, or manual steps>
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Implementation Notes
|
|
25
|
+
|
|
26
|
+
<!-- Coder agent writes here after each implementation attempt -->
|
|
27
|
+
|
|
28
|
+
## Review Notes
|
|
29
|
+
|
|
30
|
+
<!-- QA agent writes here after each review pass -->
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-review
|
|
3
|
+
description: Reviews task breakdown for completeness, correct ordering, and implementation readiness. Use after spec-to-tasks generates task files.
|
|
4
|
+
argument-hint: <spec-name>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Task Review
|
|
8
|
+
|
|
9
|
+
Review the task breakdown to catch issues before implementation begins.
|
|
10
|
+
|
|
11
|
+
## What To Do Now
|
|
12
|
+
|
|
13
|
+
If an argument was provided, use it as the spec name. Otherwise, find the most recent spec with a `tasks/` directory.
|
|
14
|
+
|
|
15
|
+
Read the spec file and all task files in the `tasks/` directory.
|
|
16
|
+
|
|
17
|
+
Then read `references/checklist.md` and evaluate each item.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Task Review Checklist
|
|
2
|
+
|
|
3
|
+
Evaluate each area. For each issue found, note the severity:
|
|
4
|
+
- **Critical**: Must fix before implementation
|
|
5
|
+
- **Warning**: Should fix, but could proceed
|
|
6
|
+
- **Note**: Minor suggestion
|
|
7
|
+
|
|
8
|
+
## 1. Coverage
|
|
9
|
+
|
|
10
|
+
Compare acceptance criteria in the spec to tasks generated.
|
|
11
|
+
|
|
12
|
+
**Check:**
|
|
13
|
+
- [ ] Every acceptance criterion has exactly one corresponding task
|
|
14
|
+
- [ ] No criteria were skipped or forgotten
|
|
15
|
+
- [ ] No phantom tasks that don't map to a criterion
|
|
16
|
+
|
|
17
|
+
**How to verify:**
|
|
18
|
+
List each criterion from the spec's Acceptance Criteria section. For each, find the matching task file. Flag any orphans in either direction.
|
|
19
|
+
|
|
20
|
+
## 2. Dependency Order
|
|
21
|
+
|
|
22
|
+
Tasks should be sequenced so each can be completed without waiting on later tasks.
|
|
23
|
+
|
|
24
|
+
**Check:**
|
|
25
|
+
- [ ] Task file names sort in valid execution order (T001, T002, etc.)
|
|
26
|
+
- [ ] Each task's `depends_on` references only earlier tasks
|
|
27
|
+
- [ ] No circular dependencies
|
|
28
|
+
- [ ] Foundation work comes before features that use it
|
|
29
|
+
|
|
30
|
+
**Common issues:**
|
|
31
|
+
- API route task before the service it calls
|
|
32
|
+
- UI component before the API it fetches from
|
|
33
|
+
- Test file before the code it tests (tests should be in same task as code)
|
|
34
|
+
|
|
35
|
+
## 3. File Plausibility
|
|
36
|
+
|
|
37
|
+
Files listed in each task should make sense for the project.
|
|
38
|
+
|
|
39
|
+
**Check:**
|
|
40
|
+
- [ ] File paths follow project conventions (use Explorer if unsure)
|
|
41
|
+
- [ ] Files to modify actually exist in the codebase
|
|
42
|
+
- [ ] Files to create are in appropriate directories
|
|
43
|
+
- [ ] No duplicate files across tasks (each file appears in exactly one task)
|
|
44
|
+
|
|
45
|
+
**How to verify:**
|
|
46
|
+
For files to modify, confirm they exist. For files to create, confirm the parent directory exists and the naming follows conventions.
|
|
47
|
+
|
|
48
|
+
## 4. Verification Executability
|
|
49
|
+
|
|
50
|
+
Each task's verification method must be concrete and runnable.
|
|
51
|
+
|
|
52
|
+
**Check:**
|
|
53
|
+
- [ ] Verification is a specific command or script, not vague prose
|
|
54
|
+
- [ ] Test file paths exist or will be created by the task
|
|
55
|
+
- [ ] agent-browser commands reference real routes/elements
|
|
56
|
+
- [ ] No "manually verify" without clear steps
|
|
57
|
+
|
|
58
|
+
**Red flags:**
|
|
59
|
+
- "Verify it works correctly"
|
|
60
|
+
- "Check that the feature functions"
|
|
61
|
+
- Test commands for files not listed in the task
|
|
62
|
+
|
|
63
|
+
## 5. Task Scope
|
|
64
|
+
|
|
65
|
+
Each task should be appropriately sized for the coder→QA loop.
|
|
66
|
+
|
|
67
|
+
**Check:**
|
|
68
|
+
- [ ] No task touches more than ~10 files (consider splitting)
|
|
69
|
+
- [ ] No trivially small tasks that could merge with related work
|
|
70
|
+
- [ ] Each task produces a verifiable outcome, not just "creates a file"
|
|
71
|
+
|
|
72
|
+
## 6. Consistency
|
|
73
|
+
|
|
74
|
+
Cross-check task files against each other and the spec.
|
|
75
|
+
|
|
76
|
+
**Check:**
|
|
77
|
+
- [ ] Task titles match or closely reflect the acceptance criterion
|
|
78
|
+
- [ ] Status is `pending` for all new tasks
|
|
79
|
+
- [ ] Frontmatter format is consistent across all task files
|
|
80
|
+
- [ ] Implementation Notes and Review Notes sections exist (empty is fine)
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Output Format
|
|
85
|
+
|
|
86
|
+
Return findings as a structured list:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
## Critical Issues
|
|
90
|
+
- [T002] Depends on T005 which comes later - wrong order
|
|
91
|
+
- [T003] Missing verification method
|
|
92
|
+
|
|
93
|
+
## Warnings
|
|
94
|
+
- [T001] touches 12 files - consider splitting
|
|
95
|
+
- Criterion "User can delete account" has no corresponding task
|
|
96
|
+
|
|
97
|
+
## Notes
|
|
98
|
+
- [T004] Could merge with T005 since they share the same files
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
If no issues found, state: "Task breakdown looks good. All criteria covered, dependencies valid, verification methods concrete."
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
spec: <name>
|
|
2
|
-
spec_path: docs/specs/<name>/spec.md
|
|
3
|
-
generated: <ISO timestamp>
|
|
4
|
-
|
|
5
|
-
tasks:
|
|
6
|
-
- id: T001
|
|
7
|
-
title: <Short descriptive title>
|
|
8
|
-
description: |
|
|
9
|
-
<What to implement>
|
|
10
|
-
<Reference to spec section if applicable>
|
|
11
|
-
files:
|
|
12
|
-
- <path/to/file.ts>
|
|
13
|
-
depends_on: []
|
|
14
|
-
acceptance: |
|
|
15
|
-
<How to verify this task is complete>
|
|
16
|
-
|
|
17
|
-
- id: T002
|
|
18
|
-
title: <Next task>
|
|
19
|
-
description: |
|
|
20
|
-
<What to implement>
|
|
21
|
-
files:
|
|
22
|
-
- <path/to/file.ts>
|
|
23
|
-
depends_on: [T001]
|
|
24
|
-
acceptance: |
|
|
25
|
-
<Verification criteria>
|