@su-record/vibe 2.7.14 → 2.7.15
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.
- package/.env.example +37 -37
- package/CLAUDE.md +134 -126
- package/LICENSE +21 -21
- package/README.md +449 -449
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -258
- package/commands/vibe.analyze.md +11 -13
- package/commands/vibe.review.md +43 -1
- package/commands/vibe.run.md +2124 -2078
- package/commands/vibe.spec.md +9 -4
- package/commands/vibe.spec.review.md +569 -565
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +33 -8
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.js +54 -54
- package/dist/cli/commands/init.js +5 -5
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +77 -70
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +475 -475
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +121 -121
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -180
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -167
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +59 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +48 -48
- package/skills/e2e-commerce/SKILL.md +57 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +73 -73
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +66 -66
- package/skills/ui-ux-pro-max/SKILL.md +206 -206
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
|
@@ -187,33 +187,33 @@ export function substituteTemplateVars(template, vars) {
|
|
|
187
187
|
/**
|
|
188
188
|
* Example skill template
|
|
189
189
|
*/
|
|
190
|
-
export const SKILL_TEMPLATE_EXAMPLE = `---
|
|
191
|
-
name: example-skill
|
|
192
|
-
description: "An example skill demonstrating the frontmatter system"
|
|
193
|
-
model: sonnet
|
|
194
|
-
agent: implementer
|
|
195
|
-
argument-hint: "task description"
|
|
196
|
-
user-invocable: true
|
|
197
|
-
triggers: [example, demo, test]
|
|
198
|
-
priority: 50
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
# Example Skill
|
|
202
|
-
|
|
203
|
-
This skill demonstrates the frontmatter metadata system.
|
|
204
|
-
|
|
205
|
-
## Arguments
|
|
206
|
-
|
|
207
|
-
$ARGUMENTS
|
|
208
|
-
|
|
209
|
-
## Process
|
|
210
|
-
|
|
211
|
-
1. Parse the arguments
|
|
212
|
-
2. Execute the task
|
|
213
|
-
3. Return the result
|
|
214
|
-
|
|
215
|
-
## Output
|
|
216
|
-
|
|
217
|
-
Provide a clear summary of what was done.
|
|
190
|
+
export const SKILL_TEMPLATE_EXAMPLE = `---
|
|
191
|
+
name: example-skill
|
|
192
|
+
description: "An example skill demonstrating the frontmatter system"
|
|
193
|
+
model: sonnet
|
|
194
|
+
agent: implementer
|
|
195
|
+
argument-hint: "task description"
|
|
196
|
+
user-invocable: true
|
|
197
|
+
triggers: [example, demo, test]
|
|
198
|
+
priority: 50
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
# Example Skill
|
|
202
|
+
|
|
203
|
+
This skill demonstrates the frontmatter metadata system.
|
|
204
|
+
|
|
205
|
+
## Arguments
|
|
206
|
+
|
|
207
|
+
$ARGUMENTS
|
|
208
|
+
|
|
209
|
+
## Process
|
|
210
|
+
|
|
211
|
+
1. Parse the arguments
|
|
212
|
+
2. Execute the task
|
|
213
|
+
3. Return the result
|
|
214
|
+
|
|
215
|
+
## Output
|
|
216
|
+
|
|
217
|
+
Provide a clear summary of what was done.
|
|
218
218
|
`;
|
|
219
219
|
//# sourceMappingURL=SkillFrontmatter.js.map
|
|
@@ -137,15 +137,15 @@ export function suggestPrincipleFormat(value) {
|
|
|
137
137
|
return value;
|
|
138
138
|
}
|
|
139
139
|
// 변환 템플릿 제안
|
|
140
|
-
return `Consider reformulating as:
|
|
141
|
-
|
|
142
|
-
"When [describe the situation/trigger],
|
|
143
|
-
[describe the action to take]
|
|
144
|
-
because [explain the reasoning/tradeoff]"
|
|
145
|
-
|
|
146
|
-
Example:
|
|
147
|
-
"When the auth token expires during a request,
|
|
148
|
-
retry the request after refreshing the token (not before)
|
|
140
|
+
return `Consider reformulating as:
|
|
141
|
+
|
|
142
|
+
"When [describe the situation/trigger],
|
|
143
|
+
[describe the action to take]
|
|
144
|
+
because [explain the reasoning/tradeoff]"
|
|
145
|
+
|
|
146
|
+
Example:
|
|
147
|
+
"When the auth token expires during a request,
|
|
148
|
+
retry the request after refreshing the token (not before)
|
|
149
149
|
because refreshing preemptively causes race conditions with concurrent requests"`;
|
|
150
150
|
}
|
|
151
151
|
/**
|
|
@@ -270,177 +270,177 @@ export function getDefaultSkills(corePathUrl) {
|
|
|
270
270
|
return [
|
|
271
271
|
{
|
|
272
272
|
id: 'multi-llm-orchestration',
|
|
273
|
-
content: `---
|
|
274
|
-
name: multi-llm-orchestration
|
|
275
|
-
description: "Multi-LLM research using GPT and Gemini for comprehensive analysis"
|
|
276
|
-
triggers: [gpt, gemini, multi-llm, research, parallel research]
|
|
277
|
-
priority: 80
|
|
278
|
-
---
|
|
279
|
-
# Multi-LLM Orchestration
|
|
280
|
-
|
|
281
|
-
Use multiple LLMs for comprehensive research and validation.
|
|
282
|
-
|
|
283
|
-
## Usage
|
|
284
|
-
|
|
285
|
-
\`\`\`bash
|
|
286
|
-
# Via Bash hook (automatic in /vibe.spec)
|
|
287
|
-
node hooks/scripts/llm-orchestrate.js gpt "your prompt"
|
|
288
|
-
node hooks/scripts/llm-orchestrate.js gemini "your prompt"
|
|
289
|
-
\`\`\`
|
|
290
|
-
|
|
291
|
-
## Setup
|
|
292
|
-
|
|
293
|
-
\`\`\`bash
|
|
294
|
-
vibe gpt auth # Configure GPT API key
|
|
295
|
-
vibe gemini auth # Configure Gemini API key
|
|
296
|
-
vibe status # Check current configuration
|
|
297
|
-
\`\`\`
|
|
298
|
-
|
|
299
|
-
## Best Practices
|
|
300
|
-
|
|
301
|
-
1. Use GPT for best practices and code review
|
|
302
|
-
2. Use Gemini for documentation and security analysis
|
|
303
|
-
3. Combine results for comprehensive coverage
|
|
273
|
+
content: `---
|
|
274
|
+
name: multi-llm-orchestration
|
|
275
|
+
description: "Multi-LLM research using GPT and Gemini for comprehensive analysis"
|
|
276
|
+
triggers: [gpt, gemini, multi-llm, research, parallel research]
|
|
277
|
+
priority: 80
|
|
278
|
+
---
|
|
279
|
+
# Multi-LLM Orchestration
|
|
280
|
+
|
|
281
|
+
Use multiple LLMs for comprehensive research and validation.
|
|
282
|
+
|
|
283
|
+
## Usage
|
|
284
|
+
|
|
285
|
+
\`\`\`bash
|
|
286
|
+
# Via Bash hook (automatic in /vibe.spec)
|
|
287
|
+
node hooks/scripts/llm-orchestrate.js gpt "your prompt"
|
|
288
|
+
node hooks/scripts/llm-orchestrate.js gemini "your prompt"
|
|
289
|
+
\`\`\`
|
|
290
|
+
|
|
291
|
+
## Setup
|
|
292
|
+
|
|
293
|
+
\`\`\`bash
|
|
294
|
+
vibe gpt auth # Configure GPT API key
|
|
295
|
+
vibe gemini auth # Configure Gemini API key
|
|
296
|
+
vibe status # Check current configuration
|
|
297
|
+
\`\`\`
|
|
298
|
+
|
|
299
|
+
## Best Practices
|
|
300
|
+
|
|
301
|
+
1. Use GPT for best practices and code review
|
|
302
|
+
2. Use Gemini for documentation and security analysis
|
|
303
|
+
3. Combine results for comprehensive coverage
|
|
304
304
|
`,
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
id: 'error-recovery',
|
|
308
|
-
content: `---
|
|
309
|
-
name: error-recovery
|
|
310
|
-
description: "Error recovery patterns and retry strategies"
|
|
311
|
-
triggers: [error, fail, retry, recover, fix]
|
|
312
|
-
priority: 70
|
|
313
|
-
---
|
|
314
|
-
# Error Recovery Patterns
|
|
315
|
-
|
|
316
|
-
## Common Error Types
|
|
317
|
-
|
|
318
|
-
### Build Errors
|
|
319
|
-
- Check TypeScript compilation errors
|
|
320
|
-
- Verify dependency versions
|
|
321
|
-
- Run \`npm ci\` to clean install
|
|
322
|
-
|
|
323
|
-
### Test Failures
|
|
324
|
-
- Run failed tests in isolation
|
|
325
|
-
- Check test fixtures/mocks
|
|
326
|
-
- Verify async timing issues
|
|
327
|
-
|
|
328
|
-
### Runtime Errors
|
|
329
|
-
- Check stack trace carefully
|
|
330
|
-
- Verify environment variables
|
|
331
|
-
- Check external service connectivity
|
|
332
|
-
|
|
333
|
-
## Retry Strategy
|
|
334
|
-
|
|
335
|
-
1. First retry: Same action
|
|
336
|
-
2. Second retry: Clean state (cache clear)
|
|
337
|
-
3. Third retry: Alternative approach
|
|
338
|
-
4. Max retries exceeded: Escalate to user
|
|
339
|
-
|
|
340
|
-
## Auto-Recovery Commands
|
|
341
|
-
|
|
342
|
-
\`\`\`bash
|
|
343
|
-
# Clean build
|
|
344
|
-
rm -rf node_modules dist && npm ci && npm run build
|
|
345
|
-
|
|
346
|
-
# Reset git state (careful!)
|
|
347
|
-
git stash && git checkout .
|
|
348
|
-
|
|
349
|
-
# Clear caches
|
|
350
|
-
npm cache clean --force
|
|
351
|
-
\`\`\`
|
|
308
|
+
content: `---
|
|
309
|
+
name: error-recovery
|
|
310
|
+
description: "Error recovery patterns and retry strategies"
|
|
311
|
+
triggers: [error, fail, retry, recover, fix]
|
|
312
|
+
priority: 70
|
|
313
|
+
---
|
|
314
|
+
# Error Recovery Patterns
|
|
315
|
+
|
|
316
|
+
## Common Error Types
|
|
317
|
+
|
|
318
|
+
### Build Errors
|
|
319
|
+
- Check TypeScript compilation errors
|
|
320
|
+
- Verify dependency versions
|
|
321
|
+
- Run \`npm ci\` to clean install
|
|
322
|
+
|
|
323
|
+
### Test Failures
|
|
324
|
+
- Run failed tests in isolation
|
|
325
|
+
- Check test fixtures/mocks
|
|
326
|
+
- Verify async timing issues
|
|
327
|
+
|
|
328
|
+
### Runtime Errors
|
|
329
|
+
- Check stack trace carefully
|
|
330
|
+
- Verify environment variables
|
|
331
|
+
- Check external service connectivity
|
|
332
|
+
|
|
333
|
+
## Retry Strategy
|
|
334
|
+
|
|
335
|
+
1. First retry: Same action
|
|
336
|
+
2. Second retry: Clean state (cache clear)
|
|
337
|
+
3. Third retry: Alternative approach
|
|
338
|
+
4. Max retries exceeded: Escalate to user
|
|
339
|
+
|
|
340
|
+
## Auto-Recovery Commands
|
|
341
|
+
|
|
342
|
+
\`\`\`bash
|
|
343
|
+
# Clean build
|
|
344
|
+
rm -rf node_modules dist && npm ci && npm run build
|
|
345
|
+
|
|
346
|
+
# Reset git state (careful!)
|
|
347
|
+
git stash && git checkout .
|
|
348
|
+
|
|
349
|
+
# Clear caches
|
|
350
|
+
npm cache clean --force
|
|
351
|
+
\`\`\`
|
|
352
352
|
`,
|
|
353
353
|
},
|
|
354
354
|
{
|
|
355
355
|
id: 'code-quality-check',
|
|
356
|
-
content: `---
|
|
357
|
-
name: code-quality-check
|
|
358
|
-
description: "Code quality validation using core tools"
|
|
359
|
-
triggers: [quality, lint, complexity, review]
|
|
360
|
-
priority: 60
|
|
361
|
-
---
|
|
362
|
-
# Code Quality Check
|
|
363
|
-
|
|
364
|
-
## Using Core Tools
|
|
365
|
-
|
|
366
|
-
\`\`\`bash
|
|
367
|
-
# Analyze complexity
|
|
368
|
-
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
369
|
-
t.analyzeComplexity({targetPath: 'src/', projectPath: process.cwd()})
|
|
370
|
-
.then(r => console.log(r.content[0].text))
|
|
371
|
-
)"
|
|
372
|
-
|
|
373
|
-
# Validate quality
|
|
374
|
-
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
375
|
-
t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()})
|
|
376
|
-
.then(r => console.log(r.content[0].text))
|
|
377
|
-
)"
|
|
378
|
-
\`\`\`
|
|
379
|
-
|
|
380
|
-
## Quality Metrics
|
|
381
|
-
|
|
382
|
-
| Metric | Good | Warning | Critical |
|
|
383
|
-
|--------|------|---------|----------|
|
|
384
|
-
| Cyclomatic Complexity | ≤10 | 11-15 | >15 |
|
|
385
|
-
| Function Length | ≤30 | 31-50 | >50 |
|
|
386
|
-
| Nesting Depth | ≤3 | 4 | >4 |
|
|
387
|
-
|
|
388
|
-
## Common Issues
|
|
389
|
-
|
|
390
|
-
1. **High Complexity**: Extract helper functions
|
|
391
|
-
2. **Long Functions**: Split by responsibility
|
|
392
|
-
3. **Deep Nesting**: Use early returns
|
|
393
|
-
4. **Tight Coupling**: Apply dependency injection
|
|
356
|
+
content: `---
|
|
357
|
+
name: code-quality-check
|
|
358
|
+
description: "Code quality validation using core tools"
|
|
359
|
+
triggers: [quality, lint, complexity, review]
|
|
360
|
+
priority: 60
|
|
361
|
+
---
|
|
362
|
+
# Code Quality Check
|
|
363
|
+
|
|
364
|
+
## Using Core Tools
|
|
365
|
+
|
|
366
|
+
\`\`\`bash
|
|
367
|
+
# Analyze complexity
|
|
368
|
+
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
369
|
+
t.analyzeComplexity({targetPath: 'src/', projectPath: process.cwd()})
|
|
370
|
+
.then(r => console.log(r.content[0].text))
|
|
371
|
+
)"
|
|
372
|
+
|
|
373
|
+
# Validate quality
|
|
374
|
+
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
375
|
+
t.validateCodeQuality({targetPath: 'src/', projectPath: process.cwd()})
|
|
376
|
+
.then(r => console.log(r.content[0].text))
|
|
377
|
+
)"
|
|
378
|
+
\`\`\`
|
|
379
|
+
|
|
380
|
+
## Quality Metrics
|
|
381
|
+
|
|
382
|
+
| Metric | Good | Warning | Critical |
|
|
383
|
+
|--------|------|---------|----------|
|
|
384
|
+
| Cyclomatic Complexity | ≤10 | 11-15 | >15 |
|
|
385
|
+
| Function Length | ≤30 | 31-50 | >50 |
|
|
386
|
+
| Nesting Depth | ≤3 | 4 | >4 |
|
|
387
|
+
|
|
388
|
+
## Common Issues
|
|
389
|
+
|
|
390
|
+
1. **High Complexity**: Extract helper functions
|
|
391
|
+
2. **Long Functions**: Split by responsibility
|
|
392
|
+
3. **Deep Nesting**: Use early returns
|
|
393
|
+
4. **Tight Coupling**: Apply dependency injection
|
|
394
394
|
`,
|
|
395
395
|
},
|
|
396
396
|
{
|
|
397
397
|
id: 'session-management',
|
|
398
|
-
content: `---
|
|
399
|
-
name: session-management
|
|
400
|
-
description: "Context and session management across conversations"
|
|
401
|
-
triggers: [session, context, memory, save, restore, continue]
|
|
402
|
-
priority: 75
|
|
403
|
-
---
|
|
404
|
-
# Session Management
|
|
405
|
-
|
|
406
|
-
## Starting a Session
|
|
407
|
-
|
|
408
|
-
\`\`\`bash
|
|
409
|
-
# Auto-restore previous context
|
|
410
|
-
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
411
|
-
t.startSession({projectPath: process.cwd()})
|
|
412
|
-
.then(r => console.log(r.content[0].text))
|
|
413
|
-
)"
|
|
414
|
-
\`\`\`
|
|
415
|
-
|
|
416
|
-
## Saving Context
|
|
417
|
-
|
|
418
|
-
\`\`\`bash
|
|
419
|
-
# Save important decisions
|
|
420
|
-
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
421
|
-
t.saveMemory({
|
|
422
|
-
key: 'decision-auth-method',
|
|
423
|
-
value: 'Using JWT with refresh tokens for auth',
|
|
424
|
-
category: 'architecture',
|
|
425
|
-
projectPath: process.cwd()
|
|
426
|
-
}).then(r => console.log(r.content[0].text))
|
|
427
|
-
)"
|
|
428
|
-
\`\`\`
|
|
429
|
-
|
|
430
|
-
## Context Management
|
|
431
|
-
|
|
432
|
-
At 70%+ context usage:
|
|
433
|
-
1. Use \`saveMemory\` for important decisions
|
|
434
|
-
2. Start new session with \`/new\`
|
|
435
|
-
3. Previous context auto-restores
|
|
436
|
-
|
|
437
|
-
## Slash Command
|
|
438
|
-
|
|
439
|
-
\`\`\`
|
|
440
|
-
/vibe.utils --continue
|
|
441
|
-
\`\`\`
|
|
442
|
-
|
|
443
|
-
Restores previous session context automatically.
|
|
398
|
+
content: `---
|
|
399
|
+
name: session-management
|
|
400
|
+
description: "Context and session management across conversations"
|
|
401
|
+
triggers: [session, context, memory, save, restore, continue]
|
|
402
|
+
priority: 75
|
|
403
|
+
---
|
|
404
|
+
# Session Management
|
|
405
|
+
|
|
406
|
+
## Starting a Session
|
|
407
|
+
|
|
408
|
+
\`\`\`bash
|
|
409
|
+
# Auto-restore previous context
|
|
410
|
+
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
411
|
+
t.startSession({projectPath: process.cwd()})
|
|
412
|
+
.then(r => console.log(r.content[0].text))
|
|
413
|
+
)"
|
|
414
|
+
\`\`\`
|
|
415
|
+
|
|
416
|
+
## Saving Context
|
|
417
|
+
|
|
418
|
+
\`\`\`bash
|
|
419
|
+
# Save important decisions
|
|
420
|
+
node -e "import('${corePathUrl}/node_modules/@su-record/vibe/dist/tools/index.js').then(t =>
|
|
421
|
+
t.saveMemory({
|
|
422
|
+
key: 'decision-auth-method',
|
|
423
|
+
value: 'Using JWT with refresh tokens for auth',
|
|
424
|
+
category: 'architecture',
|
|
425
|
+
projectPath: process.cwd()
|
|
426
|
+
}).then(r => console.log(r.content[0].text))
|
|
427
|
+
)"
|
|
428
|
+
\`\`\`
|
|
429
|
+
|
|
430
|
+
## Context Management
|
|
431
|
+
|
|
432
|
+
At 70%+ context usage:
|
|
433
|
+
1. Use \`saveMemory\` for important decisions
|
|
434
|
+
2. Start new session with \`/new\`
|
|
435
|
+
3. Previous context auto-restores
|
|
436
|
+
|
|
437
|
+
## Slash Command
|
|
438
|
+
|
|
439
|
+
\`\`\`
|
|
440
|
+
/vibe.utils --continue
|
|
441
|
+
\`\`\`
|
|
442
|
+
|
|
443
|
+
Restores previous session context automatically.
|
|
444
444
|
`,
|
|
445
445
|
},
|
|
446
446
|
];
|
|
@@ -92,60 +92,60 @@ export function shouldContinue(session) {
|
|
|
92
92
|
* Generate architect diagnosis prompt
|
|
93
93
|
*/
|
|
94
94
|
export function generateDiagnosisPrompt(result) {
|
|
95
|
-
return `
|
|
96
|
-
## QA Failure Diagnosis Required
|
|
97
|
-
|
|
98
|
-
**Cycle**: ${result.cycle}
|
|
99
|
-
**Goal**: ${result.goal}
|
|
100
|
-
**Command**: ${result.command}
|
|
101
|
-
**Exit Code**: ${result.exitCode}
|
|
102
|
-
|
|
103
|
-
### Output:
|
|
104
|
-
\`\`\`
|
|
105
|
-
${result.output.slice(0, 2000)}
|
|
106
|
-
\`\`\`
|
|
107
|
-
|
|
108
|
-
### Task:
|
|
109
|
-
1. Identify the root cause of this failure
|
|
110
|
-
2. Determine if it's a code issue, config issue, or environment issue
|
|
111
|
-
3. Provide a specific fix recommendation
|
|
112
|
-
|
|
113
|
-
Return JSON:
|
|
114
|
-
\`\`\`json
|
|
115
|
-
{
|
|
116
|
-
"rootCause": "description of root cause",
|
|
117
|
-
"category": "code|config|environment|dependency",
|
|
118
|
-
"fix": "specific fix to apply",
|
|
119
|
-
"files": ["list", "of", "files", "to", "modify"],
|
|
120
|
-
"confidence": "high|medium|low"
|
|
121
|
-
}
|
|
122
|
-
\`\`\`
|
|
95
|
+
return `
|
|
96
|
+
## QA Failure Diagnosis Required
|
|
97
|
+
|
|
98
|
+
**Cycle**: ${result.cycle}
|
|
99
|
+
**Goal**: ${result.goal}
|
|
100
|
+
**Command**: ${result.command}
|
|
101
|
+
**Exit Code**: ${result.exitCode}
|
|
102
|
+
|
|
103
|
+
### Output:
|
|
104
|
+
\`\`\`
|
|
105
|
+
${result.output.slice(0, 2000)}
|
|
106
|
+
\`\`\`
|
|
107
|
+
|
|
108
|
+
### Task:
|
|
109
|
+
1. Identify the root cause of this failure
|
|
110
|
+
2. Determine if it's a code issue, config issue, or environment issue
|
|
111
|
+
3. Provide a specific fix recommendation
|
|
112
|
+
|
|
113
|
+
Return JSON:
|
|
114
|
+
\`\`\`json
|
|
115
|
+
{
|
|
116
|
+
"rootCause": "description of root cause",
|
|
117
|
+
"category": "code|config|environment|dependency",
|
|
118
|
+
"fix": "specific fix to apply",
|
|
119
|
+
"files": ["list", "of", "files", "to", "modify"],
|
|
120
|
+
"confidence": "high|medium|low"
|
|
121
|
+
}
|
|
122
|
+
\`\`\`
|
|
123
123
|
`.trim();
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
126
126
|
* Generate executor fix prompt
|
|
127
127
|
*/
|
|
128
128
|
export function generateFixPrompt(diagnosis, result) {
|
|
129
|
-
return `
|
|
130
|
-
## Apply Fix for QA Failure
|
|
131
|
-
|
|
132
|
-
**Previous Diagnosis**:
|
|
133
|
-
${diagnosis}
|
|
134
|
-
|
|
135
|
-
**Failed Command**: ${result.command}
|
|
136
|
-
**Cycle**: ${result.cycle}
|
|
137
|
-
|
|
138
|
-
### Task:
|
|
139
|
-
Apply the fix identified in the diagnosis. Make minimal changes to resolve the issue.
|
|
140
|
-
|
|
141
|
-
### Rules:
|
|
142
|
-
1. Only modify files mentioned in the diagnosis
|
|
143
|
-
2. Make the smallest change that fixes the issue
|
|
144
|
-
3. Do not refactor or improve unrelated code
|
|
145
|
-
4. Run the verification command after fixing
|
|
146
|
-
|
|
147
|
-
### After fixing, run:
|
|
148
|
-
\`${result.command}\`
|
|
129
|
+
return `
|
|
130
|
+
## Apply Fix for QA Failure
|
|
131
|
+
|
|
132
|
+
**Previous Diagnosis**:
|
|
133
|
+
${diagnosis}
|
|
134
|
+
|
|
135
|
+
**Failed Command**: ${result.command}
|
|
136
|
+
**Cycle**: ${result.cycle}
|
|
137
|
+
|
|
138
|
+
### Task:
|
|
139
|
+
Apply the fix identified in the diagnosis. Make minimal changes to resolve the issue.
|
|
140
|
+
|
|
141
|
+
### Rules:
|
|
142
|
+
1. Only modify files mentioned in the diagnosis
|
|
143
|
+
2. Make the smallest change that fixes the issue
|
|
144
|
+
3. Do not refactor or improve unrelated code
|
|
145
|
+
4. Run the verification command after fixing
|
|
146
|
+
|
|
147
|
+
### After fixing, run:
|
|
148
|
+
\`${result.command}\`
|
|
149
149
|
`.trim();
|
|
150
150
|
}
|
|
151
151
|
/**
|
|
@@ -157,28 +157,28 @@ export function generateArchitectureEscalationPrompt(session) {
|
|
|
157
157
|
const failureSummary = recentFailures
|
|
158
158
|
.map((c, i) => ` Attempt ${i + 1}: ${c.goal} - ${c.output.slice(0, 150)}`)
|
|
159
159
|
.join('\n');
|
|
160
|
-
return `
|
|
161
|
-
## ⚠️ 3-Fix Rule Triggered - Architecture Question Required
|
|
162
|
-
|
|
163
|
-
**Same issue failed ${session.config.maxSameFailure}+ times.** This suggests an architectural problem, not a failed hypothesis.
|
|
164
|
-
|
|
165
|
-
### Failure Pattern:
|
|
166
|
-
${failureSummary}
|
|
167
|
-
|
|
168
|
-
### Architecture Problem Indicators:
|
|
169
|
-
- Each fix reveals new shared state/coupling issues in different places
|
|
170
|
-
- Fixes require "massive refactoring" to implement
|
|
171
|
-
- Each fix creates new symptoms elsewhere
|
|
172
|
-
|
|
173
|
-
### Required Action:
|
|
174
|
-
**STOP attempting more fixes.** Discuss with user before proceeding.
|
|
175
|
-
|
|
176
|
-
### Questions for User:
|
|
177
|
-
1. Is the current approach fundamentally sound?
|
|
178
|
-
2. Are we persisting through sheer inertia?
|
|
179
|
-
3. Should we refactor architecture vs. continue fixing symptoms?
|
|
180
|
-
|
|
181
|
-
**Do NOT attempt Fix #${session.config.maxSameFailure + 1} without architectural discussion.**
|
|
160
|
+
return `
|
|
161
|
+
## ⚠️ 3-Fix Rule Triggered - Architecture Question Required
|
|
162
|
+
|
|
163
|
+
**Same issue failed ${session.config.maxSameFailure}+ times.** This suggests an architectural problem, not a failed hypothesis.
|
|
164
|
+
|
|
165
|
+
### Failure Pattern:
|
|
166
|
+
${failureSummary}
|
|
167
|
+
|
|
168
|
+
### Architecture Problem Indicators:
|
|
169
|
+
- Each fix reveals new shared state/coupling issues in different places
|
|
170
|
+
- Fixes require "massive refactoring" to implement
|
|
171
|
+
- Each fix creates new symptoms elsewhere
|
|
172
|
+
|
|
173
|
+
### Required Action:
|
|
174
|
+
**STOP attempting more fixes.** Discuss with user before proceeding.
|
|
175
|
+
|
|
176
|
+
### Questions for User:
|
|
177
|
+
1. Is the current approach fundamentally sound?
|
|
178
|
+
2. Are we persisting through sheer inertia?
|
|
179
|
+
3. Should we refactor architecture vs. continue fixing symptoms?
|
|
180
|
+
|
|
181
|
+
**Do NOT attempt Fix #${session.config.maxSameFailure + 1} without architectural discussion.**
|
|
182
182
|
`.trim();
|
|
183
183
|
}
|
|
184
184
|
/**
|
|
@@ -263,35 +263,35 @@ export function parseQAGoals(input) {
|
|
|
263
263
|
* Create UltraQA workflow description
|
|
264
264
|
*/
|
|
265
265
|
export function describeUltraQAWorkflow() {
|
|
266
|
-
return `
|
|
267
|
-
## UltraQA Workflow
|
|
268
|
-
|
|
269
|
-
5-cycle autonomous QA loop:
|
|
270
|
-
|
|
271
|
-
\`\`\`
|
|
272
|
-
┌─────────────────────────────────────────────┐
|
|
273
|
-
│ ULTRAQA CYCLE │
|
|
274
|
-
│ │
|
|
275
|
-
│ 1. Run verification (test/build/lint) │
|
|
276
|
-
│ ↓ │
|
|
277
|
-
│ 2. Check result │
|
|
278
|
-
│ ↓ │
|
|
279
|
-
│ ┌───┴───┐ │
|
|
280
|
-
│ PASS FAIL │
|
|
281
|
-
│ ↓ ↓ │
|
|
282
|
-
│ DONE 3. Architect diagnosis │
|
|
283
|
-
│ ↓ │
|
|
284
|
-
│ 4. Executor fix │
|
|
285
|
-
│ ↓ │
|
|
286
|
-
│ 5. Repeat (max 5 cycles) │
|
|
287
|
-
└─────────────────────────────────────────────┘
|
|
288
|
-
\`\`\`
|
|
289
|
-
|
|
290
|
-
Exit conditions:
|
|
291
|
-
- ✅ All goals pass (with evidence)
|
|
292
|
-
- ⚠️ Same failure 3 times → Architecture Question (3-Fix Rule)
|
|
293
|
-
- ❌ Max 5 cycles reached
|
|
294
|
-
- ❌ Environment error
|
|
266
|
+
return `
|
|
267
|
+
## UltraQA Workflow
|
|
268
|
+
|
|
269
|
+
5-cycle autonomous QA loop:
|
|
270
|
+
|
|
271
|
+
\`\`\`
|
|
272
|
+
┌─────────────────────────────────────────────┐
|
|
273
|
+
│ ULTRAQA CYCLE │
|
|
274
|
+
│ │
|
|
275
|
+
│ 1. Run verification (test/build/lint) │
|
|
276
|
+
│ ↓ │
|
|
277
|
+
│ 2. Check result │
|
|
278
|
+
│ ↓ │
|
|
279
|
+
│ ┌───┴───┐ │
|
|
280
|
+
│ PASS FAIL │
|
|
281
|
+
│ ↓ ↓ │
|
|
282
|
+
│ DONE 3. Architect diagnosis │
|
|
283
|
+
│ ↓ │
|
|
284
|
+
│ 4. Executor fix │
|
|
285
|
+
│ ↓ │
|
|
286
|
+
│ 5. Repeat (max 5 cycles) │
|
|
287
|
+
└─────────────────────────────────────────────┘
|
|
288
|
+
\`\`\`
|
|
289
|
+
|
|
290
|
+
Exit conditions:
|
|
291
|
+
- ✅ All goals pass (with evidence)
|
|
292
|
+
- ⚠️ Same failure 3 times → Architecture Question (3-Fix Rule)
|
|
293
|
+
- ❌ Max 5 cycles reached
|
|
294
|
+
- ❌ Environment error
|
|
295
295
|
`.trim();
|
|
296
296
|
}
|
|
297
297
|
//# sourceMappingURL=UltraQA.js.map
|