@su-record/vibe 2.16.4 → 3.1.0

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 (607) hide show
  1. package/CLAUDE.md +8 -8
  2. package/README.en.md +46 -29
  3. package/README.md +41 -24
  4. package/agents/acceptance-tester.md +56 -0
  5. package/agents/architect.md +25 -67
  6. package/agents/build-error-resolver.md +28 -97
  7. package/agents/code-reviewer.md +89 -0
  8. package/agents/diagrammer.md +34 -169
  9. package/agents/documenter.md +43 -0
  10. package/agents/e2e-tester.md +46 -281
  11. package/agents/event/event-ops.md +54 -77
  12. package/agents/event/event-planner.md +63 -0
  13. package/agents/figma/figma-engineer.md +76 -0
  14. package/agents/implementer.md +26 -41
  15. package/agents/security-reviewer.md +56 -0
  16. package/agents/tester.md +37 -33
  17. package/agents/ui/design-reviewer.md +62 -0
  18. package/agents/ui/design-system-gen.md +63 -0
  19. package/dist/cli/commands/remove.d.ts.map +1 -1
  20. package/dist/cli/commands/remove.js +8 -10
  21. package/dist/cli/commands/remove.js.map +1 -1
  22. package/dist/cli/index.d.ts +0 -4
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +0 -4
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/llm/model-refresh.js +1 -1
  27. package/dist/cli/llm/model-refresh.js.map +1 -1
  28. package/dist/cli/postinstall/claude-agents.d.ts.map +1 -1
  29. package/dist/cli/postinstall/claude-agents.js +16 -77
  30. package/dist/cli/postinstall/claude-agents.js.map +1 -1
  31. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  32. package/dist/cli/postinstall/constants.js +80 -296
  33. package/dist/cli/postinstall/constants.js.map +1 -1
  34. package/dist/cli/postinstall/cursor-agents.d.ts +5 -0
  35. package/dist/cli/postinstall/cursor-agents.d.ts.map +1 -1
  36. package/dist/cli/postinstall/cursor-agents.js +26 -68
  37. package/dist/cli/postinstall/cursor-agents.js.map +1 -1
  38. package/dist/cli/postinstall/cursor-skills.d.ts.map +1 -1
  39. package/dist/cli/postinstall/cursor-skills.js +26 -30
  40. package/dist/cli/postinstall/cursor-skills.js.map +1 -1
  41. package/dist/cli/postinstall/main.d.ts.map +1 -1
  42. package/dist/cli/postinstall/main.js +0 -2
  43. package/dist/cli/postinstall/main.js.map +1 -1
  44. package/dist/cli/setup/Provisioner.d.ts.map +1 -1
  45. package/dist/cli/setup/Provisioner.js +19 -21
  46. package/dist/cli/setup/Provisioner.js.map +1 -1
  47. package/dist/cli/utils.d.ts +4 -1
  48. package/dist/cli/utils.d.ts.map +1 -1
  49. package/dist/cli/utils.js +4 -1
  50. package/dist/cli/utils.js.map +1 -1
  51. package/dist/infra/lib/FrameworkDetector.js +4 -4
  52. package/dist/infra/lib/FrameworkDetector.js.map +1 -1
  53. package/dist/infra/lib/OrchestrateWorkflow.js +2 -2
  54. package/dist/infra/lib/OrchestrateWorkflow.js.map +1 -1
  55. package/dist/infra/lib/browser/launch.js +1 -1
  56. package/dist/infra/lib/browser/launch.js.map +1 -1
  57. package/dist/infra/lib/browser/types.d.ts +1 -1
  58. package/dist/infra/lib/browser/types.js +1 -1
  59. package/dist/infra/lib/constants.d.ts +1 -1
  60. package/dist/infra/lib/constants.d.ts.map +1 -1
  61. package/dist/infra/lib/constants.js +4 -5
  62. package/dist/infra/lib/constants.js.map +1 -1
  63. package/dist/infra/lib/evolution/__tests__/integration.test.js +7 -7
  64. package/dist/infra/lib/evolution/__tests__/integration.test.js.map +1 -1
  65. package/dist/infra/lib/memory/index.d.ts +0 -2
  66. package/dist/infra/lib/memory/index.d.ts.map +1 -1
  67. package/dist/infra/lib/memory/index.js +0 -2
  68. package/dist/infra/lib/memory/index.js.map +1 -1
  69. package/dist/infra/lib/telemetry/SkillTelemetry.test.js +1 -1
  70. package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -1
  71. package/dist/tools/index.d.ts +0 -4
  72. package/dist/tools/index.d.ts.map +1 -1
  73. package/dist/tools/index.js +0 -4
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/memory/autoSaveContext.d.ts +0 -1
  76. package/dist/tools/memory/autoSaveContext.d.ts.map +1 -1
  77. package/dist/tools/memory/autoSaveContext.js +13 -27
  78. package/dist/tools/memory/autoSaveContext.js.map +1 -1
  79. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -78
  80. package/hooks/scripts/__tests__/.vibe/memories/memories.db +0 -0
  81. package/hooks/scripts/__tests__/.vibe/memories/memories.db-shm +0 -0
  82. package/hooks/scripts/__tests__/.vibe/memories/memories.db-wal +0 -0
  83. package/hooks/scripts/__tests__/clone-behaviors.test.js +64 -0
  84. package/hooks/scripts/__tests__/clone-merge-responsive.test.js +106 -0
  85. package/hooks/scripts/__tests__/code-check-detectors.test.js +2 -2
  86. package/hooks/scripts/__tests__/run-ledger.test.js +1 -1
  87. package/hooks/scripts/__tests__/scope-from-spec.test.js +12 -12
  88. package/hooks/scripts/__tests__/step-counter.test.js +1 -1
  89. package/hooks/scripts/clone-extract.js +242 -28
  90. package/hooks/scripts/clone-merge-responsive.js +184 -0
  91. package/hooks/scripts/clone-spec.js +33 -8
  92. package/hooks/scripts/clone-validate.js +15 -9
  93. package/hooks/scripts/code-check.js +16 -203
  94. package/hooks/scripts/context-save.js +0 -11
  95. package/hooks/scripts/lib/scope-from-spec.js +9 -6
  96. package/hooks/scripts/post-edit-dispatcher.js +1 -1
  97. package/hooks/scripts/prompt-dispatcher.js +7 -18
  98. package/hooks/scripts/session-start.js +25 -35
  99. package/package.json +6 -5
  100. package/skills/agents-md/SKILL.md +62 -15
  101. package/skills/arch-guard/SKILL.md +1 -1
  102. package/skills/brand-assets/SKILL.md +2 -2
  103. package/skills/capability-loop/SKILL.md +1 -1
  104. package/skills/chub-usage/SKILL.md +1 -1
  105. package/skills/clone/SKILL.md +132 -55
  106. package/skills/commerce-patterns/SKILL.md +2 -2
  107. package/skills/commit-push-pr/SKILL.md +0 -1
  108. package/skills/context7-usage/SKILL.md +1 -1
  109. package/skills/design-refine/SKILL.md +140 -0
  110. package/skills/{design-polish → design-refine}/templates/polish-report.md +1 -1
  111. package/skills/{design-normalize → design-refine}/templates/token-audit.md +3 -3
  112. package/skills/design-review/SKILL.md +143 -0
  113. package/skills/{design-audit → design-review}/agents/a11y-auditor.md +1 -1
  114. package/skills/{design-audit → design-review}/agents/performance-auditor.md +1 -1
  115. package/skills/{design-audit → design-review}/agents/responsive-auditor.md +1 -1
  116. package/skills/{design-audit → design-review}/agents/slop-detector.md +1 -1
  117. package/skills/{design-audit → design-review}/frameworks/core-web-vitals.md +1 -1
  118. package/skills/{design-audit → design-review}/frameworks/wcag-checklist.md +1 -1
  119. package/skills/{design-audit → design-review}/orchestrator.md +3 -3
  120. package/skills/{design-critique → design-review}/templates/critique-report.md +3 -3
  121. package/skills/{design-audit → design-review}/templates/report.md +3 -3
  122. package/skills/design-teach/SKILL.md +11 -11
  123. package/skills/docs/SKILL.md +14 -16
  124. package/skills/e2e-commerce/SKILL.md +1 -1
  125. package/skills/event-comms/SKILL.md +1 -1
  126. package/skills/event-ops/SKILL.md +2 -2
  127. package/skills/event-planning/SKILL.md +1 -1
  128. package/skills/exec-plan/SKILL.md +2 -2
  129. package/skills/figma/SKILL.md +240 -148
  130. package/skills/figma/rubrics/css-mapping.md +125 -0
  131. package/skills/git-worktree/SKILL.md +1 -1
  132. package/skills/handoff/SKILL.md +1 -1
  133. package/skills/parallel-research/SKILL.md +14 -28
  134. package/skills/priority-todos/SKILL.md +1 -1
  135. package/skills/regress/SKILL.md +11 -0
  136. package/skills/restraint/SKILL.md +72 -0
  137. package/skills/seo-checklist/SKILL.md +2 -2
  138. package/skills/spec/SKILL.md +65 -836
  139. package/skills/test/SKILL.md +3 -3
  140. package/skills/tool-fallback/SKILL.md +2 -2
  141. package/skills/vercel-react-best-practices/SKILL.md +1 -1
  142. package/skills/vibe/SKILL.md +20 -35
  143. package/skills/vibe.analyze/SKILL.md +7 -9
  144. package/skills/vibe.clone/SKILL.md +39 -19
  145. package/skills/vibe.docs/SKILL.md +1 -1
  146. package/skills/vibe.event/SKILL.md +27 -27
  147. package/skills/vibe.figma/SKILL.md +14 -18
  148. package/skills/vibe.harness/SKILL.md +5 -5
  149. package/skills/vibe.reason/SKILL.md +0 -2
  150. package/skills/vibe.review/SKILL.md +45 -49
  151. package/skills/vibe.run/SKILL.md +2 -5
  152. package/skills/vibe.run/references/parallel-agents.md +33 -98
  153. package/skills/vibe.spec/SKILL.md +38 -535
  154. package/skills/vibe.utils/SKILL.md +3 -3
  155. package/skills/vibe.verify/SKILL.md +70 -542
  156. package/skills/video-production/SKILL.md +1 -1
  157. package/vibe/rules/orchestrator-contract.md +5 -4
  158. package/vibe/rules/quality/performance.md +1 -1
  159. package/vibe/templates/claudemd-template.md +1 -1
  160. package/vibe/templates/spec-template.md +35 -185
  161. package/agents/architect-low.md +0 -41
  162. package/agents/architect-medium.md +0 -59
  163. package/agents/compounder.md +0 -265
  164. package/agents/docs/api-documenter.md +0 -99
  165. package/agents/docs/changelog-writer.md +0 -93
  166. package/agents/event/event-comms.md +0 -78
  167. package/agents/event/event-content.md +0 -68
  168. package/agents/event/event-image.md +0 -95
  169. package/agents/event/event-scheduler.md +0 -69
  170. package/agents/event/event-speaker.md +0 -86
  171. package/agents/explorer-low.md +0 -42
  172. package/agents/explorer-medium.md +0 -59
  173. package/agents/explorer.md +0 -48
  174. package/agents/figma/figma-analyst.md +0 -56
  175. package/agents/figma/figma-architect.md +0 -116
  176. package/agents/figma/figma-auditor.md +0 -86
  177. package/agents/figma/figma-builder.md +0 -104
  178. package/agents/implementer-low.md +0 -43
  179. package/agents/implementer-medium.md +0 -52
  180. package/agents/junior-mentor.md +0 -141
  181. package/agents/planning/requirements-analyst.md +0 -84
  182. package/agents/planning/ux-advisor.md +0 -83
  183. package/agents/qa/acceptance-tester.md +0 -86
  184. package/agents/qa/edge-case-finder.md +0 -93
  185. package/agents/qa/qa-coordinator.md +0 -131
  186. package/agents/refactor-cleaner.md +0 -143
  187. package/agents/research/best-practices.md +0 -199
  188. package/agents/research/codebase-patterns.md +0 -157
  189. package/agents/research/framework-docs.md +0 -188
  190. package/agents/research/security-advisory.md +0 -213
  191. package/agents/review/architecture-reviewer.md +0 -107
  192. package/agents/review/complexity-reviewer.md +0 -116
  193. package/agents/review/data-integrity-reviewer.md +0 -88
  194. package/agents/review/git-history-reviewer.md +0 -103
  195. package/agents/review/performance-reviewer.md +0 -86
  196. package/agents/review/python-reviewer.md +0 -150
  197. package/agents/review/rails-reviewer.md +0 -139
  198. package/agents/review/react-reviewer.md +0 -144
  199. package/agents/review/security-reviewer.md +0 -80
  200. package/agents/review/simplicity-reviewer.md +0 -140
  201. package/agents/review/test-coverage-reviewer.md +0 -116
  202. package/agents/review/typescript-reviewer.md +0 -127
  203. package/agents/searcher.md +0 -54
  204. package/agents/simplifier.md +0 -124
  205. package/agents/teams/debug-team.md +0 -74
  206. package/agents/teams/dev-team.md +0 -92
  207. package/agents/teams/docs-team.md +0 -84
  208. package/agents/teams/figma-team.md +0 -89
  209. package/agents/teams/fullstack-team.md +0 -87
  210. package/agents/teams/lite-team.md +0 -73
  211. package/agents/teams/migration-team.md +0 -82
  212. package/agents/teams/refactor-team.md +0 -98
  213. package/agents/teams/research-team.md +0 -90
  214. package/agents/teams/review-debate-team.md +0 -129
  215. package/agents/teams/security-team.md +0 -85
  216. package/agents/ui/ui-a11y-auditor.md +0 -93
  217. package/agents/ui/ui-antipattern-detector.md +0 -102
  218. package/agents/ui/ui-dataviz-advisor.md +0 -69
  219. package/agents/ui/ui-design-system-gen.md +0 -57
  220. package/agents/ui/ui-industry-analyzer.md +0 -49
  221. package/agents/ui/ui-layout-architect.md +0 -65
  222. package/agents/ui/ui-stack-implementer.md +0 -68
  223. package/agents/ui/ux-compliance-reviewer.md +0 -81
  224. package/agents/ui-previewer.md +0 -262
  225. package/dist/cli/llm/gemini-commands.d.ts +0 -25
  226. package/dist/cli/llm/gemini-commands.d.ts.map +0 -1
  227. package/dist/cli/llm/gemini-commands.js +0 -143
  228. package/dist/cli/llm/gemini-commands.js.map +0 -1
  229. package/dist/cli/postinstall/codex-agents.d.ts +0 -24
  230. package/dist/cli/postinstall/codex-agents.d.ts.map +0 -1
  231. package/dist/cli/postinstall/codex-agents.js +0 -114
  232. package/dist/cli/postinstall/codex-agents.js.map +0 -1
  233. package/dist/cli/postinstall/codex-instruction.d.ts +0 -10
  234. package/dist/cli/postinstall/codex-instruction.d.ts.map +0 -1
  235. package/dist/cli/postinstall/codex-instruction.js +0 -56
  236. package/dist/cli/postinstall/codex-instruction.js.map +0 -1
  237. package/dist/cli/postinstall/gemini-agents.d.ts +0 -12
  238. package/dist/cli/postinstall/gemini-agents.d.ts.map +0 -1
  239. package/dist/cli/postinstall/gemini-agents.js +0 -80
  240. package/dist/cli/postinstall/gemini-agents.js.map +0 -1
  241. package/dist/cli/postinstall/gemini-instruction.d.ts +0 -10
  242. package/dist/cli/postinstall/gemini-instruction.d.ts.map +0 -1
  243. package/dist/cli/postinstall/gemini-instruction.js +0 -59
  244. package/dist/cli/postinstall/gemini-instruction.js.map +0 -1
  245. package/dist/infra/lib/ContextCompressor.d.ts +0 -104
  246. package/dist/infra/lib/ContextCompressor.d.ts.map +0 -1
  247. package/dist/infra/lib/ContextCompressor.js +0 -297
  248. package/dist/infra/lib/ContextCompressor.js.map +0 -1
  249. package/dist/infra/lib/ContextCompressor.test.d.ts +0 -2
  250. package/dist/infra/lib/ContextCompressor.test.d.ts.map +0 -1
  251. package/dist/infra/lib/ContextCompressor.test.js +0 -25
  252. package/dist/infra/lib/ContextCompressor.test.js.map +0 -1
  253. package/dist/infra/lib/ProgressTracker.d.ts +0 -73
  254. package/dist/infra/lib/ProgressTracker.d.ts.map +0 -1
  255. package/dist/infra/lib/ProgressTracker.js +0 -267
  256. package/dist/infra/lib/ProgressTracker.js.map +0 -1
  257. package/dist/infra/lib/TokenBudgetTracker.d.ts +0 -68
  258. package/dist/infra/lib/TokenBudgetTracker.d.ts.map +0 -1
  259. package/dist/infra/lib/TokenBudgetTracker.js +0 -191
  260. package/dist/infra/lib/TokenBudgetTracker.js.map +0 -1
  261. package/dist/infra/lib/autonomy/AuditStore.d.ts +0 -63
  262. package/dist/infra/lib/autonomy/AuditStore.d.ts.map +0 -1
  263. package/dist/infra/lib/autonomy/AuditStore.js +0 -185
  264. package/dist/infra/lib/autonomy/AuditStore.js.map +0 -1
  265. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts +0 -84
  266. package/dist/infra/lib/autonomy/AutonomyConfig.d.ts.map +0 -1
  267. package/dist/infra/lib/autonomy/AutonomyConfig.js +0 -49
  268. package/dist/infra/lib/autonomy/AutonomyConfig.js.map +0 -1
  269. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts +0 -78
  270. package/dist/infra/lib/autonomy/AutonomyOrchestrator.d.ts.map +0 -1
  271. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js +0 -246
  272. package/dist/infra/lib/autonomy/AutonomyOrchestrator.js.map +0 -1
  273. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts +0 -36
  274. package/dist/infra/lib/autonomy/BackgroundMonitor.d.ts.map +0 -1
  275. package/dist/infra/lib/autonomy/BackgroundMonitor.js +0 -138
  276. package/dist/infra/lib/autonomy/BackgroundMonitor.js.map +0 -1
  277. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts +0 -56
  278. package/dist/infra/lib/autonomy/CollaborationProtocol.d.ts.map +0 -1
  279. package/dist/infra/lib/autonomy/CollaborationProtocol.js +0 -122
  280. package/dist/infra/lib/autonomy/CollaborationProtocol.js.map +0 -1
  281. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts +0 -42
  282. package/dist/infra/lib/autonomy/ConfirmationManager.d.ts.map +0 -1
  283. package/dist/infra/lib/autonomy/ConfirmationManager.js +0 -200
  284. package/dist/infra/lib/autonomy/ConfirmationManager.js.map +0 -1
  285. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts +0 -55
  286. package/dist/infra/lib/autonomy/ConfirmationStore.d.ts.map +0 -1
  287. package/dist/infra/lib/autonomy/ConfirmationStore.js +0 -130
  288. package/dist/infra/lib/autonomy/ConfirmationStore.js.map +0 -1
  289. package/dist/infra/lib/autonomy/EventBus.d.ts +0 -20
  290. package/dist/infra/lib/autonomy/EventBus.d.ts.map +0 -1
  291. package/dist/infra/lib/autonomy/EventBus.js +0 -119
  292. package/dist/infra/lib/autonomy/EventBus.js.map +0 -1
  293. package/dist/infra/lib/autonomy/EventOutbox.d.ts +0 -32
  294. package/dist/infra/lib/autonomy/EventOutbox.d.ts.map +0 -1
  295. package/dist/infra/lib/autonomy/EventOutbox.js +0 -152
  296. package/dist/infra/lib/autonomy/EventOutbox.js.map +0 -1
  297. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts +0 -24
  298. package/dist/infra/lib/autonomy/NotificationDispatcher.d.ts.map +0 -1
  299. package/dist/infra/lib/autonomy/NotificationDispatcher.js +0 -112
  300. package/dist/infra/lib/autonomy/NotificationDispatcher.js.map +0 -1
  301. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +0 -76
  302. package/dist/infra/lib/autonomy/PolicyEngine.d.ts.map +0 -1
  303. package/dist/infra/lib/autonomy/PolicyEngine.js +0 -208
  304. package/dist/infra/lib/autonomy/PolicyEngine.js.map +0 -1
  305. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts +0 -61
  306. package/dist/infra/lib/autonomy/ProactiveAnalyzer.d.ts.map +0 -1
  307. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js +0 -236
  308. package/dist/infra/lib/autonomy/ProactiveAnalyzer.js.map +0 -1
  309. package/dist/infra/lib/autonomy/RiskClassifier.d.ts +0 -35
  310. package/dist/infra/lib/autonomy/RiskClassifier.d.ts.map +0 -1
  311. package/dist/infra/lib/autonomy/RiskClassifier.js +0 -147
  312. package/dist/infra/lib/autonomy/RiskClassifier.js.map +0 -1
  313. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts +0 -51
  314. package/dist/infra/lib/autonomy/SecuritySentinel.d.ts.map +0 -1
  315. package/dist/infra/lib/autonomy/SecuritySentinel.js +0 -162
  316. package/dist/infra/lib/autonomy/SecuritySentinel.js.map +0 -1
  317. package/dist/infra/lib/autonomy/SuggestionStore.d.ts +0 -54
  318. package/dist/infra/lib/autonomy/SuggestionStore.d.ts.map +0 -1
  319. package/dist/infra/lib/autonomy/SuggestionStore.js +0 -144
  320. package/dist/infra/lib/autonomy/SuggestionStore.js.map +0 -1
  321. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts +0 -38
  322. package/dist/infra/lib/autonomy/TaskDecomposer.d.ts.map +0 -1
  323. package/dist/infra/lib/autonomy/TaskDecomposer.js +0 -175
  324. package/dist/infra/lib/autonomy/TaskDecomposer.js.map +0 -1
  325. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts +0 -2
  326. package/dist/infra/lib/autonomy/__tests__/audit-store.test.d.ts.map +0 -1
  327. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js +0 -198
  328. package/dist/infra/lib/autonomy/__tests__/audit-store.test.js.map +0 -1
  329. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts +0 -2
  330. package/dist/infra/lib/autonomy/__tests__/event-bus.test.d.ts.map +0 -1
  331. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js +0 -225
  332. package/dist/infra/lib/autonomy/__tests__/event-bus.test.js.map +0 -1
  333. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts +0 -2
  334. package/dist/infra/lib/autonomy/__tests__/event-core.test.d.ts.map +0 -1
  335. package/dist/infra/lib/autonomy/__tests__/event-core.test.js +0 -194
  336. package/dist/infra/lib/autonomy/__tests__/event-core.test.js.map +0 -1
  337. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts +0 -2
  338. package/dist/infra/lib/autonomy/__tests__/governance.test.d.ts.map +0 -1
  339. package/dist/infra/lib/autonomy/__tests__/governance.test.js +0 -540
  340. package/dist/infra/lib/autonomy/__tests__/governance.test.js.map +0 -1
  341. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts +0 -2
  342. package/dist/infra/lib/autonomy/__tests__/integration.test.d.ts.map +0 -1
  343. package/dist/infra/lib/autonomy/__tests__/integration.test.js +0 -480
  344. package/dist/infra/lib/autonomy/__tests__/integration.test.js.map +0 -1
  345. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts +0 -2
  346. package/dist/infra/lib/autonomy/__tests__/proactive.test.d.ts.map +0 -1
  347. package/dist/infra/lib/autonomy/__tests__/proactive.test.js +0 -410
  348. package/dist/infra/lib/autonomy/__tests__/proactive.test.js.map +0 -1
  349. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts +0 -2
  350. package/dist/infra/lib/autonomy/__tests__/sentinel.test.d.ts.map +0 -1
  351. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js +0 -486
  352. package/dist/infra/lib/autonomy/__tests__/sentinel.test.js.map +0 -1
  353. package/dist/infra/lib/autonomy/index.d.ts +0 -18
  354. package/dist/infra/lib/autonomy/index.d.ts.map +0 -1
  355. package/dist/infra/lib/autonomy/index.js +0 -22
  356. package/dist/infra/lib/autonomy/index.js.map +0 -1
  357. package/dist/infra/lib/autonomy/schemas.d.ts +0 -317
  358. package/dist/infra/lib/autonomy/schemas.d.ts.map +0 -1
  359. package/dist/infra/lib/autonomy/schemas.js +0 -90
  360. package/dist/infra/lib/autonomy/schemas.js.map +0 -1
  361. package/dist/infra/lib/claude/index.d.ts +0 -5
  362. package/dist/infra/lib/claude/index.d.ts.map +0 -1
  363. package/dist/infra/lib/claude/index.js +0 -5
  364. package/dist/infra/lib/claude/index.js.map +0 -1
  365. package/dist/infra/lib/claude/storage.d.ts +0 -12
  366. package/dist/infra/lib/claude/storage.d.ts.map +0 -1
  367. package/dist/infra/lib/claude/storage.js +0 -54
  368. package/dist/infra/lib/claude/storage.js.map +0 -1
  369. package/dist/infra/lib/gemini/auth.d.ts +0 -18
  370. package/dist/infra/lib/gemini/auth.d.ts.map +0 -1
  371. package/dist/infra/lib/gemini/auth.js +0 -32
  372. package/dist/infra/lib/gemini/auth.js.map +0 -1
  373. package/dist/infra/lib/gemini/capabilities.d.ts +0 -28
  374. package/dist/infra/lib/gemini/capabilities.d.ts.map +0 -1
  375. package/dist/infra/lib/gemini/capabilities.js +0 -178
  376. package/dist/infra/lib/gemini/capabilities.js.map +0 -1
  377. package/dist/infra/lib/gemini/chat.d.ts +0 -35
  378. package/dist/infra/lib/gemini/chat.d.ts.map +0 -1
  379. package/dist/infra/lib/gemini/chat.js +0 -161
  380. package/dist/infra/lib/gemini/chat.js.map +0 -1
  381. package/dist/infra/lib/gemini/completion.d.ts +0 -12
  382. package/dist/infra/lib/gemini/completion.d.ts.map +0 -1
  383. package/dist/infra/lib/gemini/completion.js +0 -13
  384. package/dist/infra/lib/gemini/completion.js.map +0 -1
  385. package/dist/infra/lib/gemini/constants.d.ts +0 -8
  386. package/dist/infra/lib/gemini/constants.d.ts.map +0 -1
  387. package/dist/infra/lib/gemini/constants.js +0 -11
  388. package/dist/infra/lib/gemini/constants.js.map +0 -1
  389. package/dist/infra/lib/gemini/index.d.ts +0 -13
  390. package/dist/infra/lib/gemini/index.d.ts.map +0 -1
  391. package/dist/infra/lib/gemini/index.js +0 -12
  392. package/dist/infra/lib/gemini/index.js.map +0 -1
  393. package/dist/infra/lib/gemini/models.d.ts +0 -11
  394. package/dist/infra/lib/gemini/models.d.ts.map +0 -1
  395. package/dist/infra/lib/gemini/models.js +0 -38
  396. package/dist/infra/lib/gemini/models.js.map +0 -1
  397. package/dist/infra/lib/gemini/orchestration.d.ts +0 -33
  398. package/dist/infra/lib/gemini/orchestration.d.ts.map +0 -1
  399. package/dist/infra/lib/gemini/orchestration.js +0 -62
  400. package/dist/infra/lib/gemini/orchestration.js.map +0 -1
  401. package/dist/infra/lib/gemini/types.d.ts +0 -115
  402. package/dist/infra/lib/gemini/types.d.ts.map +0 -1
  403. package/dist/infra/lib/gemini/types.js +0 -5
  404. package/dist/infra/lib/gemini/types.js.map +0 -1
  405. package/dist/infra/orchestrator/AgentAnnouncer.d.ts +0 -64
  406. package/dist/infra/orchestrator/AgentAnnouncer.d.ts.map +0 -1
  407. package/dist/infra/orchestrator/AgentAnnouncer.js +0 -127
  408. package/dist/infra/orchestrator/AgentAnnouncer.js.map +0 -1
  409. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts +0 -5
  410. package/dist/infra/orchestrator/AgentAnnouncer.test.d.ts.map +0 -1
  411. package/dist/infra/orchestrator/AgentAnnouncer.test.js +0 -119
  412. package/dist/infra/orchestrator/AgentAnnouncer.test.js.map +0 -1
  413. package/dist/infra/orchestrator/AgentExecutor.d.ts +0 -22
  414. package/dist/infra/orchestrator/AgentExecutor.d.ts.map +0 -1
  415. package/dist/infra/orchestrator/AgentExecutor.js +0 -272
  416. package/dist/infra/orchestrator/AgentExecutor.js.map +0 -1
  417. package/dist/infra/orchestrator/AgentManager.d.ts +0 -72
  418. package/dist/infra/orchestrator/AgentManager.d.ts.map +0 -1
  419. package/dist/infra/orchestrator/AgentManager.js +0 -183
  420. package/dist/infra/orchestrator/AgentManager.js.map +0 -1
  421. package/dist/infra/orchestrator/AgentManifestCache.d.ts +0 -54
  422. package/dist/infra/orchestrator/AgentManifestCache.d.ts.map +0 -1
  423. package/dist/infra/orchestrator/AgentManifestCache.js +0 -191
  424. package/dist/infra/orchestrator/AgentManifestCache.js.map +0 -1
  425. package/dist/infra/orchestrator/AgentRegistry.d.ts +0 -76
  426. package/dist/infra/orchestrator/AgentRegistry.d.ts.map +0 -1
  427. package/dist/infra/orchestrator/AgentRegistry.js +0 -217
  428. package/dist/infra/orchestrator/AgentRegistry.js.map +0 -1
  429. package/dist/infra/orchestrator/AgentRegistry.test.d.ts +0 -5
  430. package/dist/infra/orchestrator/AgentRegistry.test.d.ts.map +0 -1
  431. package/dist/infra/orchestrator/AgentRegistry.test.js +0 -122
  432. package/dist/infra/orchestrator/AgentRegistry.test.js.map +0 -1
  433. package/dist/infra/orchestrator/BackgroundManager.d.ts +0 -128
  434. package/dist/infra/orchestrator/BackgroundManager.d.ts.map +0 -1
  435. package/dist/infra/orchestrator/BackgroundManager.js +0 -620
  436. package/dist/infra/orchestrator/BackgroundManager.js.map +0 -1
  437. package/dist/infra/orchestrator/BackgroundManager.test.d.ts +0 -6
  438. package/dist/infra/orchestrator/BackgroundManager.test.d.ts.map +0 -1
  439. package/dist/infra/orchestrator/BackgroundManager.test.js +0 -162
  440. package/dist/infra/orchestrator/BackgroundManager.test.js.map +0 -1
  441. package/dist/infra/orchestrator/CheckpointManager.d.ts +0 -54
  442. package/dist/infra/orchestrator/CheckpointManager.d.ts.map +0 -1
  443. package/dist/infra/orchestrator/CheckpointManager.js +0 -121
  444. package/dist/infra/orchestrator/CheckpointManager.js.map +0 -1
  445. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts +0 -12
  446. package/dist/infra/orchestrator/CodexAgentRuntime.d.ts.map +0 -1
  447. package/dist/infra/orchestrator/CodexAgentRuntime.js +0 -94
  448. package/dist/infra/orchestrator/CodexAgentRuntime.js.map +0 -1
  449. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts +0 -2
  450. package/dist/infra/orchestrator/CodexAgentRuntime.test.d.ts.map +0 -1
  451. package/dist/infra/orchestrator/CodexAgentRuntime.test.js +0 -37
  452. package/dist/infra/orchestrator/CodexAgentRuntime.test.js.map +0 -1
  453. package/dist/infra/orchestrator/LLMCluster.d.ts +0 -82
  454. package/dist/infra/orchestrator/LLMCluster.d.ts.map +0 -1
  455. package/dist/infra/orchestrator/LLMCluster.js +0 -146
  456. package/dist/infra/orchestrator/LLMCluster.js.map +0 -1
  457. package/dist/infra/orchestrator/MultiLlmResearch.d.ts +0 -31
  458. package/dist/infra/orchestrator/MultiLlmResearch.d.ts.map +0 -1
  459. package/dist/infra/orchestrator/MultiLlmResearch.js +0 -160
  460. package/dist/infra/orchestrator/MultiLlmResearch.js.map +0 -1
  461. package/dist/infra/orchestrator/PhasePipeline.d.ts +0 -122
  462. package/dist/infra/orchestrator/PhasePipeline.d.ts.map +0 -1
  463. package/dist/infra/orchestrator/PhasePipeline.js +0 -385
  464. package/dist/infra/orchestrator/PhasePipeline.js.map +0 -1
  465. package/dist/infra/orchestrator/PhaseResultStore.d.ts +0 -39
  466. package/dist/infra/orchestrator/PhaseResultStore.d.ts.map +0 -1
  467. package/dist/infra/orchestrator/PhaseResultStore.js +0 -151
  468. package/dist/infra/orchestrator/PhaseResultStore.js.map +0 -1
  469. package/dist/infra/orchestrator/SessionStore.d.ts +0 -40
  470. package/dist/infra/orchestrator/SessionStore.d.ts.map +0 -1
  471. package/dist/infra/orchestrator/SessionStore.js +0 -116
  472. package/dist/infra/orchestrator/SessionStore.js.map +0 -1
  473. package/dist/infra/orchestrator/SmartRouter.d.ts +0 -90
  474. package/dist/infra/orchestrator/SmartRouter.d.ts.map +0 -1
  475. package/dist/infra/orchestrator/SmartRouter.js +0 -277
  476. package/dist/infra/orchestrator/SmartRouter.js.map +0 -1
  477. package/dist/infra/orchestrator/SmartRouter.test.d.ts +0 -5
  478. package/dist/infra/orchestrator/SmartRouter.test.d.ts.map +0 -1
  479. package/dist/infra/orchestrator/SmartRouter.test.js +0 -484
  480. package/dist/infra/orchestrator/SmartRouter.test.js.map +0 -1
  481. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts +0 -143
  482. package/dist/infra/orchestrator/SwarmOrchestrator.d.ts.map +0 -1
  483. package/dist/infra/orchestrator/SwarmOrchestrator.js +0 -378
  484. package/dist/infra/orchestrator/SwarmOrchestrator.js.map +0 -1
  485. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts +0 -5
  486. package/dist/infra/orchestrator/SwarmOrchestrator.test.d.ts.map +0 -1
  487. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +0 -95
  488. package/dist/infra/orchestrator/SwarmOrchestrator.test.js.map +0 -1
  489. package/dist/infra/orchestrator/agentDiscovery.d.ts +0 -26
  490. package/dist/infra/orchestrator/agentDiscovery.d.ts.map +0 -1
  491. package/dist/infra/orchestrator/agentDiscovery.js +0 -175
  492. package/dist/infra/orchestrator/agentDiscovery.js.map +0 -1
  493. package/dist/infra/orchestrator/backgroundAgent.d.ts +0 -9
  494. package/dist/infra/orchestrator/backgroundAgent.d.ts.map +0 -1
  495. package/dist/infra/orchestrator/backgroundAgent.js +0 -10
  496. package/dist/infra/orchestrator/backgroundAgent.js.map +0 -1
  497. package/dist/infra/orchestrator/index.d.ts +0 -207
  498. package/dist/infra/orchestrator/index.d.ts.map +0 -1
  499. package/dist/infra/orchestrator/index.js +0 -362
  500. package/dist/infra/orchestrator/index.js.map +0 -1
  501. package/dist/infra/orchestrator/orchestrator.d.ts +0 -60
  502. package/dist/infra/orchestrator/orchestrator.d.ts.map +0 -1
  503. package/dist/infra/orchestrator/orchestrator.js +0 -214
  504. package/dist/infra/orchestrator/orchestrator.js.map +0 -1
  505. package/dist/infra/orchestrator/parallelResearch.d.ts +0 -27
  506. package/dist/infra/orchestrator/parallelResearch.d.ts.map +0 -1
  507. package/dist/infra/orchestrator/parallelResearch.js +0 -285
  508. package/dist/infra/orchestrator/parallelResearch.js.map +0 -1
  509. package/dist/infra/orchestrator/types.d.ts +0 -205
  510. package/dist/infra/orchestrator/types.d.ts.map +0 -1
  511. package/dist/infra/orchestrator/types.js +0 -87
  512. package/dist/infra/orchestrator/types.js.map +0 -1
  513. package/dist/infra/orchestrator/types.test.d.ts +0 -2
  514. package/dist/infra/orchestrator/types.test.d.ts.map +0 -1
  515. package/dist/infra/orchestrator/types.test.js +0 -57
  516. package/dist/infra/orchestrator/types.test.js.map +0 -1
  517. package/dist/tools/semantic/analyzeDependencyGraph.d.ts +0 -12
  518. package/dist/tools/semantic/analyzeDependencyGraph.d.ts.map +0 -1
  519. package/dist/tools/semantic/analyzeDependencyGraph.js +0 -359
  520. package/dist/tools/semantic/analyzeDependencyGraph.js.map +0 -1
  521. package/dist/tools/semantic/astGrep.d.ts +0 -25
  522. package/dist/tools/semantic/astGrep.d.ts.map +0 -1
  523. package/dist/tools/semantic/astGrep.js +0 -324
  524. package/dist/tools/semantic/astGrep.js.map +0 -1
  525. package/dist/tools/semantic/astGrep.test.d.ts +0 -2
  526. package/dist/tools/semantic/astGrep.test.d.ts.map +0 -1
  527. package/dist/tools/semantic/astGrep.test.js +0 -74
  528. package/dist/tools/semantic/astGrep.test.js.map +0 -1
  529. package/dist/tools/semantic/findReferences.d.ts +0 -9
  530. package/dist/tools/semantic/findReferences.d.ts.map +0 -1
  531. package/dist/tools/semantic/findReferences.js +0 -200
  532. package/dist/tools/semantic/findReferences.js.map +0 -1
  533. package/dist/tools/semantic/findSymbol.d.ts +0 -8
  534. package/dist/tools/semantic/findSymbol.d.ts.map +0 -1
  535. package/dist/tools/semantic/findSymbol.js +0 -204
  536. package/dist/tools/semantic/findSymbol.js.map +0 -1
  537. package/dist/tools/semantic/index.d.ts +0 -9
  538. package/dist/tools/semantic/index.d.ts.map +0 -1
  539. package/dist/tools/semantic/index.js +0 -11
  540. package/dist/tools/semantic/index.js.map +0 -1
  541. package/dist/tools/semantic/lsp.d.ts +0 -68
  542. package/dist/tools/semantic/lsp.d.ts.map +0 -1
  543. package/dist/tools/semantic/lsp.js +0 -561
  544. package/dist/tools/semantic/lsp.js.map +0 -1
  545. package/dist/tools/spec/e2eTestGenerator.d.ts +0 -61
  546. package/dist/tools/spec/e2eTestGenerator.d.ts.map +0 -1
  547. package/dist/tools/spec/e2eTestGenerator.js +0 -255
  548. package/dist/tools/spec/e2eTestGenerator.js.map +0 -1
  549. package/dist/tools/spec/specVersioning.d.ts +0 -76
  550. package/dist/tools/spec/specVersioning.d.ts.map +0 -1
  551. package/dist/tools/spec/specVersioning.js +0 -236
  552. package/dist/tools/spec/specVersioning.js.map +0 -1
  553. package/hooks/scripts/__tests__/keyword-detector.test.js +0 -242
  554. package/hooks/scripts/keyword-detector.js +0 -226
  555. package/skills/characterization-test/SKILL.md +0 -209
  556. package/skills/characterization-test/agents/behavior-capturer.md +0 -50
  557. package/skills/characterization-test/agents/coverage-checker.md +0 -54
  558. package/skills/characterization-test/agents/reporter.md +0 -50
  559. package/skills/characterization-test/agents/test-writer.md +0 -49
  560. package/skills/characterization-test/rubrics/coverage-criteria.md +0 -53
  561. package/skills/characterization-test/templates/test-template.ts +0 -101
  562. package/skills/claude-md-guide/SKILL.md +0 -353
  563. package/skills/claude-md-guide/rubrics/anti-patterns.md +0 -88
  564. package/skills/design-audit/SKILL.md +0 -154
  565. package/skills/design-critique/SKILL.md +0 -140
  566. package/skills/design-distill/SKILL.md +0 -131
  567. package/skills/design-normalize/SKILL.md +0 -135
  568. package/skills/design-polish/SKILL.md +0 -132
  569. package/skills/figma-convert/SKILL.md +0 -236
  570. package/skills/figma-extract/SKILL.md +0 -242
  571. package/skills/interview/SKILL.md +0 -358
  572. package/skills/interview/checklists/api.md +0 -101
  573. package/skills/interview/checklists/feature.md +0 -88
  574. package/skills/interview/checklists/library.md +0 -95
  575. package/skills/interview/checklists/mobile.md +0 -89
  576. package/skills/interview/checklists/webapp.md +0 -97
  577. package/skills/interview/checklists/website.md +0 -99
  578. package/skills/plan/SKILL.md +0 -254
  579. package/skills/rob-pike/SKILL.md +0 -66
  580. package/skills/spec/references/askuser-examples.md +0 -57
  581. package/skills/spec/references/example-session.md +0 -87
  582. package/skills/spec/references/templates.md +0 -194
  583. package/skills/spec-review/SKILL.md +0 -725
  584. package/skills/systematic-debugging/SKILL.md +0 -142
  585. package/skills/techdebt/SKILL.md +0 -126
  586. package/skills/techdebt/agents/analyzer.md +0 -50
  587. package/skills/techdebt/agents/fixer.md +0 -41
  588. package/skills/techdebt/agents/reviewer.md +0 -47
  589. package/skills/techdebt/agents/scanner.md +0 -44
  590. package/skills/techdebt/orchestrator.md +0 -72
  591. package/skills/techdebt/rubrics/severity.md +0 -51
  592. package/skills/techdebt/scripts/scan.js +0 -90
  593. package/skills/techdebt/templates/report.md +0 -86
  594. package/skills/typescript-advanced-types/SKILL.md +0 -68
  595. package/skills/typescript-advanced-types/rubrics/type-patterns.md +0 -109
  596. package/skills/yagni-ladder/SKILL.md +0 -90
  597. /package/skills/{claude-md-guide → agents-md}/templates/claude-md.md +0 -0
  598. /package/skills/{design-polish → design-refine}/rubrics/polish-checklist.md +0 -0
  599. /package/skills/{design-normalize → design-refine}/rubrics/token-naming.md +0 -0
  600. /package/skills/{design-distill → design-refine}/templates/design-system.md +0 -0
  601. /package/skills/{design-audit → design-review}/agents/scorer.md +0 -0
  602. /package/skills/{design-audit → design-review}/rubrics/ai-slop-patterns.md +0 -0
  603. /package/skills/{design-audit → design-review}/rubrics/scoring.md +0 -0
  604. /package/skills/{design-critique → design-review}/rubrics/ux-heuristics.md +0 -0
  605. /package/skills/{figma-convert → figma}/rubrics/conversion-rules.md +0 -0
  606. /package/skills/{figma-extract → figma}/rubrics/image-rules.md +0 -0
  607. /package/skills/{figma-convert → figma}/templates/component.md +0 -0
