@su-record/vibe 2.7.18 → 2.7.20
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 +153 -153
- package/LICENSE +21 -21
- package/README.md +451 -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/event/event-comms.md +78 -0
- package/agents/event/event-content.md +68 -0
- package/agents/event/event-image.md +95 -0
- package/agents/event/event-ops.md +84 -0
- package/agents/event/event-scheduler.md +69 -0
- package/agents/event/event-speaker.md +86 -0
- 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 +379 -379
- package/commands/vibe.event.md +163 -0
- package/commands/vibe.review.md +607 -607
- package/commands/vibe.run.md +2217 -2124
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +569 -569
- package/commands/vibe.trace.md +50 -0
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +484 -484
- package/dist/__tests__/architecture.test.d.ts +2 -0
- package/dist/__tests__/architecture.test.d.ts.map +1 -0
- package/dist/__tests__/architecture.test.js +207 -0
- package/dist/__tests__/architecture.test.js.map +1 -0
- package/dist/cli/auth.js +3 -3
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +45 -81
- package/dist/cli/commands/info.js.map +1 -1
- 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.d.ts.map +1 -1
- package/dist/cli/detect.js +55 -32
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +52 -52
- package/dist/cli/index.js.map +1 -1
- 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/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +24 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- 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/AutomationLevel.d.ts +48 -0
- package/dist/infra/lib/AutomationLevel.d.ts.map +1 -0
- package/dist/infra/lib/AutomationLevel.js +157 -0
- package/dist/infra/lib/AutomationLevel.js.map +1 -0
- package/dist/infra/lib/DecisionTracer.d.ts +81 -0
- package/dist/infra/lib/DecisionTracer.d.ts.map +1 -0
- package/dist/infra/lib/DecisionTracer.js +135 -0
- package/dist/infra/lib/DecisionTracer.js.map +1 -0
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/InteractiveCheckpoint.d.ts +75 -0
- package/dist/infra/lib/InteractiveCheckpoint.d.ts.map +1 -0
- package/dist/infra/lib/InteractiveCheckpoint.js +179 -0
- package/dist/infra/lib/InteractiveCheckpoint.js.map +1 -0
- package/dist/infra/lib/IterationTracker.d.ts +44 -0
- package/dist/infra/lib/IterationTracker.d.ts.map +1 -1
- package/dist/infra/lib/IterationTracker.js +267 -12
- package/dist/infra/lib/IterationTracker.js.map +1 -1
- package/dist/infra/lib/LoopBreaker.d.ts +56 -0
- package/dist/infra/lib/LoopBreaker.d.ts.map +1 -0
- package/dist/infra/lib/LoopBreaker.js +109 -0
- package/dist/infra/lib/LoopBreaker.js.map +1 -0
- 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/VerificationLoop.d.ts +105 -0
- package/dist/infra/lib/VerificationLoop.d.ts.map +1 -0
- package/dist/infra/lib/VerificationLoop.js +189 -0
- package/dist/infra/lib/VerificationLoop.js.map +1 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.js +297 -0
- package/dist/infra/lib/__tests__/AutomationLevel.test.js.map +1 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.js +274 -0
- package/dist/infra/lib/__tests__/DecisionTracer.test.js.map +1 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.js +350 -0
- package/dist/infra/lib/__tests__/InteractiveCheckpoint.test.js.map +1 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.js +340 -0
- package/dist/infra/lib/__tests__/LoopBreaker.test.js.map +1 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.d.ts +2 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.d.ts.map +1 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.js +486 -0
- package/dist/infra/lib/__tests__/VerificationLoop.test.js.map +1 -0
- 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.d.ts +3 -3
- 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/embedding/__tests__/EmbeddingProvider.test.js +4 -0
- package/dist/infra/lib/embedding/__tests__/EmbeddingProvider.test.js.map +1 -1
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DeprecationDetector.d.ts +68 -0
- package/dist/infra/lib/evolution/DeprecationDetector.d.ts.map +1 -0
- package/dist/infra/lib/evolution/DeprecationDetector.js +207 -0
- package/dist/infra/lib/evolution/DeprecationDetector.js.map +1 -0
- 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/ParityTester.d.ts +74 -0
- package/dist/infra/lib/evolution/ParityTester.d.ts.map +1 -0
- package/dist/infra/lib/evolution/ParityTester.js +238 -0
- package/dist/infra/lib/evolution/ParityTester.js.map +1 -0
- 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/evolution/__tests__/deprecation.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/deprecation.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/deprecation.test.js +251 -0
- package/dist/infra/lib/evolution/__tests__/deprecation.test.js.map +1 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.d.ts +2 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.d.ts.map +1 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.js +319 -0
- package/dist/infra/lib/evolution/__tests__/parity.test.js.map +1 -0
- package/dist/infra/lib/evolution/index.d.ts +4 -0
- package/dist/infra/lib/evolution/index.d.ts.map +1 -1
- package/dist/infra/lib/evolution/index.js +3 -0
- package/dist/infra/lib/evolution/index.js.map +1 -1
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/gpt/specializations.d.ts +1 -1
- package/dist/infra/lib/gpt/specializations.js +1 -1
- 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/lib/telemetry/SkillTelemetry.d.ts +6 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +1 -1
- package/dist/infra/lib/telemetry/SkillTelemetry.js +11 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.js.map +1 -1
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/BackgroundManager.d.ts.map +1 -1
- package/dist/infra/orchestrator/BackgroundManager.js +2 -0
- package/dist/infra/orchestrator/BackgroundManager.js.map +1 -1
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/PhasePipeline.js +1 -1
- package/dist/infra/orchestrator/PhasePipeline.js.map +1 -1
- 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/index.d.ts +16 -19
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +15 -27
- package/dist/tools/index.js.map +1 -1
- 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/memory/startSession.js +1 -1
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/index.d.ts +0 -4
- package/dist/tools/spec/index.d.ts.map +1 -1
- package/dist/tools/spec/index.js +0 -4
- package/dist/tools/spec/index.js.map +1 -1
- 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 -77
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/evolution-engine.js +69 -0
- 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/skill-injector.js +83 -0
- 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 +101 -123
- 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 +63 -63
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +13 -13
- package/skills/e2e-commerce/SKILL.md +61 -61
- package/skills/event-comms/SKILL.md +161 -0
- package/skills/event-ops/SKILL.md +197 -0
- package/skills/event-planning/SKILL.md +131 -0
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +12 -12
- 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 +221 -221
- 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
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seo-checklist
|
|
3
|
-
description: "SEO gotchas for web development - easy-to-miss items that hurt search ranking"
|
|
4
|
-
triggers: [seo, search, meta, sitemap, schema, structured data, og, opengraph, google, naver]
|
|
5
|
-
priority: 65
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# SEO Checklist
|
|
9
|
-
|
|
10
|
-
## Pre-check (K1)
|
|
11
|
-
|
|
12
|
-
> Is this a public-facing web page that needs search visibility? Internal tools, admin panels, and authenticated-only pages don't need SEO optimization.
|
|
13
|
-
|
|
14
|
-
## Easy-to-Miss Gotchas
|
|
15
|
-
|
|
16
|
-
### Meta & Social
|
|
17
|
-
|
|
18
|
-
| Gotcha | Why It Hurts | Fix |
|
|
19
|
-
|--------|-------------|-----|
|
|
20
|
-
| Missing `<link rel="canonical">` | Duplicate content penalty from URL variants | Set canonical on every page, including paginated |
|
|
21
|
-
| OG image wrong size | Cropped/pixelated on social share | Must be exactly **1200x630px** |
|
|
22
|
-
| Same title/description on all pages | Google treats as duplicate content | Unique title (50-60 chars) + description (150-160 chars) per page |
|
|
23
|
-
| Missing `og:type` | Defaults to "website" for articles | Set `article` for posts, `product` for products |
|
|
24
|
-
|
|
25
|
-
### Technical
|
|
26
|
-
|
|
27
|
-
| Gotcha | Why It Hurts | Fix |
|
|
28
|
-
|--------|-------------|-----|
|
|
29
|
-
| `robots.txt` blocks important pages | Pages not indexed | `Allow: /` for public, only block `/api/`, `/admin/` |
|
|
30
|
-
| No sitemap or stale sitemap | Crawler misses new pages | Auto-generate, include `<lastmod>` with real dates |
|
|
31
|
-
| `noindex` left in production | Entire site invisible | Verify `<meta name="robots">` in production build |
|
|
32
|
-
| Images without `width`/`height` | CLS layout shift penalty | Always set dimensions + `loading="lazy"` for below-fold |
|
|
33
|
-
|
|
34
|
-
### Core Web Vitals
|
|
35
|
-
|
|
36
|
-
| Metric | Target | Common Miss |
|
|
37
|
-
|--------|--------|-------------|
|
|
38
|
-
| LCP | ≤2.5s | Hero image not preloaded — add `<link rel="preload">` |
|
|
39
|
-
| INP | ≤200ms | Heavy JS on interaction — defer non-critical scripts |
|
|
40
|
-
| CLS | ≤0.1 | Dynamic content without reserved space — set `min-height` |
|
|
41
|
-
|
|
42
|
-
### Structured Data
|
|
43
|
-
|
|
44
|
-
| Gotcha | Fix |
|
|
45
|
-
|--------|-----|
|
|
46
|
-
| JSON-LD not validated | Test with Google Rich Results Test before deploy |
|
|
47
|
-
| Wrong `@type` | `Product` for products, `Article` for posts, `FAQPage` for FAQs |
|
|
48
|
-
| Missing `BreadcrumbList` | Add breadcrumb schema for all non-root pages |
|
|
49
|
-
|
|
50
|
-
## Done Criteria (K4)
|
|
51
|
-
|
|
52
|
-
- [ ] Every page has unique title, description, canonical URL
|
|
53
|
-
- [ ] OG images are 1200x630px on all shareable pages
|
|
54
|
-
- [ ] `robots.txt` and `sitemap.xml` present and correct
|
|
55
|
-
- [ ] Structured data validates in Rich Results Test
|
|
56
|
-
- [ ] Core Web Vitals green (LCP ≤2.5s, INP ≤200ms, CLS ≤0.1)
|
|
57
|
-
- [ ] No `noindex` tags in production
|
|
1
|
+
---
|
|
2
|
+
name: seo-checklist
|
|
3
|
+
description: "SEO gotchas for web development - easy-to-miss items that hurt search ranking"
|
|
4
|
+
triggers: [seo, search, meta, sitemap, schema, structured data, og, opengraph, google, naver]
|
|
5
|
+
priority: 65
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# SEO Checklist
|
|
9
|
+
|
|
10
|
+
## Pre-check (K1)
|
|
11
|
+
|
|
12
|
+
> Is this a public-facing web page that needs search visibility? Internal tools, admin panels, and authenticated-only pages don't need SEO optimization.
|
|
13
|
+
|
|
14
|
+
## Easy-to-Miss Gotchas
|
|
15
|
+
|
|
16
|
+
### Meta & Social
|
|
17
|
+
|
|
18
|
+
| Gotcha | Why It Hurts | Fix |
|
|
19
|
+
|--------|-------------|-----|
|
|
20
|
+
| Missing `<link rel="canonical">` | Duplicate content penalty from URL variants | Set canonical on every page, including paginated |
|
|
21
|
+
| OG image wrong size | Cropped/pixelated on social share | Must be exactly **1200x630px** |
|
|
22
|
+
| Same title/description on all pages | Google treats as duplicate content | Unique title (50-60 chars) + description (150-160 chars) per page |
|
|
23
|
+
| Missing `og:type` | Defaults to "website" for articles | Set `article` for posts, `product` for products |
|
|
24
|
+
|
|
25
|
+
### Technical
|
|
26
|
+
|
|
27
|
+
| Gotcha | Why It Hurts | Fix |
|
|
28
|
+
|--------|-------------|-----|
|
|
29
|
+
| `robots.txt` blocks important pages | Pages not indexed | `Allow: /` for public, only block `/api/`, `/admin/` |
|
|
30
|
+
| No sitemap or stale sitemap | Crawler misses new pages | Auto-generate, include `<lastmod>` with real dates |
|
|
31
|
+
| `noindex` left in production | Entire site invisible | Verify `<meta name="robots">` in production build |
|
|
32
|
+
| Images without `width`/`height` | CLS layout shift penalty | Always set dimensions + `loading="lazy"` for below-fold |
|
|
33
|
+
|
|
34
|
+
### Core Web Vitals
|
|
35
|
+
|
|
36
|
+
| Metric | Target | Common Miss |
|
|
37
|
+
|--------|--------|-------------|
|
|
38
|
+
| LCP | ≤2.5s | Hero image not preloaded — add `<link rel="preload">` |
|
|
39
|
+
| INP | ≤200ms | Heavy JS on interaction — defer non-critical scripts |
|
|
40
|
+
| CLS | ≤0.1 | Dynamic content without reserved space — set `min-height` |
|
|
41
|
+
|
|
42
|
+
### Structured Data
|
|
43
|
+
|
|
44
|
+
| Gotcha | Fix |
|
|
45
|
+
|--------|-----|
|
|
46
|
+
| JSON-LD not validated | Test with Google Rich Results Test before deploy |
|
|
47
|
+
| Wrong `@type` | `Product` for products, `Article` for posts, `FAQPage` for FAQs |
|
|
48
|
+
| Missing `BreadcrumbList` | Add breadcrumb schema for all non-root pages |
|
|
49
|
+
|
|
50
|
+
## Done Criteria (K4)
|
|
51
|
+
|
|
52
|
+
- [ ] Every page has unique title, description, canonical URL
|
|
53
|
+
- [ ] OG images are 1200x630px on all shareable pages
|
|
54
|
+
- [ ] `robots.txt` and `sitemap.xml` present and correct
|
|
55
|
+
- [ ] Structured data validates in Rich Results Test
|
|
56
|
+
- [ ] Core Web Vitals green (LCP ≤2.5s, INP ≤200ms, CLS ≤0.1)
|
|
57
|
+
- [ ] No `noindex` tags in production
|
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
|