@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.
Files changed (69) hide show
  1. package/dist/cli/commands/init.d.ts +10 -0
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +78 -2
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/commands/update.d.ts.map +1 -1
  6. package/dist/cli/commands/update.js +17 -2
  7. package/dist/cli/commands/update.js.map +1 -1
  8. package/dist/cli/postinstall/codex-agents.d.ts +12 -0
  9. package/dist/cli/postinstall/codex-agents.d.ts.map +1 -0
  10. package/dist/cli/postinstall/codex-agents.js +51 -0
  11. package/dist/cli/postinstall/codex-agents.js.map +1 -0
  12. package/dist/cli/postinstall/codex-instruction.d.ts +10 -0
  13. package/dist/cli/postinstall/codex-instruction.d.ts.map +1 -0
  14. package/dist/cli/postinstall/codex-instruction.js +56 -0
  15. package/dist/cli/postinstall/codex-instruction.js.map +1 -0
  16. package/dist/cli/postinstall/constants.d.ts.map +1 -1
  17. package/dist/cli/postinstall/constants.js +1 -0
  18. package/dist/cli/postinstall/constants.js.map +1 -1
  19. package/dist/cli/postinstall/gemini-agents.d.ts +12 -0
  20. package/dist/cli/postinstall/gemini-agents.d.ts.map +1 -0
  21. package/dist/cli/postinstall/gemini-agents.js +80 -0
  22. package/dist/cli/postinstall/gemini-agents.js.map +1 -0
  23. package/dist/cli/postinstall/gemini-instruction.d.ts +10 -0
  24. package/dist/cli/postinstall/gemini-instruction.d.ts.map +1 -0
  25. package/dist/cli/postinstall/gemini-instruction.js +59 -0
  26. package/dist/cli/postinstall/gemini-instruction.js.map +1 -0
  27. package/dist/cli/postinstall/index.d.ts +4 -0
  28. package/dist/cli/postinstall/index.d.ts.map +1 -1
  29. package/dist/cli/postinstall/index.js +4 -0
  30. package/dist/cli/postinstall/index.js.map +1 -1
  31. package/dist/cli/postinstall/main.d.ts.map +1 -1
  32. package/dist/cli/postinstall/main.js +34 -1
  33. package/dist/cli/postinstall/main.js.map +1 -1
  34. package/dist/cli/postinstall.d.ts +1 -1
  35. package/dist/cli/postinstall.d.ts.map +1 -1
  36. package/dist/cli/postinstall.js +1 -1
  37. package/dist/cli/postinstall.js.map +1 -1
  38. package/dist/cli/setup/ProjectSetup.d.ts +15 -0
  39. package/dist/cli/setup/ProjectSetup.d.ts.map +1 -1
  40. package/dist/cli/setup/ProjectSetup.js +159 -0
  41. package/dist/cli/setup/ProjectSetup.js.map +1 -1
  42. package/dist/cli/setup.d.ts +1 -1
  43. package/dist/cli/setup.d.ts.map +1 -1
  44. package/dist/cli/setup.js +1 -1
  45. package/dist/cli/setup.js.map +1 -1
  46. package/dist/cli/utils/cli-detector.d.ts +25 -0
  47. package/dist/cli/utils/cli-detector.d.ts.map +1 -0
  48. package/dist/cli/utils/cli-detector.js +55 -0
  49. package/dist/cli/utils/cli-detector.js.map +1 -0
  50. package/hooks/gemini-hooks.json +73 -0
  51. package/package.json +1 -1
  52. package/skills/agents-md/SKILL.md +120 -0
  53. package/skills/brand-assets/SKILL.md +8 -0
  54. package/skills/characterization-test/SKILL.md +4 -0
  55. package/skills/commerce-patterns/SKILL.md +36 -338
  56. package/skills/commit-push-pr/SKILL.md +21 -64
  57. package/skills/core-capabilities/SKILL.md +26 -142
  58. package/skills/e2e-commerce/SKILL.md +37 -284
  59. package/skills/frontend-design/SKILL.md +12 -31
  60. package/skills/git-worktree/SKILL.md +34 -146
  61. package/skills/handoff/SKILL.md +8 -0
  62. package/skills/parallel-research/SKILL.md +7 -0
  63. package/skills/priority-todos/SKILL.md +34 -213
  64. package/skills/seo-checklist/SKILL.md +38 -225
  65. package/skills/tool-fallback/SKILL.md +53 -143
  66. package/skills/typescript-advanced-types/SKILL.md +30 -685
  67. package/skills/ui-ux-pro-max/SKILL.md +40 -220
  68. package/skills/vercel-react-best-practices/SKILL.md +38 -283
  69. package/skills/video-production/SKILL.md +35 -206
@@ -1,244 +1,57 @@
1
1
  ---
