@su-record/vibe 2.9.23 → 2.9.24

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 (461) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +105 -105
  3. package/LICENSE +21 -21
  4. package/README.en.md +220 -0
  5. package/README.md +75 -124
  6. package/agents/architect-low.md +41 -41
  7. package/agents/architect-medium.md +59 -59
  8. package/agents/architect.md +80 -80
  9. package/agents/build-error-resolver.md +115 -115
  10. package/agents/compounder.md +261 -261
  11. package/agents/diagrammer.md +178 -178
  12. package/agents/docs/api-documenter.md +99 -99
  13. package/agents/docs/changelog-writer.md +93 -93
  14. package/agents/e2e-tester.md +294 -294
  15. package/agents/event/event-comms.md +78 -78
  16. package/agents/event/event-content.md +68 -68
  17. package/agents/event/event-image.md +95 -95
  18. package/agents/event/event-ops.md +84 -84
  19. package/agents/event/event-scheduler.md +69 -69
  20. package/agents/event/event-speaker.md +86 -86
  21. package/agents/explorer-low.md +42 -42
  22. package/agents/explorer-medium.md +59 -59
  23. package/agents/explorer.md +48 -48
  24. package/agents/implementer-low.md +43 -43
  25. package/agents/implementer-medium.md +52 -52
  26. package/agents/implementer.md +54 -54
  27. package/agents/junior-mentor.md +141 -141
  28. package/agents/planning/requirements-analyst.md +84 -84
  29. package/agents/planning/ux-advisor.md +83 -83
  30. package/agents/qa/acceptance-tester.md +86 -86
  31. package/agents/qa/edge-case-finder.md +93 -93
  32. package/agents/qa/qa-coordinator.md +131 -131
  33. package/agents/refactor-cleaner.md +143 -143
  34. package/agents/research/best-practices-agent.md +199 -199
  35. package/agents/research/codebase-patterns-agent.md +157 -157
  36. package/agents/research/framework-docs-agent.md +188 -188
  37. package/agents/research/security-advisory-agent.md +213 -213
  38. package/agents/review/architecture-reviewer.md +107 -107
  39. package/agents/review/complexity-reviewer.md +116 -116
  40. package/agents/review/data-integrity-reviewer.md +88 -88
  41. package/agents/review/git-history-reviewer.md +103 -103
  42. package/agents/review/performance-reviewer.md +86 -86
  43. package/agents/review/python-reviewer.md +150 -150
  44. package/agents/review/rails-reviewer.md +139 -139
  45. package/agents/review/react-reviewer.md +144 -144
  46. package/agents/review/security-reviewer.md +80 -80
  47. package/agents/review/simplicity-reviewer.md +140 -140
  48. package/agents/review/test-coverage-reviewer.md +116 -116
  49. package/agents/review/typescript-reviewer.md +127 -127
  50. package/agents/searcher.md +54 -54
  51. package/agents/simplifier.md +120 -120
  52. package/agents/teams/debug-team.md +70 -70
  53. package/agents/teams/dev-team.md +88 -88
  54. package/agents/teams/docs-team.md +80 -80
  55. package/agents/teams/figma/figma-analyst.md +52 -52
  56. package/agents/teams/figma/figma-architect.md +112 -112
  57. package/agents/teams/figma/figma-auditor.md +82 -82
  58. package/agents/teams/figma/figma-builder.md +100 -100
  59. package/agents/teams/figma-team.md +85 -85
  60. package/agents/teams/fullstack-team.md +83 -83
  61. package/agents/teams/lite-team.md +69 -69
  62. package/agents/teams/migration-team.md +78 -78
  63. package/agents/teams/refactor-team.md +94 -94
  64. package/agents/teams/research-team.md +86 -86
  65. package/agents/teams/review-debate-team.md +125 -125
  66. package/agents/teams/security-team.md +81 -81
  67. package/agents/tester.md +49 -49
  68. package/agents/ui/ui-a11y-auditor.md +93 -93
  69. package/agents/ui/ui-antipattern-detector.md +102 -102
  70. package/agents/ui/ui-dataviz-advisor.md +69 -69
  71. package/agents/ui/ui-design-system-gen.md +57 -57
  72. package/agents/ui/ui-industry-analyzer.md +49 -49
  73. package/agents/ui/ui-layout-architect.md +65 -65
  74. package/agents/ui/ui-stack-implementer.md +68 -68
  75. package/agents/ui/ux-compliance-reviewer.md +81 -81
  76. package/agents/ui-previewer.md +258 -258
  77. package/commands/vibe.analyze.md +533 -533
  78. package/commands/vibe.contract.md +105 -105
  79. package/commands/vibe.docs.md +33 -33
  80. package/commands/vibe.event.md +163 -163
  81. package/commands/vibe.figma.md +584 -584
  82. package/commands/vibe.harness.md +177 -177
  83. package/commands/vibe.regress.md +73 -73
  84. package/commands/vibe.review.md +624 -624
  85. package/commands/vibe.run.md +1940 -1940
  86. package/commands/vibe.scaffold.md +195 -195
  87. package/commands/vibe.spec.md +577 -577
  88. package/commands/vibe.test.md +96 -96
  89. package/commands/vibe.trace.md +276 -276
  90. package/commands/vibe.utils.md +413 -413
  91. package/commands/vibe.verify.md +550 -550
  92. package/dist/cli/collaborator.js +52 -52
  93. package/dist/cli/commands/codex-proxy.js +15 -15
  94. package/dist/cli/commands/config.js +9 -9
  95. package/dist/cli/commands/evolution.js +12 -12
  96. package/dist/cli/commands/figma.js +20 -20
  97. package/dist/cli/commands/info.js +52 -52
  98. package/dist/cli/commands/init.js +5 -5
  99. package/dist/cli/commands/remove.js +14 -14
  100. package/dist/cli/commands/sentinel.js +27 -27
  101. package/dist/cli/commands/skills.js +5 -5
  102. package/dist/cli/commands/slack.js +10 -10
  103. package/dist/cli/commands/stats.js +6 -6
  104. package/dist/cli/commands/telegram.js +12 -12
  105. package/dist/cli/detect.js +32 -32
  106. package/dist/cli/index.js +33 -33
  107. package/dist/cli/llm/claude-commands.js +16 -16
  108. package/dist/cli/llm/config.js +18 -18
  109. package/dist/cli/llm/gemini-commands.js +16 -16
  110. package/dist/cli/llm/gpt-commands.js +19 -19
  111. package/dist/cli/llm/help.js +21 -21
  112. package/dist/cli/postinstall/cursor-agents.js +32 -32
  113. package/dist/cli/postinstall/cursor-rules.js +83 -83
  114. package/dist/cli/postinstall/cursor-skills.js +743 -743
  115. package/dist/cli/setup/Provisioner.js +42 -42
  116. package/dist/infra/lib/DeepInit.js +24 -24
  117. package/dist/infra/lib/IterationTracker.js +11 -11
  118. package/dist/infra/lib/PythonParser.js +108 -108
  119. package/dist/infra/lib/ReviewRace.js +96 -96
  120. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  121. package/dist/infra/lib/SkillQualityGate.js +9 -9
  122. package/dist/infra/lib/SkillRepository.js +159 -159
  123. package/dist/infra/lib/UltraQA.js +99 -99
  124. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  125. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  126. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  127. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  128. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  129. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  130. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  131. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  132. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  133. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  134. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  135. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  136. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  137. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  138. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  139. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  140. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  141. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  142. package/dist/infra/lib/gemini/orchestration.js +5 -5
  143. package/dist/infra/lib/gpt/orchestration.js +4 -4
  144. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  145. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  146. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  147. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  148. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  149. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  150. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  151. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  152. package/dist/infra/orchestrator/AgentManager.js +12 -12
  153. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  154. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  155. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  156. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  157. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  158. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  159. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  160. package/dist/tools/memory/getMemoryGraph.js +12 -12
  161. package/dist/tools/memory/getSessionContext.js +9 -9
  162. package/dist/tools/memory/linkMemories.js +14 -14
  163. package/dist/tools/memory/listMemories.js +4 -4
  164. package/dist/tools/memory/recallMemory.js +4 -4
  165. package/dist/tools/memory/saveMemory.js +4 -4
  166. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  167. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  168. package/dist/tools/semantic/astGrep.test.js +6 -6
  169. package/dist/tools/spec/prdParser.test.js +171 -171
  170. package/dist/tools/spec/specGenerator.js +169 -169
  171. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  172. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  173. package/hooks/gemini-hooks.json +73 -73
  174. package/hooks/hooks.json +126 -126
  175. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  176. package/hooks/scripts/__tests__/pre-tool-guard.test.js +368 -368
  177. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  178. package/hooks/scripts/auto-commit.js +97 -97
  179. package/hooks/scripts/auto-format.js +64 -64
  180. package/hooks/scripts/auto-test.js +81 -81
  181. package/hooks/scripts/code-check.js +271 -268
  182. package/hooks/scripts/codex-detect.js +46 -46
  183. package/hooks/scripts/codex-review-gate.js +80 -80
  184. package/hooks/scripts/command-log.js +32 -32
  185. package/hooks/scripts/context-save.js +353 -353
  186. package/hooks/scripts/evolution-engine.js +91 -91
  187. package/hooks/scripts/figma-extract.js +635 -635
  188. package/hooks/scripts/figma-guard.js +219 -219
  189. package/hooks/scripts/figma-refine.js +315 -315
  190. package/hooks/scripts/figma-to-scss.js +394 -394
  191. package/hooks/scripts/figma-validate.js +353 -353
  192. package/hooks/scripts/hud-status.js +321 -321
  193. package/hooks/scripts/keyword-detector.js +214 -214
  194. package/hooks/scripts/llm-orchestrate.js +645 -645
  195. package/hooks/scripts/post-edit.js +35 -32
  196. package/hooks/scripts/pr-test-gate.js +52 -52
  197. package/hooks/scripts/pre-tool-guard.js +254 -254
  198. package/hooks/scripts/prompt-dispatcher.js +190 -190
  199. package/hooks/scripts/sentinel-guard.js +130 -130
  200. package/hooks/scripts/session-start.js +186 -186
  201. package/hooks/scripts/skill-injector.js +83 -83
  202. package/hooks/scripts/stop-notify.js +209 -209
  203. package/hooks/scripts/utils.js +257 -257
  204. package/languages/csharp-unity.md +515 -515
  205. package/languages/gdscript-godot.md +470 -470
  206. package/languages/ruby-rails.md +489 -489
  207. package/languages/typescript-angular.md +433 -433
  208. package/languages/typescript-astro.md +416 -416
  209. package/languages/typescript-electron.md +406 -406
  210. package/languages/typescript-nestjs.md +524 -524
  211. package/languages/typescript-svelte.md +407 -407
  212. package/languages/typescript-tauri.md +365 -365
  213. package/package.json +1 -1
  214. package/skills/agents-md/SKILL.md +121 -121
  215. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  216. package/skills/agents-md/templates/agents-md.md +36 -36
  217. package/skills/arch-guard/SKILL.md +181 -181
  218. package/skills/arch-guard/agents/detector.md +48 -48
  219. package/skills/arch-guard/agents/reporter.md +48 -48
  220. package/skills/arch-guard/agents/rule-generator.md +49 -49
  221. package/skills/arch-guard/agents/violation-checker.md +51 -51
  222. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  223. package/skills/arch-guard/frameworks/solid.md +102 -102
  224. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  225. package/skills/arch-guard/templates/arch-rules.json +47 -47
  226. package/skills/arch-guard/templates/violation-report.md +53 -53
  227. package/skills/brand-assets/SKILL.md +147 -147
  228. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  229. package/skills/brand-assets/templates/brand-guide.md +161 -161
  230. package/skills/capability-loop/SKILL.md +272 -272
  231. package/skills/capability-loop/agents/capability-designer.md +61 -61
  232. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  233. package/skills/capability-loop/agents/implementer.md +50 -50
  234. package/skills/capability-loop/agents/tester.md +53 -53
  235. package/skills/capability-loop/templates/capability-spec.md +118 -118
  236. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  237. package/skills/characterization-test/SKILL.md +207 -207
  238. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  239. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  240. package/skills/characterization-test/agents/reporter.md +50 -50
  241. package/skills/characterization-test/agents/test-writer.md +49 -49
  242. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  243. package/skills/characterization-test/templates/test-template.ts +101 -101
  244. package/skills/chub-usage/SKILL.md +139 -139
  245. package/skills/claude-md-guide/SKILL.md +351 -351
  246. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  247. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  248. package/skills/commerce-patterns/SKILL.md +64 -64
  249. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  250. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  251. package/skills/commit-push-pr/SKILL.md +77 -77
  252. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  253. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  254. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  255. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  256. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  257. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  258. package/skills/context7-usage/SKILL.md +106 -106
  259. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  260. package/skills/create-prd/SKILL.md +90 -90
  261. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  262. package/skills/create-prd/agents/prioritizer.md +60 -60
  263. package/skills/create-prd/agents/requirements-writer.md +48 -48
  264. package/skills/create-prd/agents/researcher.md +55 -55
  265. package/skills/create-prd/agents/reviewer.md +54 -54
  266. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  267. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  268. package/skills/create-prd/orchestrator.md +70 -70
  269. package/skills/create-prd/rubrics/completeness.md +58 -58
  270. package/skills/create-prd/templates/prd.md +139 -139
  271. package/skills/design-audit/SKILL.md +152 -152
  272. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  273. package/skills/design-audit/agents/performance-auditor.md +46 -46
  274. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  275. package/skills/design-audit/agents/scorer.md +47 -47
  276. package/skills/design-audit/agents/slop-detector.md +47 -47
  277. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  278. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  279. package/skills/design-audit/orchestrator.md +64 -64
  280. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  281. package/skills/design-audit/rubrics/scoring.md +63 -63
  282. package/skills/design-audit/templates/report.md +88 -88
  283. package/skills/design-critique/SKILL.md +139 -139
  284. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  285. package/skills/design-critique/templates/critique-report.md +86 -86
  286. package/skills/design-distill/SKILL.md +130 -130
  287. package/skills/design-distill/templates/design-system.md +132 -132
  288. package/skills/design-normalize/SKILL.md +133 -133
  289. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  290. package/skills/design-normalize/templates/token-audit.md +89 -89
  291. package/skills/design-polish/SKILL.md +131 -131
  292. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  293. package/skills/design-polish/templates/polish-report.md +64 -64
  294. package/skills/design-teach/SKILL.md +182 -182
  295. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  296. package/skills/design-teach/templates/design-context.json +36 -36
  297. package/skills/devlog/SKILL.md +143 -143
  298. package/skills/e2e-commerce/SKILL.md +62 -62
  299. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  300. package/skills/event-comms/SKILL.md +172 -172
  301. package/skills/event-comms/templates/email-invite.md +99 -99
  302. package/skills/event-comms/templates/sns-post.md +133 -133
  303. package/skills/event-ops/SKILL.md +207 -207
  304. package/skills/event-ops/rubrics/contingency.md +85 -85
  305. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  306. package/skills/event-planning/SKILL.md +144 -144
  307. package/skills/event-planning/rubrics/timeline.md +70 -70
  308. package/skills/event-planning/templates/event-plan.md +91 -91
  309. package/skills/exec-plan/SKILL.md +149 -149
  310. package/skills/exec-plan/agents/decomposer.md +47 -47
  311. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  312. package/skills/exec-plan/agents/estimator.md +43 -43
  313. package/skills/exec-plan/agents/validator.md +55 -55
  314. package/skills/exec-plan/orchestrator.md +70 -70
  315. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  316. package/skills/exec-plan/templates/plan.md +147 -147
  317. package/skills/git-worktree/SKILL.md +73 -73
  318. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  319. package/skills/handoff/SKILL.md +110 -110
  320. package/skills/handoff/agents/context-summarizer.md +51 -51
  321. package/skills/handoff/agents/document-writer.md +63 -63
  322. package/skills/handoff/agents/state-collector.md +53 -53
  323. package/skills/handoff/agents/verifier.md +48 -48
  324. package/skills/handoff/rubrics/completeness.md +62 -62
  325. package/skills/handoff/templates/handoff.md +107 -107
  326. package/skills/parallel-research/SKILL.md +104 -104
  327. package/skills/parallel-research/agents/best-practices.md +43 -43
  328. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  329. package/skills/parallel-research/agents/framework-docs.md +45 -45
  330. package/skills/parallel-research/agents/security-advisory.md +46 -46
  331. package/skills/parallel-research/agents/synthesizer.md +57 -57
  332. package/skills/parallel-research/experts/best-practices.md +50 -50
  333. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  334. package/skills/parallel-research/experts/framework-docs.md +65 -65
  335. package/skills/parallel-research/experts/security-advisory.md +69 -69
  336. package/skills/parallel-research/orchestrator.md +79 -79
  337. package/skills/parallel-research/templates/awesome-list.md +32 -32
  338. package/skills/parallel-research/templates/paper.md +88 -88
  339. package/skills/parallel-research/templates/synthesis.md +101 -101
  340. package/skills/prioritization-frameworks/SKILL.md +87 -87
  341. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  342. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  343. package/skills/priority-todos/SKILL.md +64 -64
  344. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  345. package/skills/priority-todos/templates/todo-board.md +59 -59
  346. package/skills/seo-checklist/SKILL.md +58 -58
  347. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  348. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  349. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  350. package/skills/techdebt/SKILL.md +124 -124
  351. package/skills/techdebt/agents/analyzer.md +50 -50
  352. package/skills/techdebt/agents/fixer.md +41 -41
  353. package/skills/techdebt/agents/reviewer.md +47 -47
  354. package/skills/techdebt/agents/scanner.md +44 -44
  355. package/skills/techdebt/orchestrator.md +70 -70
  356. package/skills/techdebt/rubrics/severity.md +51 -51
  357. package/skills/techdebt/scripts/scan.js +90 -90
  358. package/skills/techdebt/templates/report.md +86 -86
  359. package/skills/tool-fallback/SKILL.md +104 -104
  360. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  361. package/skills/typescript-advanced-types/SKILL.md +67 -67
  362. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  363. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  364. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  365. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  366. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  367. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  368. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  369. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  370. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  371. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  372. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  373. package/skills/user-personas/SKILL.md +75 -75
  374. package/skills/user-personas/rubrics/research-methods.md +56 -56
  375. package/skills/user-personas/templates/persona.md +89 -89
  376. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  377. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  378. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  379. package/skills/vibe-contract/SKILL.md +166 -166
  380. package/skills/vibe-docs/templates/architecture.md +80 -80
  381. package/skills/vibe-docs/templates/readme.md +84 -84
  382. package/skills/vibe-docs/templates/release-notes.md +74 -74
  383. package/skills/vibe-figma/SKILL.md +363 -363
  384. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  385. package/skills/vibe-figma/templates/component-index.md +126 -126
  386. package/skills/vibe-figma/templates/component-spec.md +168 -168
  387. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  388. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  389. package/skills/vibe-figma-convert/SKILL.md +235 -235
  390. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  391. package/skills/vibe-figma-convert/templates/component.md +140 -140
  392. package/skills/vibe-figma-extract/SKILL.md +219 -219
  393. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  394. package/skills/vibe-interview/SKILL.md +358 -358
  395. package/skills/vibe-interview/checklists/api.md +101 -101
  396. package/skills/vibe-interview/checklists/feature.md +88 -88
  397. package/skills/vibe-interview/checklists/library.md +95 -95
  398. package/skills/vibe-interview/checklists/mobile.md +89 -89
  399. package/skills/vibe-interview/checklists/webapp.md +97 -97
  400. package/skills/vibe-interview/checklists/website.md +99 -99
  401. package/skills/vibe-plan/SKILL.md +254 -254
  402. package/skills/vibe-regress/SKILL.md +174 -174
  403. package/skills/vibe-regress/templates/bug.md +44 -44
  404. package/skills/vibe-regress/templates/test-jest.md +29 -29
  405. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  406. package/skills/vibe-spec/SKILL.md +1195 -1195
  407. package/skills/vibe-spec-review/SKILL.md +726 -726
  408. package/skills/vibe-test/SKILL.md +247 -247
  409. package/skills/video-production/SKILL.md +52 -52
  410. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  411. package/skills/video-production/templates/production-plan.md +104 -104
  412. package/vibe/config.json +29 -29
  413. package/vibe/constitution.md +227 -227
  414. package/vibe/rules/principles/communication-guide.md +98 -98
  415. package/vibe/rules/principles/development-philosophy.md +52 -52
  416. package/vibe/rules/principles/quick-start.md +102 -102
  417. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  418. package/vibe/rules/quality/checklist.md +276 -276
  419. package/vibe/rules/quality/performance.md +236 -236
  420. package/vibe/rules/quality/testing-strategy.md +440 -440
  421. package/vibe/rules/standards/anti-patterns.md +541 -541
  422. package/vibe/rules/standards/code-structure.md +291 -291
  423. package/vibe/rules/standards/complexity-metrics.md +313 -313
  424. package/vibe/rules/standards/git-workflow.md +237 -237
  425. package/vibe/rules/standards/naming-conventions.md +198 -198
  426. package/vibe/rules/standards/security.md +305 -305
  427. package/vibe/rules/writing/document-style.md +74 -74
  428. package/vibe/setup.sh +31 -31
  429. package/vibe/templates/claudemd-template.md +74 -74
  430. package/vibe/templates/constitution-template.md +267 -267
  431. package/vibe/templates/contract-backend-template.md +526 -526
  432. package/vibe/templates/contract-frontend-template.md +599 -599
  433. package/vibe/templates/feature-template.md +96 -96
  434. package/vibe/templates/plan-template.md +194 -194
  435. package/vibe/templates/spec-template.md +221 -221
  436. package/vibe/ui-ux-data/charts.csv +26 -26
  437. package/vibe/ui-ux-data/colors.csv +97 -97
  438. package/vibe/ui-ux-data/icons.csv +101 -101
  439. package/vibe/ui-ux-data/landing.csv +31 -31
  440. package/vibe/ui-ux-data/products.csv +96 -96
  441. package/vibe/ui-ux-data/react-performance.csv +45 -45
  442. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  443. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  444. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  445. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  446. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  447. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  448. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  449. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  450. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  451. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  452. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  453. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  454. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  455. package/vibe/ui-ux-data/styles.csv +68 -68
  456. package/vibe/ui-ux-data/typography.csv +57 -57
  457. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  458. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  459. package/vibe/ui-ux-data/version.json +31 -31
  460. package/vibe/ui-ux-data/web-interface.csv +31 -31
  461. package/README.ko.md +0 -171
