@ngocsangairvds/vsaf 5.1.5 → 5.1.7

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 (280) 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 +14 -30
  4. package/packages/cli/dist/adapters/antigravity.js.map +1 -1
  5. package/packages/cli/dist/adapters/claude.d.ts.map +1 -1
  6. package/packages/cli/dist/adapters/claude.js +8 -10
  7. package/packages/cli/dist/adapters/claude.js.map +1 -1
  8. package/packages/cli/dist/adapters/codex.d.ts.map +1 -1
  9. package/packages/cli/dist/adapters/codex.js +6 -9
  10. package/packages/cli/dist/adapters/codex.js.map +1 -1
  11. package/packages/cli/dist/adapters/cursor.d.ts.map +1 -1
  12. package/packages/cli/dist/adapters/cursor.js +22 -24
  13. package/packages/cli/dist/adapters/cursor.js.map +1 -1
  14. package/packages/cli/dist/commands/init.d.ts.map +1 -1
  15. package/packages/cli/dist/commands/init.js +7 -19
  16. package/packages/cli/dist/commands/init.js.map +1 -1
  17. package/packages/cli/dist/commands/install.d.ts +3 -6
  18. package/packages/cli/dist/commands/install.d.ts.map +1 -1
  19. package/packages/cli/dist/commands/install.js +27 -10
  20. package/packages/cli/dist/commands/install.js.map +1 -1
  21. package/packages/cli/dist/commands/skill.d.ts.map +1 -1
  22. package/packages/cli/dist/commands/skill.js +40 -16
  23. package/packages/cli/dist/commands/skill.js.map +1 -1
  24. package/packages/cli/dist/index.js +2 -2
  25. package/packages/cli/dist/index.js.map +1 -1
  26. package/packages/cli/dist/install/orchestrator.d.ts +0 -8
  27. package/packages/cli/dist/install/orchestrator.d.ts.map +1 -1
  28. package/packages/cli/dist/install/orchestrator.js +3 -54
  29. package/packages/cli/dist/install/orchestrator.js.map +1 -1
  30. package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
  31. package/packages/cli/dist/server/routes/runs.js +81 -3
  32. package/packages/cli/dist/server/routes/runs.js.map +1 -1
  33. package/packages/cli/dist/server/routes/workflows.d.ts.map +1 -1
  34. package/packages/cli/dist/server/routes/workflows.js +76 -17
  35. package/packages/cli/dist/server/routes/workflows.js.map +1 -1
  36. package/packages/cli/dist/server/services/execution-manager.d.ts +11 -1
  37. package/packages/cli/dist/server/services/execution-manager.d.ts.map +1 -1
  38. package/packages/cli/dist/server/services/execution-manager.js +88 -17
  39. package/packages/cli/dist/server/services/execution-manager.js.map +1 -1
  40. package/packages/cli/dist/server/static.d.ts.map +1 -1
  41. package/packages/cli/dist/server/static.js +4 -1
  42. package/packages/cli/dist/server/static.js.map +1 -1
  43. package/packages/cli/dist/server/workflow-path.d.ts +3 -0
  44. package/packages/cli/dist/server/workflow-path.d.ts.map +1 -0
  45. package/packages/cli/dist/server/workflow-path.js +25 -0
  46. package/packages/cli/dist/server/workflow-path.js.map +1 -0
  47. package/packages/core/dist/store/recovery.d.ts.map +1 -1
  48. package/packages/core/dist/store/recovery.js +12 -1
  49. package/packages/core/dist/store/recovery.js.map +1 -1
  50. package/packages/core/dist/store/run-store.d.ts +3 -0
  51. package/packages/core/dist/store/run-store.d.ts.map +1 -1
  52. package/packages/core/dist/store/run-store.js +33 -0
  53. package/packages/core/dist/store/run-store.js.map +1 -1
  54. package/packages/core/dist/store/types.d.ts +2 -2
  55. package/packages/core/dist/store/types.d.ts.map +1 -1
  56. package/packages/core/dist/store/types.js.map +1 -1
  57. package/packages/core/dist/store/wal.js +1 -1
  58. package/packages/core/dist/store/wal.js.map +1 -1
  59. package/packages/web/dist/web/3rdpartylicenses.txt +26 -26
  60. package/packages/web/dist/web/browser/chunk-4YPNNQ2T.js +4 -0
  61. package/packages/web/dist/web/browser/chunk-E227ZHPJ.js +1 -0
  62. package/packages/web/dist/web/browser/chunk-JFBK3MNW.js +1 -0
  63. package/packages/web/dist/web/browser/chunk-L2VOQBBI.js +1 -0
  64. package/packages/web/dist/web/browser/chunk-OJJM5VOH.js +1 -0
  65. package/packages/web/dist/web/browser/chunk-U2H3QYAG.js +5 -0
  66. package/packages/web/dist/web/browser/chunk-VA7KFQOR.js +1 -0
  67. package/packages/web/dist/web/browser/chunk-WV3C6DNH.js +1 -0
  68. package/packages/web/dist/web/browser/index.html +2 -2
  69. package/packages/web/dist/web/browser/main-THGFWXYL.js +1 -0
  70. package/packages/web/dist/web/browser/{styles-JBPZVY54.css → styles-PWTTI45T.css} +1 -1
  71. package/skills/sdlc/architecture/current-state/SKILL.md +10 -0
  72. package/skills/sdlc/architecture/current-state/step.md +13 -0
  73. package/skills/sdlc/architecture/decision/SKILL.md +10 -0
  74. package/skills/sdlc/architecture/decision/step.md +21 -0
  75. package/skills/sdlc/architecture/epics/SKILL.md +10 -0
  76. package/skills/sdlc/architecture/epics/step.md +34 -0
  77. package/skills/sdlc/architecture/grill/SKILL.md +10 -0
  78. package/skills/sdlc/architecture/grill/step.md +26 -0
  79. package/skills/sdlc/architecture/prereq/SKILL.md +10 -0
  80. package/skills/sdlc/architecture/prereq/step.md +16 -0
  81. package/skills/sdlc/architecture/readiness/SKILL.md +10 -0
  82. package/skills/sdlc/architecture/readiness/step.md +76 -0
  83. package/skills/sdlc/complete/context/SKILL.md +10 -0
  84. package/skills/sdlc/complete/context/step.md +14 -0
  85. package/skills/sdlc/complete/knowledge/SKILL.md +10 -0
  86. package/skills/sdlc/complete/knowledge/step.md +22 -0
  87. package/skills/sdlc/complete/prereq/SKILL.md +10 -0
  88. package/skills/sdlc/complete/prereq/step.md +16 -0
  89. package/skills/sdlc/complete/reindex/SKILL.md +10 -0
  90. package/skills/sdlc/complete/reindex/step.md +24 -0
  91. package/skills/sdlc/complete/status/SKILL.md +10 -0
  92. package/skills/sdlc/complete/status/step.md +52 -0
  93. package/skills/sdlc/discovery/brainstorm/SKILL.md +10 -0
  94. package/skills/sdlc/discovery/brainstorm/step.md +27 -0
  95. package/skills/sdlc/discovery/domain/SKILL.md +10 -0
  96. package/skills/sdlc/discovery/domain/step.md +13 -0
  97. package/skills/sdlc/discovery/grill/SKILL.md +10 -0
  98. package/skills/sdlc/discovery/grill/step.md +22 -0
  99. package/skills/sdlc/discovery/prereq/SKILL.md +10 -0
  100. package/skills/sdlc/discovery/prereq/step.md +16 -0
  101. package/skills/sdlc/discovery/prfaq/SKILL.md +10 -0
  102. package/skills/sdlc/discovery/prfaq/step.md +68 -0
  103. package/skills/sdlc/discovery/system/SKILL.md +10 -0
  104. package/skills/sdlc/discovery/system/step.md +19 -0
  105. package/skills/sdlc/hotfix/analyze/entry/SKILL.md +10 -0
  106. package/skills/sdlc/hotfix/analyze/entry/step.md +15 -0
  107. package/skills/sdlc/hotfix/analyze/exit/SKILL.md +10 -0
  108. package/skills/sdlc/hotfix/analyze/exit/step.md +19 -0
  109. package/skills/sdlc/hotfix/analyze/fix-strategy/SKILL.md +10 -0
  110. package/skills/sdlc/hotfix/analyze/fix-strategy/step.md +15 -0
  111. package/skills/sdlc/hotfix/analyze/gitnexus/SKILL.md +10 -0
  112. package/skills/sdlc/hotfix/analyze/gitnexus/step.md +17 -0
  113. package/skills/sdlc/hotfix/analyze/grill/SKILL.md +10 -0
  114. package/skills/sdlc/hotfix/analyze/grill/step.md +23 -0
  115. package/skills/sdlc/hotfix/analyze/reasoning/SKILL.md +10 -0
  116. package/skills/sdlc/hotfix/analyze/reasoning/step.md +29 -0
  117. package/skills/sdlc/hotfix/analyze/write/SKILL.md +10 -0
  118. package/skills/sdlc/hotfix/analyze/write/step.md +45 -0
  119. package/skills/sdlc/hotfix/implement/branch/SKILL.md +10 -0
  120. package/skills/sdlc/hotfix/implement/branch/step.md +15 -0
  121. package/skills/sdlc/hotfix/implement/entry/SKILL.md +10 -0
  122. package/skills/sdlc/hotfix/implement/entry/step.md +20 -0
  123. package/skills/sdlc/hotfix/implement/gate/SKILL.md +10 -0
  124. package/skills/sdlc/hotfix/implement/gate/step.md +104 -0
  125. package/skills/sdlc/hotfix/implement/impact/SKILL.md +10 -0
  126. package/skills/sdlc/hotfix/implement/impact/step.md +15 -0
  127. package/skills/sdlc/hotfix/implement/sonar/SKILL.md +10 -0
  128. package/skills/sdlc/hotfix/implement/sonar/step.md +27 -0
  129. package/skills/sdlc/hotfix/implement/tdd/SKILL.md +10 -0
  130. package/skills/sdlc/hotfix/implement/tdd/step.md +33 -0
  131. package/skills/sdlc/hotfix/implement/verify/SKILL.md +10 -0
  132. package/skills/sdlc/hotfix/implement/verify/step.md +27 -0
  133. package/skills/sdlc/hotfix/prd/entry/SKILL.md +10 -0
  134. package/skills/sdlc/hotfix/prd/entry/step.md +20 -0
  135. package/skills/sdlc/hotfix/prd/gate/SKILL.md +10 -0
  136. package/skills/sdlc/hotfix/prd/gate/step.md +32 -0
  137. package/skills/sdlc/hotfix/prd/requirements/SKILL.md +10 -0
  138. package/skills/sdlc/hotfix/prd/requirements/step.md +19 -0
  139. package/skills/sdlc/hotfix/prd/validate/SKILL.md +10 -0
  140. package/skills/sdlc/hotfix/prd/validate/step.md +19 -0
  141. package/skills/sdlc/hotfix/prd/write/SKILL.md +10 -0
  142. package/skills/sdlc/hotfix/prd/write/step.md +38 -0
  143. package/skills/sdlc/hotfix/review/entry/SKILL.md +10 -0
  144. package/skills/sdlc/hotfix/review/entry/step.md +13 -0
  145. package/skills/sdlc/hotfix/review/gate/SKILL.md +10 -0
  146. package/skills/sdlc/hotfix/review/gate/step.md +51 -0
  147. package/skills/sdlc/hotfix/review/impact/SKILL.md +10 -0
  148. package/skills/sdlc/hotfix/review/impact/step.md +22 -0
  149. package/skills/sdlc/hotfix/review/minimality/SKILL.md +10 -0
  150. package/skills/sdlc/hotfix/review/minimality/step.md +18 -0
  151. package/skills/sdlc/hotfix/review/test-quality/SKILL.md +10 -0
  152. package/skills/sdlc/hotfix/review/test-quality/step.md +16 -0
  153. package/skills/sdlc/hotfix/ship/commit-pr/SKILL.md +10 -0
  154. package/skills/sdlc/hotfix/ship/commit-pr/step.md +58 -0
  155. package/skills/sdlc/hotfix/ship/entry/SKILL.md +10 -0
  156. package/skills/sdlc/hotfix/ship/entry/step.md +20 -0
  157. package/skills/sdlc/hotfix/ship/exit/SKILL.md +10 -0
  158. package/skills/sdlc/hotfix/ship/exit/step.md +31 -0
  159. package/skills/sdlc/hotfix/ship/gitignore/SKILL.md +10 -0
  160. package/skills/sdlc/hotfix/ship/gitignore/step.md +22 -0
  161. package/skills/sdlc/hotfix/ship/report/SKILL.md +10 -0
  162. package/skills/sdlc/hotfix/ship/report/step.md +47 -0
  163. package/skills/sdlc/hotfix/ship/test-gate/SKILL.md +10 -0
  164. package/skills/sdlc/hotfix/ship/test-gate/step.md +17 -0
  165. package/skills/sdlc/implement/build-run/SKILL.md +10 -0
  166. package/skills/sdlc/implement/build-run/step.md +85 -0
  167. package/skills/sdlc/implement/checkpoint/SKILL.md +10 -0
  168. package/skills/sdlc/implement/checkpoint/step.md +20 -0
  169. package/skills/sdlc/implement/debug/SKILL.md +10 -0
  170. package/skills/sdlc/implement/debug/step.md +25 -0
  171. package/skills/sdlc/implement/impact/SKILL.md +10 -0
  172. package/skills/sdlc/implement/impact/step.md +12 -0
  173. package/skills/sdlc/implement/plan/SKILL.md +10 -0
  174. package/skills/sdlc/implement/plan/step.md +13 -0
  175. package/skills/sdlc/implement/prereq/SKILL.md +10 -0
  176. package/skills/sdlc/implement/prereq/step.md +21 -0
  177. package/skills/sdlc/implement/subagents/SKILL.md +10 -0
  178. package/skills/sdlc/implement/subagents/step.md +38 -0
  179. package/skills/sdlc/implement/tdd/SKILL.md +10 -0
  180. package/skills/sdlc/implement/tdd/step.md +24 -0
  181. package/skills/sdlc/init/SKILL.md +7 -0
  182. package/skills/sdlc/onboard-code/SKILL.md +7 -0
  183. package/skills/sdlc/onboard-docs/SKILL.md +7 -0
  184. package/skills/sdlc/pack.yaml +83 -16
  185. package/skills/sdlc/prd/blast-radius/SKILL.md +10 -0
  186. package/skills/sdlc/prd/blast-radius/step.md +76 -0
  187. package/skills/sdlc/prd/create/SKILL.md +10 -0
  188. package/skills/sdlc/prd/create/step.md +21 -0
  189. package/skills/sdlc/prd/elicitation/SKILL.md +10 -0
  190. package/skills/sdlc/prd/elicitation/step.md +12 -0
  191. package/skills/sdlc/prd/prereq/SKILL.md +10 -0
  192. package/skills/sdlc/prd/prereq/step.md +16 -0
  193. package/skills/sdlc/prd/validate/SKILL.md +10 -0
  194. package/skills/sdlc/prd/validate/step.md +24 -0
  195. package/skills/sdlc/review/code/SKILL.md +10 -0
  196. package/skills/sdlc/review/code/step.md +45 -0
  197. package/skills/sdlc/review/debate/SKILL.md +10 -0
  198. package/skills/sdlc/review/debate/step.md +84 -0
  199. package/skills/sdlc/review/impact/SKILL.md +10 -0
  200. package/skills/sdlc/review/impact/step.md +14 -0
  201. package/skills/sdlc/review/prereq/SKILL.md +10 -0
  202. package/skills/sdlc/review/prereq/step.md +18 -0
  203. package/skills/sdlc/review/verification/SKILL.md +10 -0
  204. package/skills/sdlc/review/verification/step.md +16 -0
  205. package/skills/sdlc/ship/commit/SKILL.md +10 -0
  206. package/skills/sdlc/ship/commit/step.md +23 -0
  207. package/skills/sdlc/ship/gitignore/SKILL.md +10 -0
  208. package/skills/sdlc/ship/gitignore/step.md +22 -0
  209. package/skills/sdlc/ship/pr/SKILL.md +10 -0
  210. package/skills/sdlc/ship/pr/step.md +34 -0
  211. package/skills/sdlc/ship/prereq/SKILL.md +10 -0
  212. package/skills/sdlc/ship/prereq/step.md +16 -0
  213. package/skills/sdlc/ship/report/SKILL.md +10 -0
  214. package/skills/sdlc/ship/report/step.md +74 -0
  215. package/skills/sdlc/srs/interface/SKILL.md +10 -0
  216. package/skills/sdlc/srs/interface/step.md +44 -0
  217. package/skills/sdlc/srs/prereq/SKILL.md +10 -0
  218. package/skills/sdlc/srs/prereq/step.md +19 -0
  219. package/skills/sdlc/srs/validate/SKILL.md +10 -0
  220. package/skills/sdlc/srs/validate/step.md +23 -0
  221. package/skills/sdlc/srs/write/SKILL.md +10 -0
  222. package/skills/sdlc/srs/write/step.md +19 -0
  223. package/skills/sdlc/test-design/boundary/SKILL.md +10 -0
  224. package/skills/sdlc/test-design/boundary/step.md +12 -0
  225. package/skills/sdlc/test-design/cases/SKILL.md +10 -0
  226. package/skills/sdlc/test-design/cases/step.md +22 -0
  227. package/skills/sdlc/test-design/coverage/SKILL.md +10 -0
  228. package/skills/sdlc/test-design/coverage/step.md +63 -0
  229. package/skills/sdlc/test-design/prereq/SKILL.md +10 -0
  230. package/skills/sdlc/test-design/prereq/step.md +15 -0
  231. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix-tdd.yaml +2 -1
  232. package/{skills/sdlc/workflows → workflows/sdlc}/hotfix.yaml +8 -4
  233. package/workflows/sdlc/master-sdlc.yaml +64 -0
  234. package/workflows/sdlc/sdlc-architecture.yaml +43 -0
  235. package/workflows/sdlc/sdlc-build.yaml +51 -0
  236. package/workflows/sdlc/sdlc-design.yaml +61 -0
  237. package/workflows/sdlc/sdlc-discovery.yaml +43 -0
  238. package/workflows/sdlc/sdlc-feature-complete.yaml +36 -0
  239. package/workflows/sdlc/sdlc-hotfix-analyze.yaml +43 -0
  240. package/workflows/sdlc/sdlc-hotfix-implement.yaml +43 -0
  241. package/workflows/sdlc/sdlc-hotfix-prd.yaml +31 -0
  242. package/workflows/sdlc/sdlc-hotfix-review.yaml +31 -0
  243. package/workflows/sdlc/sdlc-hotfix-ship.yaml +37 -0
  244. package/workflows/sdlc/sdlc-implement.yaml +60 -0
  245. package/workflows/sdlc/sdlc-prd.yaml +36 -0
  246. package/workflows/sdlc/sdlc-qa.yaml +91 -0
  247. package/workflows/sdlc/sdlc-review.yaml +36 -0
  248. package/workflows/sdlc/sdlc-ship.yaml +36 -0
  249. package/workflows/sdlc/sdlc-srs.yaml +29 -0
  250. package/workflows/sdlc/sdlc-test-design.yaml +29 -0
  251. package/workflows/sdlc/sdlc-testcase.yaml +25 -0
  252. package/workflows/sdlc/sdlc-thinking.yaml +67 -0
  253. package/packages/web/dist/web/browser/chunk-IPMFXW6N.js +0 -1
  254. package/packages/web/dist/web/browser/chunk-IX2QWMX2.js +0 -1
  255. package/packages/web/dist/web/browser/chunk-QMAH5NZC.js +0 -1
  256. package/packages/web/dist/web/browser/chunk-RGFLNLPM.js +0 -1
  257. package/packages/web/dist/web/browser/chunk-RKWDHBN3.js +0 -5
  258. package/packages/web/dist/web/browser/chunk-XGYEZIV4.js +0 -1
  259. package/packages/web/dist/web/browser/main-IIUZVPMI.js +0 -1
  260. package/skills/sdlc/architecture/SKILL.md +0 -218
  261. package/skills/sdlc/discovery/SKILL.md +0 -197
  262. package/skills/sdlc/feature-complete/SKILL.md +0 -159
  263. package/skills/sdlc/hotfix-analyze/SKILL.md +0 -198
  264. package/skills/sdlc/hotfix-implement/SKILL.md +0 -272
  265. package/skills/sdlc/hotfix-prd/SKILL.md +0 -161
  266. package/skills/sdlc/hotfix-review/SKILL.md +0 -153
  267. package/skills/sdlc/hotfix-ship/SKILL.md +0 -221
  268. package/skills/sdlc/implement/SKILL.md +0 -264
  269. package/skills/sdlc/prd/SKILL.md +0 -182
  270. package/skills/sdlc/review/SKILL.md +0 -210
  271. package/skills/sdlc/ship/SKILL.md +0 -194
  272. package/skills/sdlc/srs/SKILL.md +0 -148
  273. package/skills/sdlc/test-design/SKILL.md +0 -132
  274. package/skills/sdlc/workflows/master-sdlc.yaml +0 -35
  275. package/skills/sdlc/workflows/sdlc-build.yaml +0 -18
  276. package/skills/sdlc/workflows/sdlc-design.yaml +0 -14
  277. package/skills/sdlc/workflows/sdlc-qa.yaml +0 -20
  278. package/skills/sdlc/workflows/sdlc-testcase.yaml +0 -8
  279. package/skills/sdlc/workflows/sdlc-thinking.yaml +0 -12
  280. /package/{skills/sdlc/workflows → workflows/sdlc}/onboarding.yaml +0 -0