2
2
  name: seo-checklist
3
- description: "SEO/GEO checklist for web development - meta tags, structured data, Core Web Vitals"
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
- Development output SEO quality checklist for web projects.
8
+ # SEO Checklist
10
9
 
11
- ## When to Use
10
+ ## Pre-check (K1)
12
11
 
13
- - Web application development with `/vibe.run`
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
- ## Essential SEO Elements
14
+ ## Easy-to-Miss Gotchas
19
15
 
20
- ### 1. Meta Tags (Required)
16
+ ### Meta & Social
21
17
 
22
- ```html
23
- <!-- Basic -->
24
- <title>Page Title - Brand (50-60 chars)</title>
25
- <meta name="description" content="Compelling description (150-160 chars)">
26
- <meta name="viewport" content="width=device-width, initial-scale=1">
27
- <link rel="canonical" href="https://example.com/page">
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
- <!-- Open Graph -->
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
- <!-- Twitter -->
37
- <meta name="twitter:card" content="summary_large_image">
38
- <meta name="twitter:title" content="Title">
39
- <meta name="twitter:description" content="Description">
40
- <meta name="twitter:image" content="https://example.com/twitter-image.png">
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
- ### 2. Structured Data (Schema.org)
34
+ ### Core Web Vitals
44
35
 
45
- ```html
46
- <script type="application/ld+json">
47
- {
48
- "@context": "https://schema.org",
49
- "@type": "WebPage",
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
- #### Common Schema Types
42
+ ### Structured Data
58
43
 
59
- | Type | Use Case |
60
- |------|----------|
61
- | `Organization` | Company/brand pages |
62
- | `Product` | E-commerce product pages |
63
- | `Article` | Blog posts, news |
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
- ### 3. Technical SEO Files
50
+ ## Done Criteria (K4)
69
51
 
70
- #### robots.txt
71
- ```
72
- User-agent: *
73
- Allow: /
74
- Disallow: /api/
75
- Disallow: /admin/
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
- Guide for finding alternatives when tools fail to continue work.
10
+ ## Pre-check (K1)
10
11
 
11
- ## Circuit Breaker Pattern
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
- Track tool failures and temporarily disable unreliable tools:
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
- | **CLOSED** | Normal operation, count failures |
29
- | **OPEN** | Block all requests, use alternative immediately |
30
- | **HALF-OPEN** | Allow 1 test request after cooldown |
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
- **Per-tool tracking:**
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
- ## When Web Search Fails
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
- Check circuit breaker state
52
-
53
- If OPENSkip to alternative immediately
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
- ## When External LLM Fails
85
-
86
- **Production (VibeOrchestrator):**
44
+ ### External LLM Fails
87
45
 
88
46
  ```
89
47
  VibeOrchestrator.smartRoute({ type, prompt })
90
-
91
- LLM priority based on task type:
92
- - architecture/debugging: GPTGemini Claude
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 failsClaude handles directly
113
51
  ```
114
52
 
115
- > **Note:** `test-gpt`, `test-gemini` prefixes are for hook connectivity testing only.
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
- Request to tool
123
-
124
- Check circuit state
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
- ## VibeOrchestrator Smart Routing
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
- | Task Type | Primary | Secondary | Fallback |
151
- |-----------------|---------|-----------|----------|
152
- | `architecture` | GPT | Gemini | Claude |
153
- | `debugging` | GPT | Gemini | Claude |
154
- | `uiux` | Gemini | GPT | Claude |
155
- | `code-analysis` | Gemini | GPT | Claude |
156
- | `web-search` | GPT | Gemini | Claude |
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
- ### Auto Fallback Logic
71
+ ## Retry Strategy
161
72
 
162
73
  ```
163
- smartRoute({ type: 'architecture', prompt })
164
-
165
- 1. Try GPT (max 2 retries)
166
- fails (429, 401, 5xx)
167
- 2. Try Gemini (max 2 retries)
168
- fails
169
- 3. Claude handles directly (fallback message)
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
- ### Retry vs Immediate Switch
84
+ ## LLM Priority by Task Type
173
85
 
174
- | Error | Action |
175
- |------------------|------------------------|
176
- | 429 Rate Limit | Skip to next LLM |
177
- | 401/403 Auth | Skip to next LLM |
178
- | Network Error | Retry with backoff |
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
- ### Availability Cache
92
+ ## Principles
182
93
 
183
- - 5-minute TTL for LLM status cache
184
- - Auto-disable after 3 consecutive failures
185
- - Failed LLMs are skipped in subsequent requests
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
- ## Principles
99
+ ## Done Criteria (K4)
188
100
 
189
- 1. **Never stop** - Always find an alternative
190
- 2. **Before asking user** - Try alternatives first
191
- 3. **Track failures** - Open circuit after 3 consecutive failures
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