@su-record/vibe 2.9.32 → 2.9.34

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 (487) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +109 -109
  3. package/LICENSE +21 -21
  4. package/README.en.md +220 -220
  5. package/README.md +171 -171
  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 +600 -600
  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 +1946 -1946
  86. package/commands/vibe.scaffold.md +195 -195
  87. package/commands/vibe.spec.md +577 -577
  88. package/commands/vibe.test.md +49 -49
  89. package/commands/vibe.trace.md +276 -276
  90. package/commands/vibe.utils.md +413 -413
  91. package/commands/vibe.verify.md +572 -572
  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.d.ts.map +1 -1
  98. package/dist/cli/commands/info.js +48 -46
  99. package/dist/cli/commands/info.js.map +1 -1
  100. package/dist/cli/commands/init.d.ts +6 -3
  101. package/dist/cli/commands/init.d.ts.map +1 -1
  102. package/dist/cli/commands/init.js +60 -30
  103. package/dist/cli/commands/init.js.map +1 -1
  104. package/dist/cli/commands/remove.js +14 -14
  105. package/dist/cli/commands/sentinel.js +27 -27
  106. package/dist/cli/commands/skills.js +5 -5
  107. package/dist/cli/commands/slack.js +10 -10
  108. package/dist/cli/commands/stats.js +6 -6
  109. package/dist/cli/commands/telegram.js +12 -12
  110. package/dist/cli/commands/update.d.ts.map +1 -1
  111. package/dist/cli/commands/update.js +29 -11
  112. package/dist/cli/commands/update.js.map +1 -1
  113. package/dist/cli/detect.js +32 -32
  114. package/dist/cli/index.js +40 -34
  115. package/dist/cli/index.js.map +1 -1
  116. package/dist/cli/llm/claude-commands.js +16 -16
  117. package/dist/cli/llm/config.js +18 -18
  118. package/dist/cli/llm/gemini-commands.js +16 -16
  119. package/dist/cli/llm/gpt-commands.js +19 -19
  120. package/dist/cli/llm/help.js +21 -21
  121. package/dist/cli/postinstall/cursor-agents.js +32 -32
  122. package/dist/cli/postinstall/cursor-rules.js +83 -83
  123. package/dist/cli/postinstall/cursor-skills.js +743 -743
  124. package/dist/cli/postinstall/main.d.ts.map +1 -1
  125. package/dist/cli/postinstall/main.js +15 -1
  126. package/dist/cli/postinstall/main.js.map +1 -1
  127. package/dist/cli/setup/ProjectSetup.d.ts +25 -6
  128. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  129. package/dist/cli/setup/ProjectSetup.js +132 -80
  130. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  131. package/dist/cli/setup/Provisioner.js +42 -42
  132. package/dist/cli/setup.d.ts +1 -1
  133. package/dist/cli/setup.d.ts.map +1 -1
  134. package/dist/cli/setup.js +1 -1
  135. package/dist/cli/setup.js.map +1 -1
  136. package/dist/infra/lib/DeepInit.js +24 -24
  137. package/dist/infra/lib/IterationTracker.js +11 -11
  138. package/dist/infra/lib/PythonParser.js +108 -108
  139. package/dist/infra/lib/ReviewRace.js +96 -96
  140. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  141. package/dist/infra/lib/SkillQualityGate.js +9 -9
  142. package/dist/infra/lib/SkillRepository.js +159 -159
  143. package/dist/infra/lib/UltraQA.js +99 -99
  144. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  145. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  146. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  147. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  148. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  149. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  150. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  151. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  152. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  153. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  154. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  155. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  156. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  157. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  158. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  159. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  160. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  161. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  162. package/dist/infra/lib/gemini/orchestration.js +5 -5
  163. package/dist/infra/lib/gpt/orchestration.js +4 -4
  164. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  165. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  166. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  167. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  168. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  169. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  170. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  171. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  172. package/dist/infra/orchestrator/AgentManager.js +12 -12
  173. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  174. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  175. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  176. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  177. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  178. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  179. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  180. package/dist/tools/memory/getMemoryGraph.js +12 -12
  181. package/dist/tools/memory/getSessionContext.js +9 -9
  182. package/dist/tools/memory/linkMemories.js +14 -14
  183. package/dist/tools/memory/listMemories.js +4 -4
  184. package/dist/tools/memory/recallMemory.js +4 -4
  185. package/dist/tools/memory/saveMemory.js +4 -4
  186. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  187. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  188. package/dist/tools/semantic/astGrep.test.js +6 -6
  189. package/dist/tools/spec/prdParser.test.js +171 -171
  190. package/dist/tools/spec/specGenerator.js +169 -169
  191. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  192. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  193. package/hooks/gemini-hooks.json +73 -73
  194. package/hooks/hooks.json +134 -134
  195. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  196. package/hooks/scripts/__tests__/pre-tool-guard.test.js +409 -409
  197. package/hooks/scripts/__tests__/sentinel-guard.test.js +208 -208
  198. package/hooks/scripts/auto-commit.js +97 -97
  199. package/hooks/scripts/auto-format.js +64 -64
  200. package/hooks/scripts/auto-test.js +81 -81
  201. package/hooks/scripts/code-check.js +271 -271
  202. package/hooks/scripts/codex-detect.js +46 -46
  203. package/hooks/scripts/codex-review-gate.js +80 -80
  204. package/hooks/scripts/command-log.js +32 -32
  205. package/hooks/scripts/context-save.js +353 -353
  206. package/hooks/scripts/evolution-engine.js +91 -91
  207. package/hooks/scripts/figma-extract.js +768 -768
  208. package/hooks/scripts/figma-guard.js +219 -219
  209. package/hooks/scripts/figma-refine.js +315 -315
  210. package/hooks/scripts/figma-to-scss.js +394 -394
  211. package/hooks/scripts/figma-validate.js +353 -353
  212. package/hooks/scripts/hud-status.js +321 -321
  213. package/hooks/scripts/keyword-detector.js +214 -214
  214. package/hooks/scripts/lib/dispatcher.js +95 -87
  215. package/hooks/scripts/lib/scope-from-spec.js +276 -276
  216. package/hooks/scripts/llm-orchestrate.js +645 -645
  217. package/hooks/scripts/post-edit-dispatcher.js +9 -6
  218. package/hooks/scripts/post-edit.js +35 -35
  219. package/hooks/scripts/pr-test-gate.js +52 -52
  220. package/hooks/scripts/pre-tool-dispatcher.js +9 -1
  221. package/hooks/scripts/pre-tool-guard.js +259 -259
  222. package/hooks/scripts/prompt-dispatcher.js +200 -192
  223. package/hooks/scripts/scope-guard.js +145 -145
  224. package/hooks/scripts/sentinel-guard.js +130 -130
  225. package/hooks/scripts/session-start.js +186 -186
  226. package/hooks/scripts/skill-injector.js +83 -83
  227. package/hooks/scripts/step-counter.js +45 -45
  228. package/hooks/scripts/stop-dispatcher.js +9 -6
  229. package/hooks/scripts/stop-notify.js +209 -209
  230. package/hooks/scripts/utils.js +315 -315
  231. package/languages/csharp-unity.md +515 -515
  232. package/languages/gdscript-godot.md +470 -470
  233. package/languages/ruby-rails.md +489 -489
  234. package/languages/typescript-angular.md +433 -433
  235. package/languages/typescript-astro.md +416 -416
  236. package/languages/typescript-electron.md +406 -406
  237. package/languages/typescript-nestjs.md +524 -524
  238. package/languages/typescript-svelte.md +407 -407
  239. package/languages/typescript-tauri.md +365 -365
  240. package/package.json +106 -106
  241. package/skills/agents-md/SKILL.md +121 -121
  242. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  243. package/skills/agents-md/templates/agents-md.md +36 -36
  244. package/skills/arch-guard/SKILL.md +181 -181
  245. package/skills/arch-guard/agents/detector.md +48 -48
  246. package/skills/arch-guard/agents/reporter.md +48 -48
  247. package/skills/arch-guard/agents/rule-generator.md +49 -49
  248. package/skills/arch-guard/agents/violation-checker.md +51 -51
  249. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  250. package/skills/arch-guard/frameworks/solid.md +102 -102
  251. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  252. package/skills/arch-guard/templates/arch-rules.json +47 -47
  253. package/skills/arch-guard/templates/violation-report.md +53 -53
  254. package/skills/brand-assets/SKILL.md +147 -147
  255. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  256. package/skills/brand-assets/templates/brand-guide.md +161 -161
  257. package/skills/capability-loop/SKILL.md +272 -272
  258. package/skills/capability-loop/agents/capability-designer.md +61 -61
  259. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  260. package/skills/capability-loop/agents/implementer.md +50 -50
  261. package/skills/capability-loop/agents/tester.md +53 -53
  262. package/skills/capability-loop/templates/capability-spec.md +118 -118
  263. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  264. package/skills/characterization-test/SKILL.md +207 -207
  265. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  266. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  267. package/skills/characterization-test/agents/reporter.md +50 -50
  268. package/skills/characterization-test/agents/test-writer.md +49 -49
  269. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  270. package/skills/characterization-test/templates/test-template.ts +101 -101
  271. package/skills/chub-usage/SKILL.md +139 -139
  272. package/skills/claude-md-guide/SKILL.md +351 -351
  273. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  274. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  275. package/skills/commerce-patterns/SKILL.md +64 -64
  276. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  277. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  278. package/skills/commit-push-pr/SKILL.md +77 -77
  279. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  280. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  281. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  282. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  283. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  284. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  285. package/skills/context7-usage/SKILL.md +106 -106
  286. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  287. package/skills/create-prd/SKILL.md +90 -90
  288. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  289. package/skills/create-prd/agents/prioritizer.md +60 -60
  290. package/skills/create-prd/agents/requirements-writer.md +48 -48
  291. package/skills/create-prd/agents/researcher.md +55 -55
  292. package/skills/create-prd/agents/reviewer.md +54 -54
  293. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  294. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  295. package/skills/create-prd/orchestrator.md +70 -70
  296. package/skills/create-prd/rubrics/completeness.md +58 -58
  297. package/skills/create-prd/templates/prd.md +139 -139
  298. package/skills/design-audit/SKILL.md +152 -152
  299. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  300. package/skills/design-audit/agents/performance-auditor.md +46 -46
  301. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  302. package/skills/design-audit/agents/scorer.md +47 -47
  303. package/skills/design-audit/agents/slop-detector.md +47 -47
  304. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  305. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  306. package/skills/design-audit/orchestrator.md +64 -64
  307. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  308. package/skills/design-audit/rubrics/scoring.md +63 -63
  309. package/skills/design-audit/templates/report.md +88 -88
  310. package/skills/design-critique/SKILL.md +139 -139
  311. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  312. package/skills/design-critique/templates/critique-report.md +86 -86
  313. package/skills/design-distill/SKILL.md +130 -130
  314. package/skills/design-distill/templates/design-system.md +132 -132
  315. package/skills/design-normalize/SKILL.md +133 -133
  316. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  317. package/skills/design-normalize/templates/token-audit.md +89 -89
  318. package/skills/design-polish/SKILL.md +131 -131
  319. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  320. package/skills/design-polish/templates/polish-report.md +64 -64
  321. package/skills/design-teach/SKILL.md +182 -182
  322. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  323. package/skills/design-teach/templates/design-context.json +36 -36
  324. package/skills/devlog/SKILL.md +143 -143
  325. package/skills/e2e-commerce/SKILL.md +62 -62
  326. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  327. package/skills/event-comms/SKILL.md +172 -172
  328. package/skills/event-comms/templates/email-invite.md +99 -99
  329. package/skills/event-comms/templates/sns-post.md +133 -133
  330. package/skills/event-ops/SKILL.md +207 -207
  331. package/skills/event-ops/rubrics/contingency.md +85 -85
  332. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  333. package/skills/event-planning/SKILL.md +144 -144
  334. package/skills/event-planning/rubrics/timeline.md +70 -70
  335. package/skills/event-planning/templates/event-plan.md +91 -91
  336. package/skills/exec-plan/SKILL.md +149 -149
  337. package/skills/exec-plan/agents/decomposer.md +47 -47
  338. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  339. package/skills/exec-plan/agents/estimator.md +43 -43
  340. package/skills/exec-plan/agents/validator.md +55 -55
  341. package/skills/exec-plan/orchestrator.md +70 -70
  342. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  343. package/skills/exec-plan/templates/plan.md +147 -147
  344. package/skills/git-worktree/SKILL.md +73 -73
  345. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  346. package/skills/handoff/SKILL.md +110 -110
  347. package/skills/handoff/agents/context-summarizer.md +51 -51
  348. package/skills/handoff/agents/document-writer.md +63 -63
  349. package/skills/handoff/agents/state-collector.md +53 -53
  350. package/skills/handoff/agents/verifier.md +48 -48
  351. package/skills/handoff/rubrics/completeness.md +62 -62
  352. package/skills/handoff/templates/handoff.md +107 -107
  353. package/skills/parallel-research/SKILL.md +104 -104
  354. package/skills/parallel-research/agents/best-practices.md +43 -43
  355. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  356. package/skills/parallel-research/agents/framework-docs.md +45 -45
  357. package/skills/parallel-research/agents/security-advisory.md +46 -46
  358. package/skills/parallel-research/agents/synthesizer.md +57 -57
  359. package/skills/parallel-research/experts/best-practices.md +50 -50
  360. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  361. package/skills/parallel-research/experts/framework-docs.md +65 -65
  362. package/skills/parallel-research/experts/security-advisory.md +69 -69
  363. package/skills/parallel-research/orchestrator.md +79 -79
  364. package/skills/parallel-research/templates/awesome-list.md +32 -32
  365. package/skills/parallel-research/templates/paper.md +88 -88
  366. package/skills/parallel-research/templates/synthesis.md +101 -101
  367. package/skills/prioritization-frameworks/SKILL.md +87 -87
  368. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  369. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  370. package/skills/priority-todos/SKILL.md +64 -64
  371. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  372. package/skills/priority-todos/templates/todo-board.md +59 -59
  373. package/skills/seo-checklist/SKILL.md +58 -58
  374. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  375. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  376. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  377. package/skills/techdebt/SKILL.md +124 -124
  378. package/skills/techdebt/agents/analyzer.md +50 -50
  379. package/skills/techdebt/agents/fixer.md +41 -41
  380. package/skills/techdebt/agents/reviewer.md +47 -47
  381. package/skills/techdebt/agents/scanner.md +44 -44
  382. package/skills/techdebt/orchestrator.md +70 -70
  383. package/skills/techdebt/rubrics/severity.md +51 -51
  384. package/skills/techdebt/scripts/scan.js +90 -90
  385. package/skills/techdebt/templates/report.md +86 -86
  386. package/skills/tool-fallback/SKILL.md +104 -104
  387. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  388. package/skills/typescript-advanced-types/SKILL.md +67 -67
  389. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  390. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  391. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  392. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  393. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  394. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  395. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  396. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  397. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  398. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  399. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  400. package/skills/user-personas/SKILL.md +75 -75
  401. package/skills/user-personas/rubrics/research-methods.md +56 -56
  402. package/skills/user-personas/templates/persona.md +89 -89
  403. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  404. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  405. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  406. package/skills/vibe-contract/SKILL.md +166 -166
  407. package/skills/vibe-docs/templates/architecture.md +80 -80
  408. package/skills/vibe-docs/templates/readme.md +84 -84
  409. package/skills/vibe-docs/templates/release-notes.md +74 -74
  410. package/skills/vibe-figma/SKILL.md +363 -363
  411. package/skills/vibe-figma/rubrics/extraction-checklist.md +51 -51
  412. package/skills/vibe-figma/templates/component-index.md +126 -126
  413. package/skills/vibe-figma/templates/component-spec.md +168 -168
  414. package/skills/vibe-figma/templates/figma-handoff.md +100 -100
  415. package/skills/vibe-figma/templates/remapped-tree.md +277 -277
  416. package/skills/vibe-figma-convert/SKILL.md +235 -235
  417. package/skills/vibe-figma-convert/rubrics/conversion-rules.md +141 -141
  418. package/skills/vibe-figma-convert/templates/component.md +140 -140
  419. package/skills/vibe-figma-extract/SKILL.md +241 -241
  420. package/skills/vibe-figma-extract/rubrics/image-rules.md +157 -157
  421. package/skills/vibe-interview/SKILL.md +358 -358
  422. package/skills/vibe-interview/checklists/api.md +101 -101
  423. package/skills/vibe-interview/checklists/feature.md +88 -88
  424. package/skills/vibe-interview/checklists/library.md +95 -95
  425. package/skills/vibe-interview/checklists/mobile.md +89 -89
  426. package/skills/vibe-interview/checklists/webapp.md +97 -97
  427. package/skills/vibe-interview/checklists/website.md +99 -99
  428. package/skills/vibe-plan/SKILL.md +254 -254
  429. package/skills/vibe-regress/SKILL.md +174 -174
  430. package/skills/vibe-regress/templates/bug.md +44 -44
  431. package/skills/vibe-regress/templates/test-jest.md +29 -29
  432. package/skills/vibe-regress/templates/test-vitest.md +30 -30
  433. package/skills/vibe-spec/SKILL.md +1195 -1195
  434. package/skills/vibe-spec-review/SKILL.md +726 -726
  435. package/skills/vibe-test/SKILL.md +140 -140
  436. package/skills/video-production/SKILL.md +52 -52
  437. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  438. package/skills/video-production/templates/production-plan.md +104 -104
  439. package/vibe/config.json +29 -29
  440. package/vibe/constitution.md +227 -227
  441. package/vibe/rules/principles/communication-guide.md +98 -98
  442. package/vibe/rules/principles/development-philosophy.md +52 -52
  443. package/vibe/rules/principles/quick-start.md +102 -102
  444. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  445. package/vibe/rules/quality/checklist.md +276 -276
  446. package/vibe/rules/quality/performance.md +236 -236
  447. package/vibe/rules/quality/testing-strategy.md +440 -440
  448. package/vibe/rules/standards/anti-patterns.md +541 -541
  449. package/vibe/rules/standards/code-structure.md +291 -291
  450. package/vibe/rules/standards/complexity-metrics.md +313 -313
  451. package/vibe/rules/standards/git-workflow.md +237 -237
  452. package/vibe/rules/standards/naming-conventions.md +198 -198
  453. package/vibe/rules/standards/security.md +305 -305
  454. package/vibe/rules/writing/document-style.md +74 -74
  455. package/vibe/setup.sh +31 -31
  456. package/vibe/templates/claudemd-template.md +74 -74
  457. package/vibe/templates/constitution-template.md +267 -267
  458. package/vibe/templates/contract-backend-template.md +526 -526
  459. package/vibe/templates/contract-frontend-template.md +599 -599
  460. package/vibe/templates/feature-template.md +96 -96
  461. package/vibe/templates/plan-template.md +194 -194
  462. package/vibe/templates/spec-template.md +221 -221
  463. package/vibe/ui-ux-data/charts.csv +26 -26
  464. package/vibe/ui-ux-data/colors.csv +97 -97
  465. package/vibe/ui-ux-data/icons.csv +101 -101
  466. package/vibe/ui-ux-data/landing.csv +31 -31
  467. package/vibe/ui-ux-data/products.csv +96 -96
  468. package/vibe/ui-ux-data/react-performance.csv +45 -45
  469. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  470. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  471. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  472. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  473. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  474. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  475. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  476. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  477. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  478. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  479. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  480. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  481. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  482. package/vibe/ui-ux-data/styles.csv +68 -68
  483. package/vibe/ui-ux-data/typography.csv +57 -57
  484. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  485. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  486. package/vibe/ui-ux-data/version.json +31 -31
  487. package/vibe/ui-ux-data/web-interface.csv +31 -31
