create-sdd-project 0.13.2 → 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.2",
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:
@@ -75,7 +75,7 @@ Ask user to classify complexity before starting. See `references/complexity-guid
75
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).
76
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.
77
77
 
78
- **→ 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`.
79
79
 
80
80
  ---
81
81
 
@@ -92,7 +92,7 @@ See `references/branching-strategy.md` for details.
92
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.**
93
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.**
94
94
  5. **Complex:** Also review `decisions.md` for related ADRs
95
- 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`.
96
96
 
97
97
  **→ CHECKPOINT: Ticket Approval** (Std/Cplx only — Simple skips to Step 3)
98
98
 
@@ -111,7 +111,7 @@ See `references/branching-strategy.md` for details.
111
111
  - Over-engineering or unnecessary abstractions?
112
112
  Update the plan with any fixes found before proceeding.
113
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).
114
- 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`.
115
115
 
116
116
  **→ CHECKPOINT: Plan Approval**
117
117
 
@@ -135,7 +135,7 @@ See `references/branching-strategy.md` for details.
135
135
 
136
136
  **Commits:** Commit freely during implementation (one per logical unit is fine). Final history cleanup happens via squash merge in Step 5.
137
137
 
138
- 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`.
139
139
 
140
140
  ---
141
141
 
@@ -150,7 +150,7 @@ Update tracker (Active Session + Features table): step `3/6 (Implement)`, contex
150
150
 
151
151
  **Commit format:** `<type>(<scope>): <description>` + `Co-Authored-By: Claude <noreply@anthropic.com>`
152
152
 
153
- 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`.
154
154
 
155
155
  ---
156
156
 
@@ -158,6 +158,8 @@ Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ti
158
158
 
159
159
  **Target branch** from `key_facts.md` → same as base branch (Step 1).
160
160
 
161
+ Update ticket Status to `Review`.
162
+
161
163
  1. Push branch, create PR (use `references/pr-template.md`)
162
164
  2. **Std/Cplx:** Run `code-review-specialist` via Task tool — **do NOT skip**
163
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:
@@ -75,7 +75,7 @@ Ask user to classify complexity before starting. See `references/complexity-guid
75
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).
76
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.
77
77
 
78
- **→ 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`.
79
79
 
80
80
  ---
81
81
 
@@ -92,7 +92,7 @@ See `references/branching-strategy.md` for details.
92
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.**
93
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.**
94
94
  5. **Complex:** Also review `decisions.md` for related ADRs
95
- 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`.
96
96
 
97
97
  **→ CHECKPOINT: Ticket Approval** (Std/Cplx only — Simple skips to Step 3)
98
98
 
@@ -111,7 +111,7 @@ See `references/branching-strategy.md` for details.
111
111
  - Over-engineering or unnecessary abstractions?
112
112
  Update the plan with any fixes found before proceeding.
113
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).
114
- 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`.
115
115
 
116
116
  **→ CHECKPOINT: Plan Approval**
117
117
 
@@ -135,7 +135,7 @@ See `references/branching-strategy.md` for details.
135
135
 
136
136
  **Commits:** Commit freely during implementation (one per logical unit is fine). Final history cleanup happens via squash merge in Step 5.
137
137
 
138
- 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`.
139
139
 
140
140
  ---
141
141
 
@@ -150,7 +150,7 @@ Update tracker (Active Session + Features table): step `3/6 (Implement)`, contex
150
150
 
151
151
  **Commit format:** `<type>(<scope>): <description>`
152
152
 
153
- 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`.
154
154
 
155
155
  ---
156
156
 
@@ -158,6 +158,8 @@ Update tracker (Active Session + Features table): step `4/6 (Finalize)`. Mark ti
158
158
 
159
159
  **Target branch** from `key_facts.md` → same as base branch (Step 1).
160
160
 
161
+ Update ticket Status to `Review`.
162
+
161
163
  1. Push branch, create PR (use `references/pr-template.md`)
162
164
  2. **Std/Cplx:** Follow `code-review-specialist` instructions in `.gemini/agents/` — **do NOT skip**
163
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