create-sdd-project 0.2.4 → 0.3.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 (43) hide show
  1. package/README.md +10 -10
  2. package/lib/config.js +1 -1
  3. package/lib/generator.js +7 -28
  4. package/lib/init-generator.js +24 -35
  5. package/lib/init-wizard.js +1 -1
  6. package/package.json +1 -1
  7. package/template/.claude/agents/backend-developer.md +1 -1
  8. package/template/.claude/agents/frontend-developer.md +1 -1
  9. package/template/.claude/settings.json +1 -1
  10. package/template/.claude/skills/bug-workflow/SKILL.md +2 -2
  11. package/template/.claude/skills/development-workflow/SKILL.md +18 -18
  12. package/template/.claude/skills/development-workflow/references/add-feature-template.md +16 -0
  13. package/template/.claude/skills/development-workflow/references/branching-strategy.md +1 -1
  14. package/template/.claude/skills/development-workflow/references/complexity-guide.md +6 -6
  15. package/template/.claude/skills/development-workflow/references/failure-handling.md +3 -3
  16. package/template/.claude/skills/development-workflow/references/pr-template.md +3 -3
  17. package/template/.claude/skills/development-workflow/references/ticket-template.md +3 -3
  18. package/template/.claude/skills/development-workflow/references/workflow-example.md +7 -7
  19. package/template/.claude/skills/project-memory/SKILL.md +9 -9
  20. package/template/.gemini/agents/backend-developer.md +1 -1
  21. package/template/.gemini/agents/frontend-developer.md +1 -1
  22. package/template/.gemini/commands/add-feature.toml +2 -0
  23. package/template/.gemini/commands/next-task.toml +2 -2
  24. package/template/.gemini/commands/show-progress.toml +2 -2
  25. package/template/.gemini/commands/start-task.toml +1 -1
  26. package/template/.gemini/skills/bug-workflow/SKILL.md +4 -4
  27. package/template/.gemini/skills/development-workflow/SKILL.md +18 -18
  28. package/template/.gemini/skills/development-workflow/references/add-feature-template.md +16 -0
  29. package/template/.gemini/skills/development-workflow/references/branching-strategy.md +1 -1
  30. package/template/.gemini/skills/development-workflow/references/complexity-guide.md +6 -6
  31. package/template/.gemini/skills/development-workflow/references/failure-handling.md +3 -3
  32. package/template/.gemini/skills/development-workflow/references/pr-template.md +3 -3
  33. package/template/.gemini/skills/development-workflow/references/ticket-template.md +3 -3
  34. package/template/.gemini/skills/development-workflow/references/workflow-example.md +7 -7
  35. package/template/.gemini/skills/project-memory/SKILL.md +8 -8
  36. package/template/AGENTS.md +5 -5
  37. package/template/CLAUDE.md +2 -2
  38. package/template/ai-specs/specs/base-standards.mdc +8 -8
  39. package/template/docs/project_notes/product-tracker.md +56 -0
  40. package/template/.claude/skills/development-workflow/references/sprint-init-template.md +0 -82
  41. package/template/.gemini/commands/init-sprint.toml +0 -2
  42. package/template/.gemini/skills/development-workflow/references/sprint-init-template.md +0 -82
  43. package/template/docs/project_notes/sprint-0-tracker.md +0 -66
package/README.md CHANGED
@@ -36,8 +36,8 @@ Scans your project, detects your stack and architecture, and installs SDD files
36
36
  Open in your AI coding tool and run:
37
37
 
38
38
  ```
39
- init sprint 0
40
- start task B0.1
39
+ add feature "your first feature"
40
+ start task F001
41
41
  ```
42
42
 
43
43
  The workflow skill guides you through each step with checkpoints based on your autonomy level.
@@ -55,7 +55,7 @@ SDD DevFlow combines three proven practices:
55
55
  ### Why use SDD DevFlow?
56
56
 
57
57
  - **AI agents work better with structure.** Without guardrails, AI coding assistants produce inconsistent results. SDD provides the methodology, standards, and workflow that make AI output predictable and high-quality.
58
- - **Institutional memory across sessions.** Sprint trackers, bug logs, and decision records survive context compaction and session boundaries.
58
+ - **Institutional memory across sessions.** Product tracker, bug logs, and decision records survive context compaction and session boundaries.
59
59
  - **Scales from solo to team.** Start at L1 (full control) while learning, scale to L4 (full auto) for repetitive tasks.
60
60
  - **Works with your stack.** Not opinionated about frameworks — detects and adapts to Express, Fastify, NestJS, Next.js, Nuxt, Vue, Angular, and many more.
61
61
 
@@ -79,7 +79,7 @@ SDD DevFlow combines three proven practices:
79
79
 
