@su-record/vibe 3.2.0 → 3.2.2

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 (286) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.en.md +7 -6
  3. package/README.md +8 -5
  4. package/dist/__tests__/skill-namespace.test.d.ts +2 -0
  5. package/dist/__tests__/skill-namespace.test.d.ts.map +1 -0
  6. package/dist/__tests__/skill-namespace.test.js +60 -0
  7. package/dist/__tests__/skill-namespace.test.js.map +1 -0
  8. package/dist/__tests__/wiring-integrity.test.js +5 -5
  9. package/dist/__tests__/wiring-integrity.test.js.map +1 -1
  10. package/dist/cli/design/design-md-parser.test.js +2 -2
  11. package/dist/cli/design/design-md-parser.test.js.map +1 -1
  12. package/dist/cli/generate-release-notes.d.ts +3 -0
  13. package/dist/cli/generate-release-notes.d.ts.map +1 -0
  14. package/dist/cli/generate-release-notes.js +47 -0
  15. package/dist/cli/generate-release-notes.js.map +1 -0
  16. package/dist/cli/postinstall/constants.d.ts +6 -6
  17. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  18. package/dist/cli/postinstall/constants.js +114 -46
  19. package/dist/cli/postinstall/constants.js.map +1 -1
  20. package/dist/cli/postinstall/fs-utils.d.ts +1 -0
  21. package/dist/cli/postinstall/fs-utils.d.ts.map +1 -1
  22. package/dist/cli/postinstall/fs-utils.js +25 -0
  23. package/dist/cli/postinstall/fs-utils.js.map +1 -1
  24. package/dist/cli/postinstall/fs-utils.test.js +46 -11
  25. package/dist/cli/postinstall/fs-utils.test.js.map +1 -1
  26. package/dist/cli/postinstall/main.d.ts.map +1 -1
  27. package/dist/cli/postinstall/main.js +3 -2
  28. package/dist/cli/postinstall/main.js.map +1 -1
  29. package/dist/cli/setup/Provisioner.d.ts.map +1 -1
  30. package/dist/cli/setup/Provisioner.js +23 -7
  31. package/dist/cli/setup/Provisioner.js.map +1 -1
  32. package/dist/cli/utils/cli-detector.d.ts +3 -3
  33. package/dist/cli/utils/cli-detector.d.ts.map +1 -1
  34. package/dist/cli/utils/cli-detector.js +7 -27
  35. package/dist/cli/utils/cli-detector.js.map +1 -1
  36. package/dist/cli/utils/cli-detector.test.js +3 -2
  37. package/dist/cli/utils/cli-detector.test.js.map +1 -1
  38. package/dist/infra/lib/llm-availability.d.ts.map +1 -1
  39. package/dist/infra/lib/llm-availability.js +2 -10
  40. package/dist/infra/lib/llm-availability.js.map +1 -1
  41. package/dist/infra/lib/llm-availability.test.js +3 -2
  42. package/dist/infra/lib/llm-availability.test.js.map +1 -1
  43. package/dist/infra/lib/utils.d.ts +6 -0
  44. package/dist/infra/lib/utils.d.ts.map +1 -1
  45. package/dist/infra/lib/utils.js +33 -0
  46. package/dist/infra/lib/utils.js.map +1 -1
  47. package/dist/tests/curated-release-notes.test.d.ts +2 -0
  48. package/dist/tests/curated-release-notes.test.d.ts.map +1 -0
  49. package/dist/tests/curated-release-notes.test.js +106 -0
  50. package/dist/tests/curated-release-notes.test.js.map +1 -0
  51. package/dist/tools/convention/validateCodeQuality.d.ts +1 -0
  52. package/dist/tools/convention/validateCodeQuality.d.ts.map +1 -1
  53. package/dist/tools/convention/validateCodeQuality.js +3 -2
  54. package/dist/tools/convention/validateCodeQuality.js.map +1 -1
  55. package/dist/tools/index.d.ts +2 -2
  56. package/dist/tools/index.d.ts.map +1 -1
  57. package/dist/tools/index.js +2 -0
  58. package/dist/tools/index.js.map +1 -1
  59. package/dist/tools/release/releaseNotes.d.ts +21 -0
  60. package/dist/tools/release/releaseNotes.d.ts.map +1 -0
  61. package/dist/tools/release/releaseNotes.js +105 -0
  62. package/dist/tools/release/releaseNotes.js.map +1 -0
  63. package/dist/tools/spec/executionPacket.d.ts +101 -0
  64. package/dist/tools/spec/executionPacket.d.ts.map +1 -0
  65. package/dist/tools/spec/executionPacket.js +394 -0
  66. package/dist/tools/spec/executionPacket.js.map +1 -0
  67. package/dist/tools/spec/executionPacket.test.d.ts +2 -0
  68. package/dist/tools/spec/executionPacket.test.d.ts.map +1 -0
  69. package/dist/tools/spec/executionPacket.test.js +360 -0
  70. package/dist/tools/spec/executionPacket.test.js.map +1 -0
  71. package/dist/tools/spec/index.d.ts +2 -0
  72. package/dist/tools/spec/index.d.ts.map +1 -1
  73. package/dist/tools/spec/index.js +2 -0
  74. package/dist/tools/spec/index.js.map +1 -1
  75. package/dist/tools/spec/specGenerator.d.ts +12 -0
  76. package/dist/tools/spec/specGenerator.d.ts.map +1 -1
  77. package/dist/tools/spec/specGenerator.js +96 -14
  78. package/dist/tools/spec/specGenerator.js.map +1 -1
  79. package/dist/tools/spec/specGenerator.test.d.ts +2 -0
  80. package/dist/tools/spec/specGenerator.test.d.ts.map +1 -0
  81. package/dist/tools/spec/specGenerator.test.js +130 -0
  82. package/dist/tools/spec/specGenerator.test.js.map +1 -0
  83. package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
  84. package/hooks/scripts/__tests__/llm-orchestrate-antigravity.test.js +5 -2
  85. package/hooks/scripts/__tests__/run-ledger-verify-required.test.js +7 -2
  86. package/hooks/scripts/__tests__/run-ledger.test.js +161 -10
  87. package/hooks/scripts/__tests__/utils-npm-root.test.js +5 -4
  88. package/hooks/scripts/lib/run-ledger.js +123 -21
  89. package/hooks/scripts/verify-ledger.js +23 -3
  90. package/package.json +2 -2
  91. package/skills/{agents-md → vibe.agents-md}/SKILL.md +1 -1
  92. package/skills/{brand-assets → vibe.brand-assets}/SKILL.md +1 -1
  93. package/skills/{capability-loop → vibe.capability-loop}/SKILL.md +1 -1
  94. package/skills/{chub-usage → vibe.chub-usage}/SKILL.md +1 -1
  95. package/skills/vibe.clone/SKILL.md +295 -3
  96. package/skills/{commerce-patterns → vibe.commerce-patterns}/SKILL.md +1 -1
  97. package/skills/{commit-push-pr → vibe.commit-push-pr}/SKILL.md +2 -2
  98. package/skills/{context7-usage → vibe.context7-usage}/SKILL.md +1 -1
  99. package/skills/vibe.contract/SKILL.md +162 -1
  100. package/skills/{create-prd → vibe.create-prd}/SKILL.md +2 -2
  101. package/skills/{design-refine → vibe.design-refine}/SKILL.md +1 -1
  102. package/skills/{design-review → vibe.design-review}/SKILL.md +1 -1
  103. package/skills/{design-teach → vibe.design-teach}/SKILL.md +1 -1
  104. package/skills/{devlog → vibe.devlog}/SKILL.md +1 -1
  105. package/skills/vibe.docs/SKILL.md +256 -1
  106. package/skills/{e2e-commerce → vibe.e2e-commerce}/SKILL.md +1 -1
  107. package/skills/vibe.educational-content/SKILL.md +157 -0
  108. package/skills/vibe.educational-content/references/learning-design.md +81 -0
  109. package/skills/vibe.educational-content/references/output-patterns.md +109 -0
  110. package/skills/vibe.educational-content/references/source-method.md +40 -0
  111. package/skills/{event-comms → vibe.event-comms}/SKILL.md +1 -1
  112. package/skills/{event-ops → vibe.event-ops}/SKILL.md +1 -1
  113. package/skills/{event-planning → vibe.event-planning}/SKILL.md +1 -1
  114. package/skills/vibe.figma/SKILL.md +473 -21
  115. package/skills/vibe.figma/references/branch-phases.md +1 -1
  116. package/skills/{git-worktree → vibe.git-worktree}/SKILL.md +1 -1
  117. package/skills/{handoff → vibe.handoff}/SKILL.md +1 -1
  118. package/skills/{parallel-research → vibe.parallel-research}/SKILL.md +2 -2
  119. package/skills/{presentation → vibe.presentation}/SKILL.md +1 -1
  120. package/skills/{prioritization-frameworks → vibe.prioritization}/SKILL.md +2 -2
  121. package/skills/{priority-todos → vibe.priority-todos}/SKILL.md +1 -1
  122. package/skills/{vercel-react-best-practices → vibe.react-best-practices}/SKILL.md +1 -1
  123. package/skills/vibe.regress/SKILL.md +182 -2
  124. package/skills/vibe.run/SKILL.md +417 -7
  125. package/skills/{arch-guard → vibe.run/internal/arch-guard}/templates/violation-report.md +1 -1
  126. package/skills/{seo-checklist → vibe.seo-checklist}/SKILL.md +1 -1
  127. package/skills/vibe.spec/SKILL.md +122 -1
  128. package/skills/vibe.test/SKILL.md +138 -2
  129. package/skills/{tool-fallback → vibe.tool-fallback}/SKILL.md +1 -1
  130. package/skills/vibe.trace/SKILL.md +3 -3
  131. package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/SKILL.md +6 -6
  132. package/skills/{user-personas → vibe.user-personas}/SKILL.md +2 -2
  133. package/skills/vibe.verify/SKILL.md +12 -6
  134. package/skills/{video-production → vibe.video-production}/SKILL.md +1 -1
  135. package/vibe/rules/loop-contract.md +7 -3
  136. package/vibe/templates/spec-template.md +32 -5
  137. package/skills/arch-guard/SKILL.md +0 -183
  138. package/skills/clone/SKILL.md +0 -296
  139. package/skills/contract/SKILL.md +0 -165
  140. package/skills/docs/SKILL.md +0 -259
  141. package/skills/exec-plan/SKILL.md +0 -151
  142. package/skills/figma/SKILL.md +0 -456
  143. package/skills/regress/SKILL.md +0 -184
  144. package/skills/restraint/SKILL.md +0 -72
  145. package/skills/spec/SKILL.md +0 -118
  146. package/skills/test/SKILL.md +0 -140
  147. /package/skills/{agents-md → vibe.agents-md}/rubrics/what-to-keep.md +0 -0
  148. /package/skills/{agents-md → vibe.agents-md}/templates/agents-md.md +0 -0
  149. /package/skills/{agents-md → vibe.agents-md}/templates/claude-md.md +0 -0
  150. /package/skills/{brand-assets → vibe.brand-assets}/rubrics/asset-checklist.md +0 -0
  151. /package/skills/{brand-assets → vibe.brand-assets}/templates/brand-guide.md +0 -0
  152. /package/skills/{capability-loop → vibe.capability-loop}/agents/capability-designer.md +0 -0
  153. /package/skills/{capability-loop → vibe.capability-loop}/agents/failure-analyst.md +0 -0
  154. /package/skills/{capability-loop → vibe.capability-loop}/agents/implementer.md +0 -0
  155. /package/skills/{capability-loop → vibe.capability-loop}/agents/tester.md +0 -0
  156. /package/skills/{capability-loop → vibe.capability-loop}/templates/capability-spec.md +0 -0
  157. /package/skills/{capability-loop → vibe.capability-loop}/templates/failure-analysis.md +0 -0
  158. /package/skills/{clone → vibe.clone}/references/capture-rules.md +0 -0
  159. /package/skills/{clone → vibe.clone}/references/legal-and-error-recovery.md +0 -0
  160. /package/skills/{clone → vibe.clone}/references/refine-rules.md +0 -0
  161. /package/skills/{clone → vibe.clone}/references/scaffold-phases.md +0 -0
  162. /package/skills/{clone → vibe.clone}/references/setup-and-layout.md +0 -0
  163. /package/skills/{commerce-patterns → vibe.commerce-patterns}/rubrics/checkout-flow.md +0 -0
  164. /package/skills/{commerce-patterns → vibe.commerce-patterns}/templates/product-schema.md +0 -0
  165. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/change-analyzer.md +0 -0
  166. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/message-writer.md +0 -0
  167. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/pr-writer.md +0 -0
  168. /package/skills/{commit-push-pr → vibe.commit-push-pr}/agents/reviewer.md +0 -0
  169. /package/skills/{commit-push-pr → vibe.commit-push-pr}/rubrics/commit-message.md +0 -0
  170. /package/skills/{commit-push-pr → vibe.commit-push-pr}/templates/pr-body.md +0 -0
  171. /package/skills/{context7-usage → vibe.context7-usage}/rubrics/when-to-use.md +0 -0
  172. /package/skills/{create-prd → vibe.create-prd}/agents/edge-case-finder.md +0 -0
  173. /package/skills/{create-prd → vibe.create-prd}/agents/prioritizer.md +0 -0
  174. /package/skills/{create-prd → vibe.create-prd}/agents/requirements-writer.md +0 -0
  175. /package/skills/{create-prd → vibe.create-prd}/agents/researcher.md +0 -0
  176. /package/skills/{create-prd → vibe.create-prd}/agents/reviewer.md +0 -0
  177. /package/skills/{create-prd → vibe.create-prd}/frameworks/jobs-to-be-done.md +0 -0
  178. /package/skills/{create-prd → vibe.create-prd}/frameworks/rice-scoring.md +0 -0
  179. /package/skills/{create-prd → vibe.create-prd}/orchestrator.md +0 -0
  180. /package/skills/{create-prd → vibe.create-prd}/rubrics/completeness.md +0 -0
  181. /package/skills/{create-prd → vibe.create-prd}/templates/prd.md +0 -0
  182. /package/skills/{design-refine → vibe.design-refine}/rubrics/polish-checklist.md +0 -0
  183. /package/skills/{design-refine → vibe.design-refine}/rubrics/token-naming.md +0 -0
  184. /package/skills/{design-refine → vibe.design-refine}/templates/design-system.md +0 -0
  185. /package/skills/{design-refine → vibe.design-refine}/templates/polish-report.md +0 -0
  186. /package/skills/{design-refine → vibe.design-refine}/templates/token-audit.md +0 -0
  187. /package/skills/{design-review → vibe.design-review}/agents/a11y-auditor.md +0 -0
  188. /package/skills/{design-review → vibe.design-review}/agents/performance-auditor.md +0 -0
  189. /package/skills/{design-review → vibe.design-review}/agents/responsive-auditor.md +0 -0
  190. /package/skills/{design-review → vibe.design-review}/agents/scorer.md +0 -0
  191. /package/skills/{design-review → vibe.design-review}/agents/slop-detector.md +0 -0
  192. /package/skills/{design-review → vibe.design-review}/frameworks/core-web-vitals.md +0 -0
  193. /package/skills/{design-review → vibe.design-review}/frameworks/wcag-checklist.md +0 -0
  194. /package/skills/{design-review → vibe.design-review}/orchestrator.md +0 -0
  195. /package/skills/{design-review → vibe.design-review}/rubrics/ai-slop-patterns.md +0 -0
  196. /package/skills/{design-review → vibe.design-review}/rubrics/scoring.md +0 -0
  197. /package/skills/{design-review → vibe.design-review}/rubrics/ux-heuristics.md +0 -0
  198. /package/skills/{design-review → vibe.design-review}/templates/critique-report.md +0 -0
  199. /package/skills/{design-review → vibe.design-review}/templates/report.md +0 -0
  200. /package/skills/{design-teach → vibe.design-teach}/rubrics/brand-personality.md +0 -0
  201. /package/skills/{design-teach → vibe.design-teach}/templates/design-context.json +0 -0
  202. /package/skills/{docs → vibe.docs}/references/api-docs-changelog.md +0 -0
  203. /package/skills/{docs → vibe.docs}/references/codemaps-output.md +0 -0
  204. /package/skills/{docs → vibe.docs}/references/diagram-spec.md +0 -0
  205. /package/skills/{docs → vibe.docs}/templates/architecture.md +0 -0
  206. /package/skills/{docs → vibe.docs}/templates/behavioral-principles.md +0 -0
  207. /package/skills/{docs → vibe.docs}/templates/readme.md +0 -0
  208. /package/skills/{docs → vibe.docs}/templates/release-notes.md +0 -0
  209. /package/skills/{e2e-commerce → vibe.e2e-commerce}/templates/test-scenarios.md +0 -0
  210. /package/skills/{event-comms → vibe.event-comms}/templates/email-invite.md +0 -0
  211. /package/skills/{event-comms → vibe.event-comms}/templates/sns-post.md +0 -0
  212. /package/skills/{event-ops → vibe.event-ops}/rubrics/contingency.md +0 -0
  213. /package/skills/{event-ops → vibe.event-ops}/templates/d-day-checklist.md +0 -0
  214. /package/skills/{event-planning → vibe.event-planning}/rubrics/timeline.md +0 -0
  215. /package/skills/{event-planning → vibe.event-planning}/templates/event-plan.md +0 -0
  216. /package/skills/{figma → vibe.figma}/rubrics/conversion-rules.md +0 -0
  217. /package/skills/{figma → vibe.figma}/rubrics/css-mapping.md +0 -0
  218. /package/skills/{figma → vibe.figma}/rubrics/extraction-checklist.md +0 -0
  219. /package/skills/{figma → vibe.figma}/rubrics/image-rules.md +0 -0
  220. /package/skills/{figma → vibe.figma}/templates/component-index.md +0 -0
  221. /package/skills/{figma → vibe.figma}/templates/component-spec.md +0 -0
  222. /package/skills/{figma → vibe.figma}/templates/component.md +0 -0
  223. /package/skills/{figma → vibe.figma}/templates/figma-handoff.md +0 -0
  224. /package/skills/{figma → vibe.figma}/templates/remapped-tree.md +0 -0
  225. /package/skills/{git-worktree → vibe.git-worktree}/rubrics/when-to-use.md +0 -0
  226. /package/skills/{handoff → vibe.handoff}/agents/context-summarizer.md +0 -0
  227. /package/skills/{handoff → vibe.handoff}/agents/document-writer.md +0 -0
  228. /package/skills/{handoff → vibe.handoff}/agents/state-collector.md +0 -0
  229. /package/skills/{handoff → vibe.handoff}/agents/verifier.md +0 -0
  230. /package/skills/{handoff → vibe.handoff}/rubrics/completeness.md +0 -0
  231. /package/skills/{handoff → vibe.handoff}/templates/handoff.md +0 -0
  232. /package/skills/{parallel-research → vibe.parallel-research}/agents/best-practices.md +0 -0
  233. /package/skills/{parallel-research → vibe.parallel-research}/agents/codebase-patterns.md +0 -0
  234. /package/skills/{parallel-research → vibe.parallel-research}/agents/framework-docs.md +0 -0
  235. /package/skills/{parallel-research → vibe.parallel-research}/agents/security-advisory.md +0 -0
  236. /package/skills/{parallel-research → vibe.parallel-research}/agents/synthesizer.md +0 -0
  237. /package/skills/{parallel-research → vibe.parallel-research}/experts/best-practices.md +0 -0
  238. /package/skills/{parallel-research → vibe.parallel-research}/experts/codebase-patterns.md +0 -0
  239. /package/skills/{parallel-research → vibe.parallel-research}/experts/framework-docs.md +0 -0
  240. /package/skills/{parallel-research → vibe.parallel-research}/experts/security-advisory.md +0 -0
  241. /package/skills/{parallel-research → vibe.parallel-research}/orchestrator.md +0 -0
  242. /package/skills/{parallel-research → vibe.parallel-research}/templates/awesome-list.md +0 -0
  243. /package/skills/{parallel-research → vibe.parallel-research}/templates/paper.md +0 -0
  244. /package/skills/{parallel-research → vibe.parallel-research}/templates/synthesis.md +0 -0
  245. /package/skills/{presentation → vibe.presentation}/references/style-presets.md +0 -0
  246. /package/skills/{prioritization-frameworks → vibe.prioritization}/rubrics/frameworks.md +0 -0
  247. /package/skills/{prioritization-frameworks → vibe.prioritization}/templates/scoring-matrix.md +0 -0
  248. /package/skills/{priority-todos → vibe.priority-todos}/rubrics/prioritization.md +0 -0
  249. /package/skills/{priority-todos → vibe.priority-todos}/templates/todo-board.md +0 -0
  250. /package/skills/{vercel-react-best-practices → vibe.react-best-practices}/rubrics/performance.md +0 -0
  251. /package/skills/{vercel-react-best-practices → vibe.react-best-practices}/rubrics/server-components.md +0 -0
  252. /package/skills/{regress → vibe.regress}/templates/bug.md +0 -0
  253. /package/skills/{regress → vibe.regress}/templates/test-jest.md +0 -0
  254. /package/skills/{regress → vibe.regress}/templates/test-vitest.md +0 -0
  255. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/detector.md +0 -0
  256. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/reporter.md +0 -0
  257. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/rule-generator.md +0 -0
  258. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/agents/violation-checker.md +0 -0
  259. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/frameworks/clean-architecture.md +0 -0
  260. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/frameworks/solid.md +0 -0
  261. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/scripts/check-boundaries.js +0 -0
  262. /package/skills/{arch-guard → vibe.run/internal/arch-guard}/templates/arch-rules.json +0 -0
  263. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/decomposer.md +0 -0
  264. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/dependency-mapper.md +0 -0
  265. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/estimator.md +0 -0
  266. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/agents/validator.md +0 -0
  267. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/orchestrator.md +0 -0
  268. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/rubrics/complexity-scoring.md +0 -0
  269. /package/skills/{exec-plan → vibe.run/internal/exec-plan}/templates/plan.md +0 -0
  270. /package/skills/{seo-checklist → vibe.seo-checklist}/frameworks/structured-data.md +0 -0
  271. /package/skills/{seo-checklist → vibe.seo-checklist}/rubrics/content-seo.md +0 -0
  272. /package/skills/{seo-checklist → vibe.seo-checklist}/rubrics/technical-seo.md +0 -0
  273. /package/skills/{tool-fallback → vibe.tool-fallback}/rubrics/fallback-chain.md +0 -0
  274. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/color-and-contrast.md +0 -0
  275. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/interaction-design.md +0 -0
  276. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/motion-design.md +0 -0
  277. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/responsive-design.md +0 -0
  278. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/spatial-design.md +0 -0
  279. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/typography.md +0 -0
  280. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/reference/ux-writing.md +0 -0
  281. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/rubrics/interaction-states.md +0 -0
  282. /package/skills/{ui-ux-pro-max → vibe.ui-ux-pro-max}/rubrics/responsive-breakpoints.md +0 -0
  283. /package/skills/{user-personas → vibe.user-personas}/rubrics/research-methods.md +0 -0
  284. /package/skills/{user-personas → vibe.user-personas}/templates/persona.md +0 -0
  285. /package/skills/{video-production → vibe.video-production}/rubrics/quality-checklist.md +0 -0
  286. /package/skills/{video-production → vibe.video-production}/templates/production-plan.md +0 -0