@@ -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,35 +0,0 @@
1
- name: master-sdlc
2
- description: "Full SDLC pipeline — Thinking → Design → Testcase → Build → QA"
3
- nodes:
4
- - id: thinking
5
- description: "Thinking: Discovery → PRD"
6
- bash: |
7
- vsaf run sdlc/sdlc-thinking $ARGUMENTS
8
- workspace: false
9
-
10
- - id: design
11
- description: "Design: Architecture → SRS"
12
- bash: |
13
- vsaf run sdlc/sdlc-design $ARGUMENTS
14
- depends_on: [thinking]
15
- workspace: false
16
-
17
- - id: testcase
18
- description: "Testcase: generate test cases from SRS"
19
- bash: |
20
- vsaf run sdlc/sdlc-testcase $ARGUMENTS
21
- depends_on: [design]
22
- workspace: false
23
-
24
- - id: build
25
- description: "Build: Implement → Test Gate"
26
- bash: |
27
- vsaf run sdlc/sdlc-build $ARGUMENTS
28
- depends_on: [testcase]
29
-
30
- - id: qa
31
- description: "QA: Review → Feature Complete → Ship"
32
- bash: |
33
- vsaf run sdlc/sdlc-qa $ARGUMENTS
34
- depends_on: [build]
35
- 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