@su-record/vibe 2.6.26 → 2.6.28
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/CLAUDE.md +202 -153
- package/LICENSE +21 -21
- package/README.md +267 -236
- 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 +266 -266
- 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/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-previewer.md +268 -268
- package/commands/vibe.analyze.md +356 -356
- package/commands/vibe.reason.md +329 -329
- package/commands/vibe.review.md +423 -423
- package/commands/vibe.run.md +1313 -1313
- package/commands/vibe.spec.md +1054 -1054
- package/commands/vibe.spec.review.md +412 -412
- package/commands/vibe.trace.md +161 -161
- package/commands/vibe.utils.md +376 -376
- package/commands/vibe.verify.md +375 -375
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/detect.js +32 -32
- package/dist/cli/hud.js +20 -20
- package/dist/cli/index.js +112 -112
- package/dist/cli/llm.js +144 -144
- package/dist/cli/mcp.d.ts +49 -0
- package/dist/cli/mcp.d.ts.map +1 -0
- package/dist/cli/mcp.js +169 -0
- package/dist/cli/mcp.js.map +1 -0
- package/dist/cli/postinstall.d.ts.map +1 -1
- package/dist/cli/postinstall.js +886 -858
- package/dist/cli/postinstall.js.map +1 -1
- package/dist/cli/setup/GlobalInstaller.d.ts +6 -0
- package/dist/cli/setup/GlobalInstaller.d.ts.map +1 -1
- package/dist/cli/setup/GlobalInstaller.js +26 -0
- package/dist/cli/setup/GlobalInstaller.js.map +1 -1
- package/dist/lib/DeepInit.js +24 -24
- package/dist/lib/IterationTracker.js +11 -11
- package/dist/lib/MemoryManager.d.ts +30 -0
- package/dist/lib/MemoryManager.d.ts.map +1 -1
- package/dist/lib/MemoryManager.js +74 -0
- package/dist/lib/MemoryManager.js.map +1 -1
- package/dist/lib/PythonParser.js +108 -108
- package/dist/lib/ReviewRace.js +96 -96
- package/dist/lib/SkillFrontmatter.js +28 -28
- package/dist/lib/SkillQualityGate.js +9 -9
- package/dist/lib/SkillRepository.js +159 -159
- package/dist/lib/UltraQA.js +77 -77
- package/dist/lib/gemini-api.js +5 -5
- package/dist/lib/gemini-mcp.d.ts +10 -0
- package/dist/lib/gemini-mcp.d.ts.map +1 -0
- package/dist/lib/gemini-mcp.js +353 -0
- package/dist/lib/gemini-mcp.js.map +1 -0
- package/dist/lib/gpt-api.js +4 -4
- package/dist/lib/gpt-mcp.d.ts +10 -0
- package/dist/lib/gpt-mcp.d.ts.map +1 -0
- package/dist/lib/gpt-mcp.js +352 -0
- package/dist/lib/gpt-mcp.js.map +1 -0
- package/dist/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/lib/memory/MemorySearch.js +43 -43
- package/dist/lib/memory/MemoryStorage.js +130 -130
- package/dist/lib/memory/ObservationStore.js +28 -28
- package/dist/lib/memory/SessionRAGRetriever.d.ts +66 -0
- package/dist/lib/memory/SessionRAGRetriever.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGRetriever.js +196 -0
- package/dist/lib/memory/SessionRAGRetriever.js.map +1 -0
- package/dist/lib/memory/SessionRAGRetriever.test.d.ts +2 -0
- package/dist/lib/memory/SessionRAGRetriever.test.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGRetriever.test.js +180 -0
- package/dist/lib/memory/SessionRAGRetriever.test.js.map +1 -0
- package/dist/lib/memory/SessionRAGStore.d.ts +153 -0
- package/dist/lib/memory/SessionRAGStore.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGStore.js +673 -0
- package/dist/lib/memory/SessionRAGStore.js.map +1 -0
- package/dist/lib/memory/SessionRAGStore.test.d.ts +2 -0
- package/dist/lib/memory/SessionRAGStore.test.d.ts.map +1 -0
- package/dist/lib/memory/SessionRAGStore.test.js +326 -0
- package/dist/lib/memory/SessionRAGStore.test.js.map +1 -0
- package/dist/lib/memory/SessionSummarizer.js +9 -9
- package/dist/orchestrator/AgentManager.js +12 -12
- package/dist/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/orchestrator/SmartRouter.js +11 -11
- package/dist/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/analytics/getUsageAnalytics.d.ts +10 -0
- package/dist/tools/analytics/getUsageAnalytics.d.ts.map +1 -0
- package/dist/tools/analytics/getUsageAnalytics.js +246 -0
- package/dist/tools/analytics/getUsageAnalytics.js.map +1 -0
- package/dist/tools/analytics/index.d.ts +5 -0
- package/dist/tools/analytics/index.d.ts.map +1 -0
- package/dist/tools/analytics/index.js +5 -0
- package/dist/tools/analytics/index.js.map +1 -0
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/getCodingGuide.d.ts +7 -0
- package/dist/tools/convention/getCodingGuide.d.ts.map +1 -0
- package/dist/tools/convention/getCodingGuide.js +69 -0
- package/dist/tools/convention/getCodingGuide.js.map +1 -0
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory/index.d.ts +3 -0
- package/dist/tools/memory/index.d.ts.map +1 -1
- package/dist/tools/memory/index.js +4 -0
- package/dist/tools/memory/index.js.map +1 -1
- package/dist/tools/memory/manageGoals.d.ts +11 -0
- package/dist/tools/memory/manageGoals.d.ts.map +1 -0
- package/dist/tools/memory/manageGoals.js +152 -0
- package/dist/tools/memory/manageGoals.js.map +1 -0
- package/dist/tools/memory/retrieveSessionContext.d.ts +9 -0
- package/dist/tools/memory/retrieveSessionContext.d.ts.map +1 -0
- package/dist/tools/memory/retrieveSessionContext.js +140 -0
- package/dist/tools/memory/retrieveSessionContext.js.map +1 -0
- package/dist/tools/memory/saveSessionItem.d.ts +26 -0
- package/dist/tools/memory/saveSessionItem.d.ts.map +1 -0
- package/dist/tools/memory/saveSessionItem.js +218 -0
- package/dist/tools/memory/saveSessionItem.js.map +1 -0
- package/dist/tools/memory/startSession.d.ts.map +1 -1
- package/dist/tools/memory/startSession.js +29 -0
- package/dist/tools/memory/startSession.js.map +1 -1
- package/dist/tools/planning/analyzeRequirements.d.ts +9 -0
- package/dist/tools/planning/analyzeRequirements.d.ts.map +1 -0
- package/dist/tools/planning/analyzeRequirements.js +171 -0
- package/dist/tools/planning/analyzeRequirements.js.map +1 -0
- package/dist/tools/planning/createUserStories.d.ts +9 -0
- package/dist/tools/planning/createUserStories.d.ts.map +1 -0
- package/dist/tools/planning/createUserStories.js +124 -0
- package/dist/tools/planning/createUserStories.js.map +1 -0
- package/dist/tools/planning/featureRoadmap.d.ts +10 -0
- package/dist/tools/planning/featureRoadmap.d.ts.map +1 -0
- package/dist/tools/planning/featureRoadmap.js +207 -0
- package/dist/tools/planning/featureRoadmap.js.map +1 -0
- package/dist/tools/planning/generatePrd.d.ts +11 -0
- package/dist/tools/planning/generatePrd.d.ts.map +1 -0
- package/dist/tools/planning/generatePrd.js +161 -0
- package/dist/tools/planning/generatePrd.js.map +1 -0
- package/dist/tools/planning/index.d.ts +8 -0
- package/dist/tools/planning/index.d.ts.map +1 -0
- package/dist/tools/planning/index.js +8 -0
- package/dist/tools/planning/index.js.map +1 -0
- package/dist/tools/prompt/analyzePrompt.d.ts +7 -0
- package/dist/tools/prompt/analyzePrompt.d.ts.map +1 -0
- package/dist/tools/prompt/analyzePrompt.js +150 -0
- package/dist/tools/prompt/analyzePrompt.js.map +1 -0
- package/dist/tools/prompt/enhancePrompt.d.ts +8 -0
- package/dist/tools/prompt/enhancePrompt.d.ts.map +1 -0
- package/dist/tools/prompt/enhancePrompt.js +110 -0
- package/dist/tools/prompt/enhancePrompt.js.map +1 -0
- package/dist/tools/prompt/enhancePromptGemini.d.ts +8 -0
- package/dist/tools/prompt/enhancePromptGemini.d.ts.map +1 -0
- package/dist/tools/prompt/enhancePromptGemini.js +332 -0
- package/dist/tools/prompt/enhancePromptGemini.js.map +1 -0
- package/dist/tools/prompt/index.d.ts +7 -0
- package/dist/tools/prompt/index.d.ts.map +1 -0
- package/dist/tools/prompt/index.js +7 -0
- package/dist/tools/prompt/index.js.map +1 -0
- package/dist/tools/reasoning/applyReasoningFramework.d.ts +8 -0
- package/dist/tools/reasoning/applyReasoningFramework.d.ts.map +1 -0
- package/dist/tools/reasoning/applyReasoningFramework.js +266 -0
- package/dist/tools/reasoning/applyReasoningFramework.js.map +1 -0
- package/dist/tools/reasoning/index.d.ts +5 -0
- package/dist/tools/reasoning/index.d.ts.map +1 -0
- package/dist/tools/reasoning/index.js +5 -0
- package/dist/tools/reasoning/index.js.map +1 -0
- 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/dist/tools/thinking/analyzeProblem.d.ts +7 -0
- package/dist/tools/thinking/analyzeProblem.d.ts.map +1 -0
- package/dist/tools/thinking/analyzeProblem.js +55 -0
- package/dist/tools/thinking/analyzeProblem.js.map +1 -0
- package/dist/tools/thinking/breakDownProblem.d.ts +8 -0
- package/dist/tools/thinking/breakDownProblem.d.ts.map +1 -0
- package/dist/tools/thinking/breakDownProblem.js +145 -0
- package/dist/tools/thinking/breakDownProblem.js.map +1 -0
- package/dist/tools/thinking/createThinkingChain.d.ts +7 -0
- package/dist/tools/thinking/createThinkingChain.d.ts.map +1 -0
- package/dist/tools/thinking/createThinkingChain.js +44 -0
- package/dist/tools/thinking/createThinkingChain.js.map +1 -0
- package/dist/tools/thinking/formatAsPlan.d.ts +9 -0
- package/dist/tools/thinking/formatAsPlan.d.ts.map +1 -0
- package/dist/tools/thinking/formatAsPlan.js +78 -0
- package/dist/tools/thinking/formatAsPlan.js.map +1 -0
- package/dist/tools/thinking/index.d.ts +10 -0
- package/dist/tools/thinking/index.d.ts.map +1 -0
- package/dist/tools/thinking/index.js +10 -0
- package/dist/tools/thinking/index.js.map +1 -0
- package/dist/tools/thinking/stepByStepAnalysis.d.ts +8 -0
- package/dist/tools/thinking/stepByStepAnalysis.d.ts.map +1 -0
- package/dist/tools/thinking/stepByStepAnalysis.js +63 -0
- package/dist/tools/thinking/stepByStepAnalysis.js.map +1 -0
- package/dist/tools/thinking/thinkAloudProcess.d.ts +8 -0
- package/dist/tools/thinking/thinkAloudProcess.d.ts.map +1 -0
- package/dist/tools/thinking/thinkAloudProcess.js +80 -0
- package/dist/tools/thinking/thinkAloudProcess.js.map +1 -0
- package/hooks/hooks.json +115 -115
- package/hooks/scripts/code-check.js +70 -70
- package/hooks/scripts/code-review.js +22 -22
- package/hooks/scripts/complexity.js +22 -22
- package/hooks/scripts/compound.js +23 -23
- package/hooks/scripts/context-save.js +53 -53
- package/hooks/scripts/gemini-ui-gen.js +281 -281
- package/hooks/scripts/generate-brand-assets.js +474 -474
- package/hooks/scripts/hud-multiline.js +262 -262
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +171 -171
- package/hooks/scripts/post-edit.js +97 -97
- package/hooks/scripts/post-tool-verify.js +210 -210
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +161 -161
- package/hooks/scripts/recall.js +22 -22
- package/hooks/scripts/session-start.js +30 -30
- package/hooks/scripts/skill-injector.js +191 -191
- package/hooks/scripts/utils.js +97 -97
- 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 +84 -84
- package/skills/brand-assets.md +141 -141
- package/skills/commerce-patterns.md +361 -361
- package/skills/context7-usage.md +102 -102
- package/skills/e2e-commerce.md +304 -304
- package/skills/frontend-design.md +92 -92
- package/skills/git-worktree.md +181 -181
- package/skills/parallel-research.md +77 -77
- package/skills/priority-todos.md +239 -239
- package/skills/seo-checklist.md +244 -244
- package/skills/tool-fallback.md +190 -190
- package/skills/vibe-capabilities.md +161 -161
- package/vibe/constitution.md +227 -227
- package/vibe/rules/core/communication-guide.md +98 -98
- package/vibe/rules/core/development-philosophy.md +52 -52
- package/vibe/rules/core/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/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/naming-conventions.md +198 -198
- 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/skills/seo-checklist.md
CHANGED
|
@@ -1,244 +1,244 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seo-checklist
|
|
3
|
-
description: "SEO/GEO checklist for web development - meta tags, structured data, Core Web Vitals"
|
|
4
|
-
triggers: [seo, search, meta, sitemap, schema, structured data, og, opengraph, google, naver]
|
|
5
|
-
priority: 65
|
|
6
|
-
---
|
|
7
|
-
# SEO Checklist Skill
|
|
8
|
-
|
|
9
|
-
Development output SEO quality checklist for web projects.
|
|
10
|
-
|
|
11
|
-
## When to Use
|
|
12
|
-
|
|
13
|
-
- Web application development with `/vibe.run`
|
|
14
|
-
- Landing pages and marketing sites
|
|
15
|
-
- E-commerce product pages
|
|
16
|
-
- Content-heavy applications
|
|
17
|
-
|
|
18
|
-
## Essential SEO Elements
|
|
19
|
-
|
|
20
|
-
### 1. Meta Tags (Required)
|
|
21
|
-
|
|
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">
|
|
28
|
-
|
|
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">
|
|
35
|
-
|
|
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
|
-
```
|
|
42
|
-
|
|
43
|
-
### 2. Structured Data (Schema.org)
|
|
44
|
-
|
|
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
|
-
```
|
|
56
|
-
|
|
57
|
-
#### Common Schema Types
|
|
58
|
-
|
|
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 |
|
|
67
|
-
|
|
68
|
-
### 3. Technical SEO Files
|
|
69
|
-
|
|
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
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: seo-checklist
|
|
3
|
+
description: "SEO/GEO checklist for web development - meta tags, structured data, Core Web Vitals"
|
|
4
|
+
triggers: [seo, search, meta, sitemap, schema, structured data, og, opengraph, google, naver]
|
|
5
|
+
priority: 65
|
|
6
|
+
---
|
|
7
|
+
# SEO Checklist Skill
|
|
8
|
+
|
|
9
|
+
Development output SEO quality checklist for web projects.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- Web application development with `/vibe.run`
|
|
14
|
+
- Landing pages and marketing sites
|
|
15
|
+
- E-commerce product pages
|
|
16
|
+
- Content-heavy applications
|
|
17
|
+
|
|
18
|
+
## Essential SEO Elements
|
|
19
|
+
|
|
20
|
+
### 1. Meta Tags (Required)
|
|
21
|
+
|
|
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">
|
|
28
|
+
|
|
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">
|
|
35
|
+
|
|
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
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. Structured Data (Schema.org)
|
|
44
|
+
|
|
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
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Common Schema Types
|
|
58
|
+
|
|
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 |
|
|
67
|
+
|
|
68
|
+
### 3. Technical SEO Files
|
|
69
|
+
|
|
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
|
+
```
|