create-sdd-project 0.16.4 → 0.16.6
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
|
@@ -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
|
|
|
@@ -192,6 +201,8 @@ Completed: 2/3 | Blocked: 1/3 | Remaining: 0
|
|
|
192
201
|
|-----------|-------|-----------|
|
|
193
202
|
| Max features per session | 5 | Model attention degrades after many iterations |
|
|
194
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 |
|
|
195
206
|
| Consecutive failure circuit breaker | 3 | Prevent wasting resources on a systemic issue |
|
|
196
207
|
| Kill switch | `pm-stop.md` or `stop pm` | User can always halt the loop |
|
|
197
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
|
|
|
@@ -192,6 +201,8 @@ Completed: 2/3 | Blocked: 1/3 | Remaining: 0
|
|
|
192
201
|
|-----------|-------|-----------|
|
|
193
202
|
| Max features per session | 5 | Model attention degrades after many iterations |
|
|
194
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 |
|
|
195
206
|
| Consecutive failure circuit breaker | 3 | Prevent wasting resources on a systemic issue |
|
|
196
207
|
| Kill switch | `pm-stop.md` or `stop pm` | User can always halt the loop |
|
|
197
208
|
| Session lock | `pm-session.lock` | Prevents concurrent PM sessions |
|
|
@@ -54,3 +54,32 @@ jobs:
|
|
|
54
54
|
|
|
55
55
|
- name: Build
|
|
56
56
|
run: npm run build --if-present
|
|
57
|
+
|
|
58
|
+
# ===========================================
|
|
59
|
+
# Scaling tips
|
|
60
|
+
# ===========================================
|
|
61
|
+
# When this project grows and you split CI into multiple jobs with path
|
|
62
|
+
# filters (e.g., test-api, test-frontend triggered only when relevant files
|
|
63
|
+
# change), enabling branch protection that requires those individual checks
|
|
64
|
+
# will create a deadlock for docs-only PRs: no code changed → no jobs run →
|
|
65
|
+
# required checks never report → merge blocked.
|
|
66
|
+
#
|
|
67
|
+
# Solution: add a rollup job that always runs and aggregates the others.
|
|
68
|
+
# Then configure branch protection to require ONLY the rollup, not the
|
|
69
|
+
# individual jobs:
|
|
70
|
+
#
|
|
71
|
+
# ci-success:
|
|
72
|
+
# runs-on: ubuntu-latest
|
|
73
|
+
# needs: [test-api, test-frontend] # list all jobs to aggregate
|
|
74
|
+
# if: always()
|
|
75
|
+
# steps:
|
|
76
|
+
# - name: All required jobs passed or were skipped
|
|
77
|
+
# run: |
|
|
78
|
+
# if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then
|
|
79
|
+
# echo "One or more required jobs failed"
|
|
80
|
+
# exit 1
|
|
81
|
+
# fi
|
|
82
|
+
#
|
|
83
|
+
# The rollup passes when all dependencies pass OR were skipped due to path
|
|
84
|
+
# filters. This is the standard pattern for path-filtered CI + required
|
|
85
|
+
# checks. Avoid `|| true` and `continue-on-error` — they silence real failures.
|