create-sdd-project 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -354,7 +354,7 @@ Quality gates (tests, lint, build, validators) **always run** regardless of leve
354
354
  Every ticket includes a `## Merge Checklist Evidence` table that the agent must fill before requesting merge approval. This mechanism:
355
355
 
356
356
  - **Survives context compaction** — the ticket is always re-read via product tracker, so the empty evidence table acts as a persistent reminder
357
- - **Forces sequential execution** — agent must read `references/merge-checklist.md`, execute 9 actions (0–8), and record evidence
357
+ - **Forces sequential execution** — agent must read `references/merge-checklist.md`, execute 10 actions (0–9), and record evidence
358
358
  - **Works at all tiers** — Simple tasks get a lite ticket with the same evidence table
359
359
 
360
360
  Validated across 16+ features with 87% first-attempt pass rate (failures led to iterative improvements in v0.8.7–v0.9.8).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sdd-project",
3
- "version": "0.13.1",
3
+ "version": "0.14.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"
@@ -66,6 +66,15 @@ Scan code systematically to identify and report issues that should never reach p
66
66
  - Mismatch between spec-defined request/response schemas and actual implementation
67
67
  - **Ticket accuracy**: verify acceptance criteria test count matches actual test count
68
68
 
69
+ ### 9. Data File & Seed Validation
70
+
71
+ Scan JSON files, seed scripts, and data fixtures for data quality issues:
72
+
73
+ - **Case consistency in string arrays**: If a field contains an array of strings (e.g., `aliases`, `tags`, `keywords`), verify all values follow the same casing convention. Flag mixed casing (e.g., `["admin", "Admin"]`). Arrays of display names or titles may use Title Case by design — use context to avoid false positives.
74
+ - **Duplicate detection in ID fields**: Scan objects in arrays for duplicate values in fields that should be unique (e.g., `id`, `externalId`, `slug`, `code`). Flag exact duplicates.
75
+ - **Required field presence**: If objects in the same array have inconsistent keys (some have a field, others don't), flag the missing fields. All objects in a homogeneous array should have the same shape.
76
+ - **Value range checks**: Flag negative numbers in fields where negatives are unlikely (e.g., `calories`, `proteins`, `portionGrams`). Flag suspiciously high values that look like placeholder data. Use field semantics for context.
77
+
69
78
  ## Output Format
70
79
 
71
80
  For each issue found:
@@ -50,6 +50,7 @@ Read the **Autonomy Level** from `CLAUDE.md` section 2.
50
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
+ - **Steps are strictly sequential.** Do NOT start a later step before the current checkpoint is approved — even when the checkpoint is Auto (auto-approval still happens in order, not in parallel). In particular, do NOT generate the Implementation Plan (Step 2) while Spec Approval (Step 0) is still pending. Reason: if the spec review finds issues, any plan built on the flawed spec must be discarded and redone — parallelizing wastes work and risks shipping a plan that doesn't match the final spec.
53
54
 
54
55
  ---
55
56
 
@@ -74,7 +75,7 @@ Ask user to classify complexity before starting. See `references/complexity-guid
74
75
  5. **Cross-Model Spec Review:** Run `/review-spec`. If at least one external CLI is available (`gemini`, `codex`), this provides independent validation from other models. If no external CLIs are detected, skip this step (the self-review above is sufficient).
75
76
  6. **Design Review (optional):** If this feature includes UI changes, mention to the user: "This feature has UI changes. Want to invoke `ui-ux-designer` for design notes?" If yes, use Task tool with `ui-ux-designer` agent. If `docs/specs/design-guidelines.md` does not exist yet, suggest creating it first.
76
77
 
77
- **→ CHECKPOINT: Spec Approval** — Update tracker (Active Session + Features table): step `0/6 (Spec)`
78
+ **→ CHECKPOINT: Spec Approval** — Update tracker (Active Session + Features table): step `0/6 (Spec)`. Update ticket Status to `Spec`.
78
79
 
79
80
  ---
80
81
 
@@ -91,7 +92,7 @@ See `references/branching-strategy.md` for details.
91
92
  3. **Simple:** Generate a **lite ticket** at `docs/tickets/<feature-id>-<short-desc>.md` using `references/ticket-template.md`. Fill the header and a one-line `## Spec > Description`. Set `## Implementation Plan` to `N/A — Simple task`. Fill lightweight Acceptance Criteria and Definition of Done. Set Workflow Checklist to Steps 1, 3, 4, 5 only. Leave Completion Log and Merge Checklist Evidence empty (filled in later steps). **Verify the ticket contains ALL 7 sections.**
92
93
  4. **Std/Cplx:** Copy ALL sections from `references/ticket-template.md` (Spec, Implementation Plan, Acceptance Criteria, Definition of Done, Workflow Checklist, Completion Log) → fill `## Spec` section. Do NOT omit empty sections — they are filled in later steps. **After generating the ticket, verify it contains ALL 7 sections in this exact order: Spec → Implementation Plan → Acceptance Criteria → Definition of Done → Workflow Checklist → Completion Log → Merge Checklist Evidence. If any section is missing, add it now.**
93
94
  5. **Complex:** Also review `decisions.md` for related ADRs
94
- 6. Update product tracker → Active Session: feature, step `1/6 (Setup)`, branch, complexity. Update Features table: status `in-progress`, step `1/6`
95
+ 6. Update product tracker → Active Session: feature, step `1/6 (Setup)`, branch, complexity. Update Features table: status `in-progress`, step `1/6`. Update ticket Status to `In Progress`.
95
96
 
96
97
  **→ CHECKPOINT: Ticket Approval** (Std/Cplx only — Simple skips to Step 3)
97
98
 
@@ -110,7 +111,7 @@ See `references/branching-strategy.md` for details.
110
111
  - Over-engineering or unnecessary abstractions?
111
112
  Update the plan with any fixes found before proceeding.
112
113
  5. **Cross-Model Plan Review:** Run `/review-plan`. If at least one external CLI is available (`gemini`, `codex`), this provides independent validation from other models. If no external CLIs are detected, skip this step (the self-review above is sufficient).
113
- 6. Update tracker: step `2/6 (Plan)` (Active Session + Features table)
114
+ 6. Update tracker: step `2/6 (Plan)` (Active Session + Features table). Update ticket Status to `Planning`.
114
115
 
115
116
  **→ CHECKPOINT: Plan Approval**
116
117
 
@@ -134,7 +135,7 @@ See `references/branching-strategy.md` for details.
134
135
 
135
136
  **Commits:** Commit freely during implementation (one per logical unit is fine). Final history cleanup happens via squash merge in Step 5.
136
137
 
137
- Update tracker (Active Session + Features table): step `3/6 (Implement)`, context summary. Mark ticket Workflow Checklist `[x]` for Step 3.
138
+ Update tracker (Active Session + Features table): step `3/6 (Implement)`, context summary. Mark ticket Workflow Checklist `[x]` for Step 3. Update ticket Status to `In Progress`.
138
139
 
139
140
  ---
140
141
 
@@ -149,7 +150,7 @@ Update tracker (Active Session + Features table): step `3/6 (Implement)`, contex
149
150
 
150
151
  **Commit format:** `<type>(<scope>): <description>` + `Co-Authored-By: Claude <noreply@anthropic.com>`
151
152
 
152
- Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ticket Workflow Checklist `[x]` for Step 4.
153
+ Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ticket Workflow Checklist `[x]` for Step 4. Update ticket Status to `In Progress`.
153
154
 
154
155
  ---
155
156
 
@@ -157,6 +158,8 @@ Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ti
157
158
 
158
159
  **Target branch** from `key_facts.md` → same as base branch (Step 1).
159
160
 
161
+ Update ticket Status to `Review`.
162
+
160
163
  1. Push branch, create PR (use `references/pr-template.md`)
161
164
  2. **Std/Cplx:** Run `code-review-specialist` via Task tool — **do NOT skip**
162
165
  3. **Std/Cplx:** Also run `qa-engineer` via Task tool
@@ -49,16 +49,30 @@ Commit ALL documentation updates from actions 0–4. Use commit message: `docs:
49
49
 
50
50
  Run `git status`. **No unstaged or untracked files allowed.** If any remain, stage and commit them.
51
51
 
52
- ## Action 7: Fill Merge Checklist Evidence
52
+ ## Action 7: Verify branch is up to date with target
53
53
 
54
- In the ticket, fill the `## Merge Checklist Evidence` table. For each action (0–6), mark `[x]` and write the actual evidence (not placeholders). Example:
54
+ Determine the target branch from `docs/project_notes/key_facts.md` `branching-strategy` (github-flow `main`, gitflow `develop`).
55
+
56
+ 1. Fetch latest: `git fetch origin <target-branch>`
57
+ 2. Check divergence: `git merge-base --is-ancestor origin/<target-branch> HEAD`
58
+ - If the command **succeeds** (exit code 0) → the feature branch already contains all target branch commits. Proceed to Action 8.
59
+ - If the command **fails** (exit code 1) → the feature branch has diverged.
60
+ 3. **If diverged:** Merge the target branch into the feature branch:
61
+ - `git merge origin/<target-branch>`
62
+ - If **conflicts** occur: resolve them, run quality gates (`npm test`, lint, build) again, and commit the merge.
63
+ - If no conflicts: the merge commit is created automatically.
64
+ 4. After merging, verify clean working tree again (`git status`).
65
+
66
+ ## Action 8: Fill Merge Checklist Evidence
67
+
68
+ In the ticket, fill the `## Merge Checklist Evidence` table. For each action (0–7), mark `[x]` and write the actual evidence (not placeholders). Example:
55
69
 
56
70
  | Action | Done | Evidence |
57
71
  |--------|:----:|----------|
58
72
  | 0. Validate ticket structure | [x] | Sections verified: Spec, Plan, AC, DoD, Workflow, Log, Evidence |
59
73
  | 1. Mark all items | [x] | AC: 12/12, DoD: 7/7, Workflow: 0-5/6 |
60
74
 
61
- ## Action 8: Request merge approval
75
+ ## Action 9: Request merge approval
62
76
 
63
77
  Verify the Merge Checklist Evidence table is fully filled (all rows `[x]` with real evidence).
64
78
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Feature:** [ID] | **Type:** [Backend/Frontend/Fullstack]-[Feature/Bugfix/Refactor] | **Priority:** [High/Medium/Low]
4
4
  **Status:** In Progress | **Branch:** feature/[FEATURE-ID]-[short-description]
5
- <!-- Valid Status values: In Progress | Ready for Merge | Done -->
5
+ <!-- Valid Status values: Spec | In Progress | Planning | Review | Ready for Merge | Done -->
6
6
  **Created:** [YYYY-MM-DD] | **Dependencies:** [List or "None"]
7
7
 
8
8
  ---
@@ -101,6 +101,7 @@ This creates a feedback loop for improving future reviews. -->
101
101
  | 4. Update decisions.md | [ ] | ADR-XXX added / N/A |
102
102
  | 5. Commit documentation | [ ] | Commit: (hash) |
103
103
  | 6. Verify clean working tree | [ ] | `git status`: clean |
104
+ | 7. Verify branch up to date | [ ] | merge-base: up to date / merged origin/<branch> |
104
105
 
105
106
  ---
106
107
 
@@ -16,6 +16,8 @@ Scan code systematically for issues that should never reach production:
16
16
  7. **Code Quality**: Unused imports, missing types, overly long functions
17
17
  8. **Spec Drift** (BLOCKING): Enumerate every route in code vs `api-spec.yaml` — any mismatch is HIGH. Check components vs `ui-components.md`, schemas vs `shared/src/schemas/`. Verify ticket test counts match actual
18
18
 
19
+ 9. **Data File & Seed Validation**: Scan JSON files, seed scripts, and data fixtures for: case consistency in string arrays (e.g., `aliases` all lowercase), duplicate IDs in arrays, inconsistent object shapes, negative numbers in fields that should be non-negative, suspiciously high placeholder values
20
+
19
21
  ## Output Format
20
22
 
21
23
  For each issue:
@@ -50,6 +50,7 @@ Read the **Autonomy Level** from `GEMINI.md`.
50
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
+ - **Steps are strictly sequential.** Do NOT start a later step before the current checkpoint is approved — even when the checkpoint is Auto (auto-approval still happens in order, not in parallel). In particular, do NOT generate the Implementation Plan (Step 2) while Spec Approval (Step 0) is still pending. Reason: if the spec review finds issues, any plan built on the flawed spec must be discarded and redone — parallelizing wastes work and risks shipping a plan that doesn't match the final spec.
53
54
 
54
55
  ---
55
56
 
@@ -74,7 +75,7 @@ Ask user to classify complexity before starting. See `references/complexity-guid
74
75
  5. **Cross-Model Spec Review:** Run `/review-spec`. If at least one external CLI is available (`claude`, `codex`), this provides independent validation from other models. If no external CLIs are detected, skip this step (the self-review above is sufficient).
75
76
  6. **Design Review (optional):** If this feature includes UI changes, mention to the user: "This feature has UI changes. Want to invoke `ui-ux-designer` for design notes?" If yes, follow the `ui-ux-designer` agent instructions in `.gemini/agents/`. If `docs/specs/design-guidelines.md` does not exist yet, suggest creating it first.
76
77
 
77
- **→ CHECKPOINT: Spec Approval** — Update tracker (Active Session + Features table): step `0/6 (Spec)`
78
+ **→ CHECKPOINT: Spec Approval** — Update tracker (Active Session + Features table): step `0/6 (Spec)`. Update ticket Status to `Spec`.
78
79
 
79
80
  ---
80
81
 
@@ -91,7 +92,7 @@ See `references/branching-strategy.md` for details.
91
92
  3. **Simple:** Generate a **lite ticket** at `docs/tickets/<feature-id>-<short-desc>.md` using `references/ticket-template.md`. Fill the header and a one-line `## Spec > Description`. Set `## Implementation Plan` to `N/A — Simple task`. Fill lightweight Acceptance Criteria and Definition of Done. Set Workflow Checklist to Steps 1, 3, 4, 5 only. Leave Completion Log and Merge Checklist Evidence empty (filled in later steps). **Verify the ticket contains ALL 7 sections.**
92
93
  4. **Std/Cplx:** Copy ALL sections from `references/ticket-template.md` (Spec, Implementation Plan, Acceptance Criteria, Definition of Done, Workflow Checklist, Completion Log) → fill `## Spec` section. Do NOT omit empty sections — they are filled in later steps. **After generating the ticket, verify it contains ALL 7 sections in this exact order: Spec → Implementation Plan → Acceptance Criteria → Definition of Done → Workflow Checklist → Completion Log → Merge Checklist Evidence. If any section is missing, add it now.**
93
94
  5. **Complex:** Also review `decisions.md` for related ADRs
94
- 6. Update product tracker → Active Session: feature, step `1/6 (Setup)`, branch, complexity. Update Features table: status `in-progress`, step `1/6`
95
+ 6. Update product tracker → Active Session: feature, step `1/6 (Setup)`, branch, complexity. Update Features table: status `in-progress`, step `1/6`. Update ticket Status to `In Progress`.
95
96
 
96
97
  **→ CHECKPOINT: Ticket Approval** (Std/Cplx only — Simple skips to Step 3)
97
98
 
@@ -110,7 +111,7 @@ See `references/branching-strategy.md` for details.
110
111
  - Over-engineering or unnecessary abstractions?
111
112
  Update the plan with any fixes found before proceeding.
112
113
  5. **Cross-Model Plan Review:** Run `/review-plan`. If at least one external CLI is available (`claude`, `codex`), this provides independent validation from other models. If no external CLIs are detected, skip this step (the self-review above is sufficient).
113
- 6. Update tracker: step `2/6 (Plan)` (Active Session + Features table)
114
+ 6. Update tracker: step `2/6 (Plan)` (Active Session + Features table). Update ticket Status to `Planning`.
114
115
 
115
116
  **→ CHECKPOINT: Plan Approval**
116
117
 
@@ -134,7 +135,7 @@ See `references/branching-strategy.md` for details.
134
135
 
135
136
  **Commits:** Commit freely during implementation (one per logical unit is fine). Final history cleanup happens via squash merge in Step 5.
136
137
 
137
- Update tracker (Active Session + Features table): step `3/6 (Implement)`, context summary. Mark ticket Workflow Checklist `[x]` for Step 3.
138
+ Update tracker (Active Session + Features table): step `3/6 (Implement)`, context summary. Mark ticket Workflow Checklist `[x]` for Step 3. Update ticket Status to `In Progress`.
138
139
 
139
140
  ---
140
141
 
@@ -149,7 +150,7 @@ Update tracker (Active Session + Features table): step `3/6 (Implement)`, contex
149
150
 
150
151
  **Commit format:** `<type>(<scope>): <description>`
151
152
 
152
- Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ticket Workflow Checklist `[x]` for Step 4.
153
+ Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ticket Workflow Checklist `[x]` for Step 4. Update ticket Status to `In Progress`.
153
154
 
154
155
  ---
155
156
 
@@ -157,6 +158,8 @@ Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ti
157
158
 
158
159
  **Target branch** from `key_facts.md` → same as base branch (Step 1).
159
160
 
161
+ Update ticket Status to `Review`.
162
+
160
163
  1. Push branch, create PR (use `references/pr-template.md`)
161
164
  2. **Std/Cplx:** Follow `code-review-specialist` instructions in `.gemini/agents/` — **do NOT skip**
162
165
  3. **Std/Cplx:** Also follow `qa-engineer` instructions in `.gemini/agents/`
@@ -49,16 +49,30 @@ Commit ALL documentation updates from actions 0–4. Use commit message: `docs:
49
49
 
50
50
  Run `git status`. **No unstaged or untracked files allowed.** If any remain, stage and commit them.
51
51
 
52
- ## Action 7: Fill Merge Checklist Evidence
52
+ ## Action 7: Verify branch is up to date with target
53
53
 
54
- In the ticket, fill the `## Merge Checklist Evidence` table. For each action (0–6), mark `[x]` and write the actual evidence (not placeholders). Example:
54
+ Determine the target branch from `docs/project_notes/key_facts.md` `branching-strategy` (github-flow `main`, gitflow `develop`).
55
+
56
+ 1. Fetch latest: `git fetch origin <target-branch>`
57
+ 2. Check divergence: `git merge-base --is-ancestor origin/<target-branch> HEAD`
58
+ - If the command **succeeds** (exit code 0) → the feature branch already contains all target branch commits. Proceed to Action 8.
59
+ - If the command **fails** (exit code 1) → the feature branch has diverged.
60
+ 3. **If diverged:** Merge the target branch into the feature branch:
61
+ - `git merge origin/<target-branch>`
62
+ - If **conflicts** occur: resolve them, run quality gates (`npm test`, lint, build) again, and commit the merge.
63
+ - If no conflicts: the merge commit is created automatically.
64
+ 4. After merging, verify clean working tree again (`git status`).
65
+
66
+ ## Action 8: Fill Merge Checklist Evidence
67
+
68
+ In the ticket, fill the `## Merge Checklist Evidence` table. For each action (0–7), mark `[x]` and write the actual evidence (not placeholders). Example:
55
69
 
56
70
  | Action | Done | Evidence |
57
71
  |--------|:----:|----------|
58
72
  | 0. Validate ticket structure | [x] | Sections verified: Spec, Plan, AC, DoD, Workflow, Log, Evidence |
59
73
  | 1. Mark all items | [x] | AC: 12/12, DoD: 7/7, Workflow: 0-5/6 |
60
74
 
61
- ## Action 8: Request merge approval
75
+ ## Action 9: Request merge approval
62
76
 
63
77
  Verify the Merge Checklist Evidence table is fully filled (all rows `[x]` with real evidence).
64
78
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Feature:** [ID] | **Type:** [Backend/Frontend/Fullstack]-[Feature/Bugfix/Refactor] | **Priority:** [High/Medium/Low]
4
4
  **Status:** In Progress | **Branch:** feature/[FEATURE-ID]-[short-description]
5
- <!-- Valid Status values: In Progress | Ready for Merge | Done -->
5
+ <!-- Valid Status values: Spec | In Progress | Planning | Review | Ready for Merge | Done -->
6
6
  **Created:** [YYYY-MM-DD] | **Dependencies:** [List or "None"]
7
7
 
8
8
  ---
@@ -101,6 +101,7 @@ This creates a feedback loop for improving future reviews. -->
101
101
  | 4. Update decisions.md | [ ] | ADR-XXX added / N/A |
102
102
  | 5. Commit documentation | [ ] | Commit: (hash) |
103
103
  | 6. Verify clean working tree | [ ] | `git status`: clean |
104
+ | 7. Verify branch up to date | [ ] | merge-base: up to date / merged origin/<branch> |
104
105
 
105
106
  ---
106
107