@@ -562,45 +562,45 @@ export function getLanguageRulesForStacks(stacks) {
562
562
  * 언어별 CLAUDE.md 규칙
563
563
  */
564
564
  export const LANGUAGE_RULES = {
565
- typescript: `### TypeScript Rules
566
- - No \`any\` type → use \`unknown\` + type guards
567
- - No \`as any\` casting → define proper interfaces
568
- - No \`@ts-ignore\` → fix type issues at root
565
+ typescript: `### TypeScript Rules
566
+ - No \`any\` type → use \`unknown\` + type guards
567
+ - No \`as any\` casting → define proper interfaces
568
+ - No \`@ts-ignore\` → fix type issues at root
569
569
  - Explicit return types on all functions`,
570
- python: `### Python Rules
571
- - Type hints required (parameters, return values)
572
- - No \`# type: ignore\` → fix type issues at root
573
- - Prefer f-strings (over format())
570
+ python: `### Python Rules
571
+ - Type hints required (parameters, return values)
572
+ - No \`# type: ignore\` → fix type issues at root
573
+ - Prefer f-strings (over format())
574
574
  - Use list comprehensions appropriately`,
575
- go: `### Go Rules
576
- - Handle errors immediately (if err != nil)
577
- - Explicit error wrapping (fmt.Errorf with %w)
578
- - Define interfaces at point of use
575
+ go: `### Go Rules
576
+ - Handle errors immediately (if err != nil)
577
+ - Explicit error wrapping (fmt.Errorf with %w)
578
+ - Define interfaces at point of use
579
579
  - Prevent goroutine leaks (use context)`,
580
- rust: `### Rust Rules
581
- - No unwrap()/expect() in production → handle Result/Option
582
- - Minimize unsafe blocks
583
- - Define explicit error types
580
+ rust: `### Rust Rules
581
+ - No unwrap()/expect() in production → handle Result/Option
582
+ - Minimize unsafe blocks
583
+ - Define explicit error types
584
584
  - Document ownership/lifetime clearly`,
585
- java: `### Java Rules
586
- - Use Optional (instead of null)
587
- - Prefer immutable objects (final fields)
588
- - Handle checked exceptions properly
585
+ java: `### Java Rules
586
+ - Use Optional (instead of null)
587
+ - Prefer immutable objects (final fields)
588
+ - Handle checked exceptions properly
589
589
  - Utilize Stream API`,
590
- kotlin: `### Kotlin Rules
591
- - Explicit nullable types (?)
592
- - No !! operator → use safe call (?.)
593
- - Use data classes actively
590
+ kotlin: `### Kotlin Rules
591
+ - Explicit nullable types (?)
592
+ - No !! operator → use safe call (?.)
593
+ - Use data classes actively
594
594
  - Implement utilities as extension functions`,
595
- dart: `### Dart Rules
596
- - Follow null safety (use ? and ! properly)
597
- - Avoid late keyword abuse
598
- - Use const constructors
595
+ dart: `### Dart Rules
596
+ - Follow null safety (use ? and ! properly)
597
+ - Avoid late keyword abuse
598
+ - Use const constructors
599
599
  - Use async/await for async code`,
600
- swift: `### Swift Rules
601
- - No force unwrapping → use guard let / if let
602
- - Prefer protocol-oriented programming
603
- - Prefer value types (struct)
600
+ swift: `### Swift Rules
601
+ - No force unwrapping → use guard let / if let
602
+ - Prefer protocol-oriented programming
603
+ - Prefer value types (struct)
604
604
  - Watch memory management with @escaping closures`
605
605
  };
606
606
  /**
package/dist/cli/index.js CHANGED
@@ -95,13 +95,13 @@ switch (command) {
95
95
  claudeStatus();
96
96
  break;
97
97
  default:
98
- console.log(`
99
- Claude Commands:
100
- vibe claude key <key> Set Anthropic API key
101
- vibe claude status Check status
102
- vibe claude logout Remove key
103
-
104
- Get key: https://console.anthropic.com/settings/keys
98
+ console.log(`
99
+ Claude Commands:
100
+ vibe claude key <key> Set Anthropic API key
101
+ vibe claude status Check status
102
+ vibe claude logout Remove key
103
+
104
+ Get key: https://console.anthropic.com/settings/keys
105
105
  `);
106
106
  }
107
107
  break;
@@ -128,15 +128,15 @@ Get key: https://console.anthropic.com/settings/keys
128
128
  gptStatus();
129
129
  break;
130
130
  default:
131
- console.log(`
132
- GPT Commands:
133
- vibe gpt key <key> Set OpenAI API key (for embeddings)
134
- vibe gpt status Check status (Codex CLI + API key)
135
- vibe gpt logout Remove API key
136
-
137
- Text generation: codex exec (via Codex CLI)
138
- Embeddings: OpenAI API (requires API key)
139
- Codex auth: codex auth
131
+ console.log(`
132
+ GPT Commands:
133
+ vibe gpt key <key> Set OpenAI API key (for embeddings)
134
+ vibe gpt status Check status (Codex CLI + API key)
135
+ vibe gpt logout Remove API key
136
+
137
+ Text generation: codex exec (via Codex CLI)
138
+ Embeddings: OpenAI API (requires API key)
139
+ Codex auth: codex auth
140
140
  `);
141
141
  }
142
142
  break;
@@ -165,14 +165,14 @@ Codex auth: codex auth
165
165
  geminiStatus();
166
166
  break;
167
167
  default:
168
- console.log(`
169
- Gemini Commands:
170
- vibe gemini key <key> Set API key
171
- vibe gemini status Check status
172
- vibe gemini logout Clear config
173
- vibe gemini remove Remove config
174
-
175
- gemini-cli is auto-detected if installed.
168
+ console.log(`
169
+ Gemini Commands:
170
+ vibe gemini key <key> Set API key
171
+ vibe gemini status Check status
172
+ vibe gemini logout Clear config
173
+ vibe gemini remove Remove config
174
+
175
+ gemini-cli is auto-detected if installed.
176
176
  `);
177
177
  }
178
178
  break;
@@ -185,11 +185,11 @@ gemini-cli is auto-detected if installed.
185
185
  skillsAdd(positionalArgs[2]);
186
186
  break;
187
187
  default:
188
- console.log(`
189
- Skills Commands:
190
- vibe skills add <owner/repo> Install skill from skills.sh
191
-
192
- Example: vibe skills add vercel-labs/skills
188
+ console.log(`
189
+ Skills Commands:
190
+ vibe skills add <owner/repo> Install skill from skills.sh
191
+
192
+ Example: vibe skills add vercel-labs/skills
193
193
  `);
194
194
  }
195
195
  break;
@@ -371,10 +371,10 @@ Example: vibe skills add vercel-labs/skills
371
371
  console.log('');
372
372
  }
373
373
  else {
374
- console.log(`
375
- Env Commands:
376
- vibe env import [path] .env 파일을 ~/.vibe/config.json으로 가져오기
377
- path 생략 시 현재 디렉토리의 .env 사용
374
+ console.log(`
375
+ Env Commands:
376
+ vibe env import [path] .env 파일을 ~/.vibe/config.json으로 가져오기
377
+ path 생략 시 현재 디렉토리의 .env 사용
378
378
  `);
379
379
  }
380
380
  break;
@@ -25,14 +25,14 @@ export function claudeStatus() {
25
25
  catch { /* ignore */ }