@@ -14,36 +14,36 @@ export class SkillEvalRunner {
14
14
  this.initializeTables();
15
15
  }
16
16
  initializeTables() {
17
- this.db.exec(`
18
- CREATE TABLE IF NOT EXISTS skill_eval_cases (
19
- id TEXT PRIMARY KEY,
20
- skillName TEXT NOT NULL,
21
- prompt TEXT NOT NULL,
22
- expectedOutput TEXT NOT NULL,
23
- files TEXT DEFAULT '[]',
24
- assertions TEXT DEFAULT '[]',
25
- createdAt TEXT NOT NULL,
26
- updatedAt TEXT NOT NULL
27
- );
28
-
29
- CREATE INDEX IF NOT EXISTS idx_sec_skill ON skill_eval_cases(skillName);
30
-
31
- CREATE TABLE IF NOT EXISTS skill_eval_runs (
32
- id TEXT PRIMARY KEY,
33
- evalId TEXT NOT NULL,
34
- skillName TEXT NOT NULL,
35
- variant TEXT NOT NULL CHECK(variant IN ('with_skill','baseline')),
36
- status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','passed','failed','error')),
37
- output TEXT DEFAULT '',
38
- grades TEXT DEFAULT '[]',
39
- durationMs INTEGER DEFAULT 0,
40
- tokenCount INTEGER DEFAULT 0,
41
- createdAt TEXT NOT NULL
42
- );
43
-
44
- CREATE INDEX IF NOT EXISTS idx_ser_eval ON skill_eval_runs(evalId);
45
- CREATE INDEX IF NOT EXISTS idx_ser_skill ON skill_eval_runs(skillName);
46
- CREATE INDEX IF NOT EXISTS idx_ser_variant ON skill_eval_runs(variant);
17
+ this.db.exec(`
18
+ CREATE TABLE IF NOT EXISTS skill_eval_cases (
19
+ id TEXT PRIMARY KEY,
20
+ skillName TEXT NOT NULL,
21
+ prompt TEXT NOT NULL,
22
+ expectedOutput TEXT NOT NULL,
23
+ files TEXT DEFAULT '[]',
24
+ assertions TEXT DEFAULT '[]',
25
+ createdAt TEXT NOT NULL,
26
+ updatedAt TEXT NOT NULL
27
+ );
28
+
29
+ CREATE INDEX IF NOT EXISTS idx_sec_skill ON skill_eval_cases(skillName);
30
+
31
+ CREATE TABLE IF NOT EXISTS skill_eval_runs (
32
+ id TEXT PRIMARY KEY,
33
+ evalId TEXT NOT NULL,
34
+ skillName TEXT NOT NULL,
35
+ variant TEXT NOT NULL CHECK(variant IN ('with_skill','baseline')),
36
+ status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending','running','passed','failed','error')),
37
+ output TEXT DEFAULT '',
38
+ grades TEXT DEFAULT '[]',
39
+ durationMs INTEGER DEFAULT 0,
40
+ tokenCount INTEGER DEFAULT 0,
41
+ createdAt TEXT NOT NULL
42
+ );
43
+
44
+ CREATE INDEX IF NOT EXISTS idx_ser_eval ON skill_eval_runs(evalId);
45
+ CREATE INDEX IF NOT EXISTS idx_ser_skill ON skill_eval_runs(skillName);
46
+ CREATE INDEX IF NOT EXISTS idx_ser_variant ON skill_eval_runs(variant);
47
47
  `);
48
48
  }
49
49
  /**
@@ -52,9 +52,9 @@ export class SkillEvalRunner {
52
52
  createEvalSet(input) {
53
53
  const cases = [];
54
54
  const now = new Date().toISOString();
55
- const insertStmt = this.db.prepare(`
56
- INSERT INTO skill_eval_cases (id, skillName, prompt, expectedOutput, files, assertions, createdAt, updatedAt)
57
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
55
+ const insertStmt = this.db.prepare(`
56
+ INSERT INTO skill_eval_cases (id, skillName, prompt, expectedOutput, files, assertions, createdAt, updatedAt)
57
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
58
58
  `);
59
59
  const insertMany = this.db.transaction((evals) => {
60
60
  for (const evalCase of evals) {
@@ -83,8 +83,8 @@ export class SkillEvalRunner {
83
83
  * Get all eval cases for a skill
84
84
  */
85
85
  getEvalCases(skillName) {
86
- const rows = this.db.prepare(`
87
- SELECT * FROM skill_eval_cases WHERE skillName = ? ORDER BY createdAt ASC
86
+ const rows = this.db.prepare(`
87
+ SELECT * FROM skill_eval_cases WHERE skillName = ? ORDER BY createdAt ASC
88
88
  `).all(skillName);
89
89
  return rows.map(this.rowToEvalCase);
90
90
  }
@@ -92,8 +92,8 @@ export class SkillEvalRunner {
92
92
  * Get a single eval case by ID
93
93
  */
94
94
  getEvalCase(evalId) {
95
- const row = this.db.prepare(`
96
- SELECT * FROM skill_eval_cases WHERE id = ?
95
+ const row = this.db.prepare(`
96
+ SELECT * FROM skill_eval_cases WHERE id = ?
97
97
  `).get(evalId);
98
98
  return row ? this.rowToEvalCase(row) : null;
99
99
  }
@@ -103,9 +103,9 @@ export class SkillEvalRunner {
103
103
  startRun(evalId, skillName, variant) {
104
104
  const id = `run-${Date.now().toString(36)}-${randomUUID().replace(/-/g, '').slice(0, 8)}`;
105
105
  const now = new Date().toISOString();
106
- this.db.prepare(`
107
- INSERT INTO skill_eval_runs (id, evalId, skillName, variant, status, createdAt)
108
- VALUES (?, ?, ?, ?, 'running', ?)
106
+ this.db.prepare(`
107
+ INSERT INTO skill_eval_runs (id, evalId, skillName, variant, status, createdAt)
108
+ VALUES (?, ?, ?, ?, 'running', ?)
109
109
  `).run(id, evalId, skillName, variant, now);
110
110
  return id;
111
111
  }
@@ -115,18 +115,18 @@ export class SkillEvalRunner {
115
115
  completeRun(runId, output, grades, durationMs, tokenCount) {
116
116
  const allPassed = grades.length === 0 || grades.every(g => g.passed);
117
117
  const status = allPassed ? 'passed' : 'failed';
118
- this.db.prepare(`
119
- UPDATE skill_eval_runs
120
- SET status = ?, output = ?, grades = ?, durationMs = ?, tokenCount = ?
121
- WHERE id = ?
118
+ this.db.prepare(`
119
+ UPDATE skill_eval_runs
120
+ SET status = ?, output = ?, grades = ?, durationMs = ?, tokenCount = ?
121
+ WHERE id = ?
122
122
  `).run(status, output, JSON.stringify(grades), durationMs, tokenCount, runId);
123
123
  }
124
124
  /**
125
125
  * Mark a run as errored
126
126
  */
127
127
  failRun(runId, errorMessage) {
128
- this.db.prepare(`
129
- UPDATE skill_eval_runs SET status = 'error', output = ? WHERE id = ?
128
+ this.db.prepare(`
129
+ UPDATE skill_eval_runs SET status = 'error', output = ? WHERE id = ?
130
130
  `).run(errorMessage, runId);
131
131
  }
132
132
  /**
@@ -181,8 +181,8 @@ export class SkillEvalRunner {
181
181
  * Get all runs for an eval case
182
182
  */
183
183
  getRunsForEval(evalId) {
184
- const rows = this.db.prepare(`
185
- SELECT * FROM skill_eval_runs WHERE evalId = ? ORDER BY createdAt DESC
184
+ const rows = this.db.prepare(`
185
+ SELECT * FROM skill_eval_runs WHERE evalId = ? ORDER BY createdAt DESC
186
186
  `).all(evalId);
187
187
  return rows.map(this.rowToRunResult);
188
188
  }
@@ -190,8 +190,8 @@ export class SkillEvalRunner {
190
190
  * Get all runs for a skill
191
191
  */
192
192
  getRunsForSkill(skillName) {
193
- const rows = this.db.prepare(`
194
- SELECT * FROM skill_eval_runs WHERE skillName = ? ORDER BY createdAt DESC
193
+ const rows = this.db.prepare(`
194
+ SELECT * FROM skill_eval_runs WHERE skillName = ? ORDER BY createdAt DESC
195
195
  `).all(skillName);
196
196
  return rows.map(this.rowToRunResult);
197
197
  }
@@ -17,9 +17,9 @@ export class SkillGapDetector {
17
17
  const truncated = prompt.slice(0, 200);
18
18
  const normalized = truncated.toLowerCase().replace(/\s+/g, ' ').trim();
19
19
  try {
20
- this.db.prepare(`
21
- INSERT INTO skill_gaps (id, prompt, normalizedPrompt, sessionId, createdAt)
22
- VALUES (?, ?, ?, ?, ?)
20
+ this.db.prepare(`
21
+ INSERT INTO skill_gaps (id, prompt, normalizedPrompt, sessionId, createdAt)
22
+ VALUES (?, ?, ?, ?, ?)
23
23
  `).run(id, truncated, normalized, sessionId || null, new Date().toISOString());
24
24
  }
25
25
  catch {
@@ -33,13 +33,13 @@ export class SkillGapDetector {
33
33
  const result = { newGaps: [], totalClusters: 0 };
34
34
  try {
35
35
  // Cluster by normalizedPrompt
36
- const clusters = this.db.prepare(`
37
- SELECT normalizedPrompt, COUNT(*) as count, GROUP_CONCAT(prompt, '|||') as prompts
38
- FROM skill_gaps
39
- GROUP BY normalizedPrompt
40
- HAVING count >= 3
41
- ORDER BY count DESC
42
- LIMIT ?
36
+ const clusters = this.db.prepare(`
37
+ SELECT normalizedPrompt, COUNT(*) as count, GROUP_CONCAT(prompt, '|||') as prompts
38
+ FROM skill_gaps
39
+ GROUP BY normalizedPrompt
40
+ HAVING count >= 3
41
+ ORDER BY count DESC
42
+ LIMIT ?
43
43
  `).all(limit);
44
44
  result.totalClusters = clusters.length;
45
45
  for (const cluster of clusters) {
@@ -11,20 +11,20 @@ export class UsageTracker {
11
11
  this.initializeTables();
12
12
  }
13
13
  initializeTables() {
14
- this.db.exec(`
15
- CREATE TABLE IF NOT EXISTS usage_events (
16
- id TEXT PRIMARY KEY,
17
- generationId TEXT NOT NULL,
18
- sessionId TEXT,
19
- matchedPrompt TEXT,
20
- feedback TEXT CHECK(feedback IN ('positive','negative','neutral') OR feedback IS NULL),
21
- createdAt TEXT NOT NULL
22
- );
23
-
24
- CREATE INDEX IF NOT EXISTS idx_ue_gen ON usage_events(generationId);
25
- CREATE INDEX IF NOT EXISTS idx_ue_session ON usage_events(sessionId);
26
- CREATE INDEX IF NOT EXISTS idx_ue_feedback ON usage_events(feedback);
27
- CREATE INDEX IF NOT EXISTS idx_ue_created ON usage_events(createdAt);
14
+ this.db.exec(`
15
+ CREATE TABLE IF NOT EXISTS usage_events (
16
+ id TEXT PRIMARY KEY,
17
+ generationId TEXT NOT NULL,
18
+ sessionId TEXT,
19
+ matchedPrompt TEXT,
20
+ feedback TEXT CHECK(feedback IN ('positive','negative','neutral') OR feedback IS NULL),
21
+ createdAt TEXT NOT NULL
22
+ );
23
+
24
+ CREATE INDEX IF NOT EXISTS idx_ue_gen ON usage_events(generationId);
25
+ CREATE INDEX IF NOT EXISTS idx_ue_session ON usage_events(sessionId);
26
+ CREATE INDEX IF NOT EXISTS idx_ue_feedback ON usage_events(feedback);
27
+ CREATE INDEX IF NOT EXISTS idx_ue_created ON usage_events(createdAt);
28
28
  `);
29
29
  }
30
30
  /**
@@ -33,9 +33,9 @@ export class UsageTracker {
33
33
  recordUsage(generationId, sessionId, matchedPrompt) {
34
34
  const id = `ue-${Date.now().toString(36)}-${randomUUID().replace(/-/g, '').slice(0, 8)}`;
35
35
  const now = new Date().toISOString();
36
- this.db.prepare(`
37
- INSERT INTO usage_events (id, generationId, sessionId, matchedPrompt, createdAt)
38
- VALUES (?, ?, ?, ?, ?)
36
+ this.db.prepare(`
37
+ INSERT INTO usage_events (id, generationId, sessionId, matchedPrompt, createdAt)
38
+ VALUES (?, ?, ?, ?, ?)
39
39
  `).run(id, generationId, sessionId || null, matchedPrompt || null, now);
40
40
  // Also increment usage count in generations table
41
41
  this.registry.incrementUsage(generationId);
@@ -45,8 +45,8 @@ export class UsageTracker {
45
45
  * Record explicit user feedback for a usage event
46
46
  */
47
47
  setFeedback(eventId, feedback) {
48
- const result = this.db.prepare(`
49
- UPDATE usage_events SET feedback = ? WHERE id = ?
48
+ const result = this.db.prepare(`
49
+ UPDATE usage_events SET feedback = ? WHERE id = ?
50
50
  `).run(feedback, eventId);
51
51
  return result.changes > 0;
52
52
  }
@@ -54,8 +54,8 @@ export class UsageTracker {
54
54
  * Record explicit feedback for a generation (latest event)
55
55
  */
56
56
  setFeedbackForGeneration(generationId, feedback) {
57
- const event = this.db.prepare(`
58
- SELECT id FROM usage_events WHERE generationId = ? ORDER BY createdAt DESC LIMIT 1
57
+ const event = this.db.prepare(`
58
+ SELECT id FROM usage_events WHERE generationId = ? ORDER BY createdAt DESC LIMIT 1
59
59
  `).get(generationId);
60
60
  if (!event)
61
61
  return false;
@@ -76,9 +76,9 @@ export class UsageTracker {
76
76
  feedback = 'neutral';
77
77
  }
78
78
  // Only apply to events without explicit feedback
79
- const result = this.db.prepare(`
80
- UPDATE usage_events SET feedback = ?
81
- WHERE sessionId = ? AND feedback IS NULL
79
+ const result = this.db.prepare(`
80
+ UPDATE usage_events SET feedback = ?
81
+ WHERE sessionId = ? AND feedback IS NULL
82
82
  `).run(feedback, sessionId);
83
83
  return result.changes;
84
84
  }
@@ -86,8 +86,8 @@ export class UsageTracker {
86
86
  * Get usage events for a generation
87
87
  */
88
88
  getByGeneration(generationId) {
89
- const rows = this.db.prepare(`
90
- SELECT * FROM usage_events WHERE generationId = ? ORDER BY createdAt DESC
89
+ const rows = this.db.prepare(`
90
+ SELECT * FROM usage_events WHERE generationId = ? ORDER BY createdAt DESC
91
91
  `).all(generationId);
92
92
  return rows.map(this.rowToEvent);
93
93
  }
@@ -138,8 +138,8 @@ export class UsageTracker {
138
138
  * Get total usage count for a generation
139
139
  */
140
140
  getUsageCount(generationId) {
141
- const result = this.db.prepare(`
142
- SELECT COUNT(*) as cnt FROM usage_events WHERE generationId = ?
141
+ const result = this.db.prepare(`
142
+ SELECT COUNT(*) as cnt FROM usage_events WHERE generationId = ?
143
143
  `).get(generationId);
144
144
  return result.cnt;
145
145
  }
@@ -28,35 +28,35 @@ export async function coreGeminiOrchestrate(prompt, systemPrompt, options = {})
28
28
  * Core Spec 파싱 (Core Spec → 실행 계획)
29
29
  */
30
30
  export async function coreGeminiParseSpec(spec) {
31
- return coreGeminiOrchestrate(spec, `You are a Core Spec parser. Parse the given specification and output a structured execution plan.
31
+ return coreGeminiOrchestrate(spec, `You are a Core Spec parser. Parse the given specification and output a structured execution plan.
32
32
  Output format: { "phases": [...], "files": [...], "dependencies": [...] }`);
33
33
  }
34
34
  /**
35
35
  * Core 실행 계획 수립 (Task → Steps)
36
36
  */
37
37
  export async function coreGeminiPlanExecution(task, context) {
38
- return coreGeminiOrchestrate(`Task: ${task}\n\nContext:\n${context}`, `You are a Core execution planner. Given a task and context, create a step-by-step execution plan.
38
+ return coreGeminiOrchestrate(`Task: ${task}\n\nContext:\n${context}`, `You are a Core execution planner. Given a task and context, create a step-by-step execution plan.
39
39
  Output format: { "steps": [{ "id": 1, "action": "...", "target": "...", "expected": "..." }], "estimatedComplexity": "low|medium|high" }`);
40
40
  }
41
41
  /**
42
42
  * Core 코드 분석 (빠른 구조 분석)
43
43
  */
44
44
  export async function coreGeminiAnalyze(code, question) {
45
- return coreGeminiOrchestrate(`Code:\n\`\`\`\n${code}\n\`\`\`\n\nQuestion: ${question}`, `You are a code analyzer. Answer the question about the given code concisely.
45
+ return coreGeminiOrchestrate(`Code:\n\`\`\`\n${code}\n\`\`\`\n\nQuestion: ${question}`, `You are a code analyzer. Answer the question about the given code concisely.
46
46
  Output format: { "answer": "...", "confidence": 0.0-1.0, "relatedSymbols": [...] }`);
47
47
  }
48
48
  /**
49
49
  * Core 다음 액션 결정 (상태 기반)
50
50
  */
51
51
  export async function coreGeminiDecideNextAction(currentState, availableActions, goal) {
52
- return coreGeminiOrchestrate(`Current State:\n${currentState}\n\nAvailable Actions:\n${availableActions.join('\n')}\n\nGoal: ${goal}`, `You are an action decider. Based on the current state and goal, select the best next action.
52
+ return coreGeminiOrchestrate(`Current State:\n${currentState}\n\nAvailable Actions:\n${availableActions.join('\n')}\n\nGoal: ${goal}`, `You are an action decider. Based on the current state and goal, select the best next action.
53
53
  Output format: { "selectedAction": "...", "reason": "...", "parameters": {} }`);
54
54
  }
55
55
  /**
56
56
  * Core UI/UX 분석 (검색 없이 내부 지식으로)
57
57
  */
58
58
  export async function coreGeminiAnalyzeUX(description) {
59
- return coreGeminiOrchestrate(description, `You are a UI/UX expert. Analyze the given design description and provide structured feedback.
59
+ return coreGeminiOrchestrate(description, `You are a UI/UX expert. Analyze the given design description and provide structured feedback.
60
60
  Output format: { "issues": [...], "suggestions": [...], "accessibility": { "score": 0-100, "concerns": [...] } }`, { jsonMode: true });
61
61
  }
62
62
  //# sourceMappingURL=orchestration.js.map
@@ -25,28 +25,28 @@ export async function coreGptOrchestrate(prompt, systemPrompt, options = {}) {
25
25
  * Core Spec 파싱 (Core Spec → 실행 계획)
26
26
  */
27
27
  export async function coreGptParseSpec(spec) {
28
- return coreGptOrchestrate(spec, `You are a Core Spec parser. Parse the given specification and output a structured execution plan.
28
+ return coreGptOrchestrate(spec, `You are a Core Spec parser. Parse the given specification and output a structured execution plan.
29
29
  Output format: { "phases": [...], "files": [...], "dependencies": [...] }`);
30
30
  }
31
31
  /**
32
32
  * Core 실행 계획 수립 (Task → Steps)
33
33
  */
34
34
  export async function coreGptPlanExecution(task, context) {
35
- return coreGptOrchestrate(`Task: ${task}\n\nContext:\n${context}`, `You are a Core execution planner. Given a task and context, create a step-by-step execution plan.
35
+ return coreGptOrchestrate(`Task: ${task}\n\nContext:\n${context}`, `You are a Core execution planner. Given a task and context, create a step-by-step execution plan.
36
36
  Output format: { "steps": [{ "id": 1, "action": "...", "target": "...", "expected": "..." }], "estimatedComplexity": "low|medium|high" }`);
37
37
  }
38
38
  /**
39
39
  * Core 코드 분석 (빠른 구조 분석)
40
40
  */
41
41
  export async function coreGptAnalyze(code, question) {
42
- return coreGptOrchestrate(`Code:\n\`\`\`\n${code}\n\`\`\`\n\nQuestion: ${question}`, `You are a code analyzer. Answer the question about the given code concisely.
42
+ return coreGptOrchestrate(`Code:\n\`\`\`\n${code}\n\`\`\`\n\nQuestion: ${question}`, `You are a code analyzer. Answer the question about the given code concisely.
43
43
  Output format: { "answer": "...", "confidence": 0.0-1.0, "relatedSymbols": [...] }`);
44
44
  }
45
45
  /**
46
46
  * Core 다음 액션 결정 (상태 기반)
47
47
  */
48
48
  export async function coreGptDecideNextAction(currentState, availableActions, goal) {
49
- return coreGptOrchestrate(`Current State:\n${currentState}\n\nAvailable Actions:\n${availableActions.join('\n')}\n\nGoal: ${goal}`, `You are an action decider. Based on the current state and goal, select the best next action.
49
+ return coreGptOrchestrate(`Current State:\n${currentState}\n\nAvailable Actions:\n${availableActions.join('\n')}\n\nGoal: ${goal}`, `You are an action decider. Based on the current state and goal, select the best next action.
50
50
  Output format: { "selectedAction": "...", "reason": "...", "parameters": {} }`);
51
51
  }
52
52
  //# sourceMappingURL=orchestration.js.map
@@ -14,10 +14,10 @@ export class KnowledgeGraph {
14
14
  const timestamp = new Date().toISOString();
15
15
  const metadataJson = metadata ? JSON.stringify(metadata) : null;
16
16
  try {
17
- const stmt = this.db.prepare(`
18
- INSERT OR REPLACE INTO memory_relations
19
- (sourceKey, targetKey, relationType, strength, metadata, timestamp)
20
- VALUES (?, ?, ?, ?, ?, ?)
17
+ const stmt = this.db.prepare(`
18
+ INSERT OR REPLACE INTO memory_relations
19
+ (sourceKey, targetKey, relationType, strength, metadata, timestamp)
20
+ VALUES (?, ?, ?, ?, ?, ?)
21
21
  `);
22
22
  stmt.run(sourceKey, targetKey, relationType, strength, metadataJson, timestamp);
23
23
  return true;
@@ -62,22 +62,22 @@ export class MemorySearch {
62
62
  return this.searchKeywordLike(query, limit, category);
63
63
  }
64
64
  if (category) {
65
- const stmt = this.db.prepare(`
66
- SELECT m.*, bm25(memories_fts) as rank
67
- FROM memories_fts fts
68
- JOIN memories m ON m.rowid = fts.rowid
69
- WHERE memories_fts MATCH ? AND m.category = ?
70
- ORDER BY rank
71
- LIMIT ?
65
+ const stmt = this.db.prepare(`
66
+ SELECT m.*, bm25(memories_fts) as rank
67
+ FROM memories_fts fts
68
+ JOIN memories m ON m.rowid = fts.rowid
69
+ WHERE memories_fts MATCH ? AND m.category = ?
70
+ ORDER BY rank
71
+ LIMIT ?
72
72
  `);
73
73
  return stmt.all(MemoryStorage.sanitizeFTS5Query(query), category, limit);
74
74
  }
75
75
  return this.storage.searchFTS(query, limit);
76
76
  }
77
77
  searchKeywordLike(query, limit, category) {
78
- let sql = `
79
- SELECT * FROM memories
80
- WHERE (key LIKE ? OR value LIKE ?)
78
+ let sql = `
79
+ SELECT * FROM memories
80
+ WHERE (key LIKE ? OR value LIKE ?)
81
81
  `;
82
82
  const params = [`%${query}%`, `%${query}%`];
83
83
  if (category) {
@@ -89,20 +89,20 @@ export class MemorySearch {
89
89
  return this.db.prepare(sql).all(...params);
90
90
  }
91
91
  searchTemporal(query, limit) {
92
- const sql = `
93
- SELECT * FROM memories
94
- WHERE key LIKE ? OR value LIKE ?
95
- ORDER BY timestamp DESC
96
- LIMIT ?
92
+ const sql = `
93
+ SELECT * FROM memories
94
+ WHERE key LIKE ? OR value LIKE ?
95
+ ORDER BY timestamp DESC
96
+ LIMIT ?
97
97
  `;
98
98
  return this.db.prepare(sql).all(`%${query}%`, `%${query}%`, limit);
99
99
  }
100
100
  searchByPriority(query, limit) {
101
- const sql = `
102
- SELECT * FROM memories
103
- WHERE key LIKE ? OR value LIKE ?
104
- ORDER BY priority DESC, lastAccessed DESC
105
- LIMIT ?
101
+ const sql = `
102
+ SELECT * FROM memories
103
+ WHERE key LIKE ? OR value LIKE ?
104
+ ORDER BY priority DESC, lastAccessed DESC
105
+ LIMIT ?
106
106
  `;
107
107
  return this.db.prepare(sql).all(`%${query}%`, `%${query}%`, limit);
108
108
  }
@@ -113,26 +113,26 @@ export class MemorySearch {
113
113
  let sql;
114
114
  const params = [];
115
115
  if (category) {
116
- sql = `
117
- SELECT m.*,
118
- (bm25(memories_fts) * -1 + m.priority * 0.5) as relevance_score
119
- FROM memories_fts fts
120
- JOIN memories m ON m.rowid = fts.rowid
121
- WHERE memories_fts MATCH ? AND m.category = ?
122
- ORDER BY relevance_score DESC, m.lastAccessed DESC
123
- LIMIT ?
116
+ sql = `
117
+ SELECT m.*,
118
+ (bm25(memories_fts) * -1 + m.priority * 0.5) as relevance_score
119
+ FROM memories_fts fts
120
+ JOIN memories m ON m.rowid = fts.rowid
121
+ WHERE memories_fts MATCH ? AND m.category = ?
122
+ ORDER BY relevance_score DESC, m.lastAccessed DESC
123
+ LIMIT ?
124
124
  `;
125
125
  params.push(MemoryStorage.sanitizeFTS5Query(query), category, limit);
126
126
  }
127
127
  else {
128
- sql = `
129
- SELECT m.*,
130
- (bm25(memories_fts) * -1 + m.priority * 0.5) as relevance_score
131
- FROM memories_fts fts
132
- JOIN memories m ON m.rowid = fts.rowid
133
- WHERE memories_fts MATCH ?
134
- ORDER BY relevance_score DESC, m.lastAccessed DESC
135
- LIMIT ?
128
+ sql = `
129
+ SELECT m.*,
130
+ (bm25(memories_fts) * -1 + m.priority * 0.5) as relevance_score
131
+ FROM memories_fts fts
132
+ JOIN memories m ON m.rowid = fts.rowid
133
+ WHERE memories_fts MATCH ?
134
+ ORDER BY relevance_score DESC, m.lastAccessed DESC
135
+ LIMIT ?
136
136
  `;
137
137
  params.push(MemoryStorage.sanitizeFTS5Query(query), limit);
138
138
  }
@@ -145,13 +145,13 @@ export class MemorySearch {
145
145
  }
146
146
  }
147
147
  // LIKE-based fallback
148
- let sql = `
149
- SELECT *,
150
- (CASE WHEN key LIKE ? THEN 3 ELSE 0 END +
151
- CASE WHEN value LIKE ? THEN 2 ELSE 0 END +
152
- priority * 0.5) as relevance_score
153
- FROM memories
154
- WHERE key LIKE ? OR value LIKE ?
148
+ let sql = `
149
+ SELECT *,
150
+ (CASE WHEN key LIKE ? THEN 3 ELSE 0 END +
151
+ CASE WHEN value LIKE ? THEN 2 ELSE 0 END +
152
+ priority * 0.5) as relevance_score
153
+ FROM memories
154
+ WHERE key LIKE ? OR value LIKE ?
155
155
  `;
156
156
  const params = [`%${query}%`, `%${query}%`, `%${query}%`, `%${query}%`];
157
157
  if (category) {
@@ -247,24 +247,24 @@ export class MemorySearch {
247
247
  let sql;
248
248
  const params = [];
249
249
  if (category) {
250
- sql = `
251
- SELECT m.key, bm25(memories_fts) as rank
252
- FROM memories_fts fts
253
- JOIN memories m ON m.rowid = fts.rowid
254
- WHERE memories_fts MATCH ? AND m.category = ?
255
- ORDER BY rank
256
- LIMIT ?
250
+ sql = `
251
+ SELECT m.key, bm25(memories_fts) as rank
252
+ FROM memories_fts fts
253
+ JOIN memories m ON m.rowid = fts.rowid
254
+ WHERE memories_fts MATCH ? AND m.category = ?
255
+ ORDER BY rank
256
+ LIMIT ?
257
257
  `;
258
258
  params.push(MemoryStorage.sanitizeFTS5Query(query), category, limit);
259
259
  }
260
260
  else {
261
- sql = `
262
- SELECT m.key, bm25(memories_fts) as rank
263
- FROM memories_fts fts
264
- JOIN memories m ON m.rowid = fts.rowid
265
- WHERE memories_fts MATCH ?
266
- ORDER BY rank
267
- LIMIT ?
261
+ sql = `
262
+ SELECT m.key, bm25(memories_fts) as rank
263
+ FROM memories_fts fts
264
+ JOIN memories m ON m.rowid = fts.rowid
265
+ WHERE memories_fts MATCH ?
266
+ ORDER BY rank
267
+ LIMIT ?
268
268
  `;
269
269
  params.push(MemoryStorage.sanitizeFTS5Query(query), limit);
270
270
  }