@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.
Files changed (217) hide show
  1. package/package.json +1 -1
  2. package/packages/cli/dist/adapters/antigravity.d.ts.map +1 -1
  3. package/packages/cli/dist/adapters/antigravity.js +7 -2
  4. package/packages/cli/dist/adapters/antigravity.js.map +1 -1
  5. package/packages/cli/dist/adapters/codex.js +1 -1
  6. package/packages/cli/dist/adapters/codex.js.map +1 -1
  7. package/packages/cli/dist/adapters/cursor.js +1 -1
  8. package/packages/cli/dist/adapters/cursor.js.map +1 -1
  9. package/packages/cli/dist/commands/install.d.ts.map +1 -1
  10. package/packages/cli/dist/commands/install.js +21 -1
  11. package/packages/cli/dist/commands/install.js.map +1 -1
  12. package/packages/cli/dist/commands/skill.d.ts.map +1 -1
  13. package/packages/cli/dist/commands/skill.js +5 -2
  14. package/packages/cli/dist/commands/skill.js.map +1 -1
  15. package/skills/sdlc/architecture/current-state/SKILL.md +10 -0
  16. package/skills/sdlc/architecture/current-state/step.md +13 -0
  17. package/skills/sdlc/architecture/decision/SKILL.md +10 -0
  18. package/skills/sdlc/architecture/decision/step.md +21 -0
  19. package/skills/sdlc/architecture/epics/SKILL.md +10 -0
  20. package/skills/sdlc/architecture/epics/step.md +34 -0
  21. package/skills/sdlc/architecture/grill/SKILL.md +10 -0
  22. package/skills/sdlc/architecture/grill/step.md +26 -0
  23. package/skills/sdlc/architecture/prereq/SKILL.md +10 -0
  24. package/skills/sdlc/architecture/prereq/step.md +16 -0
  25. package/skills/sdlc/architecture/readiness/SKILL.md +10 -0
  26. package/skills/sdlc/architecture/readiness/step.md +76 -0
  27. package/skills/sdlc/complete/context/SKILL.md +10 -0
  28. package/skills/sdlc/complete/context/step.md +14 -0
  29. package/skills/sdlc/complete/knowledge/SKILL.md +10 -0
  30. package/skills/sdlc/complete/knowledge/step.md +22 -0
  31. package/skills/sdlc/complete/prereq/SKILL.md +10 -0
  32. package/skills/sdlc/complete/prereq/step.md +16 -0
  33. package/skills/sdlc/complete/reindex/SKILL.md +10 -0
  34. package/skills/sdlc/complete/reindex/step.md +24 -0
  35. package/skills/sdlc/complete/status/SKILL.md +10 -0
  36. package/skills/sdlc/complete/status/step.md +52 -0
  37. package/skills/sdlc/discovery/brainstorm/SKILL.md +10 -0
  38. package/skills/sdlc/discovery/brainstorm/step.md +27 -0
  39. package/skills/sdlc/discovery/domain/SKILL.md +10 -0
  40. package/skills/sdlc/discovery/domain/step.md +13 -0
  41. package/skills/sdlc/discovery/grill/SKILL.md +10 -0
  42. package/skills/sdlc/discovery/grill/step.md +22 -0
  43. package/skills/sdlc/discovery/prereq/SKILL.md +10 -0
  44. package/skills/sdlc/discovery/prereq/step.md +16 -0
  45. package/skills/sdlc/discovery/prfaq/SKILL.md +10 -0
  46. package/skills/sdlc/discovery/prfaq/step.md +68 -0
  47. package/skills/sdlc/discovery/system/SKILL.md +10 -0
  48. package/skills/sdlc/discovery/system/step.md +19 -0
  49. package/skills/sdlc/hotfix/analyze/entry/SKILL.md +10 -0
  50. package/skills/sdlc/hotfix/analyze/entry/step.md +15 -0
  51. package/skills/sdlc/hotfix/analyze/exit/SKILL.md +10 -0
  52. package/skills/sdlc/hotfix/analyze/exit/step.md +19 -0
  53. package/skills/sdlc/hotfix/analyze/fix-strategy/SKILL.md +10 -0
  54. package/skills/sdlc/hotfix/analyze/fix-strategy/step.md +15 -0
  55. package/skills/sdlc/hotfix/analyze/gitnexus/SKILL.md +10 -0
  56. package/skills/sdlc/hotfix/analyze/gitnexus/step.md +17 -0
  57. package/skills/sdlc/hotfix/analyze/grill/SKILL.md +10 -0
  58. package/skills/sdlc/hotfix/analyze/grill/step.md +23 -0
  59. package/skills/sdlc/hotfix/analyze/reasoning/SKILL.md +10 -0
  60. package/skills/sdlc/hotfix/analyze/reasoning/step.md +29 -0
  61. package/skills/sdlc/hotfix/analyze/write/SKILL.md +10 -0
  62. package/skills/sdlc/hotfix/analyze/write/step.md +45 -0
  63. package/skills/sdlc/hotfix/implement/branch/SKILL.md +10 -0
  64. package/skills/sdlc/hotfix/implement/branch/step.md +15 -0
  65. package/skills/sdlc/hotfix/implement/entry/SKILL.md +10 -0
  66. package/skills/sdlc/hotfix/implement/entry/step.md +20 -0
  67. package/skills/sdlc/hotfix/implement/gate/SKILL.md +10 -0
  68. package/skills/sdlc/hotfix/implement/gate/step.md +104 -0
  69. package/skills/sdlc/hotfix/implement/impact/SKILL.md +10 -0
  70. package/skills/sdlc/hotfix/implement/impact/step.md +15 -0
  71. package/skills/sdlc/hotfix/implement/sonar/SKILL.md +10 -0
  72. package/skills/sdlc/hotfix/implement/sonar/step.md +27 -0
  73. package/skills/sdlc/hotfix/implement/tdd/SKILL.md +10 -0
  74. package/skills/sdlc/hotfix/implement/tdd/step.md +33 -0
  75. package/skills/sdlc/hotfix/implement/verify/SKILL.md +10 -0
  76. package/skills/sdlc/hotfix/implement/verify/step.md +27 -0
  77. package/skills/sdlc/hotfix/prd/entry/SKILL.md +10 -0
  78. package/skills/sdlc/hotfix/prd/entry/step.md +20 -0
  79. package/skills/sdlc/hotfix/prd/gate/SKILL.md +10 -0
  80. package/skills/sdlc/hotfix/prd/gate/step.md +32 -0
  81. package/skills/sdlc/hotfix/prd/requirements/SKILL.md +10 -0
  82. package/skills/sdlc/hotfix/prd/requirements/step.md +19 -0
  83. package/skills/sdlc/hotfix/prd/validate/SKILL.md +10 -0
  84. package/skills/sdlc/hotfix/prd/validate/step.md +19 -0
  85. package/skills/sdlc/hotfix/prd/write/SKILL.md +10 -0
  86. package/skills/sdlc/hotfix/prd/write/step.md +38 -0
  87. package/skills/sdlc/hotfix/review/entry/SKILL.md +10 -0
  88. package/skills/sdlc/hotfix/review/entry/step.md +13 -0
  89. package/skills/sdlc/hotfix/review/gate/SKILL.md +10 -0
  90. package/skills/sdlc/hotfix/review/gate/step.md +51 -0
  91. package/skills/sdlc/hotfix/review/impact/SKILL.md +10 -0
  92. package/skills/sdlc/hotfix/review/impact/step.md +22 -0
  93. package/skills/sdlc/hotfix/review/minimality/SKILL.md +10 -0
  94. package/skills/sdlc/hotfix/review/minimality/step.md +18 -0
  95. package/skills/sdlc/hotfix/review/test-quality/SKILL.md +10 -0
  96. package/skills/sdlc/hotfix/review/test-quality/step.md +16 -0
  97. package/skills/sdlc/hotfix/ship/commit-pr/SKILL.md +10 -0
  98. package/skills/sdlc/hotfix/ship/commit-pr/step.md +58 -0
  99. package/skills/sdlc/hotfix/ship/entry/SKILL.md +10 -0
  100. package/skills/sdlc/hotfix/ship/entry/step.md +20 -0
  101. package/skills/sdlc/hotfix/ship/exit/SKILL.md +10 -0
  102. package/skills/sdlc/hotfix/ship/exit/step.md +31 -0
  103. package/skills/sdlc/hotfix/ship/gitignore/SKILL.md +10 -0
  104. package/skills/sdlc/hotfix/ship/gitignore/step.md +22 -0
  105. package/skills/sdlc/hotfix/ship/report/SKILL.md +10 -0
  106. package/skills/sdlc/hotfix/ship/report/step.md +47 -0
  107. package/skills/sdlc/hotfix/ship/test-gate/SKILL.md +10 -0
  108. package/skills/sdlc/hotfix/ship/test-gate/step.md +17 -0
  109. package/skills/sdlc/implement/build-run/SKILL.md +10 -0
  110. package/skills/sdlc/implement/build-run/step.md +85 -0
  111. package/skills/sdlc/implement/checkpoint/SKILL.md +10 -0
  112. package/skills/sdlc/implement/checkpoint/step.md +20 -0
  113. package/skills/sdlc/implement/debug/SKILL.md +10 -0
  114. package/skills/sdlc/implement/debug/step.md +25 -0
  115. package/skills/sdlc/implement/impact/SKILL.md +10 -0
  116. package/skills/sdlc/implement/impact/step.md +12 -0
  117. package/skills/sdlc/implement/plan/SKILL.md +10 -0
  118. package/skills/sdlc/implement/plan/step.md +13 -0
  119. package/skills/sdlc/implement/prereq/SKILL.md +10 -0
  120. package/skills/sdlc/implement/prereq/step.md +21 -0
  121. package/skills/sdlc/implement/subagents/SKILL.md +10 -0
  122. package/skills/sdlc/implement/subagents/step.md +38 -0
  123. package/skills/sdlc/implement/tdd/SKILL.md +10 -0
  124. package/skills/sdlc/implement/tdd/step.md +24 -0
  125. package/skills/sdlc/init/SKILL.md +7 -0
  126. package/skills/sdlc/onboard-code/SKILL.md +7 -0
  127. package/skills/sdlc/onboard-docs/SKILL.md +7 -0
  128. package/skills/sdlc/pack.yaml +83 -16
  129. package/skills/sdlc/prd/blast-radius/SKILL.md +10 -0
  130. package/skills/sdlc/prd/blast-radius/step.md +76 -0
  131. package/skills/sdlc/prd/create/SKILL.md +10 -0
  132. package/skills/sdlc/prd/create/step.md +21 -0
  133. package/skills/sdlc/prd/elicitation/SKILL.md +10 -0
  134. package/skills/sdlc/prd/elicitation/step.md +12 -0
  135. package/skills/sdlc/prd/prereq/SKILL.md +10 -0
  136. package/skills/sdlc/prd/prereq/step.md +16 -0
  137. package/skills/sdlc/prd/validate/SKILL.md +10 -0
  138. package/skills/sdlc/prd/validate/step.md +24 -0
  139. package/skills/sdlc/review/code/SKILL.md +10 -0
  140. package/skills/sdlc/review/code/step.md +45 -0
  141. package/skills/sdlc/review/debate/SKILL.md +10 -0
  142. package/skills/sdlc/review/debate/step.md +84 -0
  143. package/skills/sdlc/review/impact/SKILL.md +10 -0
  144. package/skills/sdlc/review/impact/step.md +14 -0
  145. package/skills/sdlc/review/prereq/SKILL.md +10 -0
  146. package/skills/sdlc/review/prereq/step.md +18 -0
  147. package/skills/sdlc/review/verification/SKILL.md +10 -0
  148. package/skills/sdlc/review/verification/step.md +16 -0
  149. package/skills/sdlc/ship/commit/SKILL.md +10 -0
  150. package/skills/sdlc/ship/commit/step.md +23 -0
  151. package/skills/sdlc/ship/gitignore/SKILL.md +10 -0
  152. package/skills/sdlc/ship/gitignore/step.md +22 -0
  153. package/skills/sdlc/ship/pr/SKILL.md +10 -0
  154. package/skills/sdlc/ship/pr/step.md +34 -0
  155. package/skills/sdlc/ship/prereq/SKILL.md +10 -0
  156. package/skills/sdlc/ship/prereq/step.md +16 -0
  157. package/skills/sdlc/ship/report/SKILL.md +10 -0
  158. package/skills/sdlc/ship/report/step.md +74 -0
  159. package/skills/sdlc/srs/interface/SKILL.md +10 -0
  160. package/skills/sdlc/srs/interface/step.md +44 -0
  161. package/skills/sdlc/srs/prereq/SKILL.md +10 -0
  162. package/skills/sdlc/srs/prereq/step.md +19 -0
  163. package/skills/sdlc/srs/validate/SKILL.md +10 -0
  164. package/skills/sdlc/srs/validate/step.md +23 -0
  165. package/skills/sdlc/srs/write/SKILL.md +10 -0
  166. package/skills/sdlc/srs/write/step.md +19 -0
  167. package/skills/sdlc/test-design/boundary/SKILL.md +10 -0
  168. package/skills/sdlc/test-design/boundary/step.md +12 -0
  169. package/skills/sdlc/test-design/cases/SKILL.md +10 -0
  170. package/skills/sdlc/test-design/cases/step.md +22 -0
  171. package/skills/sdlc/test-design/coverage/SKILL.md +10 -0
  172. package/skills/sdlc/test-design/coverage/step.md +63 -0
  173. package/skills/sdlc/test-design/prereq/SKILL.md +10 -0
  174. package/skills/sdlc/test-design/prereq/step.md +15 -0
  175. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix-tdd.yaml +2 -1
  176. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix.yaml +8 -4
  177. package/workflows/sdlc/master-sdlc.yaml +64 -0
  178. package/workflows/sdlc/sdlc-architecture.yaml +43 -0
  179. package/workflows/sdlc/sdlc-build.yaml +51 -0
  180. package/workflows/sdlc/sdlc-design.yaml +61 -0
  181. package/workflows/sdlc/sdlc-discovery.yaml +43 -0
  182. package/workflows/sdlc/sdlc-feature-complete.yaml +36 -0
  183. package/workflows/sdlc/sdlc-hotfix-analyze.yaml +43 -0
  184. package/workflows/sdlc/sdlc-hotfix-implement.yaml +43 -0
  185. package/workflows/sdlc/sdlc-hotfix-prd.yaml +31 -0
  186. package/workflows/sdlc/sdlc-hotfix-review.yaml +31 -0
  187. package/workflows/sdlc/sdlc-hotfix-ship.yaml +37 -0
  188. package/workflows/sdlc/sdlc-implement.yaml +60 -0
  189. package/workflows/sdlc/sdlc-prd.yaml +36 -0
  190. package/workflows/sdlc/sdlc-qa.yaml +91 -0
  191. package/workflows/sdlc/sdlc-review.yaml +36 -0
  192. package/workflows/sdlc/sdlc-ship.yaml +36 -0
  193. package/workflows/sdlc/sdlc-srs.yaml +29 -0
  194. package/workflows/sdlc/sdlc-test-design.yaml +29 -0
  195. package/workflows/sdlc/sdlc-testcase.yaml +25 -0
  196. package/workflows/sdlc/sdlc-thinking.yaml +67 -0
  197. package/skills/sdlc/architecture/SKILL.md +0 -218
  198. package/skills/sdlc/discovery/SKILL.md +0 -197
  199. package/skills/sdlc/feature-complete/SKILL.md +0 -159
  200. package/skills/sdlc/hotfix-analyze/SKILL.md +0 -198
  201. package/skills/sdlc/hotfix-implement/SKILL.md +0 -272
  202. package/skills/sdlc/hotfix-prd/SKILL.md +0 -161
  203. package/skills/sdlc/hotfix-review/SKILL.md +0 -153
  204. package/skills/sdlc/hotfix-ship/SKILL.md +0 -221
  205. package/skills/sdlc/implement/SKILL.md +0 -264
  206. package/skills/sdlc/prd/SKILL.md +0 -182
  207. package/skills/sdlc/review/SKILL.md +0 -210
  208. package/skills/sdlc/ship/SKILL.md +0 -194
  209. package/skills/sdlc/srs/SKILL.md +0 -148
  210. package/skills/sdlc/test-design/SKILL.md +0 -132
  211. package/skills/sdlc/workflows/master-sdlc.yaml +0 -55
  212. package/skills/sdlc/workflows/sdlc-build.yaml +0 -18
  213. package/skills/sdlc/workflows/sdlc-design.yaml +0 -14
  214. package/skills/sdlc/workflows/sdlc-qa.yaml +0 -20
  215. package/skills/sdlc/workflows/sdlc-testcase.yaml +0 -8
  216. package/skills/sdlc/workflows/sdlc-thinking.yaml +0 -12
  217. /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
@@ -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