@su-record/vibe 2.7.6 → 2.7.9
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/dist/cli/commands/init.d.ts +10 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +78 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +17 -2
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/postinstall/codex-agents.d.ts +12 -0
- package/dist/cli/postinstall/codex-agents.d.ts.map +1 -0
- package/dist/cli/postinstall/codex-agents.js +51 -0
- package/dist/cli/postinstall/codex-agents.js.map +1 -0
- package/dist/cli/postinstall/codex-instruction.d.ts +10 -0
- package/dist/cli/postinstall/codex-instruction.d.ts.map +1 -0
- package/dist/cli/postinstall/codex-instruction.js +56 -0
- package/dist/cli/postinstall/codex-instruction.js.map +1 -0
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +1 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/gemini-agents.d.ts +12 -0
- package/dist/cli/postinstall/gemini-agents.d.ts.map +1 -0
- package/dist/cli/postinstall/gemini-agents.js +80 -0
- package/dist/cli/postinstall/gemini-agents.js.map +1 -0
- package/dist/cli/postinstall/gemini-instruction.d.ts +10 -0
- package/dist/cli/postinstall/gemini-instruction.d.ts.map +1 -0
- package/dist/cli/postinstall/gemini-instruction.js +59 -0
- package/dist/cli/postinstall/gemini-instruction.js.map +1 -0
- package/dist/cli/postinstall/index.d.ts +4 -0
- package/dist/cli/postinstall/index.d.ts.map +1 -1
- package/dist/cli/postinstall/index.js +4 -0
- package/dist/cli/postinstall/index.js.map +1 -1
- package/dist/cli/postinstall/main.d.ts.map +1 -1
- package/dist/cli/postinstall/main.js +34 -1
- package/dist/cli/postinstall/main.js.map +1 -1
- package/dist/cli/postinstall.d.ts +1 -1
- package/dist/cli/postinstall.d.ts.map +1 -1
- package/dist/cli/postinstall.js +1 -1
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup/ProjectSetup.d.ts +15 -0
- package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
- package/dist/cli/setup/ProjectSetup.js +159 -0
- package/dist/cli/setup/ProjectSetup.js.map +1 -1
- package/dist/cli/setup.d.ts +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +1 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/utils/cli-detector.d.ts +25 -0
- package/dist/cli/utils/cli-detector.d.ts.map +1 -0
- package/dist/cli/utils/cli-detector.js +55 -0
- package/dist/cli/utils/cli-detector.js.map +1 -0
- package/hooks/gemini-hooks.json +73 -0
- package/package.json +1 -1
- package/skills/agents-md/SKILL.md +120 -0
- package/skills/brand-assets/SKILL.md +8 -0
- package/skills/characterization-test/SKILL.md +4 -0
- package/skills/commerce-patterns/SKILL.md +36 -338
- package/skills/commit-push-pr/SKILL.md +21 -64
- package/skills/core-capabilities/SKILL.md +26 -142
- package/skills/e2e-commerce/SKILL.md +37 -284
- package/skills/frontend-design/SKILL.md +12 -31
- package/skills/git-worktree/SKILL.md +34 -146
- package/skills/handoff/SKILL.md +8 -0
- package/skills/parallel-research/SKILL.md +7 -0
- package/skills/priority-todos/SKILL.md +34 -213
- package/skills/seo-checklist/SKILL.md +38 -225
- package/skills/tool-fallback/SKILL.md +53 -143
- package/skills/typescript-advanced-types/SKILL.md +30 -685
- package/skills/ui-ux-pro-max/SKILL.md +40 -220
- package/skills/vercel-react-best-practices/SKILL.md +38 -283
- package/skills/video-production/SKILL.md +35 -206
|
@@ -1,244 +1,57 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: seo-checklist
|
|
3
|
-
description: "SEO
|
|
3
|
+
description: "SEO gotchas for web development - easy-to-miss items that hurt search ranking"
|
|
4
4
|
triggers: [seo, search, meta, sitemap, schema, structured data, og, opengraph, google, naver]
|
|
5
5
|
priority: 65
|
|
6
6
|
---
|
|
7
|
-
# SEO Checklist Skill
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
# SEO Checklist
|
|
10
9
|
|
|
11
|
-
##
|
|
10
|
+
## Pre-check (K1)
|
|
12
11
|
|
|
13
|
-
-
|
|
14
|
-
- Landing pages and marketing sites
|
|
15
|
-
- E-commerce product pages
|
|
16
|
-
- Content-heavy applications
|
|
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.
|
|
17
13
|
|
|
18
|
-
##
|
|
14
|
+
## Easy-to-Miss Gotchas
|
|
19
15
|
|
|
20
|
-
###
|
|
16
|
+
### Meta & Social
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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 |
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
<meta property="og:title" content="Title">
|
|
31
|
-
<meta property="og:description" content="Description">
|
|
32
|
-
<meta property="og:image" content="https://example.com/og-image.png">
|
|
33
|
-
<meta property="og:url" content="https://example.com/page">
|
|
34
|
-
<meta property="og:type" content="website">
|
|
25
|
+
### Technical
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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 |
|
|
42
33
|
|
|
43
|
-
###
|
|
34
|
+
### Core Web Vitals
|
|
44
35
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"name": "Page Title",
|
|
51
|
-
"description": "Page description",
|
|
52
|
-
"url": "https://example.com/page"
|
|
53
|
-
}
|
|
54
|
-
</script>
|
|
55
|
-
```
|
|
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` |
|
|
56
41
|
|
|
57
|
-
|
|
42
|
+
### Structured Data
|
|
58
43
|
|
|
59
|
-
|
|
|
60
|
-
|
|
61
|
-
|
|
|
62
|
-
| `Product`
|
|
63
|
-
| `
|
|
64
|
-
| `FAQPage` | FAQ sections |
|
|
65
|
-
| `BreadcrumbList` | Navigation breadcrumbs |
|
|
66
|
-
| `LocalBusiness` | Local/physical stores |
|
|
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 |
|
|
67
49
|
|
|
68
|
-
|
|
50
|
+
## Done Criteria (K4)
|
|
69
51
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
Sitemap: https://example.com/sitemap.xml
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
#### sitemap.xml
|
|
81
|
-
```xml
|
|
82
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
83
|
-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
84
|
-
<url>
|
|
85
|
-
<loc>https://example.com/</loc>
|
|
86
|
-
<lastmod>2024-01-01</lastmod>
|
|
87
|
-
<changefreq>weekly</changefreq>
|
|
88
|
-
<priority>1.0</priority>
|
|
89
|
-
</url>
|
|
90
|
-
</urlset>
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### 4. Performance (Core Web Vitals)
|
|
94
|
-
|
|
95
|
-
| Metric | Good | Needs Work | Poor |
|
|
96
|
-
|--------|------|------------|------|
|
|
97
|
-
| LCP (Largest Contentful Paint) | ≤2.5s | ≤4.0s | >4.0s |
|
|
98
|
-
| INP (Interaction to Next Paint) | ≤200ms | ≤500ms | >500ms |
|
|
99
|
-
| CLS (Cumulative Layout Shift) | ≤0.1 | ≤0.25 | >0.25 |
|
|
100
|
-
|
|
101
|
-
### 5. Image Optimization
|
|
102
|
-
|
|
103
|
-
```html
|
|
104
|
-
<!-- Responsive images -->
|
|
105
|
-
<img
|
|
106
|
-
src="image.webp"
|
|
107
|
-
alt="Descriptive alt text"
|
|
108
|
-
width="800"
|
|
109
|
-
height="600"
|
|
110
|
-
loading="lazy"
|
|
111
|
-
decoding="async"
|
|
112
|
-
>
|
|
113
|
-
|
|
114
|
-
<!-- Next.js Image -->
|
|
115
|
-
<Image
|
|
116
|
-
src="/image.webp"
|
|
117
|
-
alt="Descriptive alt text"
|
|
118
|
-
width={800}
|
|
119
|
-
height={600}
|
|
120
|
-
priority={false}
|
|
121
|
-
/>
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Framework-Specific Implementation
|
|
125
|
-
|
|
126
|
-
### Next.js (App Router)
|
|
127
|
-
|
|
128
|
-
```typescript
|
|
129
|
-
// app/layout.tsx
|
|
130
|
-
import { Metadata } from 'next';
|
|
131
|
-
|
|
132
|
-
export const metadata: Metadata = {
|
|
133
|
-
title: {
|
|
134
|
-
default: 'Site Name',
|
|
135
|
-
template: '%s | Site Name',
|
|
136
|
-
},
|
|
137
|
-
description: 'Site description',
|
|
138
|
-
openGraph: {
|
|
139
|
-
title: 'Site Name',
|
|
140
|
-
description: 'Site description',
|
|
141
|
-
url: 'https://example.com',
|
|
142
|
-
siteName: 'Site Name',
|
|
143
|
-
images: [{ url: '/og-image.png', width: 1200, height: 630 }],
|
|
144
|
-
locale: 'ko_KR',
|
|
145
|
-
type: 'website',
|
|
146
|
-
},
|
|
147
|
-
robots: {
|
|
148
|
-
index: true,
|
|
149
|
-
follow: true,
|
|
150
|
-
},
|
|
151
|
-
};
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### React (Vite + react-helmet-async)
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
import { Helmet } from 'react-helmet-async';
|
|
158
|
-
|
|
159
|
-
function SEO({ title, description, image }) {
|
|
160
|
-
return (
|
|
161
|
-
<Helmet>
|
|
162
|
-
<title>{title}</title>
|
|
163
|
-
<meta name="description" content={description} />
|
|
164
|
-
<meta property="og:title" content={title} />
|
|
165
|
-
<meta property="og:description" content={description} />
|
|
166
|
-
<meta property="og:image" content={image} />
|
|
167
|
-
</Helmet>
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Quality Checklist
|
|
173
|
-
|
|
174
|
-
### Pre-Launch
|
|
175
|
-
|
|
176
|
-
- [ ] All pages have unique title and description
|
|
177
|
-
- [ ] Open Graph tags on all shareable pages
|
|
178
|
-
- [ ] Structured data validates (Google Rich Results Test)
|
|
179
|
-
- [ ] robots.txt allows important pages
|
|
180
|
-
- [ ] sitemap.xml includes all public pages
|
|
181
|
-
- [ ] canonical URLs set correctly
|
|
182
|
-
- [ ] Images have alt text
|
|
183
|
-
- [ ] No broken links (404s)
|
|
184
|
-
|
|
185
|
-
### Performance
|
|
186
|
-
|
|
187
|
-
- [ ] LCP < 2.5s on mobile
|
|
188
|
-
- [ ] Images optimized (WebP, lazy loading)
|
|
189
|
-
- [ ] CSS/JS minified and compressed
|
|
190
|
-
- [ ] Server response time < 200ms
|
|
191
|
-
|
|
192
|
-
### Accessibility (SEO Impact)
|
|
193
|
-
|
|
194
|
-
- [ ] Semantic HTML (h1-h6 hierarchy)
|
|
195
|
-
- [ ] ARIA labels where needed
|
|
196
|
-
- [ ] Keyboard navigation works
|
|
197
|
-
- [ ] Color contrast meets WCAG AA
|
|
198
|
-
|
|
199
|
-
## Validation Tools
|
|
200
|
-
|
|
201
|
-
| Tool | Purpose |
|
|
202
|
-
|------|---------|
|
|
203
|
-
| [Google Search Console](https://search.google.com/search-console) | Index status, errors |
|
|
204
|
-
| [Google Rich Results Test](https://search.google.com/test/rich-results) | Schema validation |
|
|
205
|
-
| [PageSpeed Insights](https://pagespeed.web.dev/) | Core Web Vitals |
|
|
206
|
-
| [Lighthouse](https://developer.chrome.com/docs/lighthouse) | SEO audit |
|
|
207
|
-
| [Ahrefs/Screaming Frog](https://www.screamingfrog.co.uk/) | Site crawl |
|
|
208
|
-
|
|
209
|
-
## Integration with /vibe.run
|
|
210
|
-
|
|
211
|
-
During implementation phase, check:
|
|
212
|
-
|
|
213
|
-
1. **Phase 1 (Setup)**: Create robots.txt, sitemap structure
|
|
214
|
-
2. **Phase 2-3 (Core)**: Add meta tags to layout/pages
|
|
215
|
-
3. **Phase 4 (Polish)**: Validate structured data, test OG images
|
|
216
|
-
4. **Phase 5 (QA)**: Run Lighthouse SEO audit, fix issues
|
|
217
|
-
|
|
218
|
-
## Generative Engine Optimization (AI 검색)
|
|
219
|
-
|
|
220
|
-
For AI search engines (ChatGPT, Perplexity, Google AI Overviews):
|
|
221
|
-
|
|
222
|
-
### Content Structure for LLM Citation
|
|
223
|
-
|
|
224
|
-
- Add summary paragraph at page top
|
|
225
|
-
- Use clear Q&A format for FAQs
|
|
226
|
-
- Include data/statistics with sources
|
|
227
|
-
- Add author, publish date, last updated
|
|
228
|
-
- Structure content with clear headings
|
|
229
|
-
|
|
230
|
-
### Machine-Readable Formats
|
|
231
|
-
|
|
232
|
-
```json
|
|
233
|
-
// /api/public/faq.json (optional)
|
|
234
|
-
{
|
|
235
|
-
"faqs": [
|
|
236
|
-
{
|
|
237
|
-
"question": "What is X?",
|
|
238
|
-
"answer": "X is...",
|
|
239
|
-
"source": "https://example.com/docs",
|
|
240
|
-
"lastUpdated": "2024-01-01"
|
|
241
|
-
}
|
|
242
|
-
]
|
|
243
|
-
}
|
|
244
|
-
```
|
|
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
|
|
@@ -4,16 +4,16 @@ description: "Tool failure fallback strategies with circuit breaker. Auto-activa
|
|
|
4
4
|
triggers: [API error, search failure, timeout, 429, 5xx, overloaded, fallback, circuit breaker]
|
|
5
5
|
priority: 80
|
|
6
6
|
---
|
|
7
|
+
|
|
7
8
|
# Tool Fallback Strategies
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
## Pre-check (K1)
|
|
10
11
|
|
|
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).
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
## Circuit Breaker State Machine
|
|
14
15
|
|
|
15
16
|
```
|
|
16
|
-
Tool State Machine:
|
|
17
17
|
┌─────────┐ 3 failures ┌─────────┐ 30s cooldown ┌─────────────┐
|
|
18
18
|
│ CLOSED │ ─────────────→ │ OPEN │ ───────────────→ │ HALF-OPEN │
|
|
19
19
|
│ (normal)│ │ (block) │ │ (test 1 req)│
|
|
@@ -25,169 +25,79 @@ Tool State Machine:
|
|
|
25
25
|
|
|
26
26
|
| State | Behavior |
|
|
27
27
|
|-------|----------|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
28
|
+
| CLOSED | Normal operation, count failures |
|
|
29
|
+
| OPEN | Skip tool immediately, use alternative |
|
|
30
|
+
| HALF-OPEN | Allow 1 test request after cooldown |
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
GPT hook: failures=2, state=CLOSED
|
|
35
|
-
Gemini hook: failures=0, state=CLOSED
|
|
36
|
-
WebSearch: failures=3, state=OPEN (blocked until 14:32:00)
|
|
37
|
-
context7: failures=1, state=CLOSED
|
|
38
|
-
```
|
|
32
|
+
## Decision Trees
|
|
39
33
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
| Alternative | Method |
|
|
43
|
-
|-------------|--------|
|
|
44
|
-
| context7 plugin | `resolve-library-id` → `get-library-docs` |
|
|
45
|
-
| VibeOrchestrator | `smartWebSearch()` - auto fallback chain |
|
|
46
|
-
| Cached knowledge | Use Claude's built-in knowledge |
|
|
34
|
+
### Web Search Fails
|
|
47
35
|
|
|
48
36
|
```
|
|
49
37
|
Web Search fails (429, 529, timeout)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
↓
|
|
55
|
-
If CLOSED → Try context7 for library docs
|
|
56
|
-
↓
|
|
57
|
-
If still fails: VibeOrchestrator.smartWebSearch()
|
|
58
|
-
↓
|
|
59
|
-
Last resort: Claude's built-in knowledge
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## API Error Responses
|
|
63
|
-
|
|
64
|
-
| Error | Cause | Response | Circuit Breaker |
|
|
65
|
-
|-------|-------|----------|-----------------|
|
|
66
|
-
| 429 | Rate Limit | Exponential backoff | +1 failure count |
|
|
67
|
-
| 5xx | Server Error | Switch to alternative | +1 failure count |
|
|
68
|
-
| 529 | Overloaded | Wait and retry | +1 failure count |
|
|
69
|
-
| Timeout | Network | Split request or retry | +1 failure count |
|
|
70
|
-
| 401/403 | Auth Error | Re-auth or alternative | Don't count (auth issue) |
|
|
71
|
-
|
|
72
|
-
## When File/Code Not Found
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
Glob fails
|
|
76
|
-
↓
|
|
77
|
-
Expand pattern: *.ts → **/*.ts → **/*
|
|
78
|
-
↓
|
|
79
|
-
Use Grep for content-based search
|
|
80
|
-
↓
|
|
81
|
-
Check git log for history
|
|
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)
|
|
82
42
|
```
|
|
83
43
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
**Production (VibeOrchestrator):**
|
|
44
|
+
### External LLM Fails
|
|
87
45
|
|
|
88
46
|
```
|
|
89
47
|
VibeOrchestrator.smartRoute({ type, prompt })
|
|
90
|
-
|
|
91
|
-
LLM
|
|
92
|
-
|
|
93
|
-
- uiux/code-analysis: Gemini → GPT → Claude
|
|
94
|
-
- code-gen: Claude only
|
|
95
|
-
↓
|
|
96
|
-
Auto fallback on primary LLM failure
|
|
97
|
-
↓
|
|
98
|
-
Claude handles directly when all fail
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Test/Debug Hooks (development only):**
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
gpt- or gpt. [question] fails
|
|
105
|
-
↓
|
|
106
|
-
Check circuit: If OPEN, skip to next
|
|
107
|
-
↓
|
|
108
|
-
Try gemini- or gemini. [question] (similar capability)
|
|
109
|
-
↓
|
|
110
|
-
Try context7 (for docs)
|
|
111
|
-
↓
|
|
112
|
-
Claude solves alone
|
|
48
|
+
→ Primary LLM fails (429, 401, 5xx)
|
|
49
|
+
→ Skip to secondary LLM (no retry on rate limit)
|
|
50
|
+
→ Secondary fails → Claude handles directly
|
|
113
51
|
```
|
|
114
52
|
|
|
115
|
-
|
|
116
|
-
> For actual work, use VIBE commands (`/vibe.run`, `/vibe.spec`, etc.) and
|
|
117
|
-
> VibeOrchestrator will automatically select the appropriate LLM.
|
|
118
|
-
|
|
119
|
-
## Retry Strategy with Circuit Breaker
|
|
53
|
+
### File/Code Not Found
|
|
120
54
|
|
|
121
55
|
```
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
Check
|
|
125
|
-
↓
|
|
126
|
-
┌─ OPEN? ──→ Use alternative immediately (no retry)
|
|
127
|
-
│
|
|
128
|
-
└─ CLOSED/HALF-OPEN? ──→ Try request
|
|
129
|
-
↓
|
|
130
|
-
Success? ──→ Reset failure count
|
|
131
|
-
↓ No
|
|
132
|
-
Retry with backoff:
|
|
133
|
-
retry(1): wait 2s
|
|
134
|
-
retry(2): wait 4s
|
|
135
|
-
retry(3): wait 8s
|
|
136
|
-
↓
|
|
137
|
-
All failed? ──→ +1 failure, check threshold
|
|
138
|
-
↓
|
|
139
|
-
failures >= 3? ──→ OPEN circuit for 30s
|
|
140
|
-
↓
|
|
141
|
-
Use alternative
|
|
56
|
+
Glob fails → Expand pattern: *.ts → **/*.ts → **/*
|
|
57
|
+
→ Use Grep for content-based search
|
|
58
|
+
→ Check git log for file history
|
|
142
59
|
```
|
|
143
60
|
|
|
144
|
-
##
|
|
145
|
-
|
|
146
|
-
VIBE commands (`/vibe.spec`, `/vibe.run`, etc.) use VibeOrchestrator internally.
|
|
147
|
-
|
|
148
|
-
### LLM Priority by Task Type
|
|
61
|
+
## Error Response Actions
|
|
149
62
|
|
|
150
|
-
|
|
|
151
|
-
|
|
152
|
-
|
|
|
153
|
-
|
|
|
154
|
-
|
|
|
155
|
-
|
|
|
156
|
-
|
|
|
157
|
-
| `code-gen` | Claude | - | - |
|
|
158
|
-
| `general` | Claude | - | - |
|
|
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 |
|
|
159
70
|
|
|
160
|
-
|
|
71
|
+
## Retry Strategy
|
|
161
72
|
|
|
162
73
|
```
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
3
|
|
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
|
|
170
82
|
```
|
|
171
83
|
|
|
172
|
-
|
|
84
|
+
## LLM Priority by Task Type
|
|
173
85
|
|
|
174
|
-
|
|
|
175
|
-
|
|
176
|
-
|
|
|
177
|
-
|
|
|
178
|
-
|
|
|
179
|
-
| 5xx Server Error | Retry then switch |
|
|
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 |
|
|
180
91
|
|
|
181
|
-
|
|
92
|
+
## Principles
|
|
182
93
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
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
|
|
186
98
|
|
|
187
|
-
##
|
|
99
|
+
## Done Criteria (K4)
|
|
188
100
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
4. **Auto-recover** - Test after 30s cooldown
|
|
193
|
-
5. **Fail fast** - Skip blocked tools immediately
|
|
101
|
+
- [ ] Work continued despite tool failure
|
|
102
|
+
- [ ] Alternative tool/method used successfully
|
|
103
|
+
- [ ] No unnecessary retries on rate-limited tools
|