@su-record/vibe 2.5.10 → 2.5.11

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 (233) hide show
  1. package/CLAUDE.md +448 -348
  2. package/LICENSE +21 -21
  3. package/README.md +262 -262
  4. package/agents/architect-low.md +41 -0
  5. package/agents/architect-medium.md +59 -0
  6. package/agents/architect.md +80 -0
  7. package/agents/build-error-resolver.md +115 -115
  8. package/agents/compounder.md +261 -261
  9. package/agents/diagrammer.md +178 -178
  10. package/agents/e2e-tester.md +266 -266
  11. package/agents/explorer-low.md +42 -0
  12. package/agents/explorer-medium.md +59 -0
  13. package/agents/explorer.md +48 -48
  14. package/agents/implementer-low.md +43 -0
  15. package/agents/implementer-medium.md +52 -0
  16. package/agents/implementer.md +54 -54
  17. package/agents/refactor-cleaner.md +143 -143
  18. package/agents/research/best-practices-agent.md +189 -189
  19. package/agents/research/codebase-patterns-agent.md +147 -147
  20. package/agents/research/framework-docs-agent.md +178 -178
  21. package/agents/research/security-advisory-agent.md +203 -203
  22. package/agents/review/architecture-reviewer.md +107 -107
  23. package/agents/review/complexity-reviewer.md +116 -116
  24. package/agents/review/data-integrity-reviewer.md +88 -88
  25. package/agents/review/git-history-reviewer.md +103 -103
  26. package/agents/review/performance-reviewer.md +86 -86
  27. package/agents/review/python-reviewer.md +150 -150
  28. package/agents/review/rails-reviewer.md +139 -139
  29. package/agents/review/react-reviewer.md +144 -144
  30. package/agents/review/security-reviewer.md +80 -80
  31. package/agents/review/simplicity-reviewer.md +140 -140
  32. package/agents/review/test-coverage-reviewer.md +116 -116
  33. package/agents/review/typescript-reviewer.md +127 -127
  34. package/agents/searcher.md +54 -54
  35. package/agents/simplifier.md +120 -120
  36. package/agents/tester.md +49 -49
  37. package/agents/ui-previewer.md +129 -129
  38. package/commands/vibe.analyze.md +356 -356
  39. package/commands/vibe.reason.md +329 -329
  40. package/commands/vibe.review.md +326 -326
  41. package/commands/vibe.run.md +1051 -1031
  42. package/commands/vibe.spec.md +1058 -1058
  43. package/commands/vibe.utils.md +296 -296
  44. package/commands/vibe.verify.md +375 -375
  45. package/dist/cli/collaborator.js +52 -52
  46. package/dist/cli/detect.js +32 -32
  47. package/dist/cli/index.js +102 -102
  48. package/dist/cli/llm.js +144 -144
  49. package/dist/lib/DeepInit.d.ts +62 -0
  50. package/dist/lib/DeepInit.d.ts.map +1 -0
  51. package/dist/lib/DeepInit.js +247 -0
  52. package/dist/lib/DeepInit.js.map +1 -0
  53. package/dist/lib/IterationTracker.d.ts +81 -0
  54. package/dist/lib/IterationTracker.d.ts.map +1 -0
  55. package/dist/lib/IterationTracker.js +190 -0
  56. package/dist/lib/IterationTracker.js.map +1 -0
  57. package/dist/lib/ModelRouter.d.ts +50 -0
  58. package/dist/lib/ModelRouter.d.ts.map +1 -0
  59. package/dist/lib/ModelRouter.js +218 -0
  60. package/dist/lib/ModelRouter.js.map +1 -0
  61. package/dist/lib/OrchestrateWorkflow.d.ts +90 -0
  62. package/dist/lib/OrchestrateWorkflow.d.ts.map +1 -0
  63. package/dist/lib/OrchestrateWorkflow.js +261 -0
  64. package/dist/lib/OrchestrateWorkflow.js.map +1 -0
  65. package/dist/lib/PythonParser.js +108 -108
  66. package/dist/lib/SkillFrontmatter.d.ts +64 -0
  67. package/dist/lib/SkillFrontmatter.d.ts.map +1 -0
  68. package/dist/lib/SkillFrontmatter.js +221 -0
  69. package/dist/lib/SkillFrontmatter.js.map +1 -0
  70. package/dist/lib/SkillQualityGate.d.ts +40 -0
  71. package/dist/lib/SkillQualityGate.d.ts.map +1 -0
  72. package/dist/lib/SkillQualityGate.js +218 -0
  73. package/dist/lib/SkillQualityGate.js.map +1 -0
  74. package/dist/lib/UltraQA.d.ts +70 -0
  75. package/dist/lib/UltraQA.d.ts.map +1 -0
  76. package/dist/lib/UltraQA.js +234 -0
  77. package/dist/lib/UltraQA.js.map +1 -0
  78. package/dist/lib/gpt-api.js +4 -4
  79. package/dist/lib/memory/KnowledgeGraph.js +4 -4
  80. package/dist/lib/memory/MemorySearch.js +20 -20
  81. package/dist/lib/memory/MemoryStorage.js +64 -64
  82. package/dist/tools/convention/analyzeComplexity.test.js +115 -115
  83. package/dist/tools/convention/validateCodeQuality.test.js +104 -104
  84. package/dist/tools/index.d.ts +7 -0
  85. package/dist/tools/index.d.ts.map +1 -1
  86. package/dist/tools/index.js +12 -0
  87. package/dist/tools/index.js.map +1 -1
  88. package/hooks/hooks.json +222 -204
  89. package/hooks/scripts/code-check.js +22 -22
  90. package/hooks/scripts/code-review.js +22 -22
  91. package/hooks/scripts/complexity.js +22 -22
  92. package/hooks/scripts/compound.js +23 -23
  93. package/hooks/scripts/context-save.js +33 -33
  94. package/hooks/scripts/hud-multiline.js +264 -0
  95. package/hooks/scripts/hud-status.js +293 -0
  96. package/hooks/scripts/keyword-detector.js +216 -0
  97. package/hooks/scripts/llm-orchestrate.js +171 -171
  98. package/hooks/scripts/post-edit.js +97 -97
  99. package/hooks/scripts/post-tool-verify.js +212 -0
  100. package/hooks/scripts/pre-tool-guard.js +127 -0
  101. package/hooks/scripts/recall.js +22 -22
  102. package/hooks/scripts/session-start.js +30 -30
  103. package/hooks/scripts/skill-injector.js +193 -0
  104. package/hooks/scripts/utils.js +97 -97
  105. package/languages/csharp-unity.md +515 -515
  106. package/languages/gdscript-godot.md +470 -470
  107. package/languages/ruby-rails.md +489 -489
  108. package/languages/typescript-angular.md +433 -433
  109. package/languages/typescript-astro.md +416 -416
  110. package/languages/typescript-electron.md +406 -406
  111. package/languages/typescript-nestjs.md +524 -524
  112. package/languages/typescript-svelte.md +407 -407
  113. package/languages/typescript-tauri.md +365 -365
  114. package/package.json +83 -83
  115. package/skills/context7-usage.md +102 -102
  116. package/skills/git-worktree.md +181 -181
  117. package/skills/parallel-research.md +77 -77
  118. package/skills/priority-todos.md +239 -239
  119. package/skills/tool-fallback.md +190 -190
  120. package/skills/vibe-capabilities.md +161 -161
  121. package/vibe/constitution.md +227 -227
  122. package/vibe/rules/core/communication-guide.md +98 -98
  123. package/vibe/rules/core/development-philosophy.md +52 -52
  124. package/vibe/rules/core/quick-start.md +102 -102
  125. package/vibe/rules/quality/bdd-contract-testing.md +393 -393
  126. package/vibe/rules/quality/checklist.md +276 -276
  127. package/vibe/rules/quality/testing-strategy.md +440 -440
  128. package/vibe/rules/standards/anti-patterns.md +541 -541
  129. package/vibe/rules/standards/code-structure.md +291 -291
  130. package/vibe/rules/standards/complexity-metrics.md +313 -313
  131. package/vibe/rules/standards/naming-conventions.md +198 -198
  132. package/vibe/setup.sh +31 -31
  133. package/vibe/templates/constitution-template.md +252 -252
  134. package/vibe/templates/contract-backend-template.md +526 -526
  135. package/vibe/templates/contract-frontend-template.md +599 -599
  136. package/vibe/templates/feature-template.md +96 -96
  137. package/vibe/templates/spec-template.md +221 -221
  138. package/dist/cli/mcp.d.ts +0 -49
  139. package/dist/cli/mcp.d.ts.map +0 -1
  140. package/dist/cli/mcp.js +0 -169
  141. package/dist/cli/mcp.js.map +0 -1
  142. package/dist/lib/gemini-mcp.d.ts +0 -10
  143. package/dist/lib/gemini-mcp.d.ts.map +0 -1
  144. package/dist/lib/gemini-mcp.js +0 -353
  145. package/dist/lib/gemini-mcp.js.map +0 -1
  146. package/dist/lib/gpt-mcp.d.ts +0 -10
  147. package/dist/lib/gpt-mcp.d.ts.map +0 -1
  148. package/dist/lib/gpt-mcp.js +0 -352
  149. package/dist/lib/gpt-mcp.js.map +0 -1
  150. package/dist/tools/analytics/getUsageAnalytics.d.ts +0 -10
  151. package/dist/tools/analytics/getUsageAnalytics.d.ts.map +0 -1
  152. package/dist/tools/analytics/getUsageAnalytics.js +0 -246
  153. package/dist/tools/analytics/getUsageAnalytics.js.map +0 -1
  154. package/dist/tools/analytics/index.d.ts +0 -5
  155. package/dist/tools/analytics/index.d.ts.map +0 -1
  156. package/dist/tools/analytics/index.js +0 -5
  157. package/dist/tools/analytics/index.js.map +0 -1
  158. package/dist/tools/convention/getCodingGuide.d.ts +0 -7
  159. package/dist/tools/convention/getCodingGuide.d.ts.map +0 -1
  160. package/dist/tools/convention/getCodingGuide.js +0 -69
  161. package/dist/tools/convention/getCodingGuide.js.map +0 -1
  162. package/dist/tools/planning/analyzeRequirements.d.ts +0 -9
  163. package/dist/tools/planning/analyzeRequirements.d.ts.map +0 -1
  164. package/dist/tools/planning/analyzeRequirements.js +0 -171
  165. package/dist/tools/planning/analyzeRequirements.js.map +0 -1
  166. package/dist/tools/planning/createUserStories.d.ts +0 -9
  167. package/dist/tools/planning/createUserStories.d.ts.map +0 -1
  168. package/dist/tools/planning/createUserStories.js +0 -124
  169. package/dist/tools/planning/createUserStories.js.map +0 -1
  170. package/dist/tools/planning/featureRoadmap.d.ts +0 -10
  171. package/dist/tools/planning/featureRoadmap.d.ts.map +0 -1
  172. package/dist/tools/planning/featureRoadmap.js +0 -207
  173. package/dist/tools/planning/featureRoadmap.js.map +0 -1
  174. package/dist/tools/planning/generatePrd.d.ts +0 -11
  175. package/dist/tools/planning/generatePrd.d.ts.map +0 -1
  176. package/dist/tools/planning/generatePrd.js +0 -161
  177. package/dist/tools/planning/generatePrd.js.map +0 -1
  178. package/dist/tools/planning/index.d.ts +0 -8
  179. package/dist/tools/planning/index.d.ts.map +0 -1
  180. package/dist/tools/planning/index.js +0 -8
  181. package/dist/tools/planning/index.js.map +0 -1
  182. package/dist/tools/prompt/analyzePrompt.d.ts +0 -7
  183. package/dist/tools/prompt/analyzePrompt.d.ts.map +0 -1
  184. package/dist/tools/prompt/analyzePrompt.js +0 -150
  185. package/dist/tools/prompt/analyzePrompt.js.map +0 -1
  186. package/dist/tools/prompt/enhancePrompt.d.ts +0 -8
  187. package/dist/tools/prompt/enhancePrompt.d.ts.map +0 -1
  188. package/dist/tools/prompt/enhancePrompt.js +0 -110
  189. package/dist/tools/prompt/enhancePrompt.js.map +0 -1
  190. package/dist/tools/prompt/enhancePromptGemini.d.ts +0 -8
  191. package/dist/tools/prompt/enhancePromptGemini.d.ts.map +0 -1
  192. package/dist/tools/prompt/enhancePromptGemini.js +0 -332
  193. package/dist/tools/prompt/enhancePromptGemini.js.map +0 -1
  194. package/dist/tools/prompt/index.d.ts +0 -7
  195. package/dist/tools/prompt/index.d.ts.map +0 -1
  196. package/dist/tools/prompt/index.js +0 -7
  197. package/dist/tools/prompt/index.js.map +0 -1
  198. package/dist/tools/reasoning/applyReasoningFramework.d.ts +0 -8
  199. package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +0 -1
  200. package/dist/tools/reasoning/applyReasoningFramework.js +0 -266
  201. package/dist/tools/reasoning/applyReasoningFramework.js.map +0 -1
  202. package/dist/tools/reasoning/index.d.ts +0 -5
  203. package/dist/tools/reasoning/index.d.ts.map +0 -1
  204. package/dist/tools/reasoning/index.js +0 -5
  205. package/dist/tools/reasoning/index.js.map +0 -1
  206. package/dist/tools/thinking/analyzeProblem.d.ts +0 -7
  207. package/dist/tools/thinking/analyzeProblem.d.ts.map +0 -1
  208. package/dist/tools/thinking/analyzeProblem.js +0 -55
  209. package/dist/tools/thinking/analyzeProblem.js.map +0 -1
  210. package/dist/tools/thinking/breakDownProblem.d.ts +0 -8
  211. package/dist/tools/thinking/breakDownProblem.d.ts.map +0 -1
  212. package/dist/tools/thinking/breakDownProblem.js +0 -145
  213. package/dist/tools/thinking/breakDownProblem.js.map +0 -1
  214. package/dist/tools/thinking/createThinkingChain.d.ts +0 -7
  215. package/dist/tools/thinking/createThinkingChain.d.ts.map +0 -1
  216. package/dist/tools/thinking/createThinkingChain.js +0 -44
  217. package/dist/tools/thinking/createThinkingChain.js.map +0 -1
  218. package/dist/tools/thinking/formatAsPlan.d.ts +0 -9
  219. package/dist/tools/thinking/formatAsPlan.d.ts.map +0 -1
  220. package/dist/tools/thinking/formatAsPlan.js +0 -78
  221. package/dist/tools/thinking/formatAsPlan.js.map +0 -1
  222. package/dist/tools/thinking/index.d.ts +0 -10
  223. package/dist/tools/thinking/index.d.ts.map +0 -1
  224. package/dist/tools/thinking/index.js +0 -10
  225. package/dist/tools/thinking/index.js.map +0 -1
  226. package/dist/tools/thinking/stepByStepAnalysis.d.ts +0 -8
  227. package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +0 -1
  228. package/dist/tools/thinking/stepByStepAnalysis.js +0 -63
  229. package/dist/tools/thinking/stepByStepAnalysis.js.map +0 -1
  230. package/dist/tools/thinking/thinkAloudProcess.d.ts +0 -8
  231. package/dist/tools/thinking/thinkAloudProcess.d.ts.map +0 -1
  232. package/dist/tools/thinking/thinkAloudProcess.js +0 -80
  233. package/dist/tools/thinking/thinkAloudProcess.js.map +0 -1
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Intelligent Model Router
3
+ * 작업 복잡도를 자동 분석하여 최적의 모델을 선택
4
+ *
5
+ * Inspired by oh-my-claudecode's model routing system
6
+ */
7
+ // 복잡도 키워드 매핑
8
+ const COMPLEXITY_KEYWORDS = {
9
+ // High complexity (opus)
10
+ 'architect': 15,
11
+ 'refactor': 12,
12
+ 'migrate': 12,
13
+ 'security': 12,
14
+ 'authentication': 10,
15
+ 'authorization': 10,
16
+ 'infrastructure': 10,
17
+ 'database schema': 10,
18
+ 'breaking change': 10,
19
+ 'performance optimization': 8,
20
+ 'distributed': 8,
21
+ 'concurrent': 8,
22
+ 'transaction': 8,
23
+ // Medium complexity (sonnet)
24
+ 'implement': 5,
25
+ 'feature': 5,
26
+ 'integration': 5,
27
+ 'api': 4,
28
+ 'component': 4,
29
+ 'service': 4,
30
+ 'module': 4,
31
+ 'test': 3,
32
+ 'validation': 3,
33
+ // Low complexity (haiku)
34
+ 'fix': 2,
35
+ 'bug': 2,
36
+ 'typo': 1,
37
+ 'rename': 1,
38
+ 'comment': 1,
39
+ 'documentation': 1,
40
+ 'style': 1,
41
+ 'format': 1,
42
+ 'lint': 1,
43
+ };
44
+ // 모델 티어 임계값
45
+ const TIER_THRESHOLDS = {
46
+ opus: 20, // score >= 20 → opus
47
+ sonnet: 8, // score >= 8 → sonnet
48
+ haiku: 0, // score < 8 → haiku
49
+ };
50
+ /**
51
+ * 텍스트에서 복잡도 신호 추출
52
+ */
53
+ export function extractComplexitySignals(text) {
54
+ const lowerText = text.toLowerCase();
55
+ const keywords = [];
56
+ // 키워드 매칭
57
+ for (const keyword of Object.keys(COMPLEXITY_KEYWORDS)) {
58
+ if (lowerText.includes(keyword)) {
59
+ keywords.push(keyword);
60
+ }
61
+ }
62
+ // 파일 수 추정 (패턴 매칭)
63
+ const filePatterns = text.match(/\.(ts|js|py|go|rs|java|tsx|jsx|vue|svelte|css|scss|html|md)\b/gi) || [];
64
+ const uniqueExtensions = new Set(filePatterns.map(p => p.toLowerCase()));
65
+ // 라인 수 추정 (코드 블록)
66
+ const codeBlocks = text.match(/```[\s\S]*?```/g) || [];
67
+ const estimatedLines = codeBlocks.reduce((sum, block) => sum + block.split('\n').length, 0);
68
+ return {
69
+ fileCount: Math.max(uniqueExtensions.size, 1),
70
+ lineCount: estimatedLines,
71
+ hasArchitectureChange: /architect|infrastructure|system design|database schema/i.test(text),
72
+ hasSecurityImplication: /security|auth|password|token|credential|encrypt|vulnerability/i.test(text),
73
+ hasMultipleServices: /micro.?service|distributed|multiple.*service|cross.*service/i.test(text),
74
+ isRefactoring: /refactor|restructure|reorganize|extract|split|merge/i.test(text),
75
+ isNewFeature: /new feature|implement|create|add.*feature/i.test(text),
76
+ isBugFix: /bug|fix|patch|hotfix|issue|error/i.test(text),
77
+ isDocumentation: /document|readme|comment|jsdoc|explain/i.test(text),
78
+ keywords,
79
+ };
80
+ }
81
+ /**
82
+ * 복잡도 점수 계산
83
+ */
84
+ export function calculateComplexityScore(signals) {
85
+ let score = 0;
86
+ // 키워드 기반 점수
87
+ for (const keyword of signals.keywords) {
88
+ score += COMPLEXITY_KEYWORDS[keyword] || 0;
89
+ }
90
+ // 파일 수 기반 점수
91
+ if (signals.fileCount >= 10)
92
+ score += 15;
93
+ else if (signals.fileCount >= 5)
94
+ score += 8;
95
+ else if (signals.fileCount >= 3)
96
+ score += 4;
97
+ // 라인 수 기반 점수
98
+ if (signals.lineCount >= 500)
99
+ score += 10;
100
+ else if (signals.lineCount >= 200)
101
+ score += 5;
102
+ else if (signals.lineCount >= 50)
103
+ score += 2;
104
+ // 특수 상황 가중치
105
+ if (signals.hasArchitectureChange)
106
+ score += 10;
107
+ if (signals.hasSecurityImplication)
108
+ score += 8;
109
+ if (signals.hasMultipleServices)
110
+ score += 8;
111
+ if (signals.isRefactoring)
112
+ score += 5;
113
+ // 단순 작업 감점
114
+ if (signals.isBugFix && !signals.hasSecurityImplication)
115
+ score -= 3;
116
+ if (signals.isDocumentation)
117
+ score -= 5;
118
+ return Math.max(0, score);
119
+ }
120
+ /**
121
+ * 최적 모델 선택
122
+ */
123
+ export function selectModel(score) {
124
+ if (score >= TIER_THRESHOLDS.opus)
125
+ return 'opus';
126
+ if (score >= TIER_THRESHOLDS.sonnet)
127
+ return 'sonnet';
128
+ return 'haiku';
129
+ }
130
+ /**
131
+ * 메인 라우팅 함수
132
+ */
133
+ export function routeToModel(taskDescription) {
134
+ const signals = extractComplexitySignals(taskDescription);
135
+ const score = calculateComplexityScore(signals);
136
+ const model = selectModel(score);
137
+ // 선택 이유 생성
138
+ let reason = '';
139
+ if (model === 'opus') {
140
+ reason = `High complexity task (score: ${score}). `;
141
+ if (signals.hasArchitectureChange)
142
+ reason += 'Architecture change detected. ';
143
+ if (signals.hasSecurityImplication)
144
+ reason += 'Security implications. ';
145
+ if (signals.hasMultipleServices)
146
+ reason += 'Multi-service coordination. ';
147
+ }
148
+ else if (model === 'sonnet') {
149
+ reason = `Medium complexity task (score: ${score}). `;
150
+ if (signals.isNewFeature)
151
+ reason += 'New feature implementation. ';
152
+ if (signals.fileCount >= 3)
153
+ reason += `Multiple files (${signals.fileCount}). `;
154
+ }
155
+ else {
156
+ reason = `Simple task (score: ${score}). `;
157
+ if (signals.isBugFix)
158
+ reason += 'Bug fix. ';
159
+ if (signals.isDocumentation)
160
+ reason += 'Documentation. ';
161
+ }
162
+ return {
163
+ model,
164
+ score,
165
+ reason: reason.trim(),
166
+ signals,
167
+ };
168
+ }
169
+ /**
170
+ * SPEC 파일 기반 라우팅
171
+ */
172
+ export function routeFromSpec(specContent) {
173
+ // SPEC에서 Phase 수 추출
174
+ const phaseMatches = specContent.match(/###\s*Phase\s*\d+/gi) || [];
175
+ const phaseCount = phaseMatches.length;
176
+ // SPEC에서 파일 목록 추출
177
+ const fileMatches = specContent.match(/`[^`]+\.(ts|js|py|go|rs|java|tsx|jsx|vue|svelte|css|scss|html|md)`/gi) || [];
178
+ const fileCount = new Set(fileMatches).size;
179
+ // 기본 신호 추출
180
+ const signals = extractComplexitySignals(specContent);
181
+ signals.fileCount = Math.max(signals.fileCount, fileCount);
182
+ // Phase 수에 따른 추가 점수
183
+ let score = calculateComplexityScore(signals);
184
+ if (phaseCount >= 5)
185
+ score += 15;
186
+ else if (phaseCount >= 3)
187
+ score += 8;
188
+ else if (phaseCount >= 2)
189
+ score += 4;
190
+ const model = selectModel(score);
191
+ let reason = `SPEC analysis: ${phaseCount} phases, ~${fileCount} files. `;
192
+ reason += model === 'opus' ? 'Large scope → Opus recommended.' :
193
+ model === 'sonnet' ? 'Medium scope → Sonnet.' :
194
+ 'Small scope → Haiku sufficient.';
195
+ return {
196
+ model,
197
+ score,
198
+ reason,
199
+ signals,
200
+ };
201
+ }
202
+ /**
203
+ * 에이전트 티어 선택 (agent-low, agent-medium, agent 패턴)
204
+ */
205
+ export function selectAgentTier(baseAgentName, taskDescription) {
206
+ const { model } = routeToModel(taskDescription);
207
+ switch (model) {
208
+ case 'haiku':
209
+ return `${baseAgentName}-low`;
210
+ case 'sonnet':
211
+ return `${baseAgentName}-medium`;
212
+ case 'opus':
213
+ return baseAgentName; // 기본 = 최고 티어
214
+ default:
215
+ return baseAgentName;
216
+ }
217
+ }
218
+ //# sourceMappingURL=ModelRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelRouter.js","sourceRoot":"","sources":["../../src/lib/ModelRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Orchestrate Workflow Pattern
3
+ * Intent Gate → Assessment → Delegation → Verification
4
+ *
5
+ * Inspired by oh-my-claudecode's orchestrate skill (410 lines)
6
+ */
7
+ export type CodebaseMaturity = 'disciplined' | 'transitional' | 'legacy' | 'greenfield';
8
+ export interface IntentGateResult {
9
+ hasMatchingSkill: boolean;
10
+ skillName?: string;
11
+ shouldDelegate: boolean;
12
+ reason: string;
13
+ }
14
+ export interface CodebaseAssessment {
15
+ maturity: CodebaseMaturity;
16
+ patterns: string[];
17
+ techStack: string[];
18
+ testCoverage: 'high' | 'medium' | 'low' | 'none';
19
+ documentationLevel: 'comprehensive' | 'partial' | 'minimal' | 'none';
20
+ risks: string[];
21
+ }
22
+ export interface DelegationPlan {
23
+ phases: DelegationPhase[];
24
+ totalAgents: number;
25
+ estimatedComplexity: 'low' | 'medium' | 'high';
26
+ requiredVerifications: string[];
27
+ }
28
+ export interface DelegationPhase {
29
+ name: string;
30
+ agents: AgentTask[];
31
+ dependencies: string[];
32
+ verificationCriteria: string[];
33
+ }
34
+ export interface AgentTask {
35
+ agentType: string;
36
+ model: 'haiku' | 'sonnet' | 'opus';
37
+ prompt: string;
38
+ background: boolean;
39
+ timeout?: number;
40
+ }
41
+ export interface VerificationResult {
42
+ passed: boolean;
43
+ evidence: Evidence[];
44
+ issues: string[];
45
+ architectReview?: string;
46
+ }
47
+ export interface Evidence {
48
+ type: 'build' | 'test' | 'lint' | 'typecheck' | 'manual';
49
+ command?: string;
50
+ exitCode?: number;
51
+ output?: string;
52
+ passed: boolean;
53
+ }
54
+ /**
55
+ * Phase 0: Intent Gate
56
+ * Check if there's a matching skill BEFORE doing any work
57
+ */
58
+ export declare function checkIntentGate(prompt: string): IntentGateResult;
59
+ /**
60
+ * Phase 1: Codebase Assessment
61
+ * Classify codebase maturity and characteristics
62
+ */
63
+ export declare function assessCodebase(signals: {
64
+ hasTests: boolean;
65
+ hasLinting: boolean;
66
+ hasTypescript: boolean;
67
+ hasCICD: boolean;
68
+ hasDocumentation: boolean;
69
+ fileCount: number;
70
+ techStack: string[];
71
+ }): CodebaseAssessment;
72
+ /**
73
+ * Phase 2: Create Delegation Plan
74
+ * Plan how to delegate work to sub-agents
75
+ */
76
+ export declare function createDelegationPlan(task: string, assessment: CodebaseAssessment, phaseCount?: number): DelegationPlan;
77
+ /**
78
+ * Phase 3: Verification with Evidence
79
+ * Collect evidence of completion
80
+ */
81
+ export declare function createVerificationChecklist(plan: DelegationPlan): Evidence[];
82
+ /**
83
+ * Format orchestration status
84
+ */
85
+ export declare function formatOrchestrationStatus(phase: string, assessment: CodebaseAssessment, plan: DelegationPlan): string;
86
+ /**
87
+ * Background task rules (from oh-my-claudecode)
88
+ */
89
+ export declare function shouldRunInBackground(command: string): boolean;
90
+ //# sourceMappingURL=OrchestrateWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrchestrateWorkflow.d.ts","sourceRoot":"","sources":["../../src/lib/OrchestrateWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Orchestrate Workflow Pattern
3
+ * Intent Gate → Assessment → Delegation → Verification
4
+ *
5
+ * Inspired by oh-my-claudecode's orchestrate skill (410 lines)
6
+ */
7
+ // Phase 0: Intent Gate
8
+ const SKILL_KEYWORDS = {
9
+ 'vibe.spec': ['spec', 'specification', 'requirements', 'design'],
10
+ 'vibe.review': ['review', 'code review', 'PR review'],
11
+ 'vibe.verify': ['verify', 'verification', 'test', 'check'],
12
+ 'vibe.analyze': ['analyze', 'analysis', 'explore'],
13
+ 'vibe.reason': ['reason', 'reasoning', 'think', 'problem'],
14
+ };
15
+ /**
16
+ * Phase 0: Intent Gate
17
+ * Check if there's a matching skill BEFORE doing any work
18
+ */
19
+ export function checkIntentGate(prompt) {
20
+ const lowerPrompt = prompt.toLowerCase();
21
+ for (const [skillName, keywords] of Object.entries(SKILL_KEYWORDS)) {
22
+ for (const keyword of keywords) {
23
+ if (lowerPrompt.includes(keyword)) {
24
+ return {
25
+ hasMatchingSkill: true,
26
+ skillName,
27
+ shouldDelegate: true,
28
+ reason: `Prompt matches "${keyword}" → Use ${skillName} instead`,
29
+ };
30
+ }
31
+ }
32
+ }
33
+ return {
34
+ hasMatchingSkill: false,
35
+ shouldDelegate: false,
36
+ reason: 'No matching skill found, proceed with orchestration',
37
+ };
38
+ }
39
+ /**
40
+ * Phase 1: Codebase Assessment
41
+ * Classify codebase maturity and characteristics
42
+ */
43
+ export function assessCodebase(signals) {
44
+ const { hasTests, hasLinting, hasTypescript, hasCICD, hasDocumentation, fileCount, techStack } = signals;
45
+ // Calculate maturity score
46
+ let score = 0;
47
+ if (hasTests)
48
+ score += 2;
49
+ if (hasLinting)
50
+ score += 1;
51
+ if (hasTypescript)
52
+ score += 2;
53
+ if (hasCICD)
54
+ score += 2;
55
+ if (hasDocumentation)
56
+ score += 1;
57
+ // Determine maturity
58
+ let maturity;
59
+ if (fileCount === 0) {
60
+ maturity = 'greenfield';
61
+ }
62
+ else if (score >= 6) {
63
+ maturity = 'disciplined';
64
+ }
65
+ else if (score >= 3) {
66
+ maturity = 'transitional';
67
+ }
68
+ else {
69
+ maturity = 'legacy';
70
+ }
71
+ // Identify patterns
72
+ const patterns = [];
73
+ if (hasTypescript)
74
+ patterns.push('TypeScript');
75
+ if (hasTests)
76
+ patterns.push('Testing');
77
+ if (hasLinting)
78
+ patterns.push('Linting');
79
+ if (hasCICD)
80
+ patterns.push('CI/CD');
81
+ // Identify risks
82
+ const risks = [];
83
+ if (!hasTests)
84
+ risks.push('No test coverage - changes are risky');
85
+ if (!hasTypescript)
86
+ risks.push('No type safety - runtime errors possible');
87
+ if (!hasLinting)
88
+ risks.push('No linting - code style inconsistent');
89
+ if (maturity === 'legacy')
90
+ risks.push('Legacy codebase - proceed with caution');
91
+ return {
92
+ maturity,
93
+ patterns,
94
+ techStack,
95
+ testCoverage: hasTests ? (hasCICD ? 'high' : 'medium') : 'none',
96
+ documentationLevel: hasDocumentation ? 'partial' : 'minimal',
97
+ risks,
98
+ };
99
+ }
100
+ /**
101
+ * Phase 2: Create Delegation Plan
102
+ * Plan how to delegate work to sub-agents
103
+ */
104
+ export function createDelegationPlan(task, assessment, phaseCount = 3) {
105
+ const phases = [];
106
+ // Phase 1: Exploration
107
+ phases.push({
108
+ name: 'Exploration',
109
+ agents: [
110
+ {
111
+ agentType: 'explorer',
112
+ model: 'haiku',
113
+ prompt: `Explore codebase for: ${task}. Find related files, patterns, dependencies.`,
114
+ background: false,
115
+ },
116
+ {
117
+ agentType: 'explorer',
118
+ model: 'haiku',
119
+ prompt: `Search for existing similar implementations or patterns for: ${task}`,
120
+ background: false,
121
+ },
122
+ ],
123
+ dependencies: [],
124
+ verificationCriteria: ['Found relevant files', 'Identified patterns'],
125
+ });
126
+ // Phase 2: Implementation
127
+ const implModel = assessment.maturity === 'disciplined' ? 'sonnet' : 'opus';
128
+ phases.push({
129
+ name: 'Implementation',
130
+ agents: [
131
+ {
132
+ agentType: 'implementer',
133
+ model: implModel,
134
+ prompt: `Implement: ${task}. Follow existing patterns. Write tests if applicable.`,
135
+ background: false,
136
+ },
137
+ ],
138
+ dependencies: ['Exploration'],
139
+ verificationCriteria: ['Code compiles', 'Tests pass', 'Follows patterns'],
140
+ });
141
+ // Phase 3: Verification
142
+ phases.push({
143
+ name: 'Verification',
144
+ agents: [
145
+ {
146
+ agentType: 'architect',
147
+ model: 'opus',
148
+ prompt: `Verify implementation of: ${task}. Check for issues, security, performance.`,
149
+ background: false,
150
+ },
151
+ ],
152
+ dependencies: ['Implementation'],
153
+ verificationCriteria: ['Architect approval', 'No critical issues'],
154
+ });
155
+ // Add more phases if requested
156
+ for (let i = 3; i < phaseCount; i++) {
157
+ phases.push({
158
+ name: `Phase ${i + 1}`,
159
+ agents: [],
160
+ dependencies: [phases[i - 1].name],
161
+ verificationCriteria: [],
162
+ });
163
+ }
164
+ return {
165
+ phases,
166
+ totalAgents: phases.reduce((sum, p) => sum + p.agents.length, 0),
167
+ estimatedComplexity: assessment.maturity === 'legacy' ? 'high' : 'medium',
168
+ requiredVerifications: ['build', 'test', 'architect_review'],
169
+ };
170
+ }
171
+ /**
172
+ * Phase 3: Verification with Evidence
173
+ * Collect evidence of completion
174
+ */
175
+ export function createVerificationChecklist(plan) {
176
+ const evidence = [];
177
+ // Build verification
178
+ evidence.push({
179
+ type: 'build',
180
+ command: 'npm run build',
181
+ passed: false,
182
+ });
183
+ // Test verification
184
+ evidence.push({
185
+ type: 'test',
186
+ command: 'npm test',
187
+ passed: false,
188
+ });
189
+ // Lint verification
190
+ evidence.push({
191
+ type: 'lint',
192
+ command: 'npm run lint',
193
+ passed: false,
194
+ });
195
+ // Type check verification
196
+ evidence.push({
197
+ type: 'typecheck',
198
+ command: 'npx tsc --noEmit',
199
+ passed: false,
200
+ });
201
+ return evidence;
202
+ }
203
+ /**
204
+ * Format orchestration status
205
+ */
206
+ export function formatOrchestrationStatus(phase, assessment, plan) {
207
+ const lines = [];
208
+ lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
209
+ lines.push(`🎭 ORCHESTRATION: ${phase}`);
210
+ lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
211
+ lines.push(`\nCodebase: ${assessment.maturity.toUpperCase()}`);
212
+ lines.push(`Stack: ${assessment.techStack.join(', ') || 'Unknown'}`);
213
+ lines.push(`Patterns: ${assessment.patterns.join(', ') || 'None'}`);
214
+ if (assessment.risks.length > 0) {
215
+ lines.push(`\n⚠️ Risks:`);
216
+ for (const risk of assessment.risks) {
217
+ lines.push(` - ${risk}`);
218
+ }
219
+ }
220
+ lines.push(`\n📋 Plan: ${plan.phases.length} phases, ${plan.totalAgents} agents`);
221
+ for (const p of plan.phases) {
222
+ const agentInfo = p.agents.length > 0
223
+ ? `(${p.agents.map(a => `${a.agentType}:${a.model}`).join(', ')})`
224
+ : '(no agents)';
225
+ lines.push(` → ${p.name} ${agentInfo}`);
226
+ }
227
+ lines.push(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
228
+ return lines.join('\n');
229
+ }
230
+ /**
231
+ * Background task rules (from oh-my-claudecode)
232
+ */
233
+ export function shouldRunInBackground(command) {
234
+ const backgroundPatterns = [
235
+ /^npm (run |)(build|test|start|dev)/i,
236
+ /^yarn (build|test|start|dev)/i,
237
+ /^pnpm (build|test|start|dev)/i,
238
+ /^bun (run |)(build|test|start|dev)/i,
239
+ /^(pytest|jest|vitest|mocha)/i,
240
+ /^(tsc|webpack|vite|rollup)/i,
241
+ ];
242
+ const foregroundPatterns = [
243
+ /^git\s/i,
244
+ /^ls\s/i,
245
+ /^cat\s/i,
246
+ /^echo\s/i,
247
+ /^pwd$/i,
248
+ ];
249
+ // Check foreground first (quick commands)
250
+ for (const pattern of foregroundPatterns) {
251
+ if (pattern.test(command))
252
+ return false;
253
+ }
254
+ // Check background patterns (long-running)
255
+ for (const pattern of backgroundPatterns) {
256
+ if (pattern.test(command))
257
+ return true;
258
+ }
259
+ return false;
260
+ }
261
+ //# sourceMappingURL=OrchestrateWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrchestrateWorkflow.js","sourceRoot":"","sources":["../../src/lib/OrchestrateWorkflow.ts"],"names":[],"mappings":"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"}