@su-record/vibe 2.7.13 → 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 -260
- 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 +19 -19
- package/dist/cli/llm/config.js.map +1 -1
- 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/cli/types.d.ts +0 -2
- package/dist/cli/types.d.ts.map +1 -1
- 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 -65
- 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
package/skills/techdebt/SKILL.md
CHANGED
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: techdebt
|
|
3
|
-
description: "Technical debt cleanup — detect and fix duplicate code, console.log, unused imports, any types, etc. Recommended before session end. Activates on techdebt, cleanup, debt keywords."
|
|
4
|
-
triggers: [techdebt, cleanup, debt, unused imports, console.log, dead code]
|
|
5
|
-
priority: 60
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Techdebt — Technical Debt Cleanup
|
|
9
|
-
|
|
10
|
-
Detect and clean up technical debt in the codebase before session end or periodically.
|
|
11
|
-
|
|
12
|
-
## Inspection Items
|
|
13
|
-
|
|
14
|
-
### 1. Duplicate Code
|
|
15
|
-
|
|
16
|
-
- Check for similar functions/logic across multiple files
|
|
17
|
-
- Identify code extractable into common utilities
|
|
18
|
-
- Method: Detect similar code with `core_analyze_complexity`
|
|
19
|
-
|
|
20
|
-
### 2. Unused Code
|
|
21
|
-
|
|
22
|
-
- Unused import statements
|
|
23
|
-
- Unused variables/functions
|
|
24
|
-
- Commented-out code blocks
|
|
25
|
-
|
|
26
|
-
Detection tools:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
# Detect unused imports (using Grep tool)
|
|
30
|
-
Grep: pattern="^import .+ from" → cross-reference usage
|
|
31
|
-
|
|
32
|
-
# Detect commented-out code blocks
|
|
33
|
-
Grep: pattern="^\\s*//.*\\b(function|const|let|var|class|import)\\b"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### 3. Debug Code
|
|
37
|
-
|
|
38
|
-
- `console.log` / `console.error` / `console.warn`
|
|
39
|
-
- `debugger` statements
|
|
40
|
-
- Temporary comments: `// TODO`, `// FIXME`, `// HACK`, `// XXX`
|
|
41
|
-
|
|
42
|
-
Detection tools:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
# Detect console statements (using Grep tool)
|
|
46
|
-
Grep: pattern="console\\.(log|error|warn|debug)" glob="*.{ts,tsx}"
|
|
47
|
-
|
|
48
|
-
# Detect TODO/FIXME
|
|
49
|
-
Grep: pattern="(TODO|FIXME|HACK|XXX)" glob="*.{ts,tsx}"
|
|
50
|
-
|
|
51
|
-
# Detect debugger statements
|
|
52
|
-
Grep: pattern="\\bdebugger\\b" glob="*.{ts,tsx}"
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 4. Code Quality
|
|
56
|
-
|
|
57
|
-
- `any` type usage (TypeScript)
|
|
58
|
-
- Hardcoded values (magic numbers/strings)
|
|
59
|
-
- Functions exceeding 50 lines
|
|
60
|
-
- Nesting deeper than 4 levels
|
|
61
|
-
|
|
62
|
-
Detection tools:
|
|
63
|
-
|
|
64
|
-
```
|
|
65
|
-
# Detect any types (using Grep tool)
|
|
66
|
-
Grep: pattern=": any\\b|as any\\b" glob="*.{ts,tsx}"
|
|
67
|
-
|
|
68
|
-
# Analyze complexity with built-in VIBE tools
|
|
69
|
-
core_analyze_complexity: filePath="src/**/*.ts"
|
|
70
|
-
core_validate_code_quality: filePath="src/**/*.ts"
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Output Format
|
|
74
|
-
|
|
75
|
-
```markdown
|
|
76
|
-
## Technical Debt Report
|
|
77
|
-
|
|
78
|
-
### Duplicate Code (N items)
|
|
79
|
-
- src/utils.ts:formatDate ↔ src/helpers.ts:formatDateTime
|
|
80
|
-
|
|
81
|
-
### Unused Imports (N items)
|
|
82
|
-
- src/components/Button.tsx:3 — React (unused)
|
|
83
|
-
|
|
84
|
-
### Debug Code (N items)
|
|
85
|
-
- src/api/auth.ts:23 — console.log
|
|
86
|
-
|
|
87
|
-
### Code Quality Issues (N items)
|
|
88
|
-
- src/services/user.ts:45 — any type usage
|
|
89
|
-
- src/utils/calc.ts:10 — magic number (hardcoded 365)
|
|
90
|
-
|
|
91
|
-
Total: N technical debt items found.
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## Auto-fix Scope
|
|
95
|
-
|
|
96
|
-
### Auto-fixable (Safe)
|
|
97
|
-
|
|
98
|
-
| Item | Fix Method |
|
|
99
|
-
|------|-----------|
|
|
100
|
-
| Unused imports | Delete the import statement |
|
|
101
|
-
| `console.log` / `debugger` | Delete the line |
|
|
102
|
-
| Trailing whitespace / blank lines | Apply formatter |
|
|
103
|
-
|
|
104
|
-
### Requires Manual Review (Safety Guard)
|
|
105
|
-
|
|
106
|
-
| Item | Reason |
|
|
107
|
-
|------|--------|
|
|
108
|
-
| Duplicate code extraction | Need to verify logic equivalence |
|
|
109
|
-
| `any` type fixes | Need proper type design |
|
|
110
|
-
| Magic number extraction | Need to decide constant names and locations |
|
|
111
|
-
| Long function splitting | Need to decide logic separation criteria |
|
|
112
|
-
|
|
113
|
-
> Always show the scope of changes to the user and get confirmation before auto-fixing.
|
|
114
|
-
|
|
115
|
-
## VIBE Tool Integration
|
|
116
|
-
|
|
117
|
-
| Tool | Purpose |
|
|
118
|
-
|------|---------|
|
|
119
|
-
| `core_analyze_complexity` | Measure function complexity (nesting, line count) |
|
|
120
|
-
| `core_validate_code_quality` | Detect code quality rule violations |
|
|
121
|
-
| `core_suggest_improvements` | Generate improvement suggestions |
|
|
122
|
-
| `core_check_coupling_cohesion` | Analyze module coupling/cohesion |
|
|
1
|
+
---
|
|
2
|
+
name: techdebt
|
|
3
|
+
description: "Technical debt cleanup — detect and fix duplicate code, console.log, unused imports, any types, etc. Recommended before session end. Activates on techdebt, cleanup, debt keywords."
|
|
4
|
+
triggers: [techdebt, cleanup, debt, unused imports, console.log, dead code]
|
|
5
|
+
priority: 60
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Techdebt — Technical Debt Cleanup
|
|
9
|
+
|
|
10
|
+
Detect and clean up technical debt in the codebase before session end or periodically.
|
|
11
|
+
|
|
12
|
+
## Inspection Items
|
|
13
|
+
|
|
14
|
+
### 1. Duplicate Code
|
|
15
|
+
|
|
16
|
+
- Check for similar functions/logic across multiple files
|
|
17
|
+
- Identify code extractable into common utilities
|
|
18
|
+
- Method: Detect similar code with `core_analyze_complexity`
|
|
19
|
+
|
|
20
|
+
### 2. Unused Code
|
|
21
|
+
|
|
22
|
+
- Unused import statements
|
|
23
|
+
- Unused variables/functions
|
|
24
|
+
- Commented-out code blocks
|
|
25
|
+
|
|
26
|
+
Detection tools:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
# Detect unused imports (using Grep tool)
|
|
30
|
+
Grep: pattern="^import .+ from" → cross-reference usage
|
|
31
|
+
|
|
32
|
+
# Detect commented-out code blocks
|
|
33
|
+
Grep: pattern="^\\s*//.*\\b(function|const|let|var|class|import)\\b"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 3. Debug Code
|
|
37
|
+
|
|
38
|
+
- `console.log` / `console.error` / `console.warn`
|
|
39
|
+
- `debugger` statements
|
|
40
|
+
- Temporary comments: `// TODO`, `// FIXME`, `// HACK`, `// XXX`
|
|
41
|
+
|
|
42
|
+
Detection tools:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
# Detect console statements (using Grep tool)
|
|
46
|
+
Grep: pattern="console\\.(log|error|warn|debug)" glob="*.{ts,tsx}"
|
|
47
|
+
|
|
48
|
+
# Detect TODO/FIXME
|
|
49
|
+
Grep: pattern="(TODO|FIXME|HACK|XXX)" glob="*.{ts,tsx}"
|
|
50
|
+
|
|
51
|
+
# Detect debugger statements
|
|
52
|
+
Grep: pattern="\\bdebugger\\b" glob="*.{ts,tsx}"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 4. Code Quality
|
|
56
|
+
|
|
57
|
+
- `any` type usage (TypeScript)
|
|
58
|
+
- Hardcoded values (magic numbers/strings)
|
|
59
|
+
- Functions exceeding 50 lines
|
|
60
|
+
- Nesting deeper than 4 levels
|
|
61
|
+
|
|
62
|
+
Detection tools:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
# Detect any types (using Grep tool)
|
|
66
|
+
Grep: pattern=": any\\b|as any\\b" glob="*.{ts,tsx}"
|
|
67
|
+
|
|
68
|
+
# Analyze complexity with built-in VIBE tools
|
|
69
|
+
core_analyze_complexity: filePath="src/**/*.ts"
|
|
70
|
+
core_validate_code_quality: filePath="src/**/*.ts"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Output Format
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
## Technical Debt Report
|
|
77
|
+
|
|
78
|
+
### Duplicate Code (N items)
|
|
79
|
+
- src/utils.ts:formatDate ↔ src/helpers.ts:formatDateTime
|
|
80
|
+
|
|
81
|
+
### Unused Imports (N items)
|
|
82
|
+
- src/components/Button.tsx:3 — React (unused)
|
|
83
|
+
|
|
84
|
+
### Debug Code (N items)
|
|
85
|
+
- src/api/auth.ts:23 — console.log
|
|
86
|
+
|
|
87
|
+
### Code Quality Issues (N items)
|
|
88
|
+
- src/services/user.ts:45 — any type usage
|
|
89
|
+
- src/utils/calc.ts:10 — magic number (hardcoded 365)
|
|
90
|
+
|
|
91
|
+
Total: N technical debt items found.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Auto-fix Scope
|
|
95
|
+
|
|
96
|
+
### Auto-fixable (Safe)
|
|
97
|
+
|
|
98
|
+
| Item | Fix Method |
|
|
99
|
+
|------|-----------|
|
|
100
|
+
| Unused imports | Delete the import statement |
|
|
101
|
+
| `console.log` / `debugger` | Delete the line |
|
|
102
|
+
| Trailing whitespace / blank lines | Apply formatter |
|
|
103
|
+
|
|
104
|
+
### Requires Manual Review (Safety Guard)
|
|
105
|
+
|
|
106
|
+
| Item | Reason |
|
|
107
|
+
|------|--------|
|
|
108
|
+
| Duplicate code extraction | Need to verify logic equivalence |
|
|
109
|
+
| `any` type fixes | Need proper type design |
|
|
110
|
+
| Magic number extraction | Need to decide constant names and locations |
|
|
111
|
+
| Long function splitting | Need to decide logic separation criteria |
|
|
112
|
+
|
|
113
|
+
> Always show the scope of changes to the user and get confirmation before auto-fixing.
|
|
114
|
+
|
|
115
|
+
## VIBE Tool Integration
|
|
116
|
+
|
|
117
|
+
| Tool | Purpose |
|
|
118
|
+
|------|---------|
|
|
119
|
+
| `core_analyze_complexity` | Measure function complexity (nesting, line count) |
|
|
120
|
+
| `core_validate_code_quality` | Detect code quality rule violations |
|
|
121
|
+
| `core_suggest_improvements` | Generate improvement suggestions |
|
|
122
|
+
| `core_check_coupling_cohesion` | Analyze module coupling/cohesion |
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tool-fallback
|
|
3
|
-
description: "Tool failure fallback strategies with circuit breaker. Auto-activates on API errors, search failures, timeouts, 429, 5xx, overloaded errors."
|
|
4
|
-
triggers: [API error, search failure, timeout, 429, 5xx, overloaded, fallback, circuit breaker]
|
|
5
|
-
priority: 80
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Tool Fallback Strategies
|
|
9
|
-
|
|
10
|
-
## Pre-check (K1)
|
|
11
|
-
|
|
12
|
-
> Did a tool just fail? If the error is a simple typo or wrong path, fix the input first. This skill is for persistent failures (429, 5xx, timeouts).
|
|
13
|
-
|
|
14
|
-
## Circuit Breaker State Machine
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
┌─────────┐ 3 failures ┌─────────┐ 30s cooldown ┌─────────────┐
|
|
18
|
-
│ CLOSED │ ─────────────→ │ OPEN │ ───────────────→ │ HALF-OPEN │
|
|
19
|
-
│ (normal)│ │ (block) │ │ (test 1 req)│
|
|
20
|
-
└─────────┘ └─────────┘ └─────────────┘
|
|
21
|
-
↑ │
|
|
22
|
-
│ success │
|
|
23
|
-
└────────────────────────────────────────────────────────┘
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
| State | Behavior |
|
|
27
|
-
|-------|----------|
|
|
28
|
-
| CLOSED | Normal operation, count failures |
|
|
29
|
-
| OPEN | Skip tool immediately, use alternative |
|
|
30
|
-
| HALF-OPEN | Allow 1 test request after cooldown |
|
|
31
|
-
|
|
32
|
-
## Decision Trees
|
|
33
|
-
|
|
34
|
-
### Web Search Fails
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
Web Search fails (429, 529, timeout)
|
|
38
|
-
→ Check circuit state
|
|
39
|
-
→ OPEN? → Skip to alternative immediately
|
|
40
|
-
→ CLOSED? → Try context7 for library docs
|
|
41
|
-
→ Still fails? → Claude's built-in knowledge (last resort)
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### External LLM Fails
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
VibeOrchestrator.smartRoute({ type, prompt })
|
|
48
|
-
→ Primary LLM fails (429, 401, 5xx)
|
|
49
|
-
→ Skip to secondary LLM (no retry on rate limit)
|
|
50
|
-
→ Secondary fails → Claude handles directly
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### File/Code Not Found
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Glob fails → Expand pattern: *.ts → **/*.ts → **/*
|
|
57
|
-
→ Use Grep for content-based search
|
|
58
|
-
→ Check git log for file history
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Error Response Actions
|
|
62
|
-
|
|
63
|
-
| Error | Action | Circuit Impact |
|
|
64
|
-
|-------|--------|---------------|
|
|
65
|
-
| 429 Rate Limit | Skip to next alternative (don't retry) | +1 failure |
|
|
66
|
-
| 5xx Server Error | Retry with backoff, then switch | +1 failure |
|
|
67
|
-
| 529 Overloaded | Wait and retry once | +1 failure |
|
|
68
|
-
| Timeout | Split request or retry | +1 failure |
|
|
69
|
-
| 401/403 Auth | Re-auth or switch alternative | Don't count |
|
|
70
|
-
|
|
71
|
-
## Retry Strategy
|
|
72
|
-
|
|
73
|
-
```
|
|
74
|
-
Request → Check circuit
|
|
75
|
-
├─ OPEN → Use alternative immediately
|
|
76
|
-
└─ CLOSED/HALF-OPEN → Try request
|
|
77
|
-
├─ Success → Reset failure count
|
|
78
|
-
└─ Fail → Backoff (2s → 4s → 8s)
|
|
79
|
-
└─ All retries failed → +1 failure
|
|
80
|
-
└─ failures ≥ 3 → OPEN circuit (30s)
|
|
81
|
-
└─ Use alternative
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## LLM Priority by Task Type
|
|
85
|
-
|
|
86
|
-
| Task Type | Primary → Secondary → Fallback |
|
|
87
|
-
|-----------|-------------------------------|
|
|
88
|
-
| architecture, debugging | GPT → Gemini → Claude |
|
|
89
|
-
| uiux, code-analysis | Gemini → GPT → Claude |
|
|
90
|
-
| code-gen, general | Claude only |
|
|
91
|
-
|
|
92
|
-
## Principles
|
|
93
|
-
|
|
94
|
-
1. **Never stop** — always find an alternative
|
|
95
|
-
2. **Try before asking** — exhaust alternatives before asking user
|
|
96
|
-
3. **Fail fast** — skip OPEN-circuit tools immediately
|
|
97
|
-
4. **Auto-recover** — test after 30s cooldown
|
|
98
|
-
|
|
99
|
-
## Done Criteria (K4)
|
|
100
|
-
|
|
101
|
-
- [ ] Work continued despite tool failure
|
|
102
|
-
- [ ] Alternative tool/method used successfully
|
|
103
|
-
- [ ] No unnecessary retries on rate-limited tools
|
|
1
|
+
---
|
|
2
|
+
name: tool-fallback
|
|
3
|
+
description: "Tool failure fallback strategies with circuit breaker. Auto-activates on API errors, search failures, timeouts, 429, 5xx, overloaded errors."
|
|
4
|
+
triggers: [API error, search failure, timeout, 429, 5xx, overloaded, fallback, circuit breaker]
|
|
5
|
+
priority: 80
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tool Fallback Strategies
|
|
9
|
+
|
|
10
|
+
## Pre-check (K1)
|
|
11
|
+
|
|
12
|
+
> Did a tool just fail? If the error is a simple typo or wrong path, fix the input first. This skill is for persistent failures (429, 5xx, timeouts).
|
|
13
|
+
|
|
14
|
+
## Circuit Breaker State Machine
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
┌─────────┐ 3 failures ┌─────────┐ 30s cooldown ┌─────────────┐
|
|
18
|
+
│ CLOSED │ ─────────────→ │ OPEN │ ───────────────→ │ HALF-OPEN │
|
|
19
|
+
│ (normal)│ │ (block) │ │ (test 1 req)│
|
|
20
|
+
└─────────┘ └─────────┘ └─────────────┘
|
|
21
|
+
↑ │
|
|
22
|
+
│ success │
|
|
23
|
+
└────────────────────────────────────────────────────────┘
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
| State | Behavior |
|
|
27
|
+
|-------|----------|
|
|
28
|
+
| CLOSED | Normal operation, count failures |
|
|
29
|
+
| OPEN | Skip tool immediately, use alternative |
|
|
30
|
+
| HALF-OPEN | Allow 1 test request after cooldown |
|
|
31
|
+
|
|
32
|
+
## Decision Trees
|
|
33
|
+
|
|
34
|
+
### Web Search Fails
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Web Search fails (429, 529, timeout)
|
|
38
|
+
→ Check circuit state
|
|
39
|
+
→ OPEN? → Skip to alternative immediately
|
|
40
|
+
→ CLOSED? → Try context7 for library docs
|
|
41
|
+
→ Still fails? → Claude's built-in knowledge (last resort)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### External LLM Fails
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
VibeOrchestrator.smartRoute({ type, prompt })
|
|
48
|
+
→ Primary LLM fails (429, 401, 5xx)
|
|
49
|
+
→ Skip to secondary LLM (no retry on rate limit)
|
|
50
|
+
→ Secondary fails → Claude handles directly
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### File/Code Not Found
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Glob fails → Expand pattern: *.ts → **/*.ts → **/*
|
|
57
|
+
→ Use Grep for content-based search
|
|
58
|
+
→ Check git log for file history
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Error Response Actions
|
|
62
|
+
|
|
63
|
+
| Error | Action | Circuit Impact |
|
|
64
|
+
|-------|--------|---------------|
|
|
65
|
+
| 429 Rate Limit | Skip to next alternative (don't retry) | +1 failure |
|
|
66
|
+
| 5xx Server Error | Retry with backoff, then switch | +1 failure |
|
|
67
|
+
| 529 Overloaded | Wait and retry once | +1 failure |
|
|
68
|
+
| Timeout | Split request or retry | +1 failure |
|
|
69
|
+
| 401/403 Auth | Re-auth or switch alternative | Don't count |
|
|
70
|
+
|
|
71
|
+
## Retry Strategy
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Request → Check circuit
|
|
75
|
+
├─ OPEN → Use alternative immediately
|
|
76
|
+
└─ CLOSED/HALF-OPEN → Try request
|
|
77
|
+
├─ Success → Reset failure count
|
|
78
|
+
└─ Fail → Backoff (2s → 4s → 8s)
|
|
79
|
+
└─ All retries failed → +1 failure
|
|
80
|
+
└─ failures ≥ 3 → OPEN circuit (30s)
|
|
81
|
+
└─ Use alternative
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## LLM Priority by Task Type
|
|
85
|
+
|
|
86
|
+
| Task Type | Primary → Secondary → Fallback |
|
|
87
|
+
|-----------|-------------------------------|
|
|
88
|
+
| architecture, debugging | GPT → Gemini → Claude |
|
|
89
|
+
| uiux, code-analysis | Gemini → GPT → Claude |
|
|
90
|
+
| code-gen, general | Claude only |
|
|
91
|
+
|
|
92
|
+
## Principles
|
|
93
|
+
|
|
94
|
+
1. **Never stop** — always find an alternative
|
|
95
|
+
2. **Try before asking** — exhaust alternatives before asking user
|
|
96
|
+
3. **Fail fast** — skip OPEN-circuit tools immediately
|
|
97
|
+
4. **Auto-recover** — test after 30s cooldown
|
|
98
|
+
|
|
99
|
+
## Done Criteria (K4)
|
|
100
|
+
|
|
101
|
+
- [ ] Work continued despite tool failure
|
|
102
|
+
- [ ] Alternative tool/method used successfully
|
|
103
|
+
- [ ] No unnecessary retries on rate-limited tools
|
|
@@ -1,65 +1,66 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
| `
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
function process(data:
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
- [ ]
|
|
64
|
-
- [ ]
|
|
65
|
-
- [ ]
|
|
1
|
+
---
|
|
2
|
+
name: typescript-advanced-types
|
|
3
|
+
description: "TypeScript advanced type system master guide. Covers Generics, Conditional Types, Mapped Types, Template Literals, Utility Types. Activates for complex type logic, reusable type utilities, and compile-time type safety."
|
|
4
|
+
sections:
|
|
5
|
+
- name: "Core Concepts"
|
|
6
|
+
triggers: [generic, generics, constraint, conditional, infer, mapped, utility, Pick, Omit, Partial, Required, Record, Exclude, Extract, readonly]
|
|
7
|
+
- name: "Advanced Patterns"
|
|
8
|
+
triggers: [template literal, branded, opaque, phantom, discriminated union, exhaustive, builder pattern, recursive type, variadic tuple]
|
|
9
|
+
- name: "Type Inference"
|
|
10
|
+
triggers: [inference, infer, type narrowing, type guard, satisfies, const assertion]
|
|
11
|
+
- name: "Best Practices"
|
|
12
|
+
triggers: [best practice, type safety, convention]
|
|
13
|
+
- name: "Type Testing"
|
|
14
|
+
triggers: [type test, type assertion, expectType, tsd]
|
|
15
|
+
- name: "Common Mistakes"
|
|
16
|
+
triggers: [mistake, pitfall, error, wrong]
|
|
17
|
+
- name: "Performance"
|
|
18
|
+
triggers: [performance, compile time, type complexity, depth limit]
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# TypeScript Advanced Types
|
|
22
|
+
|
|
23
|
+
## Pre-check (K1)
|
|
24
|
+
|
|
25
|
+
> Is this a VIBE-specific type safety issue? Standard TypeScript generics/conditionals/mapped types are well-known — read the code instead. This skill exists for VIBE's strict rules and non-obvious gotchas only.
|
|
26
|
+
|
|
27
|
+
## VIBE Forbidden Patterns
|
|
28
|
+
|
|
29
|
+
| Forbidden | Why | Use Instead |
|
|
30
|
+
|-----------|-----|-------------|
|
|
31
|
+
| `any` | Disables all type checking | `unknown` + type guard |
|
|
32
|
+
| `as any` | Bypasses type system | Define proper interface |
|
|
33
|
+
| `@ts-ignore` | Hides real errors | Fix the type issue at root |
|
|
34
|
+
| Raw generic `T` without constraint | Too permissive | `T extends SomeInterface` |
|
|
35
|
+
|
|
36
|
+
## `unknown` + Type Guard (VIBE's `any` Replacement)
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// Instead of: function process(data: any)
|
|
40
|
+
function process(data: unknown): string {
|
|
41
|
+
if (typeof data === 'string') return data.toUpperCase();
|
|
42
|
+
if (isUser(data)) return data.name;
|
|
43
|
+
throw new Error('Unexpected data type');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function isUser(value: unknown): value is User {
|
|
47
|
+
return typeof value === 'object' && value !== null && 'name' in value;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Gotchas
|
|
52
|
+
|
|
53
|
+
| Gotcha | Why Non-obvious | Fix |
|
|
54
|
+
|--------|----------------|-----|
|
|
55
|
+
| Distributive conditionals | `ToArray<string \| number>` → `string[] \| number[]`, not `(string \| number)[]` | Wrap in tuple: `[T] extends [U]` |
|
|
56
|
+
| Recursive type depth | TS has ~50 level depth limit | Use tail-recursive patterns or simplify |
|
|
57
|
+
| `satisfies` vs `as const` | `satisfies` validates + keeps literal types; `as` skips validation | Prefer `satisfies` |
|
|
58
|
+
| Type assertions (`as X`) | Skips checking entirely | Use type guards instead |
|
|
59
|
+
| `interface` vs `type` | `interface` gives better error messages for objects | Use `type` for unions/complex, `interface` for shapes |
|
|
60
|
+
|
|
61
|
+
## Done Criteria (K4)
|
|
62
|
+
|
|
63
|
+
- [ ] No `any`, `as any`, or `@ts-ignore` in code
|
|
64
|
+
- [ ] All `unknown` usages have corresponding type guards
|
|
65
|
+
- [ ] Complex types have `AssertEqual` type tests
|
|
66
|
+
- [ ] Recursive types are bounded (no infinite depth)
|