26
26
  const hasEnvKey = !!process.env.ANTHROPIC_API_KEY;
27
27
  if (!hasFileKey && !hasEnvKey) {
28
- console.log(`
29
- Claude API: ✗ Not configured
30
-
31
- Setup:
32
- vibe claude key <ANTHROPIC_API_KEY>
33
- vibe setup
34
-
35
- Get key: https://console.anthropic.com/settings/keys
28
+ console.log(`
29
+ Claude API: ✗ Not configured
30
+
31
+ Setup:
32
+ vibe claude key <ANTHROPIC_API_KEY>
33
+ vibe setup
34
+
35
+ Get key: https://console.anthropic.com/settings/keys
36
36
  `);
37
37
  return;
38
38
  }
@@ -41,14 +41,14 @@ Get key: https://console.anthropic.com/settings/keys
41
41
  methods.push(`✓ API Key (${maskedKey})`);
42
42
  if (hasEnvKey)
43
43
  methods.push('✓ ANTHROPIC_API_KEY env');
44
- console.log(`
45
- Claude API: ${methods.join(', ')}
46
-
47
- Models: Claude Opus 4.5, Sonnet 4.5, Haiku 4.5
48
- Role: Fallback / Direct API
49
-
50
- Manage:
51
- vibe claude logout Remove key
44
+ console.log(`
45
+ Claude API: ${methods.join(', ')}
46
+
47
+ Models: Claude Opus 4.5, Sonnet 4.5, Haiku 4.5
48
+ Role: Fallback / Direct API
49
+
50
+ Manage:
51
+ vibe claude logout Remove key
52
52
  `);
53
53
  }
54
54
  /**
@@ -38,13 +38,13 @@ export const EXTERNAL_LLMS = {
38
38
  */
39
39
  export function setupExternalLLM(llmType, apiKey) {
40
40
  if (!apiKey) {
41
- console.log(`
42
- API key required.
43
-
44
- Usage:
45
- vibe ${llmType} key <api-key>
46
-
47
- ${llmType === 'gpt' ? 'OpenAI API key: https://platform.openai.com/api-keys' : 'Google API key: https://aistudio.google.com/apikey'}
41
+ console.log(`
42
+ API key required.
43
+
44
+ Usage:
45
+ vibe ${llmType} key <api-key>
46
+
47
+ ${llmType === 'gpt' ? 'OpenAI API key: https://platform.openai.com/api-keys' : 'Google API key: https://aistudio.google.com/apikey'}
48
48
  `);
49
49
  return;
50
50
  }
@@ -79,17 +79,17 @@ ${llmType === 'gpt' ? 'OpenAI API key: https://platform.openai.com/api-keys' : '
79
79
  catch { /* ignore: optional operation */ }
80
80
  }
81
81
  const configJsonPath = path.join(getVibeDir(), 'config.json');
82
- console.log(`
83
- ${llmType.toUpperCase()} API key configured!
84
-
85
- Role: ${llmConfig.description}
86
- Stored: ${configJsonPath}
87
-
88
- ${llmType.toUpperCase()} is called directly via Hooks:
89
- - Auto-called with "${llmType}. query" prefix
90
- - Direct use: import('@su-record/vibe/lib/${llmType}')
91
-
92
- Disable: vibe ${llmType} remove
82
+ console.log(`
83
+ ${llmType.toUpperCase()} API key configured!
84
+
85
+ Role: ${llmConfig.description}
86
+ Stored: ${configJsonPath}
87
+
88
+ ${llmType.toUpperCase()} is called directly via Hooks:
89
+ - Auto-called with "${llmType}. query" prefix
90
+ - Direct use: import('@su-record/vibe/lib/${llmType}')
91
+
92
+ Disable: vibe ${llmType} remove
93
93
  `);
94
94
  }
95
95
  /**
@@ -27,14 +27,14 @@ export function geminiAuthCore() {
27
27
  * Gemini 인증 (CLI 명령어용)
28
28
  */
29
29
  export async function geminiAuth() {
30
- console.log(`
31
- Gemini Authentication
32
-
33
- API Key (Google AI Studio):
34
- vibe gemini key <your-api-key>
35
-
36
- Get your API key from:
37
- https://aistudio.google.com/apikey
30
+ console.log(`
31
+ Gemini Authentication
32
+
33
+ API Key (Google AI Studio):
34
+ vibe gemini key <your-api-key>
35
+
36
+ Get your API key from:
37
+ https://aistudio.google.com/apikey
38
38
  `);
39
39
  const config = readGlobalConfig();
40
40
  const apiKey = config.credentials?.gemini?.apiKey;
@@ -69,14 +69,14 @@ export function geminiStatus() {
69
69
  console.log(lines.join('\n'));
70
70
  return;
71
71
  }
72
- console.log(`
73
- Gemini Status
74
-
75
- No credentials found.
76
-
77
- Set up:
78
- vibe gemini key <your-api-key>
79
- or set GEMINI_API_KEY env var
72
+ console.log(`
73
+ Gemini Status
74
+
75
+ No credentials found.
76
+
77
+ Set up:
78
+ vibe gemini key <your-api-key>
79
+ or set GEMINI_API_KEY env var
80
80
  `);
81
81
  }
82
82
  catch (error) {
@@ -36,25 +36,25 @@ export function gptStatus() {
36
36
  }
37
37
  const modelGpt = config.models?.gpt || 'gpt-5.4 (default)';
38
38
  const modelCodex = config.models?.gptCodex || 'gpt-5.3-codex (default)';
39
- console.log(`
40
- GPT Status
41
-
42
- Codex CLI: ${codexVersion}
43
- Codex Auth: ${codexAuthStatus}
44
- API Key: ${hasApiKey ? 'configured (for embeddings)' : 'not set'}
45
-
46
- Models:
47
- gpt (review): ${modelGpt}
48
- gpt-codex (code review & analysis): ${modelCodex}
49
-
50
- Auth priority: codex-cli (~/.codex/auth.json) > apikey
51
- Stored: ~/.vibe/config.json
52
-
53
- Commands:
54
- vibe gpt key <key> Set OpenAI API key (for embeddings)
55
- vibe gpt status This status
56
- vibe gpt logout Remove API key
57
- codex auth Codex CLI authentication
39
+ console.log(`
40
+ GPT Status
41
+
42
+ Codex CLI: ${codexVersion}
43
+ Codex Auth: ${codexAuthStatus}
44
+ API Key: ${hasApiKey ? 'configured (for embeddings)' : 'not set'}
45
+
46
+ Models:
47
+ gpt (review): ${modelGpt}
48
+ gpt-codex (code review & analysis): ${modelCodex}
49
+
50
+ Auth priority: codex-cli (~/.codex/auth.json) > apikey
51
+ Stored: ~/.vibe/config.json
52
+
53
+ Commands:
54
+ vibe gpt key <key> Set OpenAI API key (for embeddings)
55
+ vibe gpt status This status
56
+ vibe gpt logout Remove API key
57
+ codex auth Codex CLI authentication
58
58
  `);
59
59
  }
60
60
  /**
@@ -5,33 +5,33 @@
5
5
  * Auth help (legacy - now shows new format)
6
6
  */
7
7
  export function showAuthHelp() {
8
- console.log(`
9
- 🔐 LLM Authentication
10
-
11
- GPT Commands:
12
- vibe gpt key <KEY> API key
13
- vibe gpt status Check status
14
- codex auth Codex CLI authentication
15
-
16
- Gemini Commands:
17
- vibe gemini key <KEY> API key
18
- vibe gemini status Check status
19
-
20
- Examples:
21
- codex auth Codex CLI login
22
- vibe gpt key sk-xxx API key setup
8
+ console.log(`
9
+ 🔐 LLM Authentication
10
+
11
+ GPT Commands:
12
+ vibe gpt key <KEY> API key
13
+ vibe gpt status Check status
14
+ codex auth Codex CLI authentication
15
+
16
+ Gemini Commands:
17
+ vibe gemini key <KEY> API key
18
+ vibe gemini status Check status
19
+
20
+ Examples:
21
+ codex auth Codex CLI login
22
+ vibe gpt key sk-xxx API key setup
23
23
  `);
24
24
  }
25
25
  /**
26
26
  * Logout help (legacy - now shows new format)
27
27
  */
28
28
  export function showLogoutHelp() {
29
- console.log(`
30
- 🚪 LLM Logout
31
-
32
- Usage:
33
- vibe gpt logout GPT logout
34
- vibe gemini logout Gemini logout
29
+ console.log(`
30
+ 🚪 LLM Logout
31
+
32
+ Usage:
33
+ vibe gpt logout GPT logout
34
+ vibe gemini logout Gemini logout
35
35
  `);
36
36
  }
37
37
  //# sourceMappingURL=help.js.map
@@ -67,38 +67,38 @@ function convertAgentToCursor(content, filename) {
67
67
  const nextStepsSection = nextAgents
68
68
  .map((a) => `- For ${a.replace('-reviewer', '')} review: "Use ${a}"`)
69
69
  .join('\n');
70
- return `---
71
- name: ${name}
72
- model: ${model}
73
- description: ${description}
74
- ---
75
-
76
- # ${title}
77
-
78
- ## When Invoked
79
-
80
- 1. Run \`git diff\` to see recent changes
81
- 2. Focus on modified files relevant to this review type
82
- 3. Begin review immediately without asking questions
83
-
84
- ## Role
85
-
86
- ${roleLines.map((r) => `- ${r}`).join('\n')}
87
-
88
- ## Checklist
89
-
90
- ${checklist}
91
-
92
- ## Output Format
93
-
94
- ${outputFormat}
95
-
96
- ## Next Steps
97
-
98
- Review complete. Consider these follow-up actions:
99
-
100
- ${nextStepsSection}
101
- - All reviews done: Ready to commit
70
+ return `---
71
+ name: ${name}
72
+ model: ${model}
73
+ description: ${description}
74
+ ---
75
+
76
+ # ${title}
77
+
78
+ ## When Invoked
79
+
80
+ 1. Run \`git diff\` to see recent changes
81
+ 2. Focus on modified files relevant to this review type
82
+ 3. Begin review immediately without asking questions
83
+
84
+ ## Role
85
+
86
+ ${roleLines.map((r) => `- ${r}`).join('\n')}
87
+
88
+ ## Checklist
89
+
90
+ ${checklist}
91
+
92
+ ## Output Format
93
+
94
+ ${outputFormat}
95
+
96
+ ## Next Steps
97
+
98
+ Review complete. Consider these follow-up actions:
99
+
100
+ ${nextStepsSection}
101
+ - All reviews done: Ready to commit
102
102
  `;
103
103
  }
104
104
  /**
@@ -21,13 +21,13 @@ function convertLanguageRuleToCursor(content, filename) {
21
21
  // glob 패턴 가져오기
22
22
  const globs = LANGUAGE_GLOBS[filename] || '**/*';
23
23
  // .mdc frontmatter + 본문
24
- return `---
25
- description: ${description} - complexity limits, type safety, error handling
26
- globs: "${globs}"
27
- alwaysApply: false
28
- ---
29
-
30
- ${normalizedContent}
24
+ return `---
25
+ description: ${description} - complexity limits, type safety, error handling
26
+ globs: "${globs}"
27
+ alwaysApply: false
28
+ ---
29
+
30
+ ${normalizedContent}
31
31
  `;
32
32
  }
33
33
  /**
@@ -104,86 +104,86 @@ export function generateCursorRules(cursorRulesDir, detectedStacks = [], languag
104
104
  const commonRules = [
105
105
  {
106
106
  filename: 'code-quality.mdc',
107
- content: `---
108
- description: General code quality rules for all files
109
- alwaysApply: true
110
- ---
111
-
112
- # Code Quality Rules
113
-
114
- ## Core Principles
115
- - **Modify only requested scope** - Don't touch unrelated code
116
- - **Preserve existing style** - Follow project conventions
117
- - **Keep working code** - No unnecessary refactoring
118
-
119
- ## Forbidden Patterns
120
- - No \`console.log\` in production code (remove after debugging)
121
- - No hardcoded strings/numbers → Extract to constants
122
- - No commented-out code in commits
123
- - No incomplete code without TODO marker
124
-
125
- ## Naming Conventions
126
- - Variables/functions: camelCase
127
- - Classes/types: PascalCase
128
- - Constants: UPPER_SNAKE_CASE
129
- - Files: kebab-case or PascalCase (match project style)
130
-
131
- ## Function Design
132
- - Single responsibility per function
133
- - Max 5 parameters (use object for more)
134
- - Descriptive names (verb + noun)
135
- - Document non-obvious behavior
136
-
137
- ## Complexity Limits
138
- | Metric | Limit |
139
- |--------|-------|
140
- | Function length | ≤30 lines (recommended), ≤50 lines (max) |
141
- | Nesting depth | ≤3 levels |
142
- | Parameters | ≤5 |
143
- | Cyclomatic complexity | ≤10 |
144
-
145
- ## Dependency Management
146
- - Avoid circular dependencies
147
- - Keep loose coupling (depend on interfaces)
148
- - High cohesion (group related functions)
107
+ content: `---
108
+ description: General code quality rules for all files
109
+ alwaysApply: true
110
+ ---
111
+
112
+ # Code Quality Rules
113
+
114
+ ## Core Principles
115
+ - **Modify only requested scope** - Don't touch unrelated code
116
+ - **Preserve existing style** - Follow project conventions
117
+ - **Keep working code** - No unnecessary refactoring
118
+
119
+ ## Forbidden Patterns
120
+ - No \`console.log\` in production code (remove after debugging)
121
+ - No hardcoded strings/numbers → Extract to constants
122
+ - No commented-out code in commits
123
+ - No incomplete code without TODO marker
124
+
125
+ ## Naming Conventions
126
+ - Variables/functions: camelCase
127
+ - Classes/types: PascalCase
128
+ - Constants: UPPER_SNAKE_CASE
129
+ - Files: kebab-case or PascalCase (match project style)
130
+
131
+ ## Function Design
132
+ - Single responsibility per function
133
+ - Max 5 parameters (use object for more)
134
+ - Descriptive names (verb + noun)
135
+ - Document non-obvious behavior
136
+
137
+ ## Complexity Limits
138
+ | Metric | Limit |
139
+ |--------|-------|
140
+ | Function length | ≤30 lines (recommended), ≤50 lines (max) |
141
+ | Nesting depth | ≤3 levels |
142
+ | Parameters | ≤5 |
143
+ | Cyclomatic complexity | ≤10 |
144
+
145
+ ## Dependency Management
146
+ - Avoid circular dependencies
147
+ - Keep loose coupling (depend on interfaces)
148
+ - High cohesion (group related functions)
149
149
  `,
150
150
  },
151
151
  {
152
152
  filename: 'security-checklist.mdc',
153
- content: `---
154
- description: Security checklist for code changes
155
- globs: "**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rs,**/*.java,**/*.kt,**/*.swift"
156
- alwaysApply: false
157
- ---
158
-
159
- # Security Checklist
160
-
161
- ## Input Validation
162
- - [ ] Validate all user inputs
163
- - [ ] Sanitize data before database queries
164
- - [ ] Use parameterized queries (prevent SQL injection)
165
-
166
- ## Authentication
167
- - [ ] Secure password handling (never store plain text)
168
- - [ ] Session management is secure
169
- - [ ] Tokens have appropriate expiry
170
-
171
- ## Data Protection
172
- - [ ] Sensitive data is encrypted
173
- - [ ] API keys not committed to code
174
- - [ ] Error messages don't leak sensitive info
175
-
176
- ## OWASP Top 10 Awareness
177
- - Injection (SQL, XSS, Command)
178
- - Broken authentication
179
- - Sensitive data exposure
180
- - XML external entities (XXE)
181
- - Broken access control
182
- - Security misconfiguration
183
- - Cross-site scripting (XSS)
184
- - Insecure deserialization
185
- - Using components with known vulnerabilities
186
- - Insufficient logging & monitoring
153
+ content: `---
154
+ description: Security checklist for code changes
155
+ globs: "**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rs,**/*.java,**/*.kt,**/*.swift"
156
+ alwaysApply: false
157
+ ---
158
+
159
+ # Security Checklist
160
+
161
+ ## Input Validation
162
+ - [ ] Validate all user inputs
163
+ - [ ] Sanitize data before database queries
164
+ - [ ] Use parameterized queries (prevent SQL injection)
165
+
166
+ ## Authentication
167
+ - [ ] Secure password handling (never store plain text)
168
+ - [ ] Session management is secure
169
+ - [ ] Tokens have appropriate expiry
170
+
171
+ ## Data Protection
172
+ - [ ] Sensitive data is encrypted
173
+ - [ ] API keys not committed to code
174
+ - [ ] Error messages don't leak sensitive info
175
+
176
+ ## OWASP Top 10 Awareness
177
+ - Injection (SQL, XSS, Command)
178
+ - Broken authentication
179
+ - Sensitive data exposure
180
+ - XML external entities (XXE)
181
+ - Broken access control
182
+ - Security misconfiguration
183
+ - Cross-site scripting (XSS)
184
+ - Insecure deserialization
185
+ - Using components with known vulnerabilities
186
+ - Insufficient logging & monitoring
187
187
  `,
188
188
  },
189
189
  ];