optbrew 0.0.0-stage → 0.1.2

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 (179) hide show
  1. package/.claude-plugin/marketplace.json +6 -0
  2. package/.claude-plugin/plugin.json +6 -0
  3. package/.codex-plugin/plugin.json +13 -0
  4. package/CHANGELOG.md +50 -0
  5. package/LICENSE +21 -0
  6. package/README.ko.md +149 -0
  7. package/README.md +148 -2
  8. package/THIRD_PARTY_NOTICES.md +10 -0
  9. package/bin/optbrew.mjs +4 -0
  10. package/docs/platforms.md +107 -0
  11. package/docs/release.md +14 -0
  12. package/lib/cli.mjs +116 -0
  13. package/lib/doctor.mjs +45 -0
  14. package/lib/install.mjs +158 -0
  15. package/lib/paths.mjs +30 -0
  16. package/lib/records.mjs +44 -0
  17. package/lib/reinstall.mjs +92 -0
  18. package/lib/transaction.mjs +205 -0
  19. package/lib/update.mjs +189 -0
  20. package/package.json +39 -4
  21. package/plugin.json +13 -0
  22. package/skills/optbrew/LICENSE +21 -0
  23. package/skills/optbrew/SKILL.md +17 -0
  24. package/skills/optbrew/THIRD_PARTY_NOTICES.md +10 -0
  25. package/skills/optbrew/agents/openai.yaml +4 -0
  26. package/skills/optbrew/bundle-manifest.json +687 -0
  27. package/skills/optbrew/licenses/firecrawl-seo-audit.txt +15 -0
  28. package/skills/optbrew/licenses/magnus-seo.txt +21 -0
  29. package/skills/optbrew/licenses/marketing-search.txt +21 -0
  30. package/skills/optbrew/licenses/mblode-seo.txt +21 -0
  31. package/skills/optbrew/licenses/naver-searchadvisor.txt +29 -0
  32. package/skills/optbrew/licenses/seranking-seo.txt +21 -0
  33. package/skills/optbrew/modules/firecrawl-seo-audit/GUIDE.md +64 -0
  34. package/skills/optbrew/modules/magnus-seo/GUIDE.md +79 -0
  35. package/skills/optbrew/modules/magnus-seo/README.md +45 -0
  36. package/skills/optbrew/modules/magnus-seo/assets/audit-report-template.md +76 -0
  37. package/skills/optbrew/modules/magnus-seo/references/aeo-methodology.md +105 -0
  38. package/skills/optbrew/modules/magnus-seo/references/agent-readable-content.md +28 -0
  39. package/skills/optbrew/modules/magnus-seo/references/content-and-entity-architecture.md +100 -0
  40. package/skills/optbrew/modules/magnus-seo/references/content-strategy-seo.md +142 -0
  41. package/skills/optbrew/modules/magnus-seo/references/discovery-and-freshness.md +47 -0
  42. package/skills/optbrew/modules/magnus-seo/references/evidence-boundaries.md +75 -0
  43. package/skills/optbrew/modules/magnus-seo/references/ghost-metadata.md +204 -0
  44. package/skills/optbrew/modules/magnus-seo/references/implementation-playbook.md +114 -0
  45. package/skills/optbrew/modules/magnus-seo/references/measurement-and-experimentation.md +47 -0
  46. package/skills/optbrew/modules/magnus-seo/references/onpage-seo.md +154 -0
  47. package/skills/optbrew/modules/magnus-seo/references/platform-guidance.md +30 -0
  48. package/skills/optbrew/modules/magnus-seo/references/schema-markup.md +244 -0
  49. package/skills/optbrew/modules/magnus-seo/references/source-index.md +36 -0
  50. package/skills/optbrew/modules/magnus-seo/references/structured-data.md +56 -0
  51. package/skills/optbrew/modules/magnus-seo/references/technical-seo.md +99 -0
  52. package/skills/optbrew/modules/magnus-seo/scripts/aeo_audit.py +158 -0
  53. package/skills/optbrew/modules/magnus-seo/scripts/build_prompt_matrix.py +52 -0
  54. package/skills/optbrew/modules/magnus-seo/templates/aeo-implementation-plan.md +53 -0
  55. package/skills/optbrew/modules/magnus-seo/templates/citation-observation-log.md +16 -0
  56. package/skills/optbrew/modules/magnus-seo/templates/llms.txt.template +15 -0
  57. package/skills/optbrew/modules/magnus-seo/templates/question-cluster.md +27 -0
  58. package/skills/optbrew/modules/magnus-seo/templates/robots-ai-crawlers.txt +23 -0
  59. package/skills/optbrew/modules/marketing-search/skills/ai-seo/GUIDE.md +483 -0
  60. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/agent-readiness.md +57 -0
  61. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/citations-vs-recommendations.md +85 -0
  62. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/content-patterns.md +287 -0
  63. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/content-types.md +71 -0
  64. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/format-volatility.md +98 -0
  65. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/okf.md +104 -0
  66. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/platform-ranking-factors.md +154 -0
  67. package/skills/optbrew/modules/marketing-search/skills/ai-seo/references/youtube-ai-citations.md +60 -0
  68. package/skills/optbrew/modules/marketing-search/skills/analytics/GUIDE.md +303 -0
  69. package/skills/optbrew/modules/marketing-search/skills/analytics/references/event-library.md +260 -0
  70. package/skills/optbrew/modules/marketing-search/skills/analytics/references/ga4-implementation.md +300 -0
  71. package/skills/optbrew/modules/marketing-search/skills/analytics/references/gtm-implementation.md +390 -0
  72. package/skills/optbrew/modules/marketing-search/skills/content-strategy/GUIDE.md +432 -0
  73. package/skills/optbrew/modules/marketing-search/skills/content-strategy/references/content-distribution.md +83 -0
  74. package/skills/optbrew/modules/marketing-search/skills/content-strategy/references/headless-cms.md +194 -0
  75. package/skills/optbrew/modules/marketing-search/skills/programmatic-seo/GUIDE.md +231 -0
  76. package/skills/optbrew/modules/marketing-search/skills/programmatic-seo/references/playbooks.md +308 -0
  77. package/skills/optbrew/modules/marketing-search/skills/schema/GUIDE.md +172 -0
  78. package/skills/optbrew/modules/marketing-search/skills/schema/references/schema-examples.md +398 -0
  79. package/skills/optbrew/modules/marketing-search/skills/seo-audit/GUIDE.md +492 -0
  80. package/skills/optbrew/modules/marketing-search/skills/seo-audit/references/ai-writing-detection.md +200 -0
  81. package/skills/optbrew/modules/marketing-search/skills/seo-audit/references/international-seo.md +230 -0
  82. package/skills/optbrew/modules/marketing-search/skills/site-architecture/GUIDE.md +350 -0
  83. package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/mermaid-templates.md +216 -0
  84. package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/navigation-patterns.md +305 -0
  85. package/skills/optbrew/modules/marketing-search/skills/site-architecture/references/site-type-templates.md +293 -0
  86. package/skills/optbrew/modules/mblode-seo/GUIDE.md +74 -0
  87. package/skills/optbrew/modules/mblode-seo/references/answer-engines.md +58 -0
  88. package/skills/optbrew/modules/mblode-seo/references/audit.md +78 -0
  89. package/skills/optbrew/modules/mblode-seo/references/brief-template.md +47 -0
  90. package/skills/optbrew/modules/mblode-seo/references/monitoring.md +56 -0
  91. package/skills/optbrew/modules/mblode-seo/references/nextjs-implementation.md +65 -0
  92. package/skills/optbrew/modules/mblode-seo/references/research-protocol.md +37 -0
  93. package/skills/optbrew/modules/mblode-seo/references/sources.md +47 -0
  94. package/skills/optbrew/modules/mblode-seo/references/validation-evidence.md +21 -0
  95. package/skills/optbrew/modules/naver-searchadvisor/GUIDE.md +75 -0
  96. package/skills/optbrew/modules/naver-searchadvisor/NOTICE.md +59 -0
  97. package/skills/optbrew/modules/naver-searchadvisor/references/INDEX.md +97 -0
  98. package/skills/optbrew/modules/naver-searchadvisor/scripts/audit.mjs +742 -0
  99. package/skills/optbrew/modules/naver-searchadvisor/scripts/robots.mjs +77 -0
  100. package/skills/optbrew/modules/seranking-seo/skills/seo-ai-search-share-of-voice/GUIDE.md +94 -0
  101. package/skills/optbrew/modules/seranking-seo/skills/seo-api/GUIDE.md +186 -0
  102. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/api-surface-map.md +207 -0
  103. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/auth-and-keys.md +182 -0
  104. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/integration-patterns.md +283 -0
  105. package/skills/optbrew/modules/seranking-seo/skills/seo-api/references/rate-limits-and-credits.md +235 -0
  106. package/skills/optbrew/modules/seranking-seo/skills/seo-competitor-gap-analysis/GUIDE.md +117 -0
  107. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/GUIDE.md +155 -0
  108. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/references/cite.md +84 -0
  109. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/references/core-eeat.md +147 -0
  110. package/skills/optbrew/modules/seranking-seo/skills/seo-content-audit/templates/verdict.md +63 -0
  111. package/skills/optbrew/modules/seranking-seo/skills/seo-firecrawl/GUIDE.md +141 -0
  112. package/skills/optbrew/modules/seranking-seo/skills/seo-firecrawl/references/preflight.md +73 -0
  113. package/skills/optbrew/modules/seranking-seo/skills/seo-geo/GUIDE.md +159 -0
  114. package/skills/optbrew/modules/seranking-seo/skills/seo-google/GUIDE.md +393 -0
  115. package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/cwv-audit-report.md +48 -0
  116. package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/gsc-performance-report.md +44 -0
  117. package/skills/optbrew/modules/seranking-seo/skills/seo-google/assets/templates/indexation-status-report.md +43 -0
  118. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/auth-setup.md +160 -0
  119. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/cross-skill-integration.md +187 -0
  120. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/ga4-data-api.md +184 -0
  121. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/indexing-api.md +109 -0
  122. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/keyword-planner-api.md +66 -0
  123. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/nlp-api.md +55 -0
  124. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/pagespeed-crux-api.md +204 -0
  125. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/rate-limits-quotas.md +75 -0
  126. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/search-console-api.md +156 -0
  127. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/supplementary-apis.md +99 -0
  128. package/skills/optbrew/modules/seranking-seo/skills/seo-google/references/youtube-api.md +49 -0
  129. package/skills/optbrew/modules/seranking-seo/skills/seo-keyword-niche/GUIDE.md +174 -0
  130. package/skills/optbrew/modules/seranking-seo/skills/seo-page/GUIDE.md +174 -0
  131. package/skills/optbrew/modules/seranking-seo/skills/seo-plan/GUIDE.md +220 -0
  132. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/GUIDE.md +135 -0
  133. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/references/google-rich-results.md +89 -0
  134. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/article.json +23 -0
  135. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/breadcrumb-list.json +18 -0
  136. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/faq-page.json +22 -0
  137. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/local-business.json +32 -0
  138. package/skills/optbrew/modules/seranking-seo/skills/seo-schema/templates/product.json +25 -0
  139. package/skills/optbrew/modules/seranking-seo/skills/seo-sitemap/GUIDE.md +128 -0
  140. package/skills/optbrew/modules/seranking-seo/skills/seo-technical-audit/GUIDE.md +235 -0
  141. package/skills/optbrew/modules/seranking-seo/skills/seo-technical-audit/references/severity-mapping.md +133 -0
  142. package/skills/optbrew/references/ai-crawlers.json +21 -0
  143. package/skills/optbrew/references/ai-crawlers.md +24 -0
  144. package/skills/optbrew/references/api.md +45 -0
  145. package/skills/optbrew/references/check-registry.json +28 -0
  146. package/skills/optbrew/references/evidence.md +9 -0
  147. package/skills/optbrew/references/intake.md +9 -0
  148. package/skills/optbrew/references/measurement.md +29 -0
  149. package/skills/optbrew/references/policies.md +7 -0
  150. package/skills/optbrew/references/profiles.json +13 -0
  151. package/skills/optbrew/references/remediations.json +12 -0
  152. package/skills/optbrew/references/report.md +29 -0
  153. package/skills/optbrew/references/routing.md +15 -0
  154. package/skills/optbrew/references/schemas/contract.schema.json +51 -0
  155. package/skills/optbrew/references/scoring.md +62 -0
  156. package/skills/optbrew/scripts/adapters/anthropic.mjs +116 -0
  157. package/skills/optbrew/scripts/adapters/imports.mjs +81 -0
  158. package/skills/optbrew/scripts/audit.mjs +124 -0
  159. package/skills/optbrew/scripts/cli.mjs +41 -0
  160. package/skills/optbrew/scripts/core/bootstrap.mjs +31 -0
  161. package/skills/optbrew/scripts/core/bundle.mjs +73 -0
  162. package/skills/optbrew/scripts/core/capabilities.mjs +19 -0
  163. package/skills/optbrew/scripts/core/collector.mjs +250 -0
  164. package/skills/optbrew/scripts/core/compare.mjs +47 -0
  165. package/skills/optbrew/scripts/core/contracts.mjs +144 -0
  166. package/skills/optbrew/scripts/core/cost-ledger.mjs +95 -0
  167. package/skills/optbrew/scripts/core/crawlers.mjs +11 -0
  168. package/skills/optbrew/scripts/core/derive.mjs +168 -0
  169. package/skills/optbrew/scripts/core/facts.mjs +189 -0
  170. package/skills/optbrew/scripts/core/findings.mjs +54 -0
  171. package/skills/optbrew/scripts/core/html.mjs +53 -0
  172. package/skills/optbrew/scripts/core/metrics.mjs +97 -0
  173. package/skills/optbrew/scripts/core/protocol.mjs +125 -0
  174. package/skills/optbrew/scripts/core/report.mjs +742 -0
  175. package/skills/optbrew/scripts/core/scope.mjs +52 -0
  176. package/skills/optbrew/scripts/core/score.mjs +71 -0
  177. package/skills/optbrew/scripts/core/weights.mjs +139 -0
  178. package/skills/optbrew/source-lock.json +2686 -0
  179. package/source-lock.json +2686 -0