@@ -1,725 +0,0 @@
1
- ---
2
- name: spec-review
3
- description: SPEC 품질 리뷰 본체 — GPT/Antigravity 크로스 검증, 100-point gate, Race Review(수렴 종료), Codex 적대 리뷰, 사용자 체크포인트.
4
- when_to_use: spec 완료 후 또는 /vibe.spec Phase 4에서 체인. 직접 호출 금지.
5
- user-invocable: false
6
- tier: core
7
- ---
8
-
9
- # spec-review — SPEC Quality Review
10
-
11
- Review and enhance SPEC with GPT/Antigravity cross-validation.
12
-
13
- **Purpose:** Run this skill after `spec` to ensure accurate review execution. For large contexts, invoke in a new session.
14
-
15
- ---
16
-
17
- ## Usage
18
-
19
- This skill is automatically called in Phase 4 of the `/vibe.spec` orchestrator. If direct invocation is needed:
20
-
21
- ```
22
- Load skill `spec-review` with feature: "feature-name"
23
- ```
24
-
25
- Or via natural language trigger: "스펙 리뷰", "review spec", "명세 리뷰".
26
-
27
- **Prerequisites:**
28
- - SPEC file exists: `.vibe/specs/{feature-name}.md` (single) or `.vibe/specs/{feature-name}/_index.md` (split)
29
- - Feature file exists: `.vibe/features/{feature-name}.feature` (single) or `.vibe/features/{feature-name}/_index.feature` (split)
30
-
31
- ---
32
-
33
- ## Codex Plugin Integration
34
-
35
- > **Codex plugin detection**: Auto-detected at workflow start with the command below.
36
- >
37
- > ```bash
38
- > CODEX_AVAILABLE=$(node "{{VIBE_PATH}}/hooks/scripts/codex-detect.js" 2>/dev/null || echo "unavailable")
39
- > ```
40
- >
41
- > If `available`, `/codex:adversarial-review` is automatically invoked. If `unavailable`, falls back to the existing GPT+Antigravity workflow.
42
-
43
- ---
44
-
45
- > **⏱️ Timer**: Call `getCurrentTime` tool at the START. Record the result as `{start_time}`.
46
-
47
- **`.last-feature` pointer update** (immediately after Timer):
48
-
49
- ```
50
- Write ".vibe/.last-feature" ← feature-name (one line)
51
- If the value is already the same, no-op.
52
- ```
53
-
54
- ## Workflow
55
-
56
- ```
57
- /vibe.spec "feature" → SPEC created (Phase 3)
58
-
59
- Phase 4: spec-review skill (this) → Quality validation + GPT/Antigravity review
60
-
61
- /vibe.run "feature"
62
- ```
63
-
64
- **For large contexts**: After `/new`, re-enter `/vibe.spec "feature"` → Smart Resume will start from Phase 4.
65
-
66
- ---
67
-
68
- ## File Reading Policy (Mandatory)
69
-
70
- - **Delegate SPEC reading to sub-agents** — Do NOT read all SPEC/Feature files in main session
71
- - **Split structure (3+ phases)**: Use `Task(subagent_type="explorer-medium")` to read and summarize
72
- - **Single file structure**: Main session may Read directly (small enough)
73
- - **Never use Grep** for content analysis — Grep is for file location only
74
- - **Agent spawn rule**: Include "Read target files FULLY with Read tool" in agent prompts
75
-
76
- ## Step 1: Load SPEC Files
77
-
78
- Detect SPEC structure (single file or split folder) and read files:
79
-
80
- **Single file structure:**
81
- ```
82
- .vibe/specs/{feature-name}.md
83
- .vibe/features/{feature-name}.feature
84
- ```
85
-
86
- **Split folder structure:**
87
- ```
88
- .vibe/specs/{feature-name}/_index.md (+ phase files)
89
- .vibe/specs/{feature-name}/phase-*.md (phase-1-xxx.md, phase-2-xxx.md, ...)
90
- .vibe/features/{feature-name}/_index.feature (+ phase files)
91
- .vibe/features/{feature-name}/phase-*.feature
92
- ```
93
-
94
- **Detection logic:**
95
- 1. Check if `.vibe/specs/{feature-name}/` directory exists → Split mode
96
- 2. Otherwise check `.vibe/specs/{feature-name}.md` → Single mode
97
- 3. If neither exists → Error
98
-
99
- **Split mode file loading:**
100
- 1. Read `_index.md` for master SPEC overview
101
- 2. Glob `phase-*.md` files and read all phase SPECs
102
- 3. Read corresponding `_index.feature` and `phase-*.feature` files
103
-
104
- **Output:**
105
- ```
106
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
107
- 📋 SPEC REVIEW: {feature-name}
108
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109
-
110
- Loading files...
111
- Mode: {single|split}
112
- ✅ SPEC: .vibe/specs/{feature-name}.md (or _index.md + N phase files)
113
- ✅ Feature: .vibe/features/{feature-name}.feature (or _index.feature + N phase files)
114
-
115
- Extracted info:
116
- - Feature: {feature description}
117
- - Stack: {tech stack}
118
- - Phases: {number of phases}
119
- - Scenarios: {number of scenarios}
120
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
121
- ```
122
-
123
- ---
124
-
125
- ## Step 2: Quality Validation (100-Point Gate)
126
-
127
- **🚨 MANDATORY: Score must reach 100 to proceed. Loop until perfect or stuck.**
128
-
129
- ### 2.1 Quality Checklist
130
-
131
- | Category | Check Item | Weight |
132
- |----------|------------|--------|
133
- | **Completeness** | All user flows included in Task | 15% |
134
- | **Completeness** | All ACs converted to Feature scenarios | 10% |
135
- | **Completeness** | Error handling scenarios defined | 10% |
136
- | **Specificity** | All numbers specified (timeout, limits, etc.) | 15% |
137
- | **Specificity** | No ambiguous terms ("appropriate", "proper", etc.) | 10% |
138
- | **Testability** | Each AC is verifiable | 10% |
139
- | **Testability** | Feature scenarios have concrete Given/When/Then | 10% |
140
- | **Security** | Auth/permission requirements specified | 10% |
141
- | **Performance** | Response time/load requirements specified | 10% |
142
-
143
- ### 2.2 Quality Gate Loop (No Round Cap)
144
-
145
- ```python
146
- iteration = 0
147
- prev_score = -1
148
-
149
- while True:
150
- iteration += 1
151
- score = calculate_quality_score(spec, feature)
152
-
153
- print(f"━━━ Quality Check [{iteration}] ━━━")
154
- print(f"Score: {score}/100")
155
-
156
- if score >= 100:
157
- print("✅ Quality Gate PASSED (100/100)")
158
- break
159
-
160
- # Auto-fixer hit a wall → ask the user (prevents runaway AND respects 100 target)
161
- if score == prev_score:
162
- missing_items = identify_missing_items(spec)
163
- print(f"⚠️ Auto-fixer limit reached: stuck at {score}/100")
164
- print(f"Remaining items require human input:")
165
- for item in missing_items:
166
- print(f" ❌ {item}")
167
-
168
- if ultrawork_mode:
169
- # ultrawork: no user intervention, record TODO and proceed
170
- print("ℹ️ ultrawork mode — recording gaps to TODO and proceeding")
171
- record_todo(missing_items)
172
- break
173
-
174
- # Interactive: ask the user to fill in or explicitly approve
175
- user_input = ask_user(
176
- "Please either:\n"
177
- " 1. Provide values for the remaining items (I'll apply them)\n"
178
- " 2. Type 'proceed' to accept current score and continue\n"
179
- " 3. Type 'abort' to stop the workflow"
180
- )
181
-
182
- if user_input == "abort":
183
- raise WorkflowAborted("User aborted at Quality Gate")
184
- if user_input == "proceed":
185
- record_todo(missing_items)
186
- break
187
- # otherwise: apply user-provided values → re-evaluate
188
- apply_user_values(user_input)
189
- continue
190
-
191
- prev_score = score
192
-
193
- # Auto-fix missing items
194
- missing_items = identify_missing_items(spec)
195
- for item in missing_items:
196
- auto_fix(item)
197
- update_spec()
198
- update_feature()
199
-
200
- print(f"✅ Applied {len(missing_items)} fixes - Re-evaluating...")
201
- ```
202
-
203
- **Termination conditions:**
204
- - `score == 100` → pass (primary success)
205
- - `score == prev_score` (auto-fixer stuck) → **ask the user**:
206
- - User provides values → re-evaluate (loop continues, may reach 100)
207
- - User says "proceed" → record gaps as TODO and continue to Step 3
208
- - User says "abort" → stop entire workflow
209
- - `ultrawork` mode → skip prompt, auto-record TODO and continue
210
- - No iteration cap — the only way to exit without 100 is explicit user approval or ultrawork.
211
-
212
- **Output format:**
213
- ```
214
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
215
- 📊 QUALITY GATE [1]
216
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
217
- Score: 87/100 ⚠️ BELOW 100
218
-
219
- Missing items:
220
- ❌ Error handling scenarios (10%)
221
- ❌ Performance targets (5%)
222
-
223
- Auto-fixing...
224
- ✅ Added network error handling scenario
225
- ✅ Added response time targets (<500ms)
226
-
227
- Re-evaluating...
228
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
229
-
230
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
231
- 📊 QUALITY GATE [2]
232
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
233
- Score: 96/100 ⚠️ BELOW 100
234
-
235
- Missing items:
236
- ❌ Concurrent session policy (4%)
237
-
238
- Auto-fixing...
239
- ✅ Added concurrent session policy
240
-
241
- Re-evaluating...
242
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
243
-
244
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
245
- 📊 QUALITY GATE [3]
246
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
- Score: 100/100 ✅ PASSED
248
-
249
- ✅ Quality Gate PASSED - proceeding to GPT/Antigravity review
250
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
251
- ```
252
-
253
- **Stuck case (auto-fixer limit reached):**
254
- ```
255
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
256
- 📊 QUALITY GATE [4]
257
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
258
- Score: 87/100 ⚠️ STUCK (same as previous iteration)
259
-
260
- Auto-fixer hit a wall. These items need human input:
261
- ❌ Business rule: monthly subscription renewal grace period (days?)
262
- ❌ Target latency for search API (<?ms)
263
- ❌ Data retention policy for audit logs (how many days?)
264
-
265
- How would you like to proceed?
266
- 1. Provide the values directly (e.g., "grace period 7 days, search 500ms, audit logs 90 days")
267
- → Values will be applied and the score re-evaluated (100 may be reachable)
268
- 2. "proceed" — Accept the current score, record remaining items as TODO, then continue to Step 3
269
- 3. "abort" — Stop the workflow
270
-
271
- (In ultrawork mode, this prompt is skipped — TODO is auto-recorded and execution continues)
272
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
273
- ```
274
-
275
- ### 2.3 Auto-Fix Rules
276
-
277
- | Missing Item | Auto-Fix Method |
278
- |--------------|-----------------|
279
- | Missing AC | Auto-generate AC based on Task |
280
- | Numbers not specified | Apply project defaults (timeout 30s, etc.) |
281
- | Missing error handling | Add common error scenarios |
282
- | Missing performance targets | Apply industry standard criteria |
283
- | Missing security | Add auth/data protection requirements |
284
- | Ambiguous terms | Replace with specific values |
285
-
286
- ---
287
-
288
- ## Step 3: Race Review (GPT + Antigravity Cross-Validation) - Convergence-Based (No Round Cap)
289
-
290
- **RULES FOR RACE REVIEW:**
291
-
292
- 1. **YOU MUST** use the Bash tool to call `llm-orchestrate.js` directly
293
- 2. **DO NOT** simulate or fake review results
294
- 3. Run rounds sequentially (each round uses updated SPEC)
295
- 4. **No hard round cap** — loop until P1=0 AND no new findings (convergence)
296
-
297
- > Race Mode reviews SPEC with GPT and Antigravity in parallel, then cross-validates findings for higher confidence. The loop continues until quality converges naturally.
298
-
299
- ### Termination Rules
300
-
301
- - **P1 = 0 AND no new findings this round** → converged, stop (primary success)
302
- - **Round 1 with P1 = 0 AND no P2/P3** → perfect on first try, stop (early success)
303
- - **Round N findings == Round N-1 findings** → **stuck**: LLMs keep flagging same issues that auto-applier can't resolve → **ask the user** (see 3.2.1)
304
-
305
- ### Stuck Handling (3.2.1)
306
-
307
- When the same findings repeat across rounds, the auto-apply loop has hit a wall. This typically means:
308
- - The fix requires human judgment (architectural trade-off, domain rule, etc.)
309
- - The LLMs are producing a false positive that the auto-applier can't dismiss
310
- - The suggested fix conflicts with an existing constraint
311
-
312
- **Interactive mode** — prompt the user:
313
-
314
- ```
315
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
316
- ⚠️ RACE REVIEW STUCK at Round {N}
317
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
318
-
319
- Same findings repeated from Round {N-1}. Auto-applier cannot resolve:
320
-
321
- | # | Issue | Severity | GPT | Antigravity | Reason it's stuck |
322
- |---|-------|----------|-----|--------|-------------------|
323
- | 1 | {issue title} | P1 | ✅ | ✅ | {e.g., "fix requires domain decision"} |
324
- | 2 | {issue title} | P2 | ✅ | ❌ | {e.g., "conflicts with existing constraint"} |
325
-
326
- How would you like to proceed?
327
- 1. Provide a resolution directly (e.g., "issue 1: retry 5 times, issue 2: ignore")
328
- → Changes will be applied and the next round re-run
329
- 2. "proceed" — Record current issues as TODO and continue to Step 4
330
- 3. "abort" — Stop the workflow
331
-
332
- (In ultrawork mode, this prompt is skipped — TODO is auto-recorded and execution continues)
333
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
334
- ```
335
-
336
- **Pseudocode:**
337
-
338
- ```python
339
- if current_findings == prev_findings:
340
- if ultrawork_mode:
341
- print("ℹ️ ultrawork mode — recording stuck issues to TODO and proceeding")
342
- record_todo(current_findings)
343
- break
344
-
345
- user_input = ask_user(
346
- "Race Review stuck. Please either:\n"
347
- " 1. Provide resolution for the listed issues\n"
348
- " 2. Type 'proceed' to record as TODO and continue to Step 4\n"
349
- " 3. Type 'abort' to stop the workflow"
350
- )
351
-
352
- if user_input == "abort":
353
- raise WorkflowAborted("User aborted at Race Review")
354
- if user_input == "proceed":
355
- record_todo(current_findings)
356
- break
357
- # otherwise: apply user-provided resolutions → next round
358
- apply_user_resolutions(user_input)
359
- continue # re-run the round with updated SPEC
360
- ```
361
-
362
- ### Narrowing Scope (Noise Reduction)
363
-
364
- To prevent LLM cosmetic noise from causing infinite loops while still reaching 100% quality:
365
-
366
- | Round | Scope |
367
- |-------|-------|
368
- | 1 | Full scope (P1 + P2 + P3) |
369
- | 2 | P1 + P2 only |
370
- | 3+ | P1 only (until P1=0 or convergence) |
371
-
372
- ### 3.1 Review Loop (No Round Cap)
373
-
374
- **Run GPT + Antigravity in PARALLEL via Bash tool for each round. Stop when termination rules trigger.**
375
-
376
- **🚨 IMPORTANT: SPEC content is too large for CLI arguments. Use --input file method (no pipe needed).**
377
-
378
- **Procedure for each round:**
379
-
380
- **Step A: Save SPEC content + prompt as JSON to scratchpad temp file (using Write tool):**
381
- - Write JSON to `[SCRATCHPAD]/spec-review-input.json` with content:
382
- ```json
383
- {"prompt": "Review this SPEC for completeness, specificity, testability, security, and performance. Round [N] (scope: [SCOPE]). Find issues and improvements. Return JSON: {issues: [{id, title, description, severity, suggestion}]}. SPEC content: [SPEC_CONTENT]"}
384
- ```
385
- - Where `[SPEC_CONTENT]` is the full SPEC text (properly JSON-escaped inside the prompt string)
386
- - `[SCOPE]` is `P1+P2+P3` for round 1, `P1+P2` for round 2, `P1` for rounds 3+
387
-
388
- **Step B: Script path:**
389
- - `[LLM_SCRIPT]` = `{{VIBE_PATH}}/hooks/scripts/llm-orchestrate.js`
390
-
391
- **Step C: Run GPT + Antigravity in PARALLEL (two separate Bash tool calls at once):**
392
-
393
- ```bash
394
- # GPT review (Bash tool call 1)
395
- node "[LLM_SCRIPT]" gpt orchestrate-json --input "[SCRATCHPAD]/spec-review-input.json"
396
- ```
397
-
398
- ```bash
399
- # Antigravity review (Bash tool call 2 - run in parallel with GPT)
400
- node "[LLM_SCRIPT]" antigravity orchestrate-json --input "[SCRATCHPAD]/spec-review-input.json"
401
- ```
402
-
403
- **🚨 MANDATORY: Replace `[SCRATCHPAD]` with the actual scratchpad directory path.**
404
- **🚨 Replace `[N]` with the current round number (1, 2, 3, ...).**
405
- **🚨 Replace `[LLM_SCRIPT]` with the resolved absolute path from Step B.**
406
- **🚨 Run GPT and Antigravity calls in PARALLEL (two separate Bash tool calls at once).**
407
-
408
- - Round 1: Write SPEC → Run GPT + Antigravity in parallel (full scope) → Cross-validate → Apply fixes → Update SPEC file
409
- - Round 2: Write updated SPEC → Run (P1+P2 scope) → Cross-validate → Apply fixes → Update SPEC file
410
- - Round 3+: Write updated SPEC → Run (P1-only scope) → Cross-validate → Apply fixes → Continue until P1=0 AND no new findings (or convergence detected)
411
-
412
- ### 3.2 Cross-Validation Rules
413
-
414
- | Agreement | Priority | Action |
415
- |-----------|----------|--------|
416
- | Both models agree (100%) | P1 | Auto-apply immediately |
417
- | 1 model only (50%) | P2 | Auto-apply with note |
418
-
419
- **After each round:**
420
-
421
- 1. Cross-validate findings (issues found by 2+ models → P1, single model → P2)
422
- 2. Merge feedback with confidence scores
423
- 3. Auto-apply P1/P2 improvements to SPEC and Feature files (use Edit tool)
424
- 4. Continue to next round with updated SPEC content
425
-
426
- ### 3.3 User Decision Checkpoint (After Convergence)
427
-
428
- **🚨 MANDATORY: Run user judgment checkpoint when the review loop reaches convergence**
429
-
430
- > Type 6 (Iterative-Reasoning) pattern: AI does not decide alone — judges together with the user
431
-
432
- ```
433
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
434
- 🔍 USER CHECKPOINT: Review Results
435
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
436
-
437
- Key changes found across {N} review rounds:
438
-
439
- | # | Change | Source | Confidence |
440
- |---|--------|--------|------------|
441
- | 1 | {change1} | GPT+Antigravity | 100% |
442
- | 2 | {change2} | GPT only | 50% |
443
- | ... | ... | ... | ... |
444
-
445
- Questions:
446
- 1. Are there any changes above you'd like to exclude?
447
- 2. Are there any additional requirements that should be specified?
448
- 3. Do you agree with the technical approach?
449
-
450
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
451
- ```
452
-
453
- **Checkpoint action rules:**
454
-
455
- | Situation | Action |
456
- |-----------|--------|
457
- | `ultrawork` mode | Skip checkpoint, auto-proceed |
458
- | Normal mode | Must wait for user response |
459
- | User requests changes | Apply changes, then re-run checkpoint |
460
- | User approves | Proceed to Step 4 |
461
-
462
- **Output format:**
463
- ```
464
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
465
- 🏁 SPEC RACE REVIEW - Round 1 (scope: P1+P2+P3)
466
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
467
-
468
- Model Results:
469
- | Model | Issues | Duration |
470
- |--------|--------|----------|
471
- | GPT | 2 | 1823ms |
472
- | Antigravity | 2 | 2156ms |
473
-
474
- Cross-Validated Issues:
475
- | Issue | GPT | Antigravity | Codex | Confidence |
476
- |--------------------------|-----|--------|-------|------------|
477
- | Missing retry logic | ✅ | ✅ | ✅ | 100% → P1 |
478
- | Missing rate limiting | ✅ | ✅ | ✅ | 100% → P1 |
479
- | Token refresh unclear | ✅ | ❌ | ❌ | 50% → P2 |
480
-
481
- Auto-applying...
482
- ✅ [P1] Added retry logic (3 attempts, exponential backoff)
483
- ✅ [P1] Added rate limiting (100 req/min)
484
- ✅ [P2] Added token refresh flow
485
-
486
- ✅ Round 1 complete - 3 improvements (2 P1, 1 P2)
487
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
488
-
489
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
490
- 🏁 SPEC RACE REVIEW - Round 2 (scope: P1+P2)
491
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
492
-
493
- Cross-Validated Issues:
494
- | Issue | GPT | Antigravity | Codex | Confidence |
495
- |-----------------------------|-----|--------|-------|------------|
496
- | Concurrent session unclear | ✅ | ❌ | ❌ | 50% → P2 |
497
-
498
- Auto-applying...
499
- ✅ [P2] Added concurrent session policy
500
-
501
- ✅ Round 2 complete - 1 improvement
502
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
503
-
504
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
505
- 🏁 SPEC RACE REVIEW - Round 3 (scope: P1)
506
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
507
-
508
- Cross-Validated Issues: None
509
-
510
- ✅ Converged: P1 = 0 AND no new findings
511
- ✅ Consensus Rate: 100%
512
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
513
- ```
514
-
515
- > If new P1s appear at round 3, the loop continues to round 4, 5, ... until convergence.
516
-
517
- ### Step 3.1: Codex Adversarial Review (When Codex Plugin Is Active)
518
-
519
- > **Activation condition**: Automatically runs when Codex plugin is installed. Skipped if not installed.
520
- > Runs **simultaneously** with GPT+Antigravity Race Review for triple cross-validation.
521
-
522
- Codex adversarial review **challenges the design decisions** in the SPEC:
523
- - Validates whether an alternative architecture would be better
524
- - Checks for over-engineering or under-engineering
525
- - Identifies missing edge cases and non-functional requirements
526
-
527
- **Execution (parallel with GPT+Antigravity Race):**
528
-
529
- ```
530
- /codex:adversarial-review
531
- ```
532
-
533
- **Result integration**: Add Codex column to the Race Review cross-validation table:
534
-
535
- ```markdown
536
- | Issue | GPT | Antigravity | Codex | Confidence |
537
- |-------|-----|--------|-------|------------|
538
- | {issue} | ✅/❌ | ✅/❌ | ✅/❌ | {%} |
539
- ```
540
-
541
- - 2 or more of 3 models agree → **High Confidence**
542
- - Issue found only by Codex → **P2** (requires design perspective review)
543
- - All 3 models agree → **P1** (fix immediately)
544
-
545
- ---
546
-
547
- ## Step 3.5: Review Debate Team (Agent Teams)
548
-
549
- > **Team definition**: See `agents/teams/review-debate-team.md` (SPEC Review context)
550
- > **Condition**: Agent Teams enabled + 2 or more P1/P2 issues found after review loop convergence
551
-
552
- **Activation conditions:**
553
-
554
- | Situation | Action |
555
- |-----------|--------|
556
- | 2 or more P1/P2 issues | Auto-activate |
557
- | 1 or fewer P1/P2 issues | Skip → proceed to Step 4 |
558
- | Agent Teams disabled | Skip → proceed to Step 4 |
559
-
560
- **Result integration:**
561
- - Apply team consensus results to SPEC (P1 applied immediately, P2 added as notes)
562
- - Team member shutdown_request → clean up with TeamDelete
563
- - Proceed to Step 4 (Final Summary)
564
-
565
- ---
566
-
567
- ## Step 4: Final Summary
568
-
569
- ```
570
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
571
- ✅ SPEC REVIEW COMPLETE: {feature-name}
572
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
573
-
574
- Quality Score: 100/100 ✅
575
- Review Rounds: {N} (converged: P1=0, no new findings) ✅
576
- Total Improvements: {M}
577
- ⏱️ Started: {start_time}
578
- ⏱️ Completed: {getCurrentTime result}
579
-
580
- Updated files:
581
- 📋 .vibe/specs/{feature-name}.md (or split folder)
582
- 📋 .vibe/features/{feature-name}.feature (or split folder)
583
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
584
- ```
585
-
586
- ---
587
-
588
- ## Step 5: SPEC Summary for User Review
589
-
590
- **🚨 MANDATORY: Always output this summary before proceeding to `/vibe.run`.**
591
-
592
- After all review rounds, present the finalized SPEC to the user in a readable format:
593
-
594
- ```
595
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
596
- 📋 SPEC SUMMARY: {feature-name}
597
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
598
-
599
- ## Feature Overview
600
- {1-2 line summary of feature purpose from SPEC's <role> and <context>}
601
-
602
- ## Tech Stack
603
- {Tech stack list extracted from <context>}
604
-
605
- ## Implementation Phases
606
- | Phase | Name | Key Tasks |
607
- |-------|------|-----------|
608
- | 1 | {phase name} | {1-line summary of core task} |
609
- | 2 | {phase name} | {1-line summary of core task} |
610
- | ... | ... | ... |
611
-
612
- ## Key Scenarios ({N} total)
613
- {Scenario name list from Feature file}
614
- - Scenario: {name1}
615
- - Scenario: {name2}
616
- - ...
617
-
618
- ## Key Constraints
619
- {3-5 key items from <constraints>}
620
-
621
- ## Acceptance Criteria
622
- {Summary of key items from <acceptance>}
623
-
624
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
625
- If anything above is incorrect, please request changes.
626
- If no issues, proceed with /vibe.run "{feature-name}".
627
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
628
- ```
629
-
630
- **Important:**
631
-
632
- - List ALL Phases, Scenarios, and Constraints from SPEC without omission
633
- - Keep it concise for quick user review
634
- - Wait for user confirmation after review (unless ultrawork mode)
635
- - In ultrawork mode: output summary then auto-proceed to `/vibe.run`
636
-
637
- ### 5.1 Final User Checkpoint
638
-
639
- **🚨 MANDATORY: Final user confirmation before proceeding to `/vibe.run`**
640
-
641
- ```
642
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
643
- ✅ SPEC Review Complete - Final Confirmation
644
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
645
-
646
- Please answer the following questions:
647
-
648
- 1. **Requirements accuracy**: Does the SPEC above accurately describe the originally intended feature?
649
- 2. **Scope appropriateness**: Is the implementation scope neither too large nor too small?
650
- 3. **Tech stack**: Do you agree with the chosen tech stack?
651
- 4. **Priority**: Is the Phase order and priority correct?
652
-
653
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
654
- 💡 Type "ok" or "proceed" to approve / share any changes you'd like made
655
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
656
- ```
657
-
658
- **Why This Checkpoint Matters:**
659
-
660
- > More AI doing more is not always better.
661
- > The best results come when the user thinks and judges together with AI.
662
- > This checkpoint induces the Type 6 (Iterative-Reasoning) pattern.
663
-
664
- ---
665
-
666
- ## Next Step
667
-
668
- ```
669
- /vibe.run "{feature-name}"
670
- ```
671
-
672
- ---
673
-
674
- ## Error Handling
675
-
676
- ### SPEC Not Found
677
- ```
678
- ❌ ERROR: SPEC file not found
679
-
680
- Expected (single): .vibe/specs/{feature-name}.md
681
- Expected (split): .vibe/specs/{feature-name}/_index.md
682
-
683
- Please run /vibe.spec "{feature-name}" first to create the SPEC.
684
- ```
685
-
686
- ### Feature Not Found
687
- ```
688
- ❌ ERROR: Feature file not found
689
-
690
- Expected (single): .vibe/features/{feature-name}.feature
691
- Expected (split): .vibe/features/{feature-name}/_index.feature
692
-
693
- Please run /vibe.spec "{feature-name}" first to create the Feature file.
694
- ```
695
-
696
- ### GPT/Antigravity Call Failed
697
- ```
698
- ⚠️ WARNING: {GPT|Antigravity} call failed
699
-
700
- Error: {error message}
701
-
702
- Continuing with {other model} results only...
703
- ```
704
-
705
- ---
706
-
707
- ## Quick Mode
708
-
709
- For faster iteration (1 round only): pass `--quick` flag when invoking the skill (or via `/vibe.spec "feature-name" --quick` orchestrator).
710
-
711
- ---
712
-
713
- ARGUMENTS: $ARGUMENTS
714
-
715
- **File Detection (execute before Step 1):**
716
-
717
- ```
718
- Feature name: $ARGUMENTS
719
-
720
- 1. Check split folder: .vibe/specs/$ARGUMENTS/_index.md
721
- - If exists → Split mode (read all files in folder)
722
- 2. Check single file: .vibe/specs/$ARGUMENTS.md
723
- - If exists → Single mode
724
- 3. Neither exists → Show error with both expected paths
725
- ```