create-sdd-project 0.16.3 → 0.16.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-sdd-project",
3
- "version": "0.16.3",
3
+ "version": "0.16.5",
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"
@@ -24,6 +24,11 @@ Before starting:
24
24
  2. **Product tracker must have pending features.** Read `docs/project_notes/product-tracker.md` → Features table. If no features have step < 6/6, there is nothing to do.
25
25
  3. **Working tree must be clean.** Run `git status`. If dirty, ask user to commit or stash.
26
26
  4. **No active PM session.** Check if `docs/project_notes/pm-session.lock` exists. If it does, another PM session may be running — ask user before proceeding.
27
+ 5. **Target branch quality gates baseline.** Run `npm test`, `npm run lint`, and `npm run build` on the target branch (main or develop) to verify it is clean BEFORE starting any feature. If any gate fails:
28
+ - Document the failures in `docs/project_notes/bugs.md` as a tech debt entry (e.g., `BUG-DEV-LINT-XXX`).
29
+ - Create a follow-up task in `product-tracker.md` to fix the baseline.
30
+ - STOP and inform the user. Do NOT start features on a broken baseline — features will fail Step 4 quality gates and the agent will be unable to distinguish pre-existing failures from regressions.
31
+ - Exception: if the lint command itself does not exist for some packages, note it but do not block.
27
32
 
28
33
  ---
29
34
 
@@ -59,6 +64,10 @@ Classify complexity for each (Simple / Standard / Complex):
59
64
  ```
60
65
 
61
66
  5. Wait for user to classify all features in the batch.
67
+ 6. **Intra-batch dependency check.** Before proceeding, verify that no feature in the batch depends on another feature in the same batch. If F-Y depends on F-X and both are in the batch:
68
+ - Warn the user explicitly: "F-Y depends on F-X which is also in this batch. F-X's results will be auto-merged at L5 without your validation before F-Y starts. If F-Y's spec/implementation depends on decisions made in F-X, those decisions won't have been validated by you."
69
+ - Ask the user: "Do you want to (a) remove F-Y from this batch and run it in a future session after validating F-X, or (b) proceed knowing the risk?"
70
+ - Default to (a) — only proceed with (b) if the user explicitly confirms.
62
71
 
63
72
  ### Phase 2: Session Initialization
64
73
 
@@ -77,6 +86,7 @@ For each feature in the batch:
77
86
  - **Kill switch**: If `docs/project_notes/pm-stop.md` exists → stop gracefully (go to Shutdown).
78
87
  - **Lock**: If `docs/project_notes/pm-session.lock` is missing → stop (session was terminated externally).
79
88
  - **Circuit breaker**: If 3 consecutive features are `blocked` → stop and report to user.
89
+ - **Context check**: If **2+ features have been completed** in this session, STOP and tell the user to run `/compact` followed by `continue pm`. Do NOT continue to the next feature — context degradation causes skipped steps, lost constraints, and poor quality. This is mandatory, not a suggestion.
80
90
  - **Clean workspace**: Run `git status`. If dirty, commit or stash before proceeding.
81
91
 
82
92
  #### b. Start Feature
@@ -130,7 +140,7 @@ After each completed or blocked feature:
130
140
  2. If the current batch is exhausted and more eligible features remain:
131
141
  - Present the next 1-3 features to the user for complexity classification.
132
142
  - Add them to the batch in `pm-session.md`.
133
- 3. If **3+ features completed** in this session → suggest the user run `/compact` before continuing (context may be getting heavy).
143
+ 3. If **2+ features completed** in this session → STOP and tell the user to run `/compact` followed by `continue pm`. This is mandatory — do not ask, do not continue.
134
144
  4. If max session limit reached (**5 features**) → stop and report.
135
145
 
136
146
  ### Phase 4: Shutdown
@@ -190,6 +200,9 @@ Completed: 2/3 | Blocked: 1/3 | Remaining: 0
190
200
  | Guardrail | Value | Rationale |
191
201
  |-----------|-------|-----------|
192
202
  | Max features per session | 5 | Model attention degrades after many iterations |
203
+ | Mandatory compact after 2 features | STOP + `/compact` + `continue pm` | Context degradation causes skipped steps and lost constraints |
204
+ | Target branch baseline check | tests/lint/build before first feature | Pre-existing failures would block Step 4 quality gates and contaminate audit trails |
205
+ | Intra-batch dependency check | Warn + default to remove dependent feature | Auto-merge at L5 means dependent feature won't see user-validated parent results |
193
206
  | Consecutive failure circuit breaker | 3 | Prevent wasting resources on a systemic issue |
194
207
  | Kill switch | `pm-stop.md` or `stop pm` | User can always halt the loop |
195
208
  | Session lock | `pm-session.lock` | Prevents concurrent PM sessions |
@@ -24,6 +24,11 @@ Before starting:
24
24
  2. **Product tracker must have pending features.** Read `docs/project_notes/product-tracker.md` → Features table. If no features have step < 6/6, there is nothing to do.
25
25
  3. **Working tree must be clean.** Run `git status`. If dirty, ask user to commit or stash.
26
26
  4. **No active PM session.** Check if `docs/project_notes/pm-session.lock` exists. If it does, another PM session may be running — ask user before proceeding.
27
+ 5. **Target branch quality gates baseline.** Run `npm test`, `npm run lint`, and `npm run build` on the target branch (main or develop) to verify it is clean BEFORE starting any feature. If any gate fails:
28
+ - Document the failures in `docs/project_notes/bugs.md` as a tech debt entry (e.g., `BUG-DEV-LINT-XXX`).
29
+ - Create a follow-up task in `product-tracker.md` to fix the baseline.
30
+ - STOP and inform the user. Do NOT start features on a broken baseline — features will fail Step 4 quality gates and the agent will be unable to distinguish pre-existing failures from regressions.
31
+ - Exception: if the lint command itself does not exist for some packages, note it but do not block.
27
32
 
28
33
  ---
29
34
 
@@ -59,6 +64,10 @@ Classify complexity for each (Simple / Standard / Complex):
59
64
  ```
