@su-record/vibe 2.8.48 → 2.8.50

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 (414) hide show
  1. package/.env.example +37 -37
  2. package/CLAUDE.md +169 -169
  3. package/LICENSE +21 -21
  4. package/README.md +694 -554
  5. package/agents/architect-low.md +41 -41
  6. package/agents/architect-medium.md +59 -59
  7. package/agents/architect.md +80 -80
  8. package/agents/build-error-resolver.md +115 -115
  9. package/agents/compounder.md +261 -261
  10. package/agents/diagrammer.md +178 -178
  11. package/agents/docs/api-documenter.md +99 -99
  12. package/agents/docs/changelog-writer.md +93 -93
  13. package/agents/e2e-tester.md +294 -294
  14. package/agents/event/event-comms.md +78 -78
  15. package/agents/event/event-content.md +68 -68
  16. package/agents/event/event-image.md +95 -95
  17. package/agents/event/event-ops.md +84 -84
  18. package/agents/event/event-scheduler.md +69 -69
  19. package/agents/event/event-speaker.md +86 -86
  20. package/agents/explorer-low.md +42 -42
  21. package/agents/explorer-medium.md +59 -59
  22. package/agents/explorer.md +48 -48
  23. package/agents/implementer-low.md +43 -43
  24. package/agents/implementer-medium.md +52 -52
  25. package/agents/implementer.md +54 -54
  26. package/agents/junior-mentor.md +141 -141
  27. package/agents/planning/requirements-analyst.md +84 -84
  28. package/agents/planning/ux-advisor.md +83 -83
  29. package/agents/qa/acceptance-tester.md +86 -86
  30. package/agents/qa/edge-case-finder.md +93 -93
  31. package/agents/qa/qa-coordinator.md +131 -131
  32. package/agents/refactor-cleaner.md +143 -143
  33. package/agents/research/best-practices-agent.md +199 -199
  34. package/agents/research/codebase-patterns-agent.md +157 -157
  35. package/agents/research/framework-docs-agent.md +188 -188
  36. package/agents/research/security-advisory-agent.md +213 -213
  37. package/agents/review/architecture-reviewer.md +107 -107
  38. package/agents/review/complexity-reviewer.md +116 -116
  39. package/agents/review/data-integrity-reviewer.md +88 -88
  40. package/agents/review/git-history-reviewer.md +103 -103
  41. package/agents/review/performance-reviewer.md +86 -86
  42. package/agents/review/python-reviewer.md +150 -150
  43. package/agents/review/rails-reviewer.md +139 -139
  44. package/agents/review/react-reviewer.md +144 -144
  45. package/agents/review/security-reviewer.md +80 -80
  46. package/agents/review/simplicity-reviewer.md +140 -140
  47. package/agents/review/test-coverage-reviewer.md +116 -116
  48. package/agents/review/typescript-reviewer.md +127 -127
  49. package/agents/searcher.md +54 -54
  50. package/agents/simplifier.md +120 -120
  51. package/agents/tester.md +49 -49
  52. package/agents/ui/ui-a11y-auditor.md +93 -93
  53. package/agents/ui/ui-antipattern-detector.md +102 -102
  54. package/agents/ui/ui-dataviz-advisor.md +69 -69
  55. package/agents/ui/ui-design-system-gen.md +57 -57
  56. package/agents/ui/ui-industry-analyzer.md +49 -49
  57. package/agents/ui/ui-layout-architect.md +65 -65
  58. package/agents/ui/ui-stack-implementer.md +68 -68
  59. package/agents/ui/ux-compliance-reviewer.md +81 -81
  60. package/agents/ui-previewer.md +258 -258
  61. package/commands/vibe.analyze.md +379 -379
  62. package/commands/vibe.docs.md +32 -32
  63. package/commands/vibe.event.md +163 -163
  64. package/commands/vibe.figma.md +69 -69
  65. package/commands/vibe.review.md +686 -686
  66. package/commands/vibe.run.md +2276 -2276
  67. package/commands/vibe.spec.md +1195 -1195
  68. package/commands/vibe.spec.review.md +609 -609
  69. package/commands/vibe.trace.md +259 -259
  70. package/commands/vibe.utils.md +413 -413
  71. package/commands/vibe.verify.md +510 -510
  72. package/dist/cli/collaborator.js +52 -52
  73. package/dist/cli/commands/config.js +9 -9
  74. package/dist/cli/commands/evolution.js +12 -12
  75. package/dist/cli/commands/figma.js +20 -20
  76. package/dist/cli/commands/info.js +53 -53
  77. package/dist/cli/commands/init.js +5 -5
  78. package/dist/cli/commands/remove.js +14 -14
  79. package/dist/cli/commands/sentinel.js +27 -27
  80. package/dist/cli/commands/skills.js +5 -5
  81. package/dist/cli/commands/slack.js +10 -10
  82. package/dist/cli/commands/stats.js +6 -6
  83. package/dist/cli/commands/telegram.js +12 -12
  84. package/dist/cli/detect.js +32 -32
  85. package/dist/cli/index.js +53 -53
  86. package/dist/cli/llm/claude-commands.js +16 -16
  87. package/dist/cli/llm/config.js +18 -18
  88. package/dist/cli/llm/gemini-commands.js +16 -16
  89. package/dist/cli/llm/gpt-commands.js +19 -19
  90. package/dist/cli/llm/help.js +21 -21
  91. package/dist/cli/postinstall/cursor-agents.js +32 -32
  92. package/dist/cli/postinstall/cursor-rules.js +83 -83
  93. package/dist/cli/postinstall/cursor-skills.js +743 -743
  94. package/dist/cli/setup/Provisioner.js +42 -42
  95. package/dist/infra/lib/DeepInit.js +24 -24
  96. package/dist/infra/lib/IterationTracker.js +11 -11
  97. package/dist/infra/lib/PythonParser.js +108 -108
  98. package/dist/infra/lib/ReviewRace.js +96 -96
  99. package/dist/infra/lib/SkillFrontmatter.js +28 -28
  100. package/dist/infra/lib/SkillQualityGate.js +9 -9
  101. package/dist/infra/lib/SkillRepository.js +159 -159
  102. package/dist/infra/lib/UltraQA.js +99 -99
  103. package/dist/infra/lib/autonomy/AuditStore.js +41 -41
  104. package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
  105. package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
  106. package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
  107. package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
  108. package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
  109. package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
  110. package/dist/infra/lib/embedding/VectorStore.js +22 -22
  111. package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
  112. package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
  113. package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
  114. package/dist/infra/lib/evolution/InsightStore.js +90 -90
  115. package/dist/infra/lib/evolution/ParityTester.js +57 -57
  116. package/dist/infra/lib/evolution/RollbackManager.js +5 -5
  117. package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
  118. package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
  119. package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
  120. package/dist/infra/lib/evolution/UsageTracker.js +28 -28
  121. package/dist/infra/lib/gemini/orchestration.js +5 -5
  122. package/dist/infra/lib/gpt/orchestration.js +4 -4
  123. package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
  124. package/dist/infra/lib/memory/MemorySearch.js +57 -57
  125. package/dist/infra/lib/memory/MemoryStorage.js +181 -181
  126. package/dist/infra/lib/memory/ObservationStore.js +28 -28
  127. package/dist/infra/lib/memory/ReflectionStore.js +30 -30
  128. package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
  129. package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
  130. package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
  131. package/dist/infra/orchestrator/AgentManager.js +12 -12
  132. package/dist/infra/orchestrator/AgentRegistry.js +65 -65
  133. package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
  134. package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
  135. package/dist/infra/orchestrator/parallelResearch.js +24 -24
  136. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  137. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  138. package/dist/tools/memory/createMemoryTimeline.js +10 -10
  139. package/dist/tools/memory/getMemoryGraph.js +12 -12
  140. package/dist/tools/memory/getSessionContext.js +9 -9
  141. package/dist/tools/memory/linkMemories.js +14 -14
  142. package/dist/tools/memory/listMemories.js +4 -4
  143. package/dist/tools/memory/recallMemory.js +4 -4
  144. package/dist/tools/memory/saveMemory.js +4 -4
  145. package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
  146. package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
  147. package/dist/tools/semantic/astGrep.test.js +6 -6
  148. package/dist/tools/spec/prdParser.test.js +171 -171
  149. package/dist/tools/spec/specGenerator.js +169 -169
  150. package/dist/tools/spec/traceabilityMatrix.js +64 -64
  151. package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
  152. package/hooks/gemini-hooks.json +73 -73
  153. package/hooks/hooks.json +170 -170
  154. package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
  155. package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
  156. package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
  157. package/hooks/scripts/auto-commit.js +97 -65
  158. package/hooks/scripts/auto-format.js +64 -64
  159. package/hooks/scripts/auto-test.js +81 -81
  160. package/hooks/scripts/code-check.js +268 -216
  161. package/hooks/scripts/codex-detect.js +46 -46
  162. package/hooks/scripts/codex-review-gate.js +80 -80
  163. package/hooks/scripts/command-log.js +32 -32
  164. package/hooks/scripts/context-save.js +353 -353
  165. package/hooks/scripts/evolution-engine.js +91 -91
  166. package/hooks/scripts/figma-extract.js +477 -477
  167. package/hooks/scripts/hud-status.js +321 -321
  168. package/hooks/scripts/keyword-detector.js +214 -214
  169. package/hooks/scripts/llm-orchestrate.js +572 -555
  170. package/hooks/scripts/post-edit.js +32 -32
  171. package/hooks/scripts/pr-test-gate.js +52 -52
  172. package/hooks/scripts/pre-tool-guard.js +159 -159
  173. package/hooks/scripts/prompt-dispatcher.js +185 -185
  174. package/hooks/scripts/sentinel-guard.js +131 -131
  175. package/hooks/scripts/session-start.js +177 -106
  176. package/hooks/scripts/skill-injector.js +83 -83
  177. package/hooks/scripts/stop-notify.js +209 -209
  178. package/hooks/scripts/utils.js +243 -186
  179. package/languages/csharp-unity.md +515 -515
  180. package/languages/gdscript-godot.md +470 -470
  181. package/languages/ruby-rails.md +489 -489
  182. package/languages/typescript-angular.md +433 -433
  183. package/languages/typescript-astro.md +416 -416
  184. package/languages/typescript-electron.md +406 -406
  185. package/languages/typescript-nestjs.md +524 -524
  186. package/languages/typescript-svelte.md +407 -407
  187. package/languages/typescript-tauri.md +365 -365
  188. package/package.json +101 -100
  189. package/skills/agents-md/SKILL.md +121 -121
  190. package/skills/agents-md/rubrics/what-to-keep.md +49 -49
  191. package/skills/agents-md/templates/agents-md.md +36 -36
  192. package/skills/arch-guard/SKILL.md +181 -181
  193. package/skills/arch-guard/agents/detector.md +48 -48
  194. package/skills/arch-guard/agents/reporter.md +48 -48
  195. package/skills/arch-guard/agents/rule-generator.md +49 -49
  196. package/skills/arch-guard/agents/violation-checker.md +51 -51
  197. package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
  198. package/skills/arch-guard/frameworks/solid.md +102 -102
  199. package/skills/arch-guard/scripts/check-boundaries.js +90 -90
  200. package/skills/arch-guard/templates/arch-rules.json +47 -47
  201. package/skills/arch-guard/templates/violation-report.md +53 -53
  202. package/skills/brand-assets/SKILL.md +147 -147
  203. package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
  204. package/skills/brand-assets/templates/brand-guide.md +161 -161
  205. package/skills/capability-loop/SKILL.md +168 -168
  206. package/skills/capability-loop/agents/capability-designer.md +61 -61
  207. package/skills/capability-loop/agents/failure-analyst.md +55 -55
  208. package/skills/capability-loop/agents/implementer.md +50 -50
  209. package/skills/capability-loop/agents/tester.md +53 -53
  210. package/skills/capability-loop/templates/capability-spec.md +118 -118
  211. package/skills/capability-loop/templates/failure-analysis.md +118 -118
  212. package/skills/characterization-test/SKILL.md +207 -207
  213. package/skills/characterization-test/agents/behavior-capturer.md +50 -50
  214. package/skills/characterization-test/agents/coverage-checker.md +54 -54
  215. package/skills/characterization-test/agents/reporter.md +50 -50
  216. package/skills/characterization-test/agents/test-writer.md +49 -49
  217. package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
  218. package/skills/characterization-test/templates/test-template.ts +101 -101
  219. package/skills/chub-usage/SKILL.md +115 -115
  220. package/skills/claude-md-guide/SKILL.md +351 -351
  221. package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
  222. package/skills/claude-md-guide/templates/claude-md.md +54 -54
  223. package/skills/commerce-patterns/SKILL.md +64 -64
  224. package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
  225. package/skills/commerce-patterns/templates/product-schema.md +85 -85
  226. package/skills/commit-push-pr/SKILL.md +77 -77
  227. package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
  228. package/skills/commit-push-pr/agents/message-writer.md +50 -50
  229. package/skills/commit-push-pr/agents/pr-writer.md +58 -58
  230. package/skills/commit-push-pr/agents/reviewer.md +52 -52
  231. package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
  232. package/skills/commit-push-pr/templates/pr-body.md +63 -63
  233. package/skills/context7-usage/SKILL.md +106 -106
  234. package/skills/context7-usage/rubrics/when-to-use.md +50 -50
  235. package/skills/create-prd/SKILL.md +90 -90
  236. package/skills/create-prd/agents/edge-case-finder.md +48 -48
  237. package/skills/create-prd/agents/prioritizer.md +60 -60
  238. package/skills/create-prd/agents/requirements-writer.md +48 -48
  239. package/skills/create-prd/agents/researcher.md +55 -55
  240. package/skills/create-prd/agents/reviewer.md +54 -54
  241. package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
  242. package/skills/create-prd/frameworks/rice-scoring.md +97 -97
  243. package/skills/create-prd/orchestrator.md +70 -70
  244. package/skills/create-prd/rubrics/completeness.md +58 -58
  245. package/skills/create-prd/templates/prd.md +139 -139
  246. package/skills/design-audit/SKILL.md +152 -152
  247. package/skills/design-audit/agents/a11y-auditor.md +43 -43
  248. package/skills/design-audit/agents/performance-auditor.md +46 -46
  249. package/skills/design-audit/agents/responsive-auditor.md +46 -46
  250. package/skills/design-audit/agents/scorer.md +47 -47
  251. package/skills/design-audit/agents/slop-detector.md +47 -47
  252. package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
  253. package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
  254. package/skills/design-audit/orchestrator.md +64 -64
  255. package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
  256. package/skills/design-audit/rubrics/scoring.md +63 -63
  257. package/skills/design-audit/templates/report.md +88 -88
  258. package/skills/design-critique/SKILL.md +139 -139
  259. package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
  260. package/skills/design-critique/templates/critique-report.md +86 -86
  261. package/skills/design-distill/SKILL.md +130 -130
  262. package/skills/design-distill/templates/design-system.md +132 -132
  263. package/skills/design-normalize/SKILL.md +133 -133
  264. package/skills/design-normalize/rubrics/token-naming.md +117 -117
  265. package/skills/design-normalize/templates/token-audit.md +89 -89
  266. package/skills/design-polish/SKILL.md +131 -131
  267. package/skills/design-polish/rubrics/polish-checklist.md +68 -68
  268. package/skills/design-polish/templates/polish-report.md +64 -64
  269. package/skills/design-teach/SKILL.md +182 -182
  270. package/skills/design-teach/rubrics/brand-personality.md +73 -73
  271. package/skills/design-teach/templates/design-context.json +36 -36
  272. package/skills/e2e-commerce/SKILL.md +62 -62
  273. package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
  274. package/skills/event-comms/SKILL.md +162 -162
  275. package/skills/event-comms/templates/email-invite.md +99 -99
  276. package/skills/event-comms/templates/sns-post.md +133 -133
  277. package/skills/event-ops/SKILL.md +198 -198
  278. package/skills/event-ops/rubrics/contingency.md +85 -85
  279. package/skills/event-ops/templates/d-day-checklist.md +65 -65
  280. package/skills/event-planning/SKILL.md +132 -132
  281. package/skills/event-planning/rubrics/timeline.md +70 -70
  282. package/skills/event-planning/templates/event-plan.md +91 -91
  283. package/skills/exec-plan/SKILL.md +149 -149
  284. package/skills/exec-plan/agents/decomposer.md +47 -47
  285. package/skills/exec-plan/agents/dependency-mapper.md +44 -44
  286. package/skills/exec-plan/agents/estimator.md +43 -43
  287. package/skills/exec-plan/agents/validator.md +55 -55
  288. package/skills/exec-plan/orchestrator.md +70 -70
  289. package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
  290. package/skills/exec-plan/templates/plan.md +147 -147
  291. package/skills/git-worktree/SKILL.md +73 -73
  292. package/skills/git-worktree/rubrics/when-to-use.md +55 -55
  293. package/skills/handoff/SKILL.md +110 -110
  294. package/skills/handoff/agents/context-summarizer.md +51 -51
  295. package/skills/handoff/agents/document-writer.md +63 -63
  296. package/skills/handoff/agents/state-collector.md +53 -53
  297. package/skills/handoff/agents/verifier.md +48 -48
  298. package/skills/handoff/rubrics/completeness.md +62 -62
  299. package/skills/handoff/templates/handoff.md +107 -107
  300. package/skills/parallel-research/SKILL.md +89 -89
  301. package/skills/parallel-research/agents/best-practices.md +43 -43
  302. package/skills/parallel-research/agents/codebase-patterns.md +46 -46
  303. package/skills/parallel-research/agents/framework-docs.md +45 -45
  304. package/skills/parallel-research/agents/security-advisory.md +46 -46
  305. package/skills/parallel-research/agents/synthesizer.md +52 -52
  306. package/skills/parallel-research/experts/best-practices.md +50 -50
  307. package/skills/parallel-research/experts/codebase-patterns.md +70 -70
  308. package/skills/parallel-research/experts/framework-docs.md +65 -65
  309. package/skills/parallel-research/experts/security-advisory.md +69 -69
  310. package/skills/parallel-research/orchestrator.md +65 -65
  311. package/skills/parallel-research/templates/synthesis.md +101 -101
  312. package/skills/prioritization-frameworks/SKILL.md +87 -87
  313. package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
  314. package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
  315. package/skills/priority-todos/SKILL.md +64 -64
  316. package/skills/priority-todos/rubrics/prioritization.md +70 -70
  317. package/skills/priority-todos/templates/todo-board.md +59 -59
  318. package/skills/seo-checklist/SKILL.md +58 -58
  319. package/skills/seo-checklist/frameworks/structured-data.md +153 -153
  320. package/skills/seo-checklist/rubrics/content-seo.md +42 -42
  321. package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
  322. package/skills/techdebt/SKILL.md +124 -124
  323. package/skills/techdebt/agents/analyzer.md +50 -50
  324. package/skills/techdebt/agents/fixer.md +41 -41
  325. package/skills/techdebt/agents/reviewer.md +47 -47
  326. package/skills/techdebt/agents/scanner.md +44 -44
  327. package/skills/techdebt/orchestrator.md +70 -70
  328. package/skills/techdebt/rubrics/severity.md +51 -51
  329. package/skills/techdebt/scripts/scan.js +90 -90
  330. package/skills/techdebt/templates/report.md +86 -86
  331. package/skills/tool-fallback/SKILL.md +104 -104
  332. package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
  333. package/skills/typescript-advanced-types/SKILL.md +67 -67
  334. package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
  335. package/skills/ui-ux-pro-max/SKILL.md +236 -236
  336. package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
  337. package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
  338. package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
  339. package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
  340. package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
  341. package/skills/ui-ux-pro-max/reference/typography.md +455 -455
  342. package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
  343. package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
  344. package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
  345. package/skills/user-personas/SKILL.md +75 -75
  346. package/skills/user-personas/rubrics/research-methods.md +56 -56
  347. package/skills/user-personas/templates/persona.md +89 -89
  348. package/skills/vercel-react-best-practices/SKILL.md +60 -60
  349. package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
  350. package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
  351. package/skills/vibe.docs/SKILL.md +171 -171
  352. package/skills/vibe.docs/templates/architecture.md +80 -80
  353. package/skills/vibe.docs/templates/readme.md +84 -84
  354. package/skills/vibe.docs/templates/release-notes.md +74 -74
  355. package/skills/vibe.figma/SKILL.md +982 -1064
  356. package/skills/vibe.figma/rubrics/extraction-checklist.md +51 -51
  357. package/skills/vibe.figma/templates/component-index.md +126 -126
  358. package/skills/vibe.figma/templates/figma-handoff.md +100 -100
  359. package/skills/vibe.figma/templates/remapped-tree.md +277 -277
  360. package/skills/vibe.figma.convert/SKILL.md +511 -553
  361. package/skills/vibe.figma.convert/rubrics/conversion-rules.md +113 -129
  362. package/skills/vibe.figma.convert/templates/component.md +140 -140
  363. package/skills/vibe.figma.extract/SKILL.md +300 -312
  364. package/skills/vibe.figma.extract/rubrics/image-rules.md +137 -145
  365. package/skills/video-production/SKILL.md +52 -52
  366. package/skills/video-production/rubrics/quality-checklist.md +58 -58
  367. package/skills/video-production/templates/production-plan.md +104 -104
  368. package/vibe/config.json +29 -29
  369. package/vibe/constitution.md +227 -227
  370. package/vibe/rules/principles/communication-guide.md +98 -98
  371. package/vibe/rules/principles/development-philosophy.md +52 -52
  372. package/vibe/rules/principles/quick-start.md +102 -102
  373. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  374. package/vibe/rules/quality/checklist.md +276 -276
  375. package/vibe/rules/quality/performance.md +236 -236
  376. package/vibe/rules/quality/testing-strategy.md +440 -440
  377. package/vibe/rules/standards/anti-patterns.md +541 -541
  378. package/vibe/rules/standards/code-structure.md +291 -291
  379. package/vibe/rules/standards/complexity-metrics.md +313 -313
  380. package/vibe/rules/standards/git-workflow.md +237 -237
  381. package/vibe/rules/standards/naming-conventions.md +198 -198
  382. package/vibe/rules/standards/security.md +305 -305
  383. package/vibe/rules/writing/document-style.md +74 -74
  384. package/vibe/setup.sh +31 -31
  385. package/vibe/templates/constitution-template.md +252 -252
  386. package/vibe/templates/contract-backend-template.md +526 -526
  387. package/vibe/templates/contract-frontend-template.md +599 -599
  388. package/vibe/templates/feature-template.md +96 -96
  389. package/vibe/templates/spec-template.md +221 -221
  390. package/vibe/ui-ux-data/charts.csv +26 -26
  391. package/vibe/ui-ux-data/colors.csv +97 -97
  392. package/vibe/ui-ux-data/icons.csv +101 -101
  393. package/vibe/ui-ux-data/landing.csv +31 -31
  394. package/vibe/ui-ux-data/products.csv +96 -96
  395. package/vibe/ui-ux-data/react-performance.csv +45 -45
  396. package/vibe/ui-ux-data/stacks/astro.csv +54 -54
  397. package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
  398. package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
  399. package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
  400. package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
  401. package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
  402. package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
  403. package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
  404. package/vibe/ui-ux-data/stacks/react.csv +54 -54
  405. package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
  406. package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
  407. package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
  408. package/vibe/ui-ux-data/stacks/vue.csv +50 -50
  409. package/vibe/ui-ux-data/styles.csv +68 -68
  410. package/vibe/ui-ux-data/typography.csv +57 -57
  411. package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
  412. package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
  413. package/vibe/ui-ux-data/version.json +31 -31
  414. 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
  }