@@ -0,0 +1,194 @@
1
+ # Headless CMS Guide
2
+
3
+ Reference for choosing, modeling, and implementing a headless CMS for marketing content.
4
+
5
+ ## When to Use This Reference
6
+
7
+ Use this when selecting a CMS for a new project, designing content models for marketing sites, setting up editorial workflows, or connecting CMS content to programmatic pages.
8
+
9
+ ---
10
+
11
+ ## Headless vs Traditional CMS
12
+
13
+ A headless CMS separates content management from presentation. Content is stored in a structured backend and delivered via API to any frontend.
14
+
15
+ ### When Headless Makes Sense
16
+
17
+ - Multiple frontends consume the same content (web, mobile, email)
18
+ - Developers want full control over the frontend stack
19
+ - Content needs to be reused across channels
20
+ - You're building with a modern framework (Next.js, Remix, Astro)
21
+ - Marketing needs structured, reusable content blocks
22
+
23
+ ### When Traditional Works Better
24
+
25
+ - Small team with no dedicated developers
26
+ - Simple blog or brochure site
27
+ - WYSIWYG editing is a hard requirement
28
+ - Budget is tight and WordPress/Webflow does the job
29
+
30
+ ### Decision Checklist
31
+
32
+ | Factor | Headless | Traditional |
33
+ |--------|----------|-------------|
34
+ | Multi-channel delivery | Yes | Limited |
35
+ | Developer control | Full | Constrained |
36
+ | Non-technical editing | Requires setup | Built-in |
37
+ | Time to launch | Longer | Faster |
38
+ | Content reuse | Native | Manual |
39
+ | Hosting flexibility | Any frontend | Platform-dependent |
40
+
41
+ ---
42
+
43
+ ## Content Modeling for Marketing
44
+
45
+ ### Core Principles
46
+
47
+ 1. **Think in types, not pages.** A "Landing Page" is a content type with fields — not an HTML file. This lets you reuse components across pages.
48
+ 2. **Separate content from presentation.** Store the headline text, not the styled headline. Presentation belongs in the frontend.
49
+ 3. **Design for reuse.** If testimonials appear on 5 pages, create a Testimonial type and reference it — don't duplicate.
50
+ 4. **Keep models flat.** Deeply nested structures are hard to query and maintain. Prefer references over nesting.
51
+
52
+ ### Common Marketing Content Types
53
+
54
+ | Type | Key Fields | Notes |
55
+ |------|-----------|-------|
56
+ | **Landing Page** | title, slug, hero, sections[], seo | Modular sections for flexibility |
57
+ | **Blog Post** | title, slug, body, author, category, tags, publishedAt, seo | Rich text or Portable Text body |
58
+ | **Case Study** | title, customer, challenge, solution, results, metrics[], logo | Link to related products/features |
59
+ | **Testimonial** | quote, author, role, company, avatar, rating | Reference from landing pages |
60
+ | **FAQ** | question, answer, category | Group by category for programmatic pages |
61
+ | **Author** | name, bio, avatar, social links | Reference from blog posts |
62
+ | **CTA Block** | heading, body, buttonText, buttonUrl, variant | Reusable across pages |
63
+
64
+ ### SEO Fields Checklist
65
+
66
+ Every page-level content type needs:
67
+
68
+ - `metaTitle` — 50-60 characters
69
+ - `metaDescription` — 150-160 characters
70
+ - `ogImage` — 1200x630px social preview
71
+ - `slug` — URL path segment
72
+ - `canonicalUrl` — optional override
73
+ - `noIndex` — boolean for excluding from search
74
+ - `structuredData` — optional JSON-LD override
75
+
76
+ ---
77
+
78
+ ## Editorial Workflows
79
+
80
+ ### Draft → Review → Publish Cycle
81
+
82
+ 1. **Draft** — Author creates or edits content
83
+ 2. **Review** — Editor reviews for accuracy, brand voice, SEO
84
+ 3. **Approve** — Stakeholder signs off
85
+ 4. **Schedule** — Set publish date/time
86
+ 5. **Publish** — Content goes live via API
87
+
88
+ ### Preview APIs
89
+
90
+ All major headless CMS platforms support draft previews:
91
+
92
+ - **Sanity**: Real-time preview with `useLiveQuery` or Presentation tool
93
+ - **Contentful**: Preview API (`preview.contentful.com`) with separate access token
94
+ - **Strapi**: Draft & Publish system with `status=draft` query parameter (v5; replaces v4's `publicationState`)
95
+
96
+ Set up a preview route in your frontend (e.g., `/api/preview`) that authenticates and renders draft content.
97
+
98
+ ### Roles and Permissions
99
+
100
+ | Role | Can Create | Can Edit | Can Publish | Can Delete |
101
+ |------|:----------:|:--------:|:-----------:|:----------:|
102
+ | Author | Yes | Own | No | Own drafts |
103
+ | Editor | Yes | All | Yes | Drafts |
104
+ | Admin | Yes | All | Yes | All |
105
+
106
+ Exact permission models vary by platform. Sanity uses role-based access. Contentful has space-level roles. Strapi has granular RBAC.
107
+
108
+ ---
109
+
110
+ ## Platform Comparison
111
+
112
+ | Feature | Sanity | Contentful | Strapi |
113
+ |---------|--------|------------|--------|
114
+ | Hosting | Cloud (managed) | Cloud (managed) | Self-hosted or Cloud |
115
+ | Query Language | GROQ | REST / GraphQL | REST / GraphQL |
116
+ | Free Tier | Generous | Limited | Open source (free) |
117
+ | Real-time Collab | Yes (built-in) | Limited | No |
118
+ | Best For | Developer flexibility | Enterprise multi-locale | Budget / self-hosted |
119
+ | Content Modeling | Schema-as-code | Web UI | Web UI or code |
120
+ | Media Handling | Built-in DAM | Built-in | Plugin-based |
121
+
122
+ ### Sanity
123
+
124
+ **Strengths**: GROQ query language is powerful and flexible. Schema defined in code (version-controlled). Real-time collaborative editing. Portable Text for rich content. Generous free tier.
125
+
126
+ **Considerations**: Steeper learning curve for non-developers. Studio customization requires React knowledge. Vendor lock-in on GROQ queries.
127
+
128
+ **Marketing fit**: Best when developers and marketers collaborate closely. Strong for content-heavy sites with complex models.
129
+
130
+ ### Contentful
131
+
132
+ **Strengths**: Mature enterprise platform. Excellent multi-locale support. Strong ecosystem of integrations. Composable content with Studio. Well-documented APIs.
133
+
134
+ **Considerations**: Pricing scales with content types and locales. Two separate APIs (Delivery and Management). Rate limits can be tight on lower plans.
135
+
136
+ **Marketing fit**: Best for enterprises with multi-market content needs. Good when you need established vendor reliability.
137
+
138
+ ### Strapi
139
+
140
+ **Strengths**: Open source, self-hosted option. Full control over data. No per-seat pricing. Customizable admin panel. Plugin ecosystem. REST by default, GraphQL via plugin.
141
+
142
+ **Considerations**: Self-hosting means you handle infrastructure. Smaller ecosystem than Sanity/Contentful. V5 migration can be significant from V4.
143
+
144
+ **Marketing fit**: Best for teams with DevOps capability who want full control and no vendor lock-in. Good for budget-conscious projects.
145
+
146
+ ### Others Worth Knowing
147
+
148
+ - **Hygraph** — GraphQL-native, strong for federation and multi-source content
149
+ - **Keystatic** — Git-based, good for developer-content hybrid workflows
150
+ - **Payload** — TypeScript-first, self-hosted, code-configured like Sanity
151
+ - **Builder.io** — Visual editor with headless backend, good for non-technical marketers
152
+ - **Prismic** — Slice-based content modeling, strong Next.js integration
153
+
154
+ ---
155
+
156
+ ## Integration with Marketing Skills
157
+
158
+ ### Programmatic SEO
159
+
160
+ Use CMS as the data source for programmatic pages. Store structured data (FAQs, comparisons, city pages) as content types and generate pages from queries. See **programmatic-seo** skill.
161
+
162
+ ### Copywriting
163
+
164
+ CMS content models enforce consistent structure. Define fields that match your copy frameworks (headline, subheadline, social proof, CTA). See **copywriting** skill.
165
+
166
+ ### Site Architecture
167
+
168
+ URL structure, navigation hierarchy, and internal linking all depend on how content is organized in the CMS. Plan your content model and site architecture together. See **site-architecture** skill.
169
+
170
+ ### Email Sequences
171
+
172
+ Pull CMS content into email templates for consistent messaging across web and email. Case studies, testimonials, and blog posts can feed email nurture sequences. See **emails** skill.
173
+
174
+ ---
175
+
176
+ ## Implementation Checklist
177
+
178
+ - [ ] Define content types based on page types and reusable blocks
179
+ - [ ] Add SEO fields to every page-level content type
180
+ - [ ] Set up preview/draft mode in your frontend
181
+ - [ ] Configure roles and permissions for your team
182
+ - [ ] Create sample content for each type before building frontend
183
+ - [ ] Set up webhook notifications for content changes (rebuild triggers)
184
+ - [ ] Document content guidelines for editors (field descriptions, character limits)
185
+ - [ ] Test content delivery performance (CDN, caching, ISR)
186
+ - [ ] Plan migration strategy if moving from existing CMS
187
+
188
+ ---
189
+
190
+ ## Relevant Integration Guides
191
+
192
+ - Sanity (upstream-only reference; route through optbrew) — GROQ queries, mutations, CLI
193
+ - Contentful (upstream-only reference; route through optbrew) — Delivery/Management APIs, publishing
194
+ - Strapi (upstream-only reference; route through optbrew) — REST CRUD, filters, document API
@@ -0,0 +1,231 @@
1
+ # Programmatic SEO
2
+
3
+ You are an expert in programmatic SEO—building SEO-optimized pages at scale using templates and data. Your goal is to create pages that rank, provide value, and avoid thin content penalties.
4
+
5
+ ## Initial Assessment
6
+
7
+ **Check for product marketing context first:**
8
+ If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
9
+
10
+ Before designing a programmatic SEO strategy, understand:
11
+
12
+ 1. **Business Context**
13
+ - What's the product/service?
14
+ - Who is the target audience?
15
+ - What's the conversion goal for these pages?
16
+
17
+ 2. **Opportunity Assessment**
18
+ - What search patterns exist?
19
+ - How many potential pages?
20
+ - What's the search volume distribution?
21
+
22
+ 3. **Competitive Landscape**
23
+ - Who ranks for these terms now?
24
+ - What do their pages look like?
25
+ - Can you realistically compete?
26
+
27
+ ---
28
+
29
+ ## Core Principles
30
+
31
+ ### 1. Unique Value Per Page
32
+ - Every page must provide value specific to that page
33
+ - Not just swapped variables in a template
34
+ - Maximize unique content—the more differentiated, the better
35
+
36
+ ### 2. Proprietary Data Wins
37
+ Hierarchy of data defensibility:
38
+ 1. Proprietary (you created it)
39
+ 2. Product-derived (from your users)
40
+ 3. User-generated (your community)
41
+ 4. Licensed (exclusive access)
42
+ 5. Public (anyone can use—weakest)
43
+
44
+ ### 3. Clean URL Structure
45
+ **Use subfolders, not subdomains** — subfolders consolidate domain authority while subdomains split it:
46
+ - Good: `yoursite.com/templates/resume/`
47
+ - Bad: `templates.yoursite.com/resume/`
48
+
49
+ ### 4. Genuine Search Intent Match
50
+ Pages must actually answer what people are searching for.
51
+
52
+ ### 5. Quality Over Quantity
53
+ Better to have 100 great pages than 10,000 thin ones.
54
+
55
+ ### 6. Avoid Google Penalties
56
+ - No doorway pages
57
+ - No keyword stuffing
58
+ - No duplicate content
59
+ - Genuine utility for users
60
+
61
+ ---
62
+
63
+ ## The 12 Playbooks (Overview)
64
+
65
+ | Playbook | Pattern | Example |
66
+ |----------|---------|---------|
67
+ | Templates | "[Type] template" | "resume template" |
68
+ | Curation | "best [category]" | "best website builders" |
69
+ | Conversions | "[X] to [Y]" | "$10 USD to GBP" |
70
+ | Comparisons | "[X] vs [Y]" | "webflow vs wordpress" |
71
+ | Examples | "[type] examples" | "landing page examples" |
72
+ | Locations | "[service] in [location]" | "dentists in austin" |
73
+ | Personas | "[product] for [audience]" | "crm for real estate" |
74
+ | Integrations | "[product A] [product B] integration" | "slack asana integration" |
75
+ | Glossary | "what is [term]" | "what is pSEO" |
76
+ | Translations | Content in multiple languages | Localized content |
77
+ | Directory | "[category] tools" | "ai copywriting tools" |
78
+ | Profiles | "[entity name]" | "stripe ceo" |
79
+
80
+ **For detailed playbook implementation**: See [references/playbooks.md](references/playbooks.md)
81
+
82
+ ---
83
+
84
+ ## Choosing Your Playbook
85
+
86
+ | If you have... | Consider... |
87
+ |----------------|-------------|
88
+ | Proprietary data | Directories, Profiles |
89
+ | Product with integrations | Integrations |
90
+ | Design/creative product | Templates, Examples |
91
+ | Multi-segment audience | Personas |
92
+ | Local presence | Locations |
93
+ | Tool or utility product | Conversions |
94
+ | Content/expertise | Glossary, Curation |
95
+ | Competitor landscape | Comparisons |
96
+
97
+ You can layer multiple playbooks (e.g., "Best coworking spaces in San Diego").
98
+
99
+ ---
100
+
101
+ ## Implementation Framework
102
+
103
+ ### 1. Keyword Pattern Research
104
+
105
+ **Identify the pattern:**
106
+ - What's the repeating structure?
107
+ - What are the variables?
108
+ - How many unique combinations exist?
109
+
110
+ **Validate demand:**
111
+ - Aggregate search volume
112
+ - Volume distribution (head vs. long tail)
113
+ - Trend direction
114
+
115
+ ### 2. Data Requirements
116
+
117
+ **Identify data sources:**
118
+ - What data populates each page?
119
+ - Is it first-party, scraped, licensed, public?
120
+ - How is it updated?
121
+
122
+ ### 3. Template Design
123
+
124
+ **Page structure:**
125
+ - Header with target keyword
126
+ - Unique intro (not just variables swapped)
127
+ - Data-driven sections
128
+ - Related pages / internal links
129
+ - CTAs appropriate to intent
130
+
131
+ **Ensuring uniqueness:**
132
+ - Each page needs unique value
133
+ - Conditional content based on data
134
+ - Original insights/analysis per page
135
+
136
+ ### 4. Internal Linking Architecture
137
+
138
+ **Hub and spoke model:**
139
+ - Hub: Main category page
140
+ - Spokes: Individual programmatic pages
141
+ - Cross-links between related spokes
142
+
143
+ **Avoid orphan pages:**
144
+ - Every page reachable from main site
145
+ - XML sitemap for all pages
146
+ - Breadcrumbs with structured data
147
+
148
+ ### 5. Indexation Strategy
149
+
150
+ - Prioritize high-volume patterns
151
+ - Noindex very thin variations
152
+ - Manage crawl budget thoughtfully
153
+ - Separate sitemaps by page type
154
+
155
+ ---
156
+
157
+ ## Quality Checks
158
+
159
+ ### Pre-Launch Checklist
160
+
161
+ **Content quality:**
162
+ - [ ] Each page provides unique value
163
+ - [ ] Answers search intent
164
+ - [ ] Readable and useful
165
+
166
+ **Technical SEO:**
167
+ - [ ] Unique titles and meta descriptions
168
+ - [ ] Proper heading structure
169
+ - [ ] Schema markup implemented
170
+ - [ ] Page speed acceptable
171
+
172
+ **Internal linking:**
173
+ - [ ] Connected to site architecture
174
+ - [ ] Related pages linked
175
+ - [ ] No orphan pages
176
+
177
+ **Indexation:**
178
+ - [ ] In XML sitemap
179
+ - [ ] Crawlable
180
+ - [ ] No conflicting noindex
181
+
182
+ ### Post-Launch Monitoring
183
+
184
+ Track: Indexation rate, Rankings, Traffic, Engagement, Conversion
185
+
186
+ Watch for: Thin content warnings, Ranking drops, Manual actions, Crawl errors
187
+
188
+ ---
189
+
190
+ ## Common Mistakes
191
+
192
+ - **Thin content**: Just swapping city names in identical content
193
+ - **Keyword cannibalization**: Multiple pages targeting same keyword
194
+ - **Over-generation**: Creating pages with no search demand
195
+ - **Poor data quality**: Outdated or incorrect information
196
+ - **Ignoring UX**: Pages exist for Google, not users
197
+
198
+ ---
199
+
200
+ ## Output Format
201
+
202
+ ### Strategy Document
203
+ - Opportunity analysis
204
+ - Implementation plan
205
+ - Content guidelines
206
+
207
+ ### Page Template
208
+ - URL structure
209
+ - Title/meta templates
210
+ - Content outline
211
+ - Schema markup
212
+
213
+ ---
214
+
215
+ ## Task-Specific Questions
216
+
217
+ 1. What keyword patterns are you targeting?
218
+ 2. What data do you have (or can acquire)?
219
+ 3. How many pages are you planning?
220
+ 4. What does your site authority look like?
221
+ 5. Who currently ranks for these terms?
222
+ 6. What's your technical stack?
223
+
224
+ ---
225
+
226
+ ## Related Skills
227
+
228
+ - **seo-audit**: For auditing programmatic pages after launch
229
+ - **schema**: For adding structured data
230
+ - **site-architecture**: For page hierarchy, URL structure, and internal linking
231
+ - **competitors**: For comparison page frameworks