@houseofmvps/claude-rank 1.0.0

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.
@@ -0,0 +1,170 @@
1
+ # Schema Catalog — 25 Critical Schema Types (2026)
2
+
3
+ *All schemas use JSON-LD format. Fields marked REQUIRED are critical for validation; RECOMMENDED for AI visibility.*
4
+
5
+ ## Content & Publishing
6
+
7
+ ### 1. Article / BlogPosting / NewsArticle
8
+ **Use**: Blog posts, news, long-form content
9
+ - REQUIRED: headline, image, datePublished, author
10
+ - RECOMMENDED: dateModified, articleBody, wordCount, articleSection
11
+
12
+ ### 2. NewsArticle
13
+ **Use**: Breaking news, journalism
14
+ - REQUIRED: headline, datePublished, author, body
15
+ - RECOMMENDED: dateline, printSection, printEdition
16
+
17
+ ### 3. ScholarlyArticle
18
+ **Use**: Research papers, academic content
19
+ - REQUIRED: headline, author, datePublished
20
+ - RECOMMENDED: abstract, author.affiliation, citation
21
+
22
+ ### 4. BreadcrumbList
23
+ **Use**: Navigation hierarchy on all pages
24
+ - REQUIRED: itemListElement[].name, itemListElement[].item
25
+ - RECOMMENDED: position
26
+
27
+ ### 5. FAQPage
28
+ **Use**: FAQ sections, Q&A content
29
+ - REQUIRED: mainEntity[].question, mainEntity[].acceptedAnswer.text
30
+ - RECOMMENDED: acceptedAnswer.url
31
+
32
+ ## E-Commerce & Products
33
+
34
+ ### 6. Product
35
+ **Use**: Product pages, catalog listings
36
+ - REQUIRED: name, image, description
37
+ - RECOMMENDED: offers, aggregateRating, brand
38
+
39
+ ### 7. Offer / AggregateOffer
40
+ **Use**: Pricing, availability, deals
41
+ - REQUIRED: price, priceCurrency, availability
42
+ - RECOMMENDED: url, priceValidUntil, seller
43
+
44
+ ### 8. AggregateRating
45
+ **Use**: User reviews, ratings
46
+ - REQUIRED: ratingValue, ratingCount
47
+ - RECOMMENDED: bestRating, worstRating, reviewCount
48
+
49
+ ### 9. Review / AggregateRating
50
+ **Use**: Customer reviews, testimonials
51
+ - REQUIRED: reviewRating.ratingValue, author, reviewBody
52
+ - RECOMMENDED: datePublished, reviewRating.ratingCount
53
+
54
+ ## Local & Events
55
+
56
+ ### 10. LocalBusiness
57
+ **Use**: Service businesses, locations
58
+ - REQUIRED: name, address, telephone
59
+ - RECOMMENDED: openingHours, geo, areaServed
60
+
61
+ ### 11. Organization
62
+ **Use**: Company info, brand identity
63
+ - REQUIRED: name, url, logo
64
+ - RECOMMENDED: sameAs (social links), contact, description
65
+
66
+ ### 12. Person
67
+ **Use**: Author bios, employee directories
68
+ - REQUIRED: name, image, url
69
+ - RECOMMENDED: jobTitle, affiliation, sameAs
70
+
71
+ ### 13. Event
72
+ **Use**: Webinars, conferences, workshops
73
+ - REQUIRED: name, startDate, location
74
+ - RECOMMENDED: description, offers, performer, endDate
75
+
76
+ ## Services & Expertise
77
+
78
+ ### 14. Service
79
+ **Use**: Service pages, skill listings
80
+ - REQUIRED: name, description, areaServed
81
+ - RECOMMENDED: provider, offers, serviceType
82
+
83
+ ### 15. ProfessionalService
84
+ **Use**: Consulting, legal, medical services
85
+ - REQUIRED: name, image, areaServed
86
+ - RECOMMENDED: hasCredential, makesOffer, serviceArea
87
+
88
+ ### 16. MedicalBusiness
89
+ **Use**: Health, fitness, wellness
90
+ - REQUIRED: name, address, medicalSpecialty
91
+ - RECOMMENDED: hasCredential, knowsLanguage
92
+
93
+ ## Knowledge & How-To
94
+
95
+ ### 17. HowTo
96
+ **Use**: Step-by-step guides, tutorials, recipes
97
+ - REQUIRED: name, step[].name, step[].text
98
+ - RECOMMENDED: image, estimatedCost, totalTime
99
+
100
+ ### 18. HowToStep
101
+ **Use**: Individual steps in guides
102
+ - REQUIRED: name, text
103
+ - RECOMMENDED: image, url
104
+
105
+ ### 19. WebContent
106
+ **Use**: Generic web pages, landing pages
107
+ - REQUIRED: name, headline
108
+ - RECOMMENDED: datePublished, author, image
109
+
110
+ ## Media & Creative
111
+
112
+ ### 20. ImageObject
113
+ **Use**: Standalone images, galleries
114
+ - REQUIRED: url, name
115
+ - RECOMMENDED: caption, creditText, contentLocation
116
+
117
+ ### 21. VideoObject
118
+ **Use**: Embedded videos, tutorials
119
+ - REQUIRED: name, description, thumbnailUrl, uploadDate
120
+ - RECOMMENDED: contentUrl, duration, transcript
121
+
122
+ ### 22. Podcast / PodcastEpisode
123
+ **Use**: Audio content, podcasts
124
+ - REQUIRED: name, description, url
125
+ - RECOMMENDED: author, datePublished, audio
126
+
127
+ ## Navigation & Lists
128
+
129
+ ### 23. ItemList / CollectionPage
130
+ **Use**: Category pages, archives, collections
131
+ - REQUIRED: itemListElement[].name
132
+ - RECOMMENDED: itemListElement[].position, itemListElement[].url
133
+
134
+ ### 24. SearchAction
135
+ **Use**: Site search integration
136
+ - REQUIRED: target (with {search_term_string})
137
+ - RECOMMENDED: query-input
138
+
139
+ ## Q&A & Community
140
+
141
+ ### 25. Question / Answer
142
+ **Use**: Q&A sites, forums, knowledge bases
143
+ - REQUIRED: name (question text), acceptedAnswer
144
+ - RECOMMENDED: author, dateCreated, upvoteCount
145
+
146
+ ---
147
+
148
+ ## Quick Implementation Priority
149
+
150
+ **High Impact** (do first):
151
+ - Article / BlogPosting
152
+ - Product
153
+ - Organization
154
+ - LocalBusiness
155
+ - BreadcrumbList
156
+
157
+ **Medium Impact** (recommended):
158
+ - AggregateRating / Review
159
+ - HowTo
160
+ - Event
161
+ - FAQPage
162
+
163
+ **Niche/Conditional**:
164
+ - NewsArticle, ScholarlyArticle
165
+ - MedicalBusiness, ProfessionalService
166
+ - Podcast, VideoObject
167
+
168
+ ---
169
+
170
+ *Reference: schema.org, Google Search Central, Search Engine Journal*
@@ -0,0 +1,75 @@
1
+ # SEO Benchmarks 2026
2
+
3
+ ## Title & Meta Tags
4
+ - **Title length**: 50-60 characters (optimal CTR)
5
+ - **Meta description**: 140-160 characters (155 chars = full SERP width)
6
+ - **H1 per page**: 1 (critical for semantic clarity)
7
+ - **Focus keyword density**: 1-2% (natural language first)
8
+
9
+ ## Page Word Count by Type
10
+ - **Homepage**: 500+ words (authority signal)
11
+ - **Blog post**: 1500+ words (top-3 correlation)
12
+ - **Product page**: 300+ words (conversion intent)
13
+ - **Service page**: 800+ words (expertise depth)
14
+ - **Category page**: 1000+ words (topical authority)
15
+ - **Landing page**: 600+ words (engagement signal)
16
+
17
+ ## Core Web Vitals Targets (Ranking Factors)
18
+ - **LCP (Largest Contentful Paint)**: < 2.5 seconds (good)
19
+ - **INP (Interaction to Next Paint)**: < 200 milliseconds (good)
20
+ - **CLS (Cumulative Layout Shift)**: < 0.1 (good)
21
+ - Mobile TTL (Time To Interactive): < 4 seconds
22
+
23
+ ## SERP Click-Through Rate by Position
24
+ - **Position 1**: 39.8% average CTR
25
+ - **Position 2**: 18.7% average CTR
26
+ - **Position 3**: 10.2% average CTR
27
+ - **Position 4**: 6.1% average CTR
28
+ - **Position 10**: 1.9% average CTR
29
+ - **Title/description quality**: Can increase CTR 20-30% at same position
30
+
31
+ ## Featured Snippet Capture Rates
32
+ - **Listicle format (ordered/unordered)**: 52% capture rate
33
+ - **Paragraph format (40-60 words)**: 38% capture rate
34
+ - **Table format (structured data)**: 68% capture rate
35
+ - **Definition format (100-150 words)**: 44% capture rate
36
+ - **Step-by-step format (numbered)**: 61% capture rate
37
+ - **Optimal snippet length**: 40-60 words (40% of captures)
38
+
39
+ ## Backlinks & Authority
40
+ - **Domain authority vs ranking**: Correlation 0.38 (moderate)
41
+ - **Backlink quality > quantity**: 10 high-authority links > 100 low-authority
42
+ - **Link anchor text diversity**: 80% branded, 15% variations, 5% exact match
43
+ - **Topical relevance**: 3x more important than domain authority
44
+ - **Link velocity**: 3-5 new links/month for established sites
45
+
46
+ ## Page Performance Benchmarks
47
+ - **Median page load time**: 2.4 seconds (desktop), 5.9 seconds (mobile)
48
+ - **Images as % of page size**: 50-60% typical (optimize to < 40%)
49
+ - **JavaScript bundle size**: Target < 300KB (gzipped)
50
+ - **CSS bundle size**: Target < 50KB (gzipped)
51
+ - **First Input Delay**: < 100ms target (critical for UX)
52
+
53
+ ## Content Freshness
54
+ - **Optimal update frequency**: 30-90 days for top rankings
55
+ - **E-E-A-T signals**: Experience, Expertise, Authoritativeness, Trustworthiness
56
+ - **Author entity**: Name + topic authority + credentials
57
+ - **Publication date**: Display publicly (correlates with trust)
58
+
59
+ ## Indexability & Crawlability
60
+ - **Sitemaps**: < 50,000 URLs per sitemap.xml
61
+ - **Robots.txt**: Whitelist critical paths, crawl budget awareness
62
+ - **Internal linking**: 3-5 links per page minimum
63
+ - **Orphaned pages**: < 2% of total (discoverable from sitemap)
64
+ - **Redirect chains**: 0 (direct 301/302, max 1 hop)
65
+
66
+ ## Mobile-First Indexing
67
+ - **Mobile viewport**: Required (responsive or mobile-specific)
68
+ - **Mobile load time**: Critical (target < 3 seconds)
69
+ - **Touch targets**: 48x48 pixels minimum
70
+ - **Readability**: Font size 16px+, line spacing 1.5+
71
+ - **Mobile CTR boost**: Up to 25% higher for mobile-optimized sites
72
+
73
+ ---
74
+
75
+ *Data sources: Google Search Central, Ahrefs, SEMrush, Moz 2026 studies*
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: rank
3
+ description: "Main orchestrator for claude-rank SEO/GEO/AEO toolkit. Routes to specialized sub-skills."
4
+ ---
5
+
6
+ # Rank — SEO/GEO/AEO Toolkit
7
+
8
+ ## Routing
9
+
10
+ | Command | Skill | Description |
11
+ |---|---|---|
12
+ | `/rank` or `/rank status` | (inline) | Quick health check — show all scores |
13
+ | `/rank audit [dir]` | rank-audit | Full audit + auto-fix |
14
+ | `/rank geo [dir]` | rank-geo | AI search optimization |
15
+ | `/rank aeo [dir]` | rank-aeo | Answer engine optimization |
16
+ | `/rank fix [dir]` | rank-fix | Auto-fix all findings |
17
+ | `/rank schema [dir]` | rank-schema | Schema detect/validate/generate |
18
+ | `/rank technical [dir]` | rank-technical | Technical SEO (Phase 2) |
19
+ | `/rank content [dir]` | rank-content | E-E-A-T content analysis (Phase 2) |
20
+ | `/rank speed [dir]` | rank-speed | Core Web Vitals (Phase 2) |
21
+ | `/rank local [dir]` | rank-local | Local SEO (Phase 3) |
22
+ | `/rank images [dir]` | rank-images | Image optimization (Phase 3) |
23
+ | `/rank competitor [dir]` | rank-competitor | Competitive intelligence (Phase 4) |
24
+ | `/rank keywords [dir]` | rank-keywords | Keyword research (Phase 4) |
25
+ | `/rank report [dir]` | rank-report | Client report generation (Phase 5) |
26
+ | `/rank plan [type]` | rank-plan | Strategic SEO roadmap (Phase 5) |
27
+
28
+ ## Quick Health Check (bare /rank)
29
+
30
+ 1. Run available scanners in parallel:
31
+ - `node ${CLAUDE_PLUGIN_ROOT}/tools/seo-scanner.mjs <dir>`
32
+ - `node ${CLAUDE_PLUGIN_ROOT}/tools/geo-scanner.mjs <dir>`
33
+ - `node ${CLAUDE_PLUGIN_ROOT}/tools/aeo-scanner.mjs <dir>`
34
+ 2. Display scores table with grades (SEO, GEO, AEO; Technical and Content show "—" until Phase 2)
35
+ 3. **Overall Rank Score** = weighted average: SEO (40%), GEO (40%), AEO (20%)
36
+ 4. Show top 3 quick wins (highest-impact fixes)
37
+ 5. Show trend vs last scan (if history exists)
38
+
39
+ **Grade thresholds:** A (90-100), B (80-89), C (70-79), D (60-69), F (<60)
40
+
41
+ ## Project Type Detection
42
+
43
+ Scan for signals to auto-detect:
44
+ - **SaaS**: pricing page, free trial CTA, /dashboard route
45
+ - **E-commerce**: product pages, cart, checkout, Product schema
46
+ - **Local business**: service area, phone, address, Google Maps embed
47
+ - **Publisher/Blog**: /blog, article schema, author bios, RSS feed
48
+ - **Agency**: client testimonials, case studies, service pages
@@ -0,0 +1,37 @@
1
+ ---
2
+ name: rank-aeo
3
+ description: Answer engine optimization. Optimize for featured snippets, voice search, People Also Ask.
4
+ ---
5
+
6
+ # AEO Audit — Answer Engine Optimization
7
+
8
+ ## Phase 1: Scan
9
+
10
+ ```bash
11
+ node ${CLAUDE_PLUGIN_ROOT}/tools/aeo-scanner.mjs <project-directory>
12
+ ```
13
+
14
+ ## Phase 2: Report
15
+
16
+ Present AEO findings:
17
+ - **Schema** — FAQPage, HowTo, speakable, Article/BlogPosting
18
+ - **Snippet Readiness** — direct answers, numbered steps, concise paragraphs
19
+ - **Voice Search** — conversational patterns, 29-word answer targets
20
+
21
+ ## Phase 3: Fix
22
+
23
+ - Missing FAQPage → detect Q&A patterns in content, generate schema: `node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate FAQPage`
24
+ - Missing speakable → add speakable schema targeting key answer sections
25
+ - Long answers → restructure to 40-60 word direct answers after question H2s
26
+ - No numbered steps → convert procedural content to ordered lists
27
+ - Missing featured image → flag for user to add hero image
28
+
29
+ ## Phase 4: Verify
30
+
31
+ Re-run aeo-scanner. Show before/after AEO score.
32
+
33
+ ## Phase 5: Voice Search Guidance
34
+
35
+ - Target conversational long-tail queries ("how do I...", "what is the best...")
36
+ - Keep primary answers under 29 words (Google voice search average)
37
+ - Add People Also Ask patterns as H2/H3 questions throughout content
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: rank-audit
3
+ description: Full SEO/GEO/AEO audit with auto-fix. Scans, reports, fixes, and verifies.
4
+ ---
5
+
6
+ # Full Audit
7
+
8
+ Comprehensive search optimization audit. Finds issues AND fixes them.
9
+
10
+ ## Phase 1: Parallel Scan
11
+
12
+ Run all three scanners:
13
+ ```bash
14
+ node ${CLAUDE_PLUGIN_ROOT}/tools/seo-scanner.mjs <project-directory>
15
+ node ${CLAUDE_PLUGIN_ROOT}/tools/geo-scanner.mjs <project-directory>
16
+ node ${CLAUDE_PLUGIN_ROOT}/tools/aeo-scanner.mjs <project-directory>
17
+ ```
18
+
19
+ Parse JSON output from each for findings and scores.
20
+
21
+ ## Phase 2: Report
22
+
23
+ Present findings grouped by category (SEO / GEO / AEO) with severity.
24
+ Show scores table: SEO, GEO, AEO, Overall Rank Score.
25
+ Show summary: X critical, Y high, Z medium, W low.
26
+
27
+ ## Phase 3: Auto-Fix
28
+
29
+ For each finding, apply the appropriate fix:
30
+
31
+ **SEO fixes** (Edit tool on HTML files):
32
+ - Missing title → add `<title>` in `<head>`
33
+ - Missing meta description → add `<meta name="description">`
34
+ - Missing OG tags → generate from page content
35
+ - Missing H1 → add heading from page content
36
+ - Missing alt text → add descriptive alt attributes
37
+ - Missing canonical → add `<link rel="canonical">`
38
+ - Missing sitemap → run: `node ${CLAUDE_PLUGIN_ROOT}/tools/sitemap-analyzer.mjs generate <dir> <url>`
39
+ - Missing robots.txt → run: `node ${CLAUDE_PLUGIN_ROOT}/tools/robots-analyzer.mjs generate <dir> <url>`
40
+
41
+ **GEO fixes**:
42
+ - Missing llms.txt → run: `node ${CLAUDE_PLUGIN_ROOT}/tools/llms-txt-generator.mjs <dir>`
43
+ - Missing structured data → run: `node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate <type> --out=<path>`
44
+ - Blocked AI bots → update robots.txt to allow GPTBot, PerplexityBot, ClaudeBot, Google-Extended
45
+ - Improve content structure: add question-based H2s, TL;DR summaries, definition patterns
46
+
47
+ **AEO fixes**:
48
+ - Missing FAQ schema → generate FAQPage from Q&A content on page
49
+ - Missing speakable → add speakable schema for key content sections
50
+ - Snippet optimization → restructure answers to 40-60 word direct answers
51
+
52
+ ## Phase 4: Verify
53
+
54
+ Re-run all three scanners. Show before/after score comparison.
55
+
56
+ ## Phase 5: Save History
57
+
58
+ ```bash
59
+ node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> seo <score>
60
+ node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> geo <score>
61
+ node ${CLAUDE_PLUGIN_ROOT}/tools/audit-history.mjs save <dir> aeo <score>
62
+ ```
63
+
64
+ ## Phase 6: Content Strategy
65
+
66
+ Advise on content optimizations the scanner cannot automate:
67
+ - Rewrite H2 headers as questions for AI citation
68
+ - Add concise TL;DR summaries under key sections
69
+ - Write in citation-ready format: factual, quotable, 134-167 word passages
70
+ - Create comparison tables, statistics pages, glossaries
71
+
72
+ ## Phase 7: Backlink Strategy
73
+
74
+ Guide link building: create link-worthy assets, guest posting, broken link building, HARO.
75
+
76
+ ## Phase 8: Next Steps
77
+
78
+ Recommend which /rank sub-commands to run next based on lowest scores.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: rank-fix
3
+ description: Auto-fix all SEO/GEO/AEO findings in one command. Scan, fix, verify.
4
+ ---
5
+
6
+ # Auto-Fix All
7
+
8
+ Fix everything that can be automated in one pass.
9
+
10
+ ## Step 1: Scan
11
+
12
+ Run all scanners to get current findings:
13
+ ```bash
14
+ node ${CLAUDE_PLUGIN_ROOT}/tools/seo-scanner.mjs <dir>
15
+ node ${CLAUDE_PLUGIN_ROOT}/tools/geo-scanner.mjs <dir>
16
+ node ${CLAUDE_PLUGIN_ROOT}/tools/aeo-scanner.mjs <dir>
17
+ ```
18
+
19
+ ## Step 2: Fix
20
+
21
+ For each finding, apply automated fix:
22
+
23
+ **File generation** (create missing files):
24
+ - robots.txt → `node ${CLAUDE_PLUGIN_ROOT}/tools/robots-analyzer.mjs generate <dir> <url>`
25
+ - sitemap.xml → `node ${CLAUDE_PLUGIN_ROOT}/tools/sitemap-analyzer.mjs generate <dir> <url>`
26
+ - llms.txt → `node ${CLAUDE_PLUGIN_ROOT}/tools/llms-txt-generator.mjs <dir>`
27
+ - JSON-LD schema → `node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate <type> --out=<path>`
28
+
29
+ **HTML edits** (use Edit tool):
30
+ - Missing title, meta description, OG tags, canonical, viewport, charset, lang
31
+ - Missing H1, alt text on images, semantic landmarks (main, nav, footer)
32
+ - Inject generated schema into head before closing tag
33
+
34
+ **robots.txt edits** (use Edit tool):
35
+ - Unblock AI bots (GPTBot, PerplexityBot, ClaudeBot, Google-Extended)
36
+ - Add Sitemap directive
37
+
38
+ ## Step 3: Verify
39
+
40
+ Re-run all scanners. Report:
41
+ - Issues found: X
42
+ - Auto-fixed: Y
43
+ - Remaining (manual): Z
44
+ - Score improvement: before → after
45
+
46
+ ## Step 4: Save History
47
+
48
+ Save new scores via audit-history tool.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: rank-geo
3
+ description: AI search optimization audit. Optimize content for ChatGPT, Perplexity, Google AI Overviews.
4
+ ---
5
+
6
+ # GEO Audit — AI Search Optimization
7
+
8
+ ## Phase 1: Scan
9
+
10
+ ```bash
11
+ node ${CLAUDE_PLUGIN_ROOT}/tools/geo-scanner.mjs <project-directory>
12
+ ```
13
+
14
+ ## Phase 2: Report
15
+
16
+ Present GEO findings grouped by:
17
+ - **AI Bot Access** — which bots are allowed/blocked in robots.txt
18
+ - **Structured Data** — JSON-LD quality for AI extraction
19
+ - **Content Structure** — question headers, definitions, citation-ready passages
20
+ - **Discoverability** — llms.txt, sitemap, breadcrumbs
21
+
22
+ ## Phase 3: Fix
23
+
24
+ - Blocked AI bots → update robots.txt: `node ${CLAUDE_PLUGIN_ROOT}/tools/robots-analyzer.mjs generate <dir> <url>`
25
+ - Missing llms.txt → generate: `node ${CLAUDE_PLUGIN_ROOT}/tools/llms-txt-generator.mjs <dir>`
26
+ - Missing Organization schema → generate: `node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate Organization --name="..." --url="..."`
27
+ - Missing Author schema → generate Person schema with credentials
28
+ - No question H2s → rewrite key H2 headers as "What is...", "How does...", "Why..."
29
+ - No TL;DR patterns → add 1-2 sentence summaries under important H2 sections
30
+ - No definition patterns → add "[Product] is [clear definition]" in opening paragraphs
31
+
32
+ ## Phase 4: Verify
33
+
34
+ Re-run geo-scanner. Show before/after GEO score.
35
+
36
+ ## Phase 5: Advanced Guidance
37
+
38
+ Advise user to:
39
+ 1. Search top 5 keywords in ChatGPT, Perplexity, Google AI Overviews
40
+ 2. Note which competitors are cited
41
+ 3. Create citation-ready content for each gap (134-167 word passages)
42
+ 4. Add comparison tables and statistics (156% higher AI selection with multimedia)
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: rank-schema
3
+ description: Structured data management. Detect, validate, generate, and inject JSON-LD schema.
4
+ ---
5
+
6
+ # Schema Management
7
+
8
+ ## Phase 1: Detect
9
+
10
+ Scan all HTML files for existing JSON-LD:
11
+ ```bash
12
+ node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs detect <dir>
13
+ ```
14
+
15
+ Report: which schema types found, which files contain them.
16
+
17
+ ## Phase 2: Validate
18
+
19
+ For each detected schema, validate against Google's requirements. Report: missing required fields, deprecated types, invalid values.
20
+
21
+ ## Phase 3: Recommend
22
+
23
+ Based on project type detection:
24
+ - SaaS → Organization, WebSite+SearchAction, SoftwareApplication, FAQPage
25
+ - E-commerce → Product+Offer, Organization, BreadcrumbList, FAQPage
26
+ - Local → LocalBusiness, Organization, FAQPage, BreadcrumbList
27
+ - Publisher → Article/BlogPosting, Person (author), Organization, BreadcrumbList
28
+
29
+ Flag missing recommended types.
30
+
31
+ ## Phase 4: Generate + Inject
32
+
33
+ For each missing schema:
34
+ ```bash
35
+ node ${CLAUDE_PLUGIN_ROOT}/tools/schema-engine.mjs generate <type> --name="..." --url="..."
36
+ ```
37
+
38
+ Inject into HTML: add script tag before closing head using Edit tool.
39
+
40
+ ## Phase 5: Verify
41
+
42
+ Re-run detect to confirm all schema is present and valid.