60
65
 
61
66
  5. Wait for user to classify all features in the batch.
67
+ 6. **Intra-batch dependency check.** Before proceeding, verify that no feature in the batch depends on another feature in the same batch. If F-Y depends on F-X and both are in the batch:
68
+ - Warn the user explicitly: "F-Y depends on F-X which is also in this batch. F-X's results will be auto-merged at L5 without your validation before F-Y starts. If F-Y's spec/implementation depends on decisions made in F-X, those decisions won't have been validated by you."
69
+ - Ask the user: "Do you want to (a) remove F-Y from this batch and run it in a future session after validating F-X, or (b) proceed knowing the risk?"
70
+ - Default to (a) — only proceed with (b) if the user explicitly confirms.
62
71
 
63
72
  ### Phase 2: Session Initialization
64
73
 
@@ -77,6 +86,7 @@ For each feature in the batch:
77
86
  - **Kill switch**: If `docs/project_notes/pm-stop.md` exists → stop gracefully (go to Shutdown).
78
87
  - **Lock**: If `docs/project_notes/pm-session.lock` is missing → stop (session was terminated externally).
79
88
  - **Circuit breaker**: If 3 consecutive features are `blocked` → stop and report to user.
89
+ - **Context check**: If **2+ features have been completed** in this session, STOP and tell the user to run `/compact` followed by `continue pm`. Do NOT continue to the next feature — context degradation causes skipped steps, lost constraints, and poor quality. This is mandatory, not a suggestion.
80
90
  - **Clean workspace**: Run `git status`. If dirty, commit or stash before proceeding.
81
91
 
82
92
  #### b. Start Feature
@@ -130,7 +140,7 @@ After each completed or blocked feature:
130
140
  2. If the current batch is exhausted and more eligible features remain:
131
141
  - Present the next 1-3 features to the user for complexity classification.
132
142
  - Add them to the batch in `pm-session.md`.
133
- 3. If **3+ features completed** in this session → suggest the user run `/compact` before continuing (context may be getting heavy).
143
+ 3. If **2+ features completed** in this session → STOP and tell the user to run `/compact` followed by `continue pm`. This is mandatory — do not ask, do not continue.
134
144
  4. If max session limit reached (**5 features**) → stop and report.
135
145
 
136
146
  ### Phase 4: Shutdown
@@ -190,6 +200,9 @@ Completed: 2/3 | Blocked: 1/3 | Remaining: 0
190
200
  | Guardrail | Value | Rationale |
191
201
  |-----------|-------|-----------|
192
202
  | Max features per session | 5 | Model attention degrades after many iterations |
203
+ | Mandatory compact after 2 features | STOP + `/compact` + `continue pm` | Context degradation causes skipped steps and lost constraints |
204
+ | Target branch baseline check | tests/lint/build before first feature | Pre-existing failures would block Step 4 quality gates and contaminate audit trails |
205
+ | Intra-batch dependency check | Warn + default to remove dependent feature | Auto-merge at L5 means dependent feature won't see user-validated parent results |
193
206
  | Consecutive failure circuit breaker | 3 | Prevent wasting resources on a systemic issue |
194
207
  | Kill switch | `pm-stop.md` or `stop pm` | User can always halt the loop |
195
208
  | Session lock | `pm-session.lock` | Prevents concurrent PM sessions |