80
80
  | Skill | Trigger | What it does |
81
81
  |-------|---------|-------------|
82
- | `development-workflow` | `start task B0.1`, `next task`, `init sprint N` | Orchestrates the complete 7-step workflow |
82
+ | `development-workflow` | `start task F001`, `next task`, `add feature` | Orchestrates the complete 7-step workflow |
83
83
  | `bug-workflow` | `report bug`, `fix bug`, `hotfix needed` | Bug triage, investigation, and resolution |
84
84
  | `project-memory` | `set up project memory`, `log a bug fix` | Maintains institutional knowledge |
85
85
 
@@ -87,7 +87,7 @@ SDD DevFlow combines three proven practices:
87
87
 
88
88
  ```
89
89
  0. SPEC → spec-creator drafts specs → Spec Approval
90
- 1. SETUP → Branch, ticket, sprint tracker → Ticket Approval
90
+ 1. SETUP → Branch, ticket, product tracker → Ticket Approval
91
91
  2. PLAN → Planner creates implementation plan → Plan Approval
92
92
  3. IMPLEMENT → Developer agent, TDD
93
93
  4. FINALIZE → Tests/lint/build, validator → Commit Approval
@@ -104,7 +104,7 @@ SDD DevFlow combines three proven practices:
104
104
 
105
105
  | Level | Name | Human Checkpoints | Best For |
106
106
  |-------|------|-------------------|----------|
107
- | L1 | Full Control | All 5 | First sprint, learning SDD |
107
+ | L1 | Full Control | All 5 | First feature, learning SDD |
108
108
  | L2 | Trusted | Plan + Merge | Normal development **(default)** |
109
109
  | L3 | Autopilot | Merge only | Well-defined, repetitive tasks |
110
110
  | L4 | Full Auto | None (CI/CD gates only) | Bulk simple tasks |
@@ -115,7 +115,7 @@ Quality gates (tests, lint, build, validators) **always run** regardless of leve
115
115
 
116
116
  Tracks institutional knowledge across sessions in `docs/project_notes/`:
117
117
 
118
- - **sprint-X-tracker.md** — Sprint progress + Active Session (context recovery after compaction)
118
+ - **product-tracker.md** — Feature backlog + Active Session (context recovery after compaction)
119
119
  - **bugs.md** — Bug log with solutions and prevention notes
120
120
  - **decisions.md** — Architectural Decision Records (ADRs)
121
121
  - **key_facts.md** — Project configuration, ports, URLs, branching strategy
@@ -123,7 +123,7 @@ Tracks institutional knowledge across sessions in `docs/project_notes/`:
123
123
  ### Automated Hooks (Claude Code)
124
124
 
125
125
  - **Quick Scan** — After developer agents finish, a fast grep-based scan (~2s, no API calls) checks for debug code, secrets, and TODOs
126
- - **Compaction Recovery** — After context compaction, injects a reminder to read the sprint tracker for context recovery
126
+ - **Compaction Recovery** — After context compaction, injects a reminder to read the product tracker for context recovery
127
127
 
128
128
  ### Multi-Tool Support
129
129
 
@@ -189,7 +189,7 @@ project/
189
189
 
190
190
  └── docs/
191
191
  ├── project_notes/ # Project memory
192
- │ ├── sprint-0-tracker.md
192
+ │ ├── product-tracker.md
193
193
  │ ├── key_facts.md
194
194
  │ ├── bugs.md
195
195
  │ └── decisions.md
@@ -237,7 +237,7 @@ Then look for `<!-- CONFIG: ... -->` comments in the files to customize.
237
237
  ## Roadmap
238
238
 
239
239
  - **Agent Teams**: Parallel execution of independent tasks (waiting for Claude Code Agent Teams to stabilize)
240
- - **PM Agent + L5 Autonomous**: AI-driven sprint orchestration with human review at sprint boundaries
240
+ - **PM Agent + L5 Autonomous**: AI-driven feature orchestration with human review at milestone boundaries
241
241
  - **Retrofit Testing**: Automated test generation for existing projects with low coverage
242
242
 
243
243
  ## License
package/lib/config.js CHANGED
@@ -78,7 +78,7 @@ const AI_TOOLS = [
78
78
  ];
79
79
 
80
80
  const AUTONOMY_LEVELS = [
81
- { level: 1, name: 'Full Control', desc: 'Human approves every checkpoint (first sprint, learning SDD)' },
81
+ { level: 1, name: 'Full Control', desc: 'Human approves every checkpoint (first feature, learning SDD)' },
82
82
  { level: 2, name: 'Trusted', desc: 'Human reviews plans + merges only (normal development)', default: true },
83
83
  { level: 3, name: 'Autopilot', desc: 'Human only approves merges (well-defined, repetitive tasks)' },
84
84
  { level: 4, name: 'Full Auto', desc: 'No human checkpoints, CI/CD gates only (bulk simple tasks)' },
package/lib/generator.js CHANGED
@@ -41,11 +41,7 @@ function generate(config) {
41
41
  step(`Setting branching: ${config.branching}`);
42
42
  updateBranching(dest, config);
43
43
 
44
- // 6. Set sprint dates
45
- step('Setting sprint dates to today');
46
- updateSprintDates(dest);
47
-
48
- // 7. Remove agents/specs based on project type
44
+ // 6. Remove agents/specs based on project type
49
45
  if (config.projectType === 'backend') {
50
46
  step('Removing frontend agents (backend only)');
51
47
  removeFrontendFiles(dest, config);
@@ -54,7 +50,7 @@ function generate(config) {
54
50
  removeBackendFiles(dest, config);
55
51
  }
56
52
 
57
- // 8. Remove AI tool config if single tool selected
53
+ // 7. Remove AI tool config if single tool selected
58
54
  if (config.aiTools === 'claude') {
59
55
  step('Removing Gemini config (Claude only)');
60
56
  fs.rmSync(path.join(dest, '.gemini'), { recursive: true, force: true });
@@ -76,7 +72,7 @@ function generate(config) {
76
72
  console.log(`\nDone! Next steps:`);
77
73
  console.log(` cd ${path.relative(process.cwd(), dest)}`);
78
74
  console.log(` git init && git add -A && git commit -m "chore: initialize SDD DevFlow project"`);
79
- console.log(` # Open in your AI coding tool and run: init sprint 0\n`);
75
+ console.log(` # Open in your AI coding tool and run: add feature "your first feature"\n`);
80
76
  }
