@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
@@ -0,0 +1,34 @@
1
+ ### Step 4: Push + PR
2
+
3
+ ```
4
+ [SHIP] [4/5] Push branch + create PR... ⏳
5
+ ```
6
+
7
+ Generate PR description from review artifacts:
8
+ - Read the review file from `{artifact-dir}` — summary, impact, test results
9
+ - Create a structured PR description
10
+ - Open PR (or suggest command if multi-repo)
11
+
12
+ **Branch naming:** `feat/{feature-name}`
13
+
14
+ **Single repo:**
15
+ ```bash
16
+ git push -u origin {branch}
17
+ gh pr create --title "{title}" --body "{description}"
18
+ ```
19
+
20
+ **Multi-repo:**
21
+ ```
22
+ For each repo with code changes:
23
+ cd {repo} && git push -u origin {branch}
24
+ gh pr create --title "{title}" --body "{description}"
25
+ ```
26
+
27
+ **Add note to PR description:**
28
+ ```
29
+ > **Note for reviewer:** After pulling the code, run `npx gitnexus analyze` and `/graphify` to re-index locally.
30
+ ```
31
+
32
+ ```
33
+ [SHIP] [4/5] Push branch + create PR... ✅
34
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-ship-prereq
3
+ description: "Ship 1/5 — prerequisites"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Ship 1/5 — prerequisites
9
+
10
+ @include(step.md)
@@ -0,0 +1,16 @@
1
+ ## Phase Entry Protocol
2
+
3
+ ```
4
+ [SHIP] [1/5] Checking prerequisites... ⏳
5
+ ```
6
+
7
+ 1. Input: `.vsaf/docs/features/{feature-name}/08-review.md`
8
+ 2. Check that the file exists + **check for Gate: APPROVED**
9
+ - No Gate → Stop: "Review has not been approved"
10
+ 3. Check `.vsaf/docs/STATUS.md` — feature must be in "Knowledge Updated" status
11
+ - If not → Stop: "Feature has not passed feature-complete. Run `/sdlc-feature-complete` first."
12
+ 4. Read `CONTEXT.md`
13
+
14
+ ```
15
+ [SHIP] [1/5] Checking prerequisites... ✅
16
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-ship-report
3
+ description: "Ship 5/5 — ship report"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Ship 5/5 — ship report
9
+
10
+ @include(step.md)
@@ -0,0 +1,74 @@
1
+ ### Step 5: Ship Report
2
+
3
+ ```
4
+ [SHIP] [5/5] Writing ship report... ⏳
5
+ ```
6
+
7
+ Write file: `.vsaf/docs/features/{feature-name}/09-ship.md`
8
+
9
+ ```
10
+ [SHIP] [5/5] Writing ship report... ✅
11
+ ```
12
+
13
+ ## Output
14
+
15
+ ```markdown
16
+ # Ship Report: {feature-name}
17
+
18
+ ## PR
19
+ - {repo}: PR #{number} — {url}
20
+
21
+ ## Merge Strategy
22
+ {merge commit / squash / rebase}
23
+
24
+ ## Commit Scope
25
+ - Source code: {N} files
26
+ - .vsaf/docs/: {M} files (artifacts + knowledge)
27
+ - Excluded: graphify-out/, .gitnexus/ (local index)
28
+
29
+ ## Final Status
30
+ - Build: PASS
31
+ - Tests: all GREEN
32
+ - Review: APPROVED
33
+ - Knowledge: UPDATED (feature-complete done)
34
+
35
+ ## Traceability
36
+ US-001 → FR-001 → TC-001 → impl ✓
37
+ US-002 → FR-002 → TC-003 → impl ✓
38
+
39
+ ## Post-pull Setup
40
+ After pulling the code, run:
41
+ - `npx gitnexus analyze` — re-index code
42
+ - `/graphify` — rebuild knowledge graph
43
+ ```
44
+
45
+ ## Phase Exit Protocol
46
+
47
+ Print PHASE REPORT:
48
+ ```
49
+ ═══════════════════════════════════════════
50
+ SHIP COMPLETE: {feature-name}
51
+ ═══════════════════════════════════════════
52
+ Phase: 9 (Ship — final phase)
53
+
54
+ PR: #{number} — {url}
55
+ Commit: source code + .vsaf/docs/ only
56
+ Excluded: graphify-out/, .gitnexus/
57
+
58
+ Phases completed: 1→2→3→4→5→6→7→8→9
59
+ Artifacts: .vsaf/docs/features/{feature-name}/ (9 files)
60
+
61
+ Feature DONE.
62
+ ═══════════════════════════════════════════
63
+ ```
64
+
65
+ Update `.vsaf/docs/STATUS.md` → move to "Completed Features".
66
+
67
+ ## Rules
68
+
69
+ - DO NOT review code — that is the review phase's job
70
+ - Only ship code that is APPROVED + knowledge UPDATED (feature-complete done)
71
+ - PR description MUST be self-contained (reading the PR alone should be enough to understand the feature without reading artifacts)
72
+ - **ABSOLUTELY DO NOT commit `graphify-out/` or `.gitnexus/`** — verify .gitignore first
73
+ - **ONLY commit source code + `.vsaf/docs/`**
74
+ - Add re-index note to PR description for team members
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-srs-interface
3
+ description: "SRS 4/4 — interface verification + output"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # SRS 4/4 — interface verification + output
9
+
10
+ @include(step.md)
@@ -0,0 +1,44 @@
1
+ ### Step 4: Interface Verification
2
+
3
+ ```
4
+ [SRS] [4/4] Interface verification via GitNexus... ⏳
5
+ ```
6
+
7
+ Use GitNexus `shape_check` — verify code structure matches SRS assumptions.
8
+ Append results to `05-srs.md` §Interface Contracts.
9
+
10
+ ```
11
+ [SRS] [4/4] Interface verification via GitNexus... ✅
12
+ ```
13
+
14
+ ## Gate
15
+
16
+ Human must approve SRS. Write `## Gate: APPROVED` at the end of the file.
17
+
18
+ **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).
19
+
20
+ ## Output
21
+
22
+ - `.vsaf/docs/features/{feature-name}/05-srs.md` — SRS document (v4 template format)
23
+ - `.vsaf/docs/features/{feature-name}/05-srs-validation-report.md` — Validation report with scores
24
+
25
+ ## Phase Exit Protocol
26
+
27
+ In PHASE REPORT:
28
+ - Output files: `05-srs.md`, `05-srs-validation-report.md`
29
+ - Validation score: {overall_score}% ({GO/CONDITIONAL GO/NO-GO})
30
+ - Suggestions: [1] Phase 5 Test Design (`/sdlc-test-design`) [2] Save artifacts
31
+
32
+ Update `.vsaf/docs/STATUS.md`.
33
+
34
+ **Notify the user:**
35
+ > Artifacts have been saved. If the session is interrupted, open a new session and run the next phase — data is safe.
36
+
37
+ ## Rules
38
+
39
+ - Every FR/NFR MUST have a unique traceability ID
40
+ - DO NOT use vague language: "should", "might", "optionally" → replace with "MUST", "MUST NOT"
41
+ - All terms MUST exist in CONTEXT.md
42
+ - Every FR MUST be testable (have clear pass/fail criteria)
43
+ - SRS MUST follow the v4 template structure (12 sections)
44
+ - ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-srs-prereq
3
+ description: "SRS 1/4 — input artifacts"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # SRS 1/4 — input artifacts
9
+
10
+ @include(step.md)
@@ -0,0 +1,19 @@
1
+ ## Phase Entry Protocol
2
+
3
+ ```
4
+ [SRS] [1/4] Checking input artifacts... ⏳
5
+ ```
6
+
7
+ 1. Input:
8
+ - `.vsaf/docs/features/{feature-name}/02-prd.md`
9
+ - `.vsaf/docs/features/{feature-name}/03-adr.md`
10
+ - `.vsaf/docs/features/{feature-name}/04-epics.md`
11
+ 2. Verify 02-prd.md AND 03-adr.md exist (04-epics.md optional):
12
+ - Any required file missing → Ask: "File not found. Have you run Phase 2 (PRD) and Phase 3 (Architecture)?"
13
+ 3. Read `.vsaf/docs/STATUS.md`
14
+ 4. Read `CONTEXT.md`
15
+ 5. Query `graph.json` for code structure + business mapping (if exists)
16
+
17
+ ```
18
+ [SRS] [1/4] Checking input artifacts... ✅
19
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-srs-validate
3
+ description: "SRS 3/4 — validate SRS"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # SRS 3/4 — validate SRS
9
+
10
+ @include(step.md)
@@ -0,0 +1,23 @@
1
+ ### Step 3: Validate SRS
2
+
3
+ ```
4
+ [SRS] [3/4] Validating SRS (8 dimensions)... ⏳
5
+ ```
6
+
7
+ Use `/sdlc-validate-srs` — validate SRS across 8 dimensions with weighted scoring.
8
+
9
+ - Scope: single file (`05-srs.md`)
10
+ - Cross-validate against: `02-prd.md`, `03-adr.md`
11
+ - Output: `.vsaf/docs/features/{feature-name}/05-srs-validation-report.md`
12
+
13
+ **Decision handling:**
14
+
15
+ | Validation Result | Action |
16
+ |---|---|
17
+ | **GO** (≥80%, no CRITICAL) | Print score summary, proceed to Step 4 |
18
+ | **CONDITIONAL GO** (60-79% or HIGH findings) | Print warnings + finding summary. Ask user: "Proceed despite warnings? (Y/N)" |
19
+ | **NO-GO** (<60% or CRITICAL findings) | **STOP.** Print CRITICAL findings. Ask user to fix 05-srs.md and re-run `/sdlc-srs` |
20
+
21
+ ```
22
+ [SRS] [3/4] Validating SRS (8 dimensions)... ✅
23
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-srs-write
3
+ description: "SRS 2/4 — write SRS"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # SRS 2/4 — write SRS
9
+
10
+ @include(step.md)
@@ -0,0 +1,19 @@
1
+ ### Step 2: Write SRS
2
+
3
+ ```
4
+ [SRS] [2/4] Writing SRS from PRD + ADR + Epics... ⏳
5
+ ```
6
+
7
+ Use `/sdlc-write-srs` — write SRS following the v4 template (12 sections) from PRD + Architecture + Epics.
8
+
9
+ Input:
10
+ - `02-prd.md` as PRD source
11
+ - `03-adr.md` as architecture context
12
+ - `04-epics.md` as epic breakdown (optional)
13
+ - Figma link from `CONTEXT.md` (optional)
14
+
15
+ Output: `.vsaf/docs/features/{feature-name}/05-srs.md`
16
+
17
+ ```
18
+ [SRS] [2/4] Writing SRS from PRD + ADR + Epics... ✅
19
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-test-design-boundary
3
+ description: "Test Design 3/4 — boundary tests"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Test Design 3/4 — boundary tests
9
+
10
+ @include(step.md)
@@ -0,0 +1,12 @@
1
+ ### Step 2: Boundary Tests
2
+
3
+ ```
4
+ [TEST-DESIGN] [3/4] Boundary & edge case tests... ⏳
5
+ ```
6
+
7
+ Use `/bmad-review-edge-case-hunter` — add boundary tests.
8
+ Race conditions, null/empty, overflow, concurrent access.
9
+
10
+ ```
11
+ [TEST-DESIGN] [3/4] Boundary & edge case tests... ✅
12
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-test-design-cases
3
+ description: "Test Design 2/4 — generate test cases"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Test Design 2/4 — generate test cases
9
+
10
+ @include(step.md)
@@ -0,0 +1,22 @@
1
+ ### Step 1: Generate Test Cases
2
+
3
+ ```
4
+ [TEST-DESIGN] [2/4] Generating test cases from SRS... ⏳
5
+ ```
6
+
7
+ Use `/bmad-qa-generate-e2e-tests` — generate test cases from SRS FRs/NFRs.
8
+
9
+ For each requirement, ensure ≥1 test case with:
10
+
11
+ 1. **Unique ID** — TC-001 (sequential)
12
+ 2. **Traceability** — TC → FR/NFR → PRD user story (US-xxx)
13
+ 3. **Type** — unit / integration / e2e (based on requirement scope)
14
+ 4. **Precondition** — system state before test
15
+ 5. **Steps** — exact actions to execute
16
+ 6. **Expected result** — concrete, verifiable outcome (not "should work")
17
+
18
+ Prioritize: happy path first, then error paths, then edge cases.
19
+
20
+ ```
21
+ [TEST-DESIGN] [2/4] Generating test cases from SRS... ✅
22
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-test-design-coverage
3
+ description: "Test Design 4/4 — coverage map + output"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Test Design 4/4 — coverage map + output
9
+
10
+ @include(step.md)
@@ -0,0 +1,63 @@
1
+ ### Step 3: Coverage Map
2
+
3
+ ```
4
+ [TEST-DESIGN] [4/4] Coverage mapping via GitNexus... ⏳
5
+ ```
6
+
7
+ Use GitNexus `detect_changes` — predict files that will be modified.
8
+ Map test cases → files requiring coverage.
9
+
10
+ ```
11
+ [TEST-DESIGN] [4/4] Coverage mapping via GitNexus... ✅
12
+ ```
13
+
14
+ ## Output
15
+
16
+ Write file: `.vsaf/docs/features/{feature-name}/06-testcases.md`
17
+
18
+ ```markdown
19
+ # Test Cases: {feature-name}
20
+
21
+ ## TC-001 → FR-001 → US-003
22
+ - Type: unit
23
+ - File target: src/user/user.service.ts
24
+ - Precondition: ...
25
+ - Steps: ...
26
+ - Expected: ...
27
+
28
+ ## TC-002 → FR-001 (edge case: empty input)
29
+ - Type: unit
30
+ - Precondition: ...
31
+ - Steps: ...
32
+ - Expected: ...
33
+
34
+ ## Coverage Map
35
+ - src/user/user.service.ts → TC-001, TC-002
36
+ - src/user/user.controller.ts → TC-005, TC-006
37
+
38
+ ## Traceability Matrix
39
+ | FR/NFR | Test Cases | Coverage |
40
+ |--------|-----------|----------|
41
+ | FR-001 | TC-001, TC-002 | ✓ |
42
+ | FR-002 | TC-003 | ✓ |
43
+ | NFR-001 | TC-010 | ✓ |
44
+ ```
45
+
46
+ ## Phase Exit Protocol
47
+
48
+ In PHASE REPORT:
49
+ - Output files: `.vsaf/docs/features/{feature-name}/06-testcases.md`
50
+ - Suggestions: [1] Phase 6 Implementation (`/sdlc-implement`) [2] Save artifacts
51
+
52
+ Update `.vsaf/docs/STATUS.md`.
53
+
54
+ **Notify the user:**
55
+ > Artifacts have been saved. If the session is interrupted, open a new session and run the next phase — data is safe.
56
+
57
+ ## Rules
58
+
59
+ - Test cases derive from SRS (spec), NEVER from code
60
+ - Every FR/NFR MUST have ≥1 test case
61
+ - Traceability chain is mandatory: TC → FR → US
62
+ - DO NOT read source code when writing test cases
63
+ - ⛔ DO NOT modify `graphify-out/` or `.gitnexus/`
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: sdlc-test-design-prereq
3
+ description: "Test Design 1/4 — input artifacts"
4
+ version: 1.0.0
5
+ author: "@ngocsangairvds/vsaf"
6
+ ---
7
+
8
+ # Test Design 1/4 — input artifacts
9
+
10
+ @include(step.md)
@@ -0,0 +1,15 @@
1
+ ## Phase Entry Protocol
2
+
3
+ ```
4
+ [TEST-DESIGN] [1/4] Checking input artifacts... ⏳
5
+ ```
6
+
7
+ 1. Input: `.vsaf/docs/features/{feature-name}/05-srs.md`
8
+ 2. Verify file exists + **check Gate: APPROVED**
9
+ - No Gate → Stop: "SRS has not been approved"
10
+ 3. Read `.vsaf/docs/STATUS.md`
11
+ 4. Read `CONTEXT.md`
12
+
13
+ ```
14
+ [TEST-DESIGN] [1/4] Checking input artifacts... ✅
15
+ ```
@@ -4,7 +4,8 @@ description: "Sub-flow: Hotfix Implement (TDD) → Test Gate"
4
4
  nodes:
5
5
  - id: implement
6
6
  description: "Implement — TDD (RED → GREEN → REFACTOR), SonarQube-in-loop"
7
- command: sdlc-hotfix-implement
7
+ bash: |
8
+ vsaf run sdlc/sdlc-hotfix-implement $ARGUMENTS
8
9
  depends_on: []
9
10
 
10
11
  - id: test-gate
@@ -4,18 +4,21 @@ description: "Hotfix — Analyze → PRD → Implement (TDD) → Ship"
4
4
  nodes:
5
5
  - id: analyze
6
6
  description: "Analyze — grill user, GitNexus impact, root cause, blast radius"
7
- command: sdlc-hotfix-analyze
7
+ bash: |
8
+ vsaf run sdlc/sdlc-hotfix-analyze $ARGUMENTS
8
9
  workspace: false
9
10
 
10
11
  - id: prd
11
12
  description: "PRD — fix requirements, acceptance criteria, scope boundary"
12
- command: sdlc-hotfix-prd
13
+ bash: |
14
+ vsaf run sdlc/sdlc-hotfix-prd $ARGUMENTS
13
15
  depends_on: [analyze]
14
16
  workspace: false
15
17
 
16
18
  - id: implement
17
19
  description: "Implement — TDD (RED → GREEN → REFACTOR), SonarQube-in-loop"
18
- command: sdlc-hotfix-implement
20
+ bash: |
21
+ vsaf run sdlc/sdlc-hotfix-implement $ARGUMENTS
19
22
  depends_on: [prd]
20
23
 
21
24
  - id: test-gate
@@ -30,6 +33,7 @@ nodes:
30
33
 
31
34
  - id: ship
32
35
  description: "Ship — commit, PR on hotfix branch"
33
- command: sdlc-hotfix-ship
36
+ bash: |
37
+ vsaf run sdlc/sdlc-hotfix-ship $ARGUMENTS
34
38
  depends_on: [test-gate]
35
39
  workspace: false
@@ -0,0 +1,64 @@
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 — Discovery
6
+ bash: |
7
+ vsaf run sdlc/sdlc-discovery $ARGUMENTS
8
+ workspace: false
9
+ - id: prd
10
+ description: Phase — PRD
11
+ bash: |
12
+ vsaf run sdlc/sdlc-prd $ARGUMENTS
13
+ workspace: false
14
+ depends_on:
15
+ - discovery
16
+ - id: architecture
17
+ description: Phase — Architecture
18
+ bash: |
19
+ vsaf run sdlc/sdlc-architecture $ARGUMENTS
20
+ workspace: false
21
+ depends_on:
22
+ - prd
23
+ - id: srs
24
+ description: Phase — SRS
25
+ bash: |
26
+ vsaf run sdlc/sdlc-srs $ARGUMENTS
27
+ workspace: false
28
+ depends_on:
29
+ - architecture
30
+ - id: test-design
31
+ description: Phase — Test Design
32
+ bash: |
33
+ vsaf run sdlc/sdlc-test-design $ARGUMENTS
34
+ workspace: false
35
+ depends_on:
36
+ - srs
37
+ - id: implement
38
+ description: Phase — Implement
39
+ bash: |
40
+ vsaf run sdlc/sdlc-implement $ARGUMENTS
41
+ workspace: false
42
+ depends_on:
43
+ - test-design
44
+ - id: review
45
+ description: Phase — Review
46
+ bash: |
47
+ vsaf run sdlc/sdlc-review $ARGUMENTS
48
+ workspace: false
49
+ depends_on:
50
+ - implement
51
+ - id: complete
52
+ description: Phase — Feature Complete
53
+ bash: |
54
+ vsaf run sdlc/sdlc-feature-complete $ARGUMENTS
55
+ workspace: false
56
+ depends_on:
57
+ - review
58
+ - id: ship
59
+ description: Phase — Ship
60
+ bash: |
61
+ vsaf run sdlc/sdlc-ship $ARGUMENTS
62
+ workspace: false
63
+ depends_on:
64
+ - complete
@@ -0,0 +1,43 @@
1
+ name: sdlc-architecture
2
+ description: 'Phase workflow: Architecture step-level execution'
3
+ nodes:
4
+ - id: architecture-prereq
5
+ description: Architecture 1/6 — prerequisites
6
+ model: gpt-5.5
7
+ workspace: false
8
+ command: sdlc-architecture-prereq
9
+ - id: architecture-current-state
10
+ description: Architecture 2/6 — current state
11
+ model: gpt-5.5
12
+ depends_on:
13
+ - architecture-prereq
14
+ workspace: false
15
+ command: sdlc-architecture-current-state
16
+ - id: architecture-grill
17
+ description: Architecture 3/6 — grill session
18
+ model: gpt-5.5
19
+ depends_on:
20
+ - architecture-current-state
21
+ workspace: false
22
+ command: sdlc-architecture-grill
23
+ - id: architecture-decision
24
+ description: Architecture 4/6 — architecture decision
25
+ model: gpt-5.5
26
+ depends_on:
27
+ - architecture-grill
28
+ workspace: false
29
+ command: sdlc-architecture-decision
30
+ - id: architecture-epics
31
+ description: Architecture 5/6 — epic breakdown
32
+ model: gpt-5.5
33
+ depends_on:
34
+ - architecture-decision
35
+ workspace: false
36
+ command: sdlc-architecture-epics
37
+ - id: architecture-readiness
38
+ description: Architecture 6/6 — readiness + output
39
+ model: gemini-3.5-flash
40
+ depends_on:
41
+ - architecture-epics
42
+ workspace: false
43
+ command: sdlc-architecture-readiness
@@ -0,0 +1,51 @@
1
+ name: sdlc-build
2
+ description: 'Sub-flow: step-level Implement → Test Gate'
3
+ nodes:
4
+ - id: implement-prereq
5
+ description: Implement 1/8 — input artifacts
6
+ command: sdlc-implement-prereq
7
+ - id: implement-subagents
8
+ description: Implement 2/8 — subagent setup
9
+ depends_on:
10
+ - implement-prereq
11
+ command: sdlc-implement-subagents
12
+ - id: implement-plan
13
+ description: Implement 3/8 — task planning
14
+ depends_on:
15
+ - implement-subagents
16
+ command: sdlc-implement-plan
17
+ - id: implement-checkpoint
18
+ description: Implement 3.5/8 — checkpoint review
19
+ depends_on:
20
+ - implement-plan
21
+ command: sdlc-implement-checkpoint
22
+ - id: implement-tdd
23
+ description: Implement 4/8 — TDD cycle
24
+ depends_on:
25
+ - implement-checkpoint
26
+ command: sdlc-implement-tdd
27
+ - id: implement-debug
28
+ description: Implement 5/8 — debug if needed
29
+ depends_on:
30
+ - implement-tdd
31
+ command: sdlc-implement-debug
32
+ - id: implement-impact
33
+ description: Implement 6/8 — impact verification
34
+ depends_on:
35
+ - implement-debug
36
+ command: sdlc-implement-impact
37
+ - id: implement-build-run
38
+ description: Implement 7/8 — build + run verification
39
+ depends_on:
40
+ - implement-impact
41
+ command: sdlc-implement-build-run
42
+ - id: test-gate
43
+ description: Test Gate — automated tests
44
+ bash: |
45
+ npm test 2>&1
46
+ depends_on:
47
+ - implement-build-run
48
+ loop:
49
+ on_fail: implement-debug
50
+ max_retries: 3
51
+ inject_error: true