@ngocsangairvds/vsaf 5.1.4 → 5.1.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 +1 -1
- package/packages/cli/dist/adapters/antigravity.d.ts.map +1 -1
- package/packages/cli/dist/adapters/antigravity.js +7 -2
- package/packages/cli/dist/adapters/antigravity.js.map +1 -1
- package/packages/cli/dist/adapters/codex.js +1 -1
- package/packages/cli/dist/adapters/codex.js.map +1 -1
- package/packages/cli/dist/adapters/cursor.js +1 -1
- package/packages/cli/dist/adapters/cursor.js.map +1 -1
- package/packages/cli/dist/commands/install.d.ts.map +1 -1
- package/packages/cli/dist/commands/install.js +21 -1
- package/packages/cli/dist/commands/install.js.map +1 -1
- package/packages/cli/dist/commands/skill.d.ts.map +1 -1
- package/packages/cli/dist/commands/skill.js +5 -2
- package/packages/cli/dist/commands/skill.js.map +1 -1
- package/skills/sdlc/architecture/current-state/SKILL.md +10 -0
- package/skills/sdlc/architecture/current-state/step.md +13 -0
- package/skills/sdlc/architecture/decision/SKILL.md +10 -0
- package/skills/sdlc/architecture/decision/step.md +21 -0
- package/skills/sdlc/architecture/epics/SKILL.md +10 -0
- package/skills/sdlc/architecture/epics/step.md +34 -0
- package/skills/sdlc/architecture/grill/SKILL.md +10 -0
- package/skills/sdlc/architecture/grill/step.md +26 -0
- package/skills/sdlc/architecture/prereq/SKILL.md +10 -0
- package/skills/sdlc/architecture/prereq/step.md +16 -0
- package/skills/sdlc/architecture/readiness/SKILL.md +10 -0
- package/skills/sdlc/architecture/readiness/step.md +76 -0
- package/skills/sdlc/complete/context/SKILL.md +10 -0
- package/skills/sdlc/complete/context/step.md +14 -0
- package/skills/sdlc/complete/knowledge/SKILL.md +10 -0
- package/skills/sdlc/complete/knowledge/step.md +22 -0
- package/skills/sdlc/complete/prereq/SKILL.md +10 -0
- package/skills/sdlc/complete/prereq/step.md +16 -0
- package/skills/sdlc/complete/reindex/SKILL.md +10 -0
- package/skills/sdlc/complete/reindex/step.md +24 -0
- package/skills/sdlc/complete/status/SKILL.md +10 -0
- package/skills/sdlc/complete/status/step.md +52 -0
- package/skills/sdlc/discovery/brainstorm/SKILL.md +10 -0
- package/skills/sdlc/discovery/brainstorm/step.md +27 -0
- package/skills/sdlc/discovery/domain/SKILL.md +10 -0
- package/skills/sdlc/discovery/domain/step.md +13 -0
- package/skills/sdlc/discovery/grill/SKILL.md +10 -0
- package/skills/sdlc/discovery/grill/step.md +22 -0
- package/skills/sdlc/discovery/prereq/SKILL.md +10 -0
- package/skills/sdlc/discovery/prereq/step.md +16 -0
- package/skills/sdlc/discovery/prfaq/SKILL.md +10 -0
- package/skills/sdlc/discovery/prfaq/step.md +68 -0
- package/skills/sdlc/discovery/system/SKILL.md +10 -0
- package/skills/sdlc/discovery/system/step.md +19 -0
- package/skills/sdlc/hotfix/analyze/entry/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/entry/step.md +15 -0
- package/skills/sdlc/hotfix/analyze/exit/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/exit/step.md +19 -0
- package/skills/sdlc/hotfix/analyze/fix-strategy/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/fix-strategy/step.md +15 -0
- package/skills/sdlc/hotfix/analyze/gitnexus/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/gitnexus/step.md +17 -0
- package/skills/sdlc/hotfix/analyze/grill/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/grill/step.md +23 -0
- package/skills/sdlc/hotfix/analyze/reasoning/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/reasoning/step.md +29 -0
- package/skills/sdlc/hotfix/analyze/write/SKILL.md +10 -0
- package/skills/sdlc/hotfix/analyze/write/step.md +45 -0
- package/skills/sdlc/hotfix/implement/branch/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/branch/step.md +15 -0
- package/skills/sdlc/hotfix/implement/entry/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/entry/step.md +20 -0
- package/skills/sdlc/hotfix/implement/gate/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/gate/step.md +104 -0
- package/skills/sdlc/hotfix/implement/impact/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/impact/step.md +15 -0
- package/skills/sdlc/hotfix/implement/sonar/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/sonar/step.md +27 -0
- package/skills/sdlc/hotfix/implement/tdd/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/tdd/step.md +33 -0
- package/skills/sdlc/hotfix/implement/verify/SKILL.md +10 -0
- package/skills/sdlc/hotfix/implement/verify/step.md +27 -0
- package/skills/sdlc/hotfix/prd/entry/SKILL.md +10 -0
- package/skills/sdlc/hotfix/prd/entry/step.md +20 -0
- package/skills/sdlc/hotfix/prd/gate/SKILL.md +10 -0
- package/skills/sdlc/hotfix/prd/gate/step.md +32 -0
- package/skills/sdlc/hotfix/prd/requirements/SKILL.md +10 -0
- package/skills/sdlc/hotfix/prd/requirements/step.md +19 -0
- package/skills/sdlc/hotfix/prd/validate/SKILL.md +10 -0
- package/skills/sdlc/hotfix/prd/validate/step.md +19 -0
- package/skills/sdlc/hotfix/prd/write/SKILL.md +10 -0
- package/skills/sdlc/hotfix/prd/write/step.md +38 -0
- package/skills/sdlc/hotfix/review/entry/SKILL.md +10 -0
- package/skills/sdlc/hotfix/review/entry/step.md +13 -0
- package/skills/sdlc/hotfix/review/gate/SKILL.md +10 -0
- package/skills/sdlc/hotfix/review/gate/step.md +51 -0
- package/skills/sdlc/hotfix/review/impact/SKILL.md +10 -0
- package/skills/sdlc/hotfix/review/impact/step.md +22 -0
- package/skills/sdlc/hotfix/review/minimality/SKILL.md +10 -0
- package/skills/sdlc/hotfix/review/minimality/step.md +18 -0
- package/skills/sdlc/hotfix/review/test-quality/SKILL.md +10 -0
- package/skills/sdlc/hotfix/review/test-quality/step.md +16 -0
- package/skills/sdlc/hotfix/ship/commit-pr/SKILL.md +10 -0
- package/skills/sdlc/hotfix/ship/commit-pr/step.md +58 -0
- package/skills/sdlc/hotfix/ship/entry/SKILL.md +10 -0
- package/skills/sdlc/hotfix/ship/entry/step.md +20 -0
- package/skills/sdlc/hotfix/ship/exit/SKILL.md +10 -0
- package/skills/sdlc/hotfix/ship/exit/step.md +31 -0
- package/skills/sdlc/hotfix/ship/gitignore/SKILL.md +10 -0
- package/skills/sdlc/hotfix/ship/gitignore/step.md +22 -0
- package/skills/sdlc/hotfix/ship/report/SKILL.md +10 -0
- package/skills/sdlc/hotfix/ship/report/step.md +47 -0
- package/skills/sdlc/hotfix/ship/test-gate/SKILL.md +10 -0
- package/skills/sdlc/hotfix/ship/test-gate/step.md +17 -0
- package/skills/sdlc/implement/build-run/SKILL.md +10 -0
- package/skills/sdlc/implement/build-run/step.md +85 -0
- package/skills/sdlc/implement/checkpoint/SKILL.md +10 -0
- package/skills/sdlc/implement/checkpoint/step.md +20 -0
- package/skills/sdlc/implement/debug/SKILL.md +10 -0
- package/skills/sdlc/implement/debug/step.md +25 -0
- package/skills/sdlc/implement/impact/SKILL.md +10 -0
- package/skills/sdlc/implement/impact/step.md +12 -0
- package/skills/sdlc/implement/plan/SKILL.md +10 -0
- package/skills/sdlc/implement/plan/step.md +13 -0
- package/skills/sdlc/implement/prereq/SKILL.md +10 -0
- package/skills/sdlc/implement/prereq/step.md +21 -0
- package/skills/sdlc/implement/subagents/SKILL.md +10 -0
- package/skills/sdlc/implement/subagents/step.md +38 -0
- package/skills/sdlc/implement/tdd/SKILL.md +10 -0
- package/skills/sdlc/implement/tdd/step.md +24 -0
- package/skills/sdlc/init/SKILL.md +7 -0
- package/skills/sdlc/onboard-code/SKILL.md +7 -0
- package/skills/sdlc/onboard-docs/SKILL.md +7 -0
- package/skills/sdlc/pack.yaml +83 -16
- package/skills/sdlc/prd/blast-radius/SKILL.md +10 -0
- package/skills/sdlc/prd/blast-radius/step.md +76 -0
- package/skills/sdlc/prd/create/SKILL.md +10 -0
- package/skills/sdlc/prd/create/step.md +21 -0
- package/skills/sdlc/prd/elicitation/SKILL.md +10 -0
- package/skills/sdlc/prd/elicitation/step.md +12 -0
- package/skills/sdlc/prd/prereq/SKILL.md +10 -0
- package/skills/sdlc/prd/prereq/step.md +16 -0
- package/skills/sdlc/prd/validate/SKILL.md +10 -0
- package/skills/sdlc/prd/validate/step.md +24 -0
- package/skills/sdlc/review/code/SKILL.md +10 -0
- package/skills/sdlc/review/code/step.md +45 -0
- package/skills/sdlc/review/debate/SKILL.md +10 -0
- package/skills/sdlc/review/debate/step.md +84 -0
- package/skills/sdlc/review/impact/SKILL.md +10 -0
- package/skills/sdlc/review/impact/step.md +14 -0
- package/skills/sdlc/review/prereq/SKILL.md +10 -0
- package/skills/sdlc/review/prereq/step.md +18 -0
- package/skills/sdlc/review/verification/SKILL.md +10 -0
- package/skills/sdlc/review/verification/step.md +16 -0
- package/skills/sdlc/ship/commit/SKILL.md +10 -0
- package/skills/sdlc/ship/commit/step.md +23 -0
- package/skills/sdlc/ship/gitignore/SKILL.md +10 -0
- package/skills/sdlc/ship/gitignore/step.md +22 -0
- package/skills/sdlc/ship/pr/SKILL.md +10 -0
- package/skills/sdlc/ship/pr/step.md +34 -0
- package/skills/sdlc/ship/prereq/SKILL.md +10 -0
- package/skills/sdlc/ship/prereq/step.md +16 -0
- package/skills/sdlc/ship/report/SKILL.md +10 -0
- package/skills/sdlc/ship/report/step.md +74 -0
- package/skills/sdlc/srs/interface/SKILL.md +10 -0
- package/skills/sdlc/srs/interface/step.md +44 -0
- package/skills/sdlc/srs/prereq/SKILL.md +10 -0
- package/skills/sdlc/srs/prereq/step.md +19 -0
- package/skills/sdlc/srs/validate/SKILL.md +10 -0
- package/skills/sdlc/srs/validate/step.md +23 -0
- package/skills/sdlc/srs/write/SKILL.md +10 -0
- package/skills/sdlc/srs/write/step.md +19 -0
- package/skills/sdlc/test-design/boundary/SKILL.md +10 -0
- package/skills/sdlc/test-design/boundary/step.md +12 -0
- package/skills/sdlc/test-design/cases/SKILL.md +10 -0
- package/skills/sdlc/test-design/cases/step.md +22 -0
- package/skills/sdlc/test-design/coverage/SKILL.md +10 -0
- package/skills/sdlc/test-design/coverage/step.md +63 -0
- package/skills/sdlc/test-design/prereq/SKILL.md +10 -0
- package/skills/sdlc/test-design/prereq/step.md +15 -0
- package/{skills/sdlc/workflows → workflows/sdlc}/hotfix-tdd.yaml +2 -1
- package/{skills/sdlc/workflows → workflows/sdlc}/hotfix.yaml +8 -4
- package/workflows/sdlc/master-sdlc.yaml +64 -0
- package/workflows/sdlc/sdlc-architecture.yaml +43 -0
- package/workflows/sdlc/sdlc-build.yaml +51 -0
- package/workflows/sdlc/sdlc-design.yaml +61 -0
- package/workflows/sdlc/sdlc-discovery.yaml +43 -0
- package/workflows/sdlc/sdlc-feature-complete.yaml +36 -0
- package/workflows/sdlc/sdlc-hotfix-analyze.yaml +43 -0
- package/workflows/sdlc/sdlc-hotfix-implement.yaml +43 -0
- package/workflows/sdlc/sdlc-hotfix-prd.yaml +31 -0
- package/workflows/sdlc/sdlc-hotfix-review.yaml +31 -0
- package/workflows/sdlc/sdlc-hotfix-ship.yaml +37 -0
- package/workflows/sdlc/sdlc-implement.yaml +60 -0
- package/workflows/sdlc/sdlc-prd.yaml +36 -0
- package/workflows/sdlc/sdlc-qa.yaml +91 -0
- package/workflows/sdlc/sdlc-review.yaml +36 -0
- package/workflows/sdlc/sdlc-ship.yaml +36 -0
- package/workflows/sdlc/sdlc-srs.yaml +29 -0
- package/workflows/sdlc/sdlc-test-design.yaml +29 -0
- package/workflows/sdlc/sdlc-testcase.yaml +25 -0
- package/workflows/sdlc/sdlc-thinking.yaml +67 -0
- package/skills/sdlc/architecture/SKILL.md +0 -218
- package/skills/sdlc/discovery/SKILL.md +0 -197
- package/skills/sdlc/feature-complete/SKILL.md +0 -159
- package/skills/sdlc/hotfix-analyze/SKILL.md +0 -198
- package/skills/sdlc/hotfix-implement/SKILL.md +0 -272
- package/skills/sdlc/hotfix-prd/SKILL.md +0 -161
- package/skills/sdlc/hotfix-review/SKILL.md +0 -153
- package/skills/sdlc/hotfix-ship/SKILL.md +0 -221
- package/skills/sdlc/implement/SKILL.md +0 -264
- package/skills/sdlc/prd/SKILL.md +0 -182
- package/skills/sdlc/review/SKILL.md +0 -210
- package/skills/sdlc/ship/SKILL.md +0 -194
- package/skills/sdlc/srs/SKILL.md +0 -148
- package/skills/sdlc/test-design/SKILL.md +0 -132
- package/skills/sdlc/workflows/master-sdlc.yaml +0 -55
- package/skills/sdlc/workflows/sdlc-build.yaml +0 -18
- package/skills/sdlc/workflows/sdlc-design.yaml +0 -14
- package/skills/sdlc/workflows/sdlc-qa.yaml +0 -20
- package/skills/sdlc/workflows/sdlc-testcase.yaml +0 -8
- package/skills/sdlc/workflows/sdlc-thinking.yaml +0 -12
- /package/{skills/sdlc/workflows → workflows/sdlc}/onboarding.yaml +0 -0
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sdlc-ship
|
|
3
|
-
description: Phase 9 — Ship via commit (source + .vsaf/docs only) + PR generation
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
author: "@ngocsangairvds/vsaf"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Phase 9: Ship
|
|
9
|
-
|
|
10
|
-
You are DevOps Engineer. Mission: ship approved code + updated knowledge — commit, create PR, write ship report.
|
|
11
|
-
|
|
12
|
-
## Progress Protocol
|
|
13
|
-
|
|
14
|
-
Print progress at each step in this format:
|
|
15
|
-
```
|
|
16
|
-
[SHIP] [step/5] description... ⏳
|
|
17
|
-
[SHIP] [step/5] description... ✅
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Phase Entry Protocol
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
[SHIP] [1/5] Checking prerequisites... ⏳
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
1. Input: `.vsaf/docs/features/{feature-name}/08-review.md`
|
|
27
|
-
2. Check that the file exists + **check for Gate: APPROVED**
|
|
28
|
-
- No Gate → Stop: "Review has not been approved"
|
|
29
|
-
3. Check `.vsaf/docs/STATUS.md` — feature must be in "Knowledge Updated" status
|
|
30
|
-
- If not → Stop: "Feature has not passed feature-complete. Run `/sdlc-feature-complete` first."
|
|
31
|
-
4. Read `CONTEXT.md`
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
[SHIP] [1/5] Checking prerequisites... ✅
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Tasks
|
|
38
|
-
|
|
39
|
-
### Step 2: .gitignore Enforcement
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
[SHIP] [2/5] Checking .gitignore — ensuring index files are not committed... ⏳
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**MANDATORY** — MUST verify before committing:
|
|
46
|
-
|
|
47
|
-
1. Check that `.gitignore` contains:
|
|
48
|
-
```
|
|
49
|
-
graphify-out/
|
|
50
|
-
.gitnexus/
|
|
51
|
-
```
|
|
52
|
-
2. If MISSING → **AUTOMATICALLY add to `.gitignore`** and notify user
|
|
53
|
-
3. Verify with `git status` — `graphify-out/` and `.gitnexus/` DO NOT appear in staged/unstaged files
|
|
54
|
-
4. If they still appear → `git rm --cached -r graphify-out/ .gitnexus/` before committing
|
|
55
|
-
|
|
56
|
-
⚠️ **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`** — these are local indexes, each machine builds its own.
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
[SHIP] [2/5] Checking .gitignore... ✅
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Step 3: Merge Strategy + Commit
|
|
63
|
-
|
|
64
|
-
```
|
|
65
|
-
[SHIP] [3/5] Commit source code + .vsaf/docs/... ⏳
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Use `/superpowers:finishing-a-development-branch`:
|
|
69
|
-
- Decide merge strategy (merge commit / squash / rebase)
|
|
70
|
-
- Resolve conflicts if any
|
|
71
|
-
- Verify final build passes
|
|
72
|
-
|
|
73
|
-
**Commit scope — ONLY commit:**
|
|
74
|
-
- Source code changes (implementation / fix)
|
|
75
|
-
- `.vsaf/docs/` folder (artifacts, CONTEXT.md, KNOWLEDGE.md, STATUS.md)
|
|
76
|
-
- `.gitignore` (if updated)
|
|
77
|
-
|
|
78
|
-
**DO NOT commit:**
|
|
79
|
-
- `graphify-out/` — local graph index
|
|
80
|
-
- `.gitnexus/` — local code index
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
[SHIP] [3/5] Commit source code + .vsaf/docs/... ✅
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Step 4: Push + PR
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
[SHIP] [4/5] Push branch + create PR... ⏳
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
Generate PR description from review artifacts:
|
|
93
|
-
- Read the review file from `{artifact-dir}` — summary, impact, test results
|
|
94
|
-
- Create a structured PR description
|
|
95
|
-
- Open PR (or suggest command if multi-repo)
|
|
96
|
-
|
|
97
|
-
**Branch naming:** `feat/{feature-name}`
|
|
98
|
-
|
|
99
|
-
**Single repo:**
|
|
100
|
-
```bash
|
|
101
|
-
git push -u origin {branch}
|
|
102
|
-
gh pr create --title "{title}" --body "{description}"
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**Multi-repo:**
|
|
106
|
-
```
|
|
107
|
-
For each repo with code changes:
|
|
108
|
-
cd {repo} && git push -u origin {branch}
|
|
109
|
-
gh pr create --title "{title}" --body "{description}"
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
**Add note to PR description:**
|
|
113
|
-
```
|
|
114
|
-
> **Note for reviewer:** After pulling the code, run `npx gitnexus analyze` and `/graphify` to re-index locally.
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
[SHIP] [4/5] Push branch + create PR... ✅
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Step 5: Ship Report
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
[SHIP] [5/5] Writing ship report... ⏳
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Write file: `.vsaf/docs/features/{feature-name}/09-ship.md`
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
[SHIP] [5/5] Writing ship report... ✅
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
## Output
|
|
134
|
-
|
|
135
|
-
```markdown
|
|
136
|
-
# Ship Report: {feature-name}
|
|
137
|
-
|
|
138
|
-
## PR
|
|
139
|
-
- {repo}: PR #{number} — {url}
|
|
140
|
-
|
|
141
|
-
## Merge Strategy
|
|
142
|
-
{merge commit / squash / rebase}
|
|
143
|
-
|
|
144
|
-
## Commit Scope
|
|
145
|
-
- Source code: {N} files
|
|
146
|
-
- .vsaf/docs/: {M} files (artifacts + knowledge)
|
|
147
|
-
- Excluded: graphify-out/, .gitnexus/ (local index)
|
|
148
|
-
|
|
149
|
-
## Final Status
|
|
150
|
-
- Build: PASS
|
|
151
|
-
- Tests: all GREEN
|
|
152
|
-
- Review: APPROVED
|
|
153
|
-
- Knowledge: UPDATED (feature-complete done)
|
|
154
|
-
|
|
155
|
-
## Traceability
|
|
156
|
-
US-001 → FR-001 → TC-001 → impl ✓
|
|
157
|
-
US-002 → FR-002 → TC-003 → impl ✓
|
|
158
|
-
|
|
159
|
-
## Post-pull Setup
|
|
160
|
-
After pulling the code, run:
|
|
161
|
-
- `npx gitnexus analyze` — re-index code
|
|
162
|
-
- `/graphify` — rebuild knowledge graph
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
## Phase Exit Protocol
|
|
166
|
-
|
|
167
|
-
Print PHASE REPORT:
|
|
168
|
-
```
|
|
169
|
-
═══════════════════════════════════════════
|
|
170
|
-
SHIP COMPLETE: {feature-name}
|
|
171
|
-
═══════════════════════════════════════════
|
|
172
|
-
Phase: 9 (Ship — final phase)
|
|
173
|
-
|
|
174
|
-
PR: #{number} — {url}
|
|
175
|
-
Commit: source code + .vsaf/docs/ only
|
|
176
|
-
Excluded: graphify-out/, .gitnexus/
|
|
177
|
-
|
|
178
|
-
Phases completed: 1→2→3→4→5→6→7→8→9
|
|
179
|
-
Artifacts: .vsaf/docs/features/{feature-name}/ (9 files)
|
|
180
|
-
|
|
181
|
-
Feature DONE.
|
|
182
|
-
═══════════════════════════════════════════
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Update `.vsaf/docs/STATUS.md` → move to "Completed Features".
|
|
186
|
-
|
|
187
|
-
## Rules
|
|
188
|
-
|
|
189
|
-
- DO NOT review code — that is the review phase's job
|
|
190
|
-
- Only ship code that is APPROVED + knowledge UPDATED (feature-complete done)
|
|
191
|
-
- PR description MUST be self-contained (reading the PR alone should be enough to understand the feature without reading artifacts)
|
|
192
|
-
- **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`** — verify .gitignore first
|
|
193
|
-
- **ONLY commit source code + `.vsaf/docs/`**
|
|
194
|
-
- Add re-index note to PR description for team members
|
package/skills/sdlc/srs/SKILL.md
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sdlc-srs
|
|
3
|
-
description: "Phase 4 — SRS via sdlc-write-srs template + sdlc-validate-srs 8-dimension validation + GitNexus interface verification"
|
|
4
|
-
version: 2.0.0
|
|
5
|
-
author: "@ngocsangairvds/vsaf"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Phase 4: SRS (Software Requirements Specification)
|
|
9
|
-
|
|
10
|
-
You are a Senior Business Analyst. Your mission: write a detailed SRS using the v4 template, validate it across 8 quality dimensions, and verify interface contracts.
|
|
11
|
-
|
|
12
|
-
## Language Rule
|
|
13
|
-
|
|
14
|
-
All output documents (05-srs.md) MUST be written in Vietnamese. Section headers, requirements, use cases, analysis — all in Vietnamese. Only keep English for: IDs (FR-001, NFR-001, UC-XX-01), technical terms (API, database, endpoint), and code references (class names, method signatures).
|
|
15
|
-
|
|
16
|
-
## Index Protection
|
|
17
|
-
|
|
18
|
-
⛔ **DO NOT modify** `graphify-out/` or `.gitnexus/` — READ only, never WRITE.
|
|
19
|
-
|
|
20
|
-
## Scope sizing — full vs lite
|
|
21
|
-
|
|
22
|
-
Pick the SRS depth before writing, to avoid over-spending on small features:
|
|
23
|
-
|
|
24
|
-
- **Explicit override (highest priority):** if `$ARGUMENTS` contains `--lite` → lite; `--full` → full.
|
|
25
|
-
- **Force FULL (hard overrides) — pick `full` regardless of FR count if ANY apply:**
|
|
26
|
-
| Trigger | Why |
|
|
27
|
-
|---|---|
|
|
28
|
-
| Touches auth / security / authorization | a spec gap here is high-cost |
|
|
29
|
-
| Data migration / schema change | irreversible, needs full rigor |
|
|
30
|
-
| New public/external API or interface contract (FE / third-party) | downstream consumers depend on it |
|
|
31
|
-
| ≥ 3 modules affected, OR GitNexus blast-radius HIGH/CRITICAL | wide blast = expensive mistakes |
|
|
32
|
-
- **Otherwise auto-detect:** **lite** when ALL of — **≤ 8 functional requirements** AND ≤ ~5 files / single module AND GitNexus blast-radius LOW/MEDIUM AND none of the Force-FULL triggers above. **full** otherwise.
|
|
33
|
-
> FR count alone is a weak signal (a 3-FR auth change still needs full; a 12-FR read-only change can be lite) — the Force-FULL triggers and blast-radius decide first; the ≤ 8 FR line is only the tie-breaker for low-risk features.
|
|
34
|
-
- **Lite mode:** write the SRS sections that apply, then run `sdlc-validate-srs` in lite mode (core dimensions only — completeness, consistency, testability; skip the heavy 8-dimension weighted scoring). Note `Mode: LITE` at the top of `05-srs.md`.
|
|
35
|
-
- **Full mode:** write all 12 sections and run the full 8-dimension validation. Note `Mode: FULL`.
|
|
36
|
-
|
|
37
|
-
State which mode you chose and why in one line before writing.
|
|
38
|
-
|
|
39
|
-
## Phase Entry Protocol
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
[SRS] [1/4] Checking input artifacts... ⏳
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
1. Input:
|
|
46
|
-
- `.vsaf/docs/features/{feature-name}/02-prd.md`
|
|
47
|
-
- `.vsaf/docs/features/{feature-name}/03-adr.md`
|
|
48
|
-
- `.vsaf/docs/features/{feature-name}/04-epics.md`
|
|
49
|
-
2. Verify 02-prd.md AND 03-adr.md exist (04-epics.md optional):
|
|
50
|
-
- Any required file missing → Ask: "File not found. Have you run Phase 2 (PRD) and Phase 3 (Architecture)?"
|
|
51
|
-
3. Read `.vsaf/docs/STATUS.md`
|
|
52
|
-
4. Read `CONTEXT.md`
|
|
53
|
-
5. Query `graph.json` for code structure + business mapping (if exists)
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
[SRS] [1/4] Checking input artifacts... ✅
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## Tasks
|
|
60
|
-
|
|
61
|
-
### Step 2: Write SRS
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
[SRS] [2/4] Writing SRS from PRD + ADR + Epics... ⏳
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Use `/sdlc-write-srs` — write SRS following the v4 template (12 sections) from PRD + Architecture + Epics.
|
|
68
|
-
|
|
69
|
-
Input:
|
|
70
|
-
- `02-prd.md` as PRD source
|
|
71
|
-
- `03-adr.md` as architecture context
|
|
72
|
-
- `04-epics.md` as epic breakdown (optional)
|
|
73
|
-
- Figma link from `CONTEXT.md` (optional)
|
|
74
|
-
|
|
75
|
-
Output: `.vsaf/docs/features/{feature-name}/05-srs.md`
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
[SRS] [2/4] Writing SRS from PRD + ADR + Epics... ✅
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Step 3: Validate SRS
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
[SRS] [3/4] Validating SRS (8 dimensions)... ⏳
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Use `/sdlc-validate-srs` — validate SRS across 8 dimensions with weighted scoring.
|
|
88
|
-
|
|
89
|
-
- Scope: single file (`05-srs.md`)
|
|
90
|
-
- Cross-validate against: `02-prd.md`, `03-adr.md`
|
|
91
|
-
- Output: `.vsaf/docs/features/{feature-name}/05-srs-validation-report.md`
|
|
92
|
-
|
|
93
|
-
**Decision handling:**
|
|
94
|
-
|
|
95
|
-
| Validation Result | Action |
|
|
96
|
-
|---|---|
|
|
97
|
-
| **GO** (≥80%, no CRITICAL) | Print score summary, proceed to Step 4 |
|
|
98
|
-
| **CONDITIONAL GO** (60-79% or HIGH findings) | Print warnings + finding summary. Ask user: "Proceed despite warnings? (Y/N)" |
|
|
99
|
-
| **NO-GO** (<60% or CRITICAL findings) | **STOP.** Print CRITICAL findings. Ask user to fix 05-srs.md and re-run `/sdlc-srs` |
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
[SRS] [3/4] Validating SRS (8 dimensions)... ✅
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Step 4: Interface Verification
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
[SRS] [4/4] Interface verification via GitNexus... ⏳
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Use GitNexus `shape_check` — verify code structure matches SRS assumptions.
|
|
112
|
-
Append results to `05-srs.md` §Interface Contracts.
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
[SRS] [4/4] Interface verification via GitNexus... ✅
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## Gate
|
|
119
|
-
|
|
120
|
-
Human must approve SRS. Write `## Gate: APPROVED` at the end of the file.
|
|
121
|
-
|
|
122
|
-
**Automated mode (opt-in):** when the environment has `VSAF_CI=1` or `VSAF_AUTO_APPROVE=1`, write the Gate yourself as `## Gate: APPROVED (auto · VSAF_CI · rationale: <one line>)` and proceed — the one-line rationale is REQUIRED for audit. Without the env flag, a human must approve (default).
|
|
123
|
-
|
|
124
|
-
## Output
|
|
125
|
-
|
|
126
|
-
- `.vsaf/docs/features/{feature-name}/05-srs.md` — SRS document (v4 template format)
|
|
127
|
-
- `.vsaf/docs/features/{feature-name}/05-srs-validation-report.md` — Validation report with scores
|
|
128
|
-
|
|
129
|
-
## Phase Exit Protocol
|
|
130
|
-
|
|
131
|
-
In PHASE REPORT:
|
|
132
|
-
- Output files: `05-srs.md`, `05-srs-validation-report.md`
|
|
133
|
-
- Validation score: {overall_score}% ({GO/CONDITIONAL GO/NO-GO})
|
|
134
|
-
- Suggestions: [1] Phase 5 Test Design (`/sdlc-test-design`) [2] Save artifacts
|
|
135
|
-
|
|
136
|
-
Update `.vsaf/docs/STATUS.md`.
|
|
137
|
-
|
|
138
|
-
**Notify the user:**
|
|
139
|
-
> Artifacts have been saved. If the session is interrupted, open a new session and run the next phase — data is safe.
|
|
140
|
-
|
|
141
|
-
## Rules
|
|
142
|
-
|
|
143
|
-
- Every FR/NFR MUST have a unique traceability ID
|
|
144
|
-
- DO NOT use vague language: "should", "might", "optionally" → replace with "MUST", "MUST NOT"
|
|
145
|
-
- All terms MUST exist in CONTEXT.md
|
|
146
|
-
- Every FR MUST be testable (have clear pass/fail criteria)
|
|
147
|
-
- SRS MUST follow the v4 template structure (12 sections)
|
|
148
|
-
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sdlc-test-design
|
|
3
|
-
description: Phase 5 — Test Design via BMAD QA + edge case hunter + GitNexus coverage mapping
|
|
4
|
-
version: 1.0.0
|
|
5
|
-
author: "@ngocsangairvds/vsaf"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Phase 5: Test Design
|
|
9
|
-
|
|
10
|
-
You are a QA Lead. Your mission: design test cases FROM the SRS (spec), NOT from code. Tests BEFORE code (#2 TDD).
|
|
11
|
-
|
|
12
|
-
## Index Protection
|
|
13
|
-
|
|
14
|
-
⛔ **DO NOT modify** `graphify-out/` or `.gitnexus/` — READ only, never WRITE.
|
|
15
|
-
|
|
16
|
-
## Phase Entry Protocol
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
[TEST-DESIGN] [1/4] Checking input artifacts... ⏳
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
1. Input: `.vsaf/docs/features/{feature-name}/05-srs.md`
|
|
23
|
-
2. Verify file exists + **check Gate: APPROVED**
|
|
24
|
-
- No Gate → Stop: "SRS has not been approved"
|
|
25
|
-
3. Read `.vsaf/docs/STATUS.md`
|
|
26
|
-
4. Read `CONTEXT.md`
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
[TEST-DESIGN] [1/4] Checking input artifacts... ✅
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Tasks
|
|
33
|
-
|
|
34
|
-
### Step 1: Generate Test Cases
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
[TEST-DESIGN] [2/4] Generating test cases from SRS... ⏳
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Use `/bmad-qa-generate-e2e-tests` — generate test cases from SRS FRs/NFRs.
|
|
41
|
-
|
|
42
|
-
For each requirement, ensure ≥1 test case with:
|
|
43
|
-
|
|
44
|
-
1. **Unique ID** — TC-001 (sequential)
|
|
45
|
-
2. **Traceability** — TC → FR/NFR → PRD user story (US-xxx)
|
|
46
|
-
3. **Type** — unit / integration / e2e (based on requirement scope)
|
|
47
|
-
4. **Precondition** — system state before test
|
|
48
|
-
5. **Steps** — exact actions to execute
|
|
49
|
-
6. **Expected result** — concrete, verifiable outcome (not "should work")
|
|
50
|
-
|
|
51
|
-
Prioritize: happy path first, then error paths, then edge cases.
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
[TEST-DESIGN] [2/4] Generating test cases from SRS... ✅
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Step 2: Boundary Tests
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
[TEST-DESIGN] [3/4] Boundary & edge case tests... ⏳
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Use `/bmad-review-edge-case-hunter` — add boundary tests.
|
|
64
|
-
Race conditions, null/empty, overflow, concurrent access.
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
[TEST-DESIGN] [3/4] Boundary & edge case tests... ✅
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Step 3: Coverage Map
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
[TEST-DESIGN] [4/4] Coverage mapping via GitNexus... ⏳
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Use GitNexus `detect_changes` — predict files that will be modified.
|
|
77
|
-
Map test cases → files requiring coverage.
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
[TEST-DESIGN] [4/4] Coverage mapping via GitNexus... ✅
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Output
|
|
84
|
-
|
|
85
|
-
Write file: `.vsaf/docs/features/{feature-name}/06-testcases.md`
|
|
86
|
-
|
|
87
|
-
```markdown
|
|
88
|
-
# Test Cases: {feature-name}
|
|
89
|
-
|
|
90
|
-
## TC-001 → FR-001 → US-003
|
|
91
|
-
- Type: unit
|
|
92
|
-
- File target: src/user/user.service.ts
|
|
93
|
-
- Precondition: ...
|
|
94
|
-
- Steps: ...
|
|
95
|
-
- Expected: ...
|
|
96
|
-
|
|
97
|
-
## TC-002 → FR-001 (edge case: empty input)
|
|
98
|
-
- Type: unit
|
|
99
|
-
- Precondition: ...
|
|
100
|
-
- Steps: ...
|
|
101
|
-
- Expected: ...
|
|
102
|
-
|
|
103
|
-
## Coverage Map
|
|
104
|
-
- src/user/user.service.ts → TC-001, TC-002
|
|
105
|
-
- src/user/user.controller.ts → TC-005, TC-006
|
|
106
|
-
|
|
107
|
-
## Traceability Matrix
|
|
108
|
-
| FR/NFR | Test Cases | Coverage |
|
|
109
|
-
|--------|-----------|----------|
|
|
110
|
-
| FR-001 | TC-001, TC-002 | ✓ |
|
|
111
|
-
| FR-002 | TC-003 | ✓ |
|
|
112
|
-
| NFR-001 | TC-010 | ✓ |
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Phase Exit Protocol
|
|
116
|
-
|
|
117
|
-
In PHASE REPORT:
|
|
118
|
-
- Output files: `.vsaf/docs/features/{feature-name}/06-testcases.md`
|
|
119
|
-
- Suggestions: [1] Phase 6 Implementation (`/sdlc-implement`) [2] Save artifacts
|
|
120
|
-
|
|
121
|
-
Update `.vsaf/docs/STATUS.md`.
|
|
122
|
-
|
|
123
|
-
**Notify the user:**
|
|
124
|
-
> Artifacts have been saved. If the session is interrupted, open a new session and run the next phase — data is safe.
|
|
125
|
-
|
|
126
|
-
## Rules
|
|
127
|
-
|
|
128
|
-
- Test cases derive from SRS (spec), NEVER from code
|
|
129
|
-
- Every FR/NFR MUST have ≥1 test case
|
|
130
|
-
- Traceability chain is mandatory: TC → FR → US
|
|
131
|
-
- DO NOT read source code when writing test cases
|
|
132
|
-
- ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
name: master-sdlc
|
|
2
|
-
description: "Full SDLC pipeline — Discovery → PRD → Architecture → SRS → Test Design → Implement → Review → Feature Complete → Ship"
|
|
3
|
-
nodes:
|
|
4
|
-
- id: discovery
|
|
5
|
-
description: "Phase 1 — Discovery: analyze requirements, grill stakeholders, brainstorm solutions"
|
|
6
|
-
command: sdlc-discovery
|
|
7
|
-
workspace: false
|
|
8
|
-
- id: prd
|
|
9
|
-
description: "Phase 2 — PRD: write Product Requirements Document from discovery output"
|
|
10
|
-
command: sdlc-prd
|
|
11
|
-
depends_on: [discovery]
|
|
12
|
-
workspace: false
|
|
13
|
-
- id: architecture
|
|
14
|
-
description: "Phase 3 — Architecture: design solution architecture and write ADR + epic breakdown"
|
|
15
|
-
command: sdlc-architecture
|
|
16
|
-
depends_on: [prd]
|
|
17
|
-
workspace: false
|
|
18
|
-
- id: srs
|
|
19
|
-
description: "Phase 4 — SRS: write Software Requirements Specification with API contracts"
|
|
20
|
-
command: sdlc-srs
|
|
21
|
-
depends_on: [architecture]
|
|
22
|
-
workspace: false
|
|
23
|
-
- id: test-design
|
|
24
|
-
description: "Phase 5 — Test Design: generate test cases from SRS (tests before code)"
|
|
25
|
-
command: sdlc-test-design
|
|
26
|
-
depends_on: [srs]
|
|
27
|
-
workspace: false
|
|
28
|
-
- id: implement
|
|
29
|
-
description: "Phase 6 — Implement: TDD implementation per vertical slice"
|
|
30
|
-
command: sdlc-implement
|
|
31
|
-
depends_on: [test-design]
|
|
32
|
-
- id: test-gate
|
|
33
|
-
description: "Phase 6b — Test Gate: run automated tests to verify implementation"
|
|
34
|
-
bash: |
|
|
35
|
-
npm test 2>&1
|
|
36
|
-
depends_on: [implement]
|
|
37
|
-
loop:
|
|
38
|
-
on_fail: implement
|
|
39
|
-
max_retries: 3
|
|
40
|
-
inject_error: true
|
|
41
|
-
- id: review
|
|
42
|
-
description: "Phase 7 — Review: code review against SRS, architecture, and best practices"
|
|
43
|
-
command: sdlc-review
|
|
44
|
-
depends_on: [test-gate]
|
|
45
|
-
workspace: false
|
|
46
|
-
- id: complete
|
|
47
|
-
description: "Phase 8 — Feature Complete: update knowledge base and project documentation"
|
|
48
|
-
command: sdlc-feature-complete
|
|
49
|
-
depends_on: [review]
|
|
50
|
-
workspace: false
|
|
51
|
-
- id: ship
|
|
52
|
-
description: "Phase 9 — Ship: create PR, final checks, deploy"
|
|
53
|
-
command: sdlc-ship
|
|
54
|
-
depends_on: [complete]
|
|
55
|
-
workspace: false
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
name: sdlc-build
|
|
2
|
-
description: "Sub-flow: Implement → Test Gate — TDD code + automated test verification"
|
|
3
|
-
|
|
4
|
-
nodes:
|
|
5
|
-
- id: implement
|
|
6
|
-
description: "Implement: TDD implementation per vertical slice"
|
|
7
|
-
command: sdlc-implement
|
|
8
|
-
depends_on: []
|
|
9
|
-
|
|
10
|
-
- id: test-gate
|
|
11
|
-
description: "Test Gate: run automated tests to verify implementation"
|
|
12
|
-
bash: |
|
|
13
|
-
npm test 2>&1
|
|
14
|
-
depends_on: [implement]
|
|
15
|
-
loop:
|
|
16
|
-
on_fail: implement
|
|
17
|
-
max_retries: 3
|
|
18
|
-
inject_error: true
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: sdlc-design
|
|
2
|
-
description: "Sub-flow: Architecture → SRS — design solution and write detailed spec"
|
|
3
|
-
|
|
4
|
-
nodes:
|
|
5
|
-
- id: architecture
|
|
6
|
-
description: "Architecture: design solution architecture and write ADR + epic breakdown"
|
|
7
|
-
command: sdlc-architecture
|
|
8
|
-
workspace: false
|
|
9
|
-
|
|
10
|
-
- id: srs
|
|
11
|
-
description: "SRS: write Software Requirements Specification with API contracts"
|
|
12
|
-
command: sdlc-srs
|
|
13
|
-
depends_on: [architecture]
|
|
14
|
-
workspace: false
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
name: sdlc-qa
|
|
2
|
-
description: "Sub-flow: Review → Feature Complete → Ship — quality gate + knowledge update + deploy"
|
|
3
|
-
|
|
4
|
-
nodes:
|
|
5
|
-
- id: review
|
|
6
|
-
description: "Review: code review against SRS, architecture, and best practices"
|
|
7
|
-
command: sdlc-review
|
|
8
|
-
workspace: false
|
|
9
|
-
|
|
10
|
-
- id: complete
|
|
11
|
-
description: "Feature Complete: update knowledge base and project documentation"
|
|
12
|
-
command: sdlc-feature-complete
|
|
13
|
-
depends_on: [review]
|
|
14
|
-
workspace: false
|
|
15
|
-
|
|
16
|
-
- id: ship
|
|
17
|
-
description: "Ship: create PR, final checks, deploy"
|
|
18
|
-
command: sdlc-ship
|
|
19
|
-
depends_on: [complete]
|
|
20
|
-
workspace: false
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
name: sdlc-testcase
|
|
2
|
-
description: "Sub-flow: Test Design — generate test cases from SRS (tests before code)"
|
|
3
|
-
|
|
4
|
-
nodes:
|
|
5
|
-
- id: test-design
|
|
6
|
-
description: "Test Design: generate test cases from SRS (tests before code)"
|
|
7
|
-
command: sdlc-test-design
|
|
8
|
-
workspace: false
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
name: sdlc-thinking
|
|
2
|
-
description: "Sub-flow: Discovery → PRD — understand the problem space before designing"
|
|
3
|
-
|
|
4
|
-
nodes:
|
|
5
|
-
- id: discovery
|
|
6
|
-
command: sdlc-discovery
|
|
7
|
-
workspace: false
|
|
8
|
-
|
|
9
|
-
- id: prd
|
|
10
|
-
command: sdlc-prd
|
|
11
|
-
depends_on: [discovery]
|
|
12
|
-
workspace: false
|
|
File without changes
|