81
77
 
82
78
  // --- Helpers ---
@@ -230,19 +226,6 @@ function updateBranching(dest, config) {
230
226
  // Nothing else to update — branching is read from key_facts.md at runtime
231
227
  }
232
228
 
233
- function updateSprintDates(dest) {
234
- const file = path.join(dest, 'docs', 'project_notes', 'sprint-0-tracker.md');
235
- const today = new Date().toISOString().split('T')[0];
236
- // Calculate 2-week sprint end
237
- const endDate = new Date();
238
- endDate.setDate(endDate.getDate() + 14);
239
- const end = endDate.toISOString().split('T')[0];
240
-
241
- replaceInFile(file, [
242
- [/\[YYYY-MM-DD\] to \[YYYY-MM-DD\]/, `${today} to ${end}`],
243
- ]);
244
- }
245
-
246
229
  function removeFrontendFiles(dest, config) {
247
230
  // Remove frontend agents
248
231
  for (const agent of FRONTEND_AGENTS) {
@@ -262,11 +245,7 @@ function removeFrontendFiles(dest, config) {
262
245
  ['├── frontend/ ← Frontend (has its own package.json)\n', ''],
263
246
  ]);
264
247
 
265
- // Remove frontend tasks from sprint tracker
266
- const trackerFile = path.join(dest, 'docs', 'project_notes', 'sprint-0-tracker.md');
267
- replaceInFile(trackerFile, [
268
- [/\n### Frontend\n\n\|.*\n\|.*\n\|.*\n/, '\n'],
269
- ]);
248
+ // Product tracker already defaults to backend — no change needed
270
249
  }
271
250
 
272
251
  function removeBackendFiles(dest, config) {
@@ -288,10 +267,10 @@ function removeBackendFiles(dest, config) {
288
267
  ['├── backend/ ← Backend (has its own package.json)\n', ''],
289
268
  ]);
290
269
 
291
- // Remove backend tasks from sprint tracker
292
- const trackerFile = path.join(dest, 'docs', 'project_notes', 'sprint-0-tracker.md');
270
+ // Update product tracker default feature type to frontend
271
+ const trackerFile = path.join(dest, 'docs', 'project_notes', 'product-tracker.md');
293
272
  replaceInFile(trackerFile, [
294
- [/\n### Backend\n\n\|.*\n\|.*\n\|.*\n/, '\n'],
273
+ ['| backend | pending', '| frontend | pending'],
295
274
  ]);
296
275
  }
297
276
 
@@ -72,7 +72,7 @@ function generateInit(config) {
72
72
  }
73
73
 
74
74
  // 3. Copy and configure docs/
75
- step('Creating docs/project_notes/ (sprint tracker, memory)');
75
+ step('Creating docs/project_notes/ (product tracker, memory)');
76
76
  ensureDir(path.join(dest, 'docs', 'project_notes'));
77
77
  ensureDir(path.join(dest, 'docs', 'specs'));
78
78
  ensureDir(path.join(dest, 'docs', 'tickets'));
@@ -99,14 +99,14 @@ function generateInit(config) {
99
99
  skipped
100
100
  );
101
101
 
102
- // sprint-0-tracker.md — configure dates and add retrofit tasks
103
- const trackerPath = path.join(dest, 'docs', 'project_notes', 'sprint-0-tracker.md');
102
+ // product-tracker.md — configure and add retrofit tasks
103
+ const trackerPath = path.join(dest, 'docs', 'project_notes', 'product-tracker.md');
104
104
  if (!fs.existsSync(trackerPath)) {
105
- const template = fs.readFileSync(path.join(templateDir, 'docs', 'project_notes', 'sprint-0-tracker.md'), 'utf8');
106
- const configured = configureSprintTracker(template, scan);
105
+ const template = fs.readFileSync(path.join(templateDir, 'docs', 'project_notes', 'product-tracker.md'), 'utf8');
106
+ const configured = configureProductTracker(template, scan);
107
107
  fs.writeFileSync(trackerPath, configured, 'utf8');
108
108
  } else {
109
- skipped.push('docs/project_notes/sprint-0-tracker.md');
109
+ skipped.push('docs/project_notes/product-tracker.md');
110
110
  }
111
111
 
112
112
  // docs/specs/
@@ -195,7 +195,7 @@ function generateInit(config) {
195
195
 
196
196
  // Show review notes
197
197
  console.log('');
198
- console.log(' ⚠ REVIEW BEFORE YOUR FIRST SPRINT:');
198
+ console.log(' ⚠ REVIEW BEFORE YOUR FIRST FEATURE:');
199
199
  if (config.projectType !== 'frontend') {
200
200
  console.log(' - ai-specs/specs/backend-standards.mdc — Architecture section adapted from scan');
201
201
  }
@@ -214,7 +214,7 @@ function generateInit(config) {
214
214
  } else {
215
215
  console.log(` 📝 Test coverage appears low (${fileCount} test files found).`);
216
216
  }
217
- console.log(' Consider starting Sprint 0 with retrofit testing tasks.');
217
+ console.log(' Consider adding retrofit testing as your first feature.');
218
218
  }
219
219
 
220
220
  // Prisma schema note
@@ -226,7 +226,7 @@ function generateInit(config) {
226
226
  // Done
227
227
  console.log(`\nDone! Next steps:`);
228
228
  console.log(` git add -A && git commit -m "chore: add SDD DevFlow to existing project"`);
229
- console.log(` # Open in your AI coding tool and run: init sprint 0\n`);
229
+ console.log(` # Open in your AI coding tool and run: add feature "your first feature"\n`);
230
230
  }
231
231
 
232
232
  // --- Helpers ---
@@ -646,40 +646,29 @@ function configureKeyFacts(template, config, scan) {
646
646
  return content;
647
647
  }
648
648
 
649
- // --- Sprint Tracker Configuration ---
649
+ // --- Product Tracker Configuration ---
650
650
 
651
- function configureSprintTracker(template, scan) {
651
+ function configureProductTracker(template, scan) {
652
652
  let content = template;
653
653
 
654
- // Set dates
655
- const today = new Date().toISOString().split('T')[0];
656
- const endDate = new Date();
657
- endDate.setDate(endDate.getDate() + 14);
658
- const end = endDate.toISOString().split('T')[0];
659
- content = content.replace(/\[YYYY-MM-DD\] to \[YYYY-MM-DD\]/, `${today} to ${end}`);
654
+ // Determine default feature type based on detected stack
655
+ const featureType = !scan.backend.detected && scan.frontend.detected
656
+ ? 'frontend'
657
+ : scan.backend.detected && scan.frontend.detected
658
+ ? 'fullstack'
659
+ : 'backend';
660
660
 
661
- // Remove irrelevant task tables based on detected stack
662
- if (!scan.frontend.detected) {
663
- content = content.replace(
664
- /\n### Frontend\n\n\| # \| Task \| Status \| Notes \|\n\|---\|------\|--------\|-------\|\n\| F0\.1 \| \[Task description\] \| ⬚ \| \|\n/,
665
- ''
666
- );
667
- }
668
- if (!scan.backend.detected) {
669
- content = content.replace(
670
- /\n### Backend\n\n\| # \| Task \| Status \| Notes \|\n\|---\|------\|--------\|-------\|\n\| B0\.1 \| \[Task description\] \| ⬚ \| \|\n/,
671
- ''
672
- );
661
+ // Update default feature type in the placeholder row
662
+ if (featureType !== 'backend') {
663
+ content = content.replace('| backend | pending', `| ${featureType} | pending`);
673
664
  }
674
665
 
675
- // Add retrofit testing tasks if coverage is low
666
+ // Add retrofit testing as first feature if coverage is low
676
667
  if (scan.tests.estimatedCoverage === 'none' || scan.tests.estimatedCoverage === 'low') {
677
- const retrofitSection = `\n### Retrofit Testing (recommended)\n\n| # | Task | Status | Notes |\n|---|------|--------|-------|\n| R0.1 | Audit existing test coverage | ⬚ | |\n| R0.2 | Add missing unit tests for critical paths | ⬚ | |\n| R0.3 | Set up CI test pipeline | ⬚ | |\n`;
678
-
679
- // Insert before Status Legend
668
+ // Use regex to match the F001 placeholder row resiliently (handles column changes)
680
669
  content = content.replace(
681
- '**Status Legend:**',
682
- `${retrofitSection}\n**Status Legend:**`
670
+ /\| F001 \|[^\n]*\n/,
671
+ `| F001 | Retrofit: audit and improve test coverage | ${featureType} | pending | — | Recommended — low test coverage detected |\n| F002 | [Feature description] | ${featureType} | pending | — | |\n`
683
672
  );
684
673
  }
685
674
 
@@ -220,7 +220,7 @@ async function runInitWizard(scanResult) {
220
220
 
221
221
  console.log('\n Files to be created:');
222
222
  console.log(' ai-specs/specs/ (4 files — standards adapted to your stack)');
223
- console.log(' docs/project_notes/ (4 files — sprint tracker, memory)');
223
+ console.log(' docs/project_notes/ (4 files — product tracker, memory)');
224
224
  console.log(' docs/specs/ (API spec, UI components)');
225
225
  console.log(' docs/tickets/ (.gitkeep)');
226
226
  if (config.aiTools !== 'gemini') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sdd-project",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "Create a new SDD DevFlow project with AI-assisted development workflow",
5
5
  "bin": {
6
6
  "create-sdd-project": "bin/cli.js"
@@ -57,4 +57,4 @@ Follow the DDD layer order from the plan:
57
57
  - **ALWAYS** run `npm test` after each TDD cycle to verify
58
58
  - **NEVER** skip tests for "simple" code
59
59
  - **NEVER** modify code outside the scope of the current ticket
60
- - **ALWAYS** verify implementation matches the approved spec. If a deviation is needed, document it in the sprint tracker's Active Session and ask for approval
60
+ - **ALWAYS** verify implementation matches the approved spec. If a deviation is needed, document it in the product tracker's Active Session and ask for approval
@@ -65,4 +65,4 @@ Follow the logical order from the plan:
65
65
  - **ALWAYS** run `npm test` after each TDD cycle to verify
66
66
  - **NEVER** skip tests for "simple" components
67
67
  - **NEVER** modify code outside the scope of the current ticket
68
- - **ALWAYS** verify implementation matches the approved spec. If a deviation is needed, document it in the sprint tracker's Active Session and ask for approval
68
+ - **ALWAYS** verify implementation matches the approved spec. If a deviation is needed, document it in the product tracker's Active Session and ask for approval
@@ -19,7 +19,7 @@
19
19
  "hooks": [
20
20
  {
21
21
  "type": "command",
22
- "command": "echo '{\"additionalContext\": \"Context was compacted. BEFORE doing anything else: read the sprint tracker Active Session section (docs/project_notes/sprint-*-tracker.md) for context recovery. Follow the Session Recovery protocol in CLAUDE.md.\"}'",
22
+ "command": "echo '{\"additionalContext\": \"Context was compacted. BEFORE doing anything else: read the product tracker Active Session section (docs/project_notes/product-tracker.md) for context recovery. Follow the Session Recovery protocol in CLAUDE.md.\"}'",
23
23
  "statusMessage": "Injecting recovery context..."
24
24
  }
25
25
  ]
@@ -23,7 +23,7 @@ description: "Handles bug discovery, triage, investigation, and resolution. Invo
23
23
  |----------|----------|------|
24
24
  | Critical | Immediate (<1h) | **C: Hotfix** — Confirm → Branch from main → Minimal fix → Test → Deploy → Document → Post-mortem |
25
25
  | High | Same day | **B: Standard** — Triage → Branch → Investigate → Fix (TDD) → Validate → Document → PR |
26
- | Medium | Within sprint | **A: Quick** — Triage → Investigate → Fix → Test → Document → Commit |
26
+ | Medium | Within cycle | **A: Quick** — Triage → Investigate → Fix → Test → Document → Commit |
27
27
  | Low | Backlog | **A: Quick** or escalate to backlog |
28
28
 
29
29
  **Escalate to `development-workflow`** when: >1 day work, architectural changes needed, or significant refactoring required.
@@ -99,7 +99,7 @@ Run `production-code-validator`. Ensure no debug code, proper error handling.
99
99
 
100
100
  | File | When |
101
101
  |------|------|
102
- | `sprint-X-tracker.md` | Bug being worked on (Active Session) |
102
+ | `product-tracker.md` | Bug being worked on (Active Session) |
103
103
  | `bugs.md` | Always |
104
104
  | `decisions.md` | If architectural decision made |
105
105
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: development-workflow
3
- description: "Orchestrates the complete development workflow for each task. Invoke with: 'start task B0.1', 'show sprint progress', 'next task', or 'init sprint N'."
3
+ description: "Orchestrates the complete development workflow for each feature. Invoke with: 'start task F001', 'show progress', 'next task', or 'add feature'."
4
4
  ---
5
5
 
6
6
  # Development Workflow Skill
@@ -8,7 +8,7 @@ description: "Orchestrates the complete development workflow for each task. Invo
8
8
  ## Quick Reference
9
9
 
10
10
  0. **Spec** — `spec-creator` drafts/updates specs → SPEC APPROVAL (Std/Cplx)
11
- 1. **Setup** — Branch, ticket, sprint tracker → TICKET APPROVAL (Std/Cplx)
11
+ 1. **Setup** — Branch, ticket, product tracker → TICKET APPROVAL (Std/Cplx)
12
12
  2. **Plan** — Planner agent writes implementation plan → PLAN APPROVAL (Std/Cplx)
13
13
  3. **Implement** — Developer agent, TDD, real-time spec sync
14
14
  4. **Finalize** — Tests/lint/build, `production-code-validator` → COMMIT APPROVAL
@@ -19,19 +19,19 @@ description: "Orchestrates the complete development workflow for each task. Invo
19
19
 
20
20
  ## Commands
21
21
 
22
- - `start task B0.1` — Begin working on a specific task
23
- - `next task` — Start the next pending task in current sprint
24
- - `show sprint progress` — View sprint completion status
25
- - `init sprint N` — Initialize a new sprint tracker
22
+ - `start task F001` — Begin working on a specific feature
23
+ - `next task` — Start the next pending feature from product tracker
24
+ - `show progress` — View feature completion status
25
+ - `add feature "description"` — Add a new feature to the product tracker
26
26
 
27
27
  ---
28
28
 
29
29
  ## On Skill Start
30
30
 
31
- 1. Read the sprint tracker (`docs/project_notes/sprint-X-tracker.md`) → **Active Session** section for context recovery
31
+ 1. Read the product tracker (`docs/project_notes/product-tracker.md`) → **Active Session** section for context recovery
32
32
  2. Read `CLAUDE.md` section 2 → **Autonomy Level**
33
33
  3. Read `docs/project_notes/key_facts.md` → **Branching Strategy**
34
- 4. If resuming an active task → continue from the step recorded in the tracker's Active Session
34
+ 4. If resuming an active feature → continue from the step recorded in the tracker's Active Session
35
35
 
36
36
  ---
37
37
 
@@ -47,7 +47,7 @@ Read the **Autonomy Level** from `CLAUDE.md` section 2.
47
47
  | Commit Approval (Step 4) | Required | Auto | Auto | Auto |
48
48
  | Merge Approval (Step 5) | Required | Required | Required | Auto |
49
49
 
50
- - **Auto** = proceed without asking; log in sprint tracker → "Auto-Approved Decisions" table
50
+ - **Auto** = proceed without asking; log in product tracker → "Auto-Approved Decisions" table
51
51
  - **Required** = ask user explicitly; do NOT continue without approval
52
52
  - **Quality gates always run** regardless of level (tests, lint, build, validators)
53
53
 
@@ -83,11 +83,11 @@ Ask user to classify complexity before starting. See `references/complexity-guid
83
83
 
84
84
  See `references/branching-strategy.md` for details.
85
85
 
86
- 1. Verify sprint tracker exists, no active task, dependencies met
87
- 2. Create feature branch: `feature/sprint<N>-<task-id>-<short-description>`
86
+ 1. Verify product tracker exists, no active feature, dependencies met
87
+ 2. Create feature branch: `feature/<feature-id>-<short-description>`
88
88
  3. **Std/Cplx:** Generate ticket from `references/ticket-template.md` → fill `## Spec` section
89
89
  4. **Complex:** Also review `decisions.md` for related ADRs
90
- 5. Update sprint tracker → Active Session: task, step `1/6 (Setup)`, branch, complexity
90
+ 5. Update product tracker → Active Session: feature, step `1/6 (Setup)`, branch, complexity
91
91
 
92
92
  **→ CHECKPOINT: Ticket Approval** (Std/Cplx only — Simple skips to Step 3)
93
93
 
@@ -95,7 +95,7 @@ See `references/branching-strategy.md` for details.
95
95
 
96
96
  ## Step 2: Plan (Standard/Complex only)
97
97
 
98
- 1. Use Task tool with planner agent (`backend-planner` for B*.*, `frontend-planner` for F*.*)
98
+ 1. Use Task tool with planner agent (`backend-planner` for backend features, `frontend-planner` for frontend features)
99
99
  2. Agent writes Implementation Plan into ticket's `## Implementation Plan`
100
100
  3. Update tracker: step `2/6 (Plan)`
101
101
 
@@ -115,7 +115,7 @@ See `references/branching-strategy.md` for details.
115
115
  - UI components → `docs/specs/ui-components.md` (MANDATORY)
116
116
  - Env variables → `.env.example` | ADRs → `decisions.md`
117
117
 
118
- **Spec deviation** → document in sprint tracker Active Session and ask for approval.
118
+ **Spec deviation** → document in product tracker Active Session and ask for approval.
119
119
 
120
120
  Update tracker: step `3/6 (Implement)`, context summary.
121
121
 
@@ -154,7 +154,7 @@ Update tracker: step `5/6 (Review)`
154
154
  ## Step 6: Complete
155
155
 
156
156
  1. Delete feature branch (local + remote)
157
- 2. Update sprint tracker: taskCompleted, add to Completion Log, update progress %
157
+ 2. Update product tracker: featuredone, add to Completion Log, update progress
158
158
  3. Record bugs in `bugs.md`, decisions in `decisions.md`
159
159
  4. Clear Active Session → "No active work"
160
160
 
@@ -177,18 +177,18 @@ Update tracker: step `5/6 (Review)`
177
177
  - `references/ticket-template.md` — Ticket format
178
178
  - `references/pr-template.md` — PR template
179
179
  - `references/branching-strategy.md` — Branching guide
180
- - `references/sprint-init-template.md` — New sprint initialization
180
+ - `references/add-feature-template.md` — Add feature to tracker
181
181
  - `references/complexity-guide.md` — Complexity classification
182
182
  - `references/workflow-example.md` — Full worked example
183
183
  - `references/failure-handling.md` — Recovery & rollbacks
184
184
 
185
185
  ## Constraints
186
186
 
187
- - **One task at a time** — never start a new task before completing current
187
+ - **One feature at a time** — never start a new feature before completing current
188
188
  - **TDD mandatory** — all code needs tests
189
189
  - **Type safety** — fully typed, no `any`
190
190
  - **English only** — all technical artifacts
191
191
  - **Memory first** — check `project_notes/` before changes
192
- - **Sprint tracker** — keep Active Session updated at every step
192
+ - **Product tracker** — keep Active Session updated at every step
193
193
  - **Correct agents** — Backend → `backend-planner` + `backend-developer`, Frontend → `frontend-planner` + `frontend-developer`
194
194
  - **Correct base branch** — check `key_facts.md` before creating branches
@@ -0,0 +1,16 @@
1
+ # Add Feature Template
2
+
3
+ Use this template when running `add feature "description"`.
4
+
5
+ ## How to Add a Feature
6
+
7
+ 1. Read the product tracker (`docs/project_notes/product-tracker.md`)
8
+ 2. Determine the next feature ID (F001, F002, ...)
9
+ 3. Add a row to the Features table
10
+ 4. Use `start task F001` to begin working on it
11
+
12
+ ## Feature ID Convention
13
+
14
+ - **Format:** F001, F002, F003... (sequential)
15
+ - **Type:** backend, frontend, fullstack, infra
16
+ - **Branch:** `feature/<id>-<short-desc>` (e.g., `feature/F001-external-api`)
@@ -11,7 +11,7 @@ main ────●────●────●────●────●
11
11
  \ / \ /
12
12
  \/ \/
13
13
  feature/ feature/
14
- B1.1 B1.2
14
+ F001 F002
15
15
  tag: v0.1.0
16
16
  ```
17
17
 
@@ -19,23 +19,23 @@ Before starting any task, ask the user to classify its complexity using **contex
19
19
 
20
20
  ## Examples
21
21
 
22
- **Example 1 - Task might be already done:**
22
+ **Example 1 - Feature might overlap with existing work:**
23
23
  ```
24
- What complexity level for B1.5 (Implement refresh token rotation)?
24
+ What complexity level for F003 (Implement refresh token rotation)?
25
25
 
26
26
  1. Simple (Recommended)
27
- Verify existing implementation in B1.3, add tests if missing
27
+ Verify existing implementation in F001, add tests if missing
28
28
 
29
29
  2. Standard
30
30
  Add additional rotation logic or edge cases
31
31
 
32
- 3. Skip B1.5
33
- Already done in B1.3, move to B1.6 (auth controller)
32
+ 3. Skip F003
33
+ Already done in F001, move to F004 (auth controller)
34
34
  ```
35
35
 
36
36
  **Example 2 - Standard new feature:**
37
37
  ```
38
- What complexity level for B1.4 (Create auth middleware)?
38
+ What complexity level for F002 (Create auth middleware)?
39
39
 
40
40
  1. Simple
41
41
  Straightforward middleware, minimal logic
@@ -68,14 +68,14 @@
68
68
 
69
69
  **Recovery:**
70
70
  1. **Identify** the blocking task/resource
71
- 2. **Document** the block in sprint tracker "Active Task" section
71
+ 2. **Document** the block in product tracker "Active Session" section
72
72
  3. **Options:**
73
73
  - Wait for blocker to resolve
74
74
  - Switch to different task
75
75
  - Create mock/stub to continue
76
76
 
77
- **Update sprint tracker:**
78
- - Change task status to Blocked
77
+ **Update product tracker:**
78
+ - Change feature status to Blocked
79
79
 
80
80
  ---
81
81
 
@@ -14,10 +14,10 @@ gh pr create --base main --title "<type>(<scope>): <description>" --body "$(cat
14
14
 
15
15
  [One paragraph: what this PR does and why]
16
16
 
17
- ## Task Reference
17
+ ## Feature Reference
18
18
 
19
- - **Task:** [B0.1] | **Sprint:** [0]
20
- - **Ticket:** [docs/tickets/task-id.md]
19
+ - **Feature:** [F001]
20
+ - **Ticket:** [docs/tickets/feature-id.md]
21
21
 
22
22
  ## Changes
23
23
 
@@ -1,7 +1,7 @@
1
- # [TASK-ID]: [Task Title]
1
+ # [FEATURE-ID]: [Feature Title]
2
2
 
3
- **Sprint:** [N] | **Type:** [Backend/Frontend]-[Feature/Bugfix/Refactor] | **Priority:** [High/Medium/Low]
4
- **Status:** In Progress | **Branch:** feature/sprint[N]-[TASK-ID]-[short-description]
3
+ **Feature:** [ID] | **Type:** [Backend/Frontend/Fullstack]-[Feature/Bugfix/Refactor] | **Priority:** [High/Medium/Low]
4
+ **Status:** In Progress | **Branch:** feature/[FEATURE-ID]-[short-description]
5
5
  **Created:** [YYYY-MM-DD] | **Dependencies:** [List or "None"]
6
6
 
7
7
  ---
@@ -1,8 +1,8 @@
1
- # Workflow Example: Task B0.1 (Simple, L2 Trusted, github-flow)
1
+ # Workflow Example: Feature F001 (Simple, L2 Trusted, github-flow)
2
2
 
3
3
  ## On Skill Start
4
4
 
5
- 1. Read sprint tracker → Active Session → No active task
5
+ 1. Read product tracker → Active Session → No active feature
6
6
  2. `CLAUDE.md` → Autonomy Level 2 (Trusted)
7
7
  3. `key_facts.md` → branching: github-flow (base: `main`)
8
8
 
@@ -12,10 +12,10 @@
12
12
 
13
13
  ```bash
14
14
  git checkout main && git pull
15
- git checkout -b feature/sprint0-B0.1-express-setup
15
+ git checkout -b feature/F001-express-setup
16
16
  ```
17
17
 
18
- Update sprint tracker → Active Session: B0.1, step `1/6`, branch, complexity: Simple.
18
+ Update product tracker → Active Session: F001, step `1/6`, branch, complexity: Simple.
19
19
 
20
20
  ## Step 2: Plan — Skipped (Simple task)
21
21
 
@@ -72,7 +72,7 @@ git commit -m "feat(backend): initialize Express + TypeScript project
72
72
  ## Step 5: Review
73
73
 
74
74
  ```bash
75
- git push -u origin feature/sprint0-B0.1-express-setup
75
+ git push -u origin feature/F001-express-setup
76
76
  gh pr create --base main --title "feat(backend): initialize Express + TypeScript project" --body "..."
77
77
  gh pr merge --squash
78
78
  ```
@@ -81,7 +81,7 @@ gh pr merge --squash
81
81
 
82
82
  ```bash
83
83
  git checkout main && git pull
84
- git branch -d feature/sprint0-B0.1-express-setup
84
+ git branch -d feature/F001-express-setup
85
85
  ```
86
86
 
87
- Update sprint tracker: B0.1Completed, add to Completion Log, clear Active Session.
87
+ Update product tracker: F001done, add to Completion Log, clear Active Session.