@@ -1,72 +0,0 @@
1
- ---
2
- name: restraint
3
- user-invocable: false
4
- invocation: [auto]
5
- tier: core
6
- description: "Restraint gate — block premature abstraction and premature optimization. Escalate the YAGNI ladder only on demonstrated need; optimize only on measured evidence. Merges yagni-ladder + rob-pike."
7
- triggers: [premature optimization, premature abstraction, abstraction layer, helper module, utility class, wrapper class, manager class, config system, cache layer, parallelize, benchmark]
8
- priority: 60
9
- ---
10
-
11
- # Restraint — Don't Write It, Don't Tune It (Yet)
12
-
13
- Two constraints, one gate:
14
-
15
- - **No premature code.** New abstractions must be *pulled* by a demonstrated
16
- need, never pushed by "might need it later." Once the code exists, deleting
17
- it costs more than never writing it.
18
- - **No premature optimization.** Performance work must be *pulled* by a
19
- measurement, never by a hunch.
20
-
21
- ## The YAGNI Ladder (code axis)
22
-
23
- Satisfy the need at the **highest** rung that covers it; lower rungs are
24
- blocked while a higher one applies:
25
-
26
- 1. **Not needed** — the requirement doesn't ask for it → don't build it
27
- 2. **Stdlib / built-ins** already do it (`crypto`, `Intl`, `pathlib`, …)
28
- 3. **Native platform feature** does it (`<input type="date">`, CSS `:has()`, DB constraints)
29
- 4. **Already-installed dependency** covers it — check the lockfile, don't guess
30
- 5. **One line** — a single expression; no new file, no class
31
- 6. **Minimal code** — only now, and nothing for "later"
32
-
33
- Tie-break: native beats a one-liner; stdlib beats a dependency. Generalize
34
- only when a *second* caller exists.
35
-
36
- ## Pike's Rules (optimization axis)
37
-
38
- - You can't tell where a program spends its time — bottlenecks surprise.
39
- **Measure; don't guess.**
40
- - Don't tune until one part *measurably* overwhelms the rest.
41
- - Fancy algorithms are slow when n is small — and n is usually small.
42
- Ask "what's n?" before "what's the Big-O?"
43
- - Simple algorithms + the right data structures beat clever code. Data dominates.
44
-
45
- Optimization is justified only when ALL hold: a measured bottleneck exists →
46
- it dominates runtime → the fix is the simplest change addressing it → you
47
- re-measure after.
48
-
49
- ## Blocked Impulses
50
-
51
- | Impulse | Constraint | Counter |
52
- |---|---|---|
53
- | helper / utility / wrapper / manager class | rungs 1–5 | a stdlib call or one line usually suffices |
54
- | config system for one value | rung 1 | a `const` is the config |
55
- | generic `Processor(strategy, validator…)` | rung 1 | one concrete function until a second caller exists |
56
- | "add a cache here" / "parallelize this" | measure first | is this path even hot? Often it's I/O |
57
- | swap in a B-tree / trie / skip list | what's n? | O(n²) with n=100 is microseconds |
58
- | "this loop looks slow" | measure first | the bottleneck is probably elsewhere |
59
-
60
- ## Overrides — Restraint Never Erodes These
61
-
62
- 1. **Security and trust-boundary work are requirements**, not optional
63
- complexity. Input validation, auth checks, escaping stay in — "one line"
64
- is no excuse to drop them.
65
- 2. **Deliberate simplifications get a comment + upgrade path**, so the next
66
- reader sees a *choice*, not an oversight:
67
-
68
- ```ts
69
- // Global lock is enough at current throughput.
70
- // Switch to per-account locking if write contention shows up.
71
- const lock = new Mutex();
72
- ```
@@ -1,118 +0,0 @@
1
- ---
2
- name: spec
3
- description: 단일 패스 SPEC 작성 본체 — 자연어 요구사항(+첨부) → 필요할 때만 인라인 명확화 질문 → .vibe/specs/{feature}.md + .vibe/features/{feature}.feature 를 한 번에 생성 → 1회 셀프 리뷰 → SPEC 승인(유일한 의무 게이트).
4
- when_to_use: /vibe.spec 진입점 또는 /vibe 파이프라인의 spec 단계에서 호출. 직접 호출 금지 — /vibe.spec 사용.
5
- user-invocable: false
6
- tier: core
7
- ---
8
-
9
- # spec — Single-Pass SPEC
10
-
11
- 자연어 요구사항 하나를 받아 **한 번의 패스로** 실행 가능한 SPEC을 만든다. 별도의 interview → plan → review 단계는 없다 — 질문이 필요하면 이 패스 안에서 인라인으로 묻고, 리뷰는 셀프 리뷰 1회로 끝낸다. 완성된 SPEC의 승인이 loop-contract 가 정의하는 **유일한 의무적 사람 개입 지점**이다.
12
-
13
- > 루프 시맨틱 SSOT: `vibe/rules/loop-contract.md`. SPEC = ANCHOR 아티팩트, Done Criteria = JUDGE 게이트.
14
-
15
- ## Input
16
-
17
- | 입력 | 처리 |
18
- |---|---|
19
- | 자연어 요구사항 | 그대로 SPEC 패스의 주 입력 |
20
- | 📎 첨부 (md/txt/pdf/이미지 등) | Read 도구로 분석 후 요구사항에 병합 |
21
- | 파일 경로 인자 (PRD 등) | 존재 확인 후 Read — 첨부와 동일 취급 |
22
- | **레거시 아티팩트** `.vibe/interviews/{feature}.md`, `.vibe/plans/{feature}.md` | 존재하면 **입력 컨텍스트로만** 읽는다. 절대 요구하거나 재생성하지 않는다 — 없어도 정상 경로 |
23
-
24
- ## Process
25
-
26
- ### 1. Git branch + pointer
27
-
28
- - `git branch --show-current` — `main`/`master` 이면 `git checkout -b feature/{feature-name}` (소문자·하이픈). feature 브랜치면 그대로 진행.
29
- - feature 이름 확정 즉시 `.vibe/.last-feature` 에 이름 한 줄 기록 (값이 같으면 no-op).
30
-
31
- ### 2. Project context
32
-
33
- - `.vibe/config.json` 읽기 — `references.languages[]` 의 스택 가이드, `stacks` 확인.
34
- - 기존 코드 파악이 필요하면 네이티브 Explore 서브에이전트에 위임 (main session 에서 프로젝트 파일을 훑지 않는다):
35
-
36
- ```text
37
- Task(subagent_type="Explore",
38
- prompt="Find existing implementations related to [FEATURE]. Return: tech stack, relevant files, patterns. Under 200 tokens.")
39
- ```
40
-
41
- ### 3. Clarify — 진짜 모호할 때만
42
-
43
- 별도 인터뷰 단계가 아니다. 요구사항·첨부·레거시 아티팩트·코드베이스 컨텍스트로 답을 합리적으로 정할 수 있으면 **묻지 않는다**. 다음 조건을 모두 만족할 때만 질문한다:
44
-
45
- - 답에 따라 Done Criteria 나 구현 방향이 실제로 갈라진다 (인증 방식, 데이터 모델의 필수 필드, 외부 연동 여부 등)
46
- - 합리적 기본값을 SPEC 의 Assumptions 로 명시하는 것으로 대체할 수 없다
47
-
48
- 질문할 때는 **한 번에 묶어서** (번호 목록, 최대 5개), 각 질문에 제안 기본값을 붙인다. `automationLevel: autonomous` 면 질문 없이 기본값을 채택하고 전부 SPEC 의 Assumptions 섹션에 기록한다.
49
-
50
- 사소한 값(타임아웃, 페이지 크기, 재시도 횟수 등)은 묻지 말고 상식적 기본값을 채택 + Assumptions 에 기록.
51
-
52
- ### 4. Write SPEC — one pass
53
-
54
- `vibe/templates/spec-template.md` 구조로 `.vibe/specs/{feature-name}.md` 를 작성한다. 핵심 요건:
55
-
56
- - **Overview / Goal** — 무엇을, 왜. 1-3 문장.
57
- - **Done Criteria** — 결정론적 게이트만. 각 항목은 "명령/관찰로 pass·fail 판정 가능"해야 한다 (테스트 exit code, 빌드 성공, 특정 동작 관찰). "잘 동작한다" 류 서술 금지 — 이것이 루프의 JUDGE 입력이 된다.
58
- - **Scenarios** — Given-When-Then. Happy path + 주요 edge case. 각 시나리오는 Done Criteria 중 하나에 매핑.
59
- - **Out of Scope** — 이번에 하지 않는 것을 명시 (비어 있으면 스코프 팽창 신호).
60
- - **Assumptions** — 3단계에서 채택한 기본값 전부.
61
- - **API Contract** (해당 시에만) — 엔드포인트/요청/응답 형태. 이 섹션이 있으면 이후 `/vibe.contract` 가 drift 를 검사한다.
62
-
63
- 이어서 `.vibe/features/{feature-name}.feature` 를 생성한다: 시나리오 섹션을 gherkin 으로 변환 (Done Criteria ↔ Scenario 매핑 유지). `/vibe.run` 이 이 파일을 구현·검증 단위로 사용한다.
64
-
65
- **Large scope** (5+ phases 또는 15+ 신규 파일 또는 4+ 독립 기능): 폴더 분할 — `.vibe/specs/{feature}/_index.md` + `phase-N-{name}.md`, feature 파일도 동일 구조로 매칭. 조용히 분할하고 결과만 보고한다.
66
-
67
- **파일 규칙**: `.vibe/` 밖에 파일을 만들지 않는다. SPEC 파일마다 매칭되는 Feature 파일이 있어야 한다.
68
-
69
- ### 5. Self-review — once
70
-
71
- 작성 직후, 아래 체크리스트로 자기 SPEC 을 **1회** 점검하고 걸리는 항목을 즉시 고친다. 외부 LLM 리뷰 없음, 수렴 루프 없음 — 한 번 고치면 끝.
72
-
73
- - [ ] 모든 Done Criteria 가 명령/관찰로 판정 가능한가 (모델 자기 보고가 아닌)
74
- - [ ] 모든 시나리오가 Done Criteria 에 매핑되는가 (고아 시나리오 없음)
75
- - [ ] 수치가 필요한 곳에 수치가 있는가 (제한·타임아웃·크기 — 없으면 기본값 + Assumptions)
76
- - [ ] Out of Scope 가 비어 있지 않은가
77
- - [ ] 요구사항에 있던 것 중 SPEC 에서 빠진 것이 없는가
78
-
79
- ### 6. Approval — the single gate
80
-
81
- SPEC 요약(Goal, Done Criteria, 시나리오 수, Out of Scope, 열린 Assumptions)을 제시하고 승인을 받는다:
82
-
83
- ```
84
- 📋 SPEC 준비 완료: {feature-name}
85
- .vibe/specs/{feature-name}.md · .vibe/features/{feature-name}.feature
86
-
87
- Goal: {1줄}
88
- Done Criteria: {N}개 (전부 결정론 게이트)
89
- Scenarios: {M}개 · Out of Scope: {K}항목
90
- Assumptions: {요약 또는 "없음"}
91
-
92
- 승인하면 이 SPEC 이 루프의 Done 정의가 됩니다.
93
- [1] 승인 → 구현 진행 [2] 수정 요청 [3] 중단
94
- ```
95
-
96
- - 수정 요청 → 반영 후 재제시 (사용자 주도 반복 — 자동 루프 아님).
97
- - `automationLevel: autonomous` → 승인 생략, 요약만 출력하고 진행.
98
- - 승인 후 SPEC 변경은 코드 변경과 같은 커밋으로 (SPEC-First — `vibe.run` 참조).
99
-
100
- ## Output
101
-
102
- | 파일 | 경로 |
103
- |---|---|
104
- | SPEC | `.vibe/specs/{feature-name}.md` (또는 분할 폴더) |
105
- | Feature (BDD) | `.vibe/features/{feature-name}.feature` (또는 분할 폴더) |
106
- | Pointer | `.vibe/.last-feature` |
107
-
108
- 승인된 SPEC 은 루프의 ANCHOR 로 쓰인다: `/vibe.run` 이 시나리오 단위로 구현·검증하고, `/vibe.verify` 가 Done Criteria 를 판정해 `.vibe/metrics/run-ledger.json` 의 `verifyPassed` 를 기록한다. 게이트 통과 여부는 항상 run-ledger·테스트 exit code 가 판정한다.
109
-
110
- ## Next Step
111
-
112
- ```
113
- /vibe.run "{feature-name}"
114
- ```
115
-
116
- ---
117
-
118
- ARGUMENTS: $ARGUMENTS
@@ -1,140 +0,0 @@
1
- ---
2
- name: test
3
- description: vibe 자가검진 본체 — 대상 harness(~/.claude/~/.codex)의 모든 entry skill/skill/hook/agent 프로빙 → pass/fail 리포트 → ~/.vibe/test-reports/.
4
- when_to_use: vibe.test 진입점에서 체인 호출. 직접 호출 금지.
5
- user-invocable: false
6
- tier: core
7
- ---
8
-
9
- # test — Self-Test
10
-
11
- Probe every shipped vibe surface in one install dir and emit a pass/fail report.
12
-
13
- ## Why this exists
14
-
15
- When vibe ships new entry skills, skills, hooks, or agents, one side (CC or Codex) can end up out of sync with the other, frontmatter can drift, and hook tests can silently break. `vibe.test` is the single mechanical check: does every surface in the target install actually load and pass its own tests?
16
-
17
- ## Target harness
18
-
19
- The argument selects which install dir to probe:
20
-
21
- | Arg | Probed dir |
22
- |---|---|
23
- | (empty) | current harness — CC: `~/.claude/`, Codex: `~/.codex/` |
24
- | `cc` | `~/.claude/` |
25
- | `codex` | `~/.codex/` |
26
-
27
- If the target dir does not exist, print a clear message and exit with guidance (not an error). Example:
28
-
29
- ```
30
- ~/.codex/ not found — Codex isn't installed on this machine.
31
- To install: npm i -g @openai/codex
32
- ```
33
-
34
- ## Probes
35
-
36
- All probes are **structural or test-based** — no interactive command is ever actually invoked, and no LLM is called.
37
-
38
- | Category | Source | Check |
39
- |---|---|---|
40
- | entry skills | `<install>/skills/vibe*/SKILL.md` | file readable · frontmatter parses · `name`, `description`, `user-invocable: true` present |
41
- | skills | `<install>/skills/*/SKILL.md` | frontmatter parses · required fields (`name`, `description`) · body non-empty |
42
- | hooks | repo `hooks/scripts/*.js` | for each script with a matching `__tests__/<name>.test.js`, run `npx vitest run <test> --reporter=json` and parse pass/fail counts |
43
- | agents | `<install>/agents/*.md` | file readable · frontmatter parses · required fields (`name`, `description`) |
44
-
45
- A probe's failure is captured in its `error` field; the overall run never halts because of one failure.
46
-
47
- ## Report template
48
-
49
- Written to `~/.vibe/test-reports/<YYYYMMDD-HHmm>-<harness>.{json,md}`. Exact schema:
50
-
51
- ### JSON
52
-
53
- ```json
54
- {
55
- "harness": "cc",
56
- "timestamp": "2026-04-16T18:30:00+09:00",
57
- "vibe_version": "2.9.24",
58
- "install_dir": "/Users/grove/.claude",
59
- "summary": {
60
- "total": 42,
61
- "passed": 40,
62
- "failed": 2
63
- },
64
- "probes": {
65
- "entrySkills": [
66
- { "name": "vibe.spec", "status": "pass" },
67
- { "name": "vibe.test", "status": "pass" }
68
- ],
69
- "skills": [
70
- { "name": "test", "status": "pass" },
71
- { "name": "spec", "status": "fail", "error": "invocation includes `auto` but triggers array is empty" }
72
- ],
73
- "hooks": [
74
- { "name": "pre-tool-guard", "status": "pass", "tests": "38/38" },
75
- { "name": "scope-guard", "status": "pass", "tests": "12/12" }
76
- ],
77
- "agents": [
78
- { "name": "implementer", "status": "pass" }
79
- ]
80
- },
81
- "failed": [
82
- {
83
- "category": "skills",
84
- "name": "spec",
85
- "error": "frontmatter: triggers array is empty"
86
- }
87
- ]
88
- }
89
- ```
90
-
91
- - `status`: `"pass"` | `"fail"`
92
- - `error`: required when `status === "fail"`, omitted otherwise
93
- - `tests` (hooks only): short `passed/total` string from the vitest JSON reporter
94
- - `failed[]`: flat list of every failure for quick scanning — mirrors entries found across `probes.*`
95
-
96
- ### Markdown
97
-
98
- ```markdown
99
- # vibe self-test · cc · 2026-04-16 18:30
100
-
101
- **Version**: 2.9.24 **Install**: /Users/grove/.claude
102
-
103
- | Category | Pass | Fail |
104
- |---|---:|---:|
105
- | entry skills | 15 | 0 |
106
- | skills | 17 | 1 |
107
- | hooks | 6 | 0 |
108
- | agents | 3 | 1 |
109
- | **total**| **41** | **2** |
110
-
111
- ## Failures
112
-
113
- - **skills / spec** — invocation includes `auto` but triggers array is empty
114
- - **agents / implementer** — agent file not found
115
- ```
116
-
117
- If `failed` is empty, replace the Failures section with `_All probes passed._`.
118
-
119
- ## Steps
120
-
121
- 1. **Resolve target**: argument (`cc` / `codex` / empty). Empty → detect current harness (`$CLAUDE_PROJECT_DIR` set → `cc`; else fall back to `cc`).
122
- 2. **Resolve install dir**: `cc` → `~/.claude`, `codex` → `~/.codex`. If missing → print guidance + exit.
123
- 3. **Read `vibe_version`** from `package.json` in the current repo.
124
- 4. **Walk each category**, run its check, append `{ name, status, error? }` to `probes.<category>`.
125
- 5. **Compute** `summary` counts and the flat `failed[]` list.
126
- 6. **Ensure** `~/.vibe/test-reports/` exists (`mkdir -p`, dir mode `0o700` — consistent with `~/.vibe/config.json`).
127
- 7. **Write** `<ts>-<harness>.json` and `<ts>-<harness>.md`.
128
- 8. **Print** the Markdown summary to the console.
129
- 9. **If `summary.failed > 0`**, load skill `regress` with `subcommand: register --from-test` and pass the failed entries. P1 = any probe with `status: fail`.
130
-
131
- ## Done Criteria
132
-
133
- - [ ] No external LLM call — file reads + vitest runs only
134
- - [ ] One probe failing never halts the overall run
135
- - [ ] Target install dir missing → clean exit with guidance (not an error)
136
- - [ ] JSON report matches the template above exactly (fields, types, naming)
137
- - [ ] Markdown summary printed to console after the run
138
- - [ ] Reports land in `~/.vibe/test-reports/`, never in project-local `.vibe/`
139
- - [ ] `failed.length > 0` → auto-invokes `vibe.regress register --from-test`
140
- - [ ] Entry skills are verified as user-invocable skill surfaces, not deprecated command files
File without changes