bobo-ai-cli 3.0.3 → 3.0.5

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 (238) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +259 -259
  3. package/bundled-skills/CORE_SKILLS.txt +18 -18
  4. package/bundled-skills/backend-expert/SKILL.md +97 -97
  5. package/bundled-skills/code-review/SKILL.md +280 -280
  6. package/bundled-skills/code-review-expert/SKILL.md +85 -85
  7. package/bundled-skills/context-budget-analyzer/SKILL.md +76 -76
  8. package/bundled-skills/context-compressor/SKILL.md +75 -75
  9. package/bundled-skills/context-optimization-suite/SKILL.md +162 -162
  10. package/bundled-skills/frontend-expert/SKILL.md +93 -93
  11. package/bundled-skills/github/SKILL.md +12 -12
  12. package/bundled-skills/high-agency/SKILL.md +473 -473
  13. package/bundled-skills/high-agency/references/builder-patterns.md +126 -126
  14. package/bundled-skills/high-agency/references/recovery-playbook.md +298 -298
  15. package/bundled-skills/memory-manager/SKILL.md +214 -214
  16. package/bundled-skills/memory-manager/references/advanced-config.md +65 -65
  17. package/bundled-skills/orchestrator/SKILL.md +681 -681
  18. package/bundled-skills/planning-with-files/SKILL.md +193 -193
  19. package/bundled-skills/skill-creator/SKILL.md +220 -220
  20. package/bundled-skills/testing-expert/SKILL.md +99 -99
  21. package/bundled-skills/verify/SKILL.md +15 -15
  22. package/dist/agent.d.ts +5 -0
  23. package/dist/agent.js +11 -1
  24. package/dist/agent.js.map +1 -1
  25. package/dist/agents/catalog.d.ts +47 -0
  26. package/dist/agents/catalog.js +63 -5
  27. package/dist/agents/catalog.js.map +1 -1
  28. package/dist/agents/router.d.ts +12 -1
  29. package/dist/agents/router.js +43 -3
  30. package/dist/agents/router.js.map +1 -1
  31. package/dist/agents/spawn.js +36 -18
  32. package/dist/agents/spawn.js.map +1 -1
  33. package/dist/autonomous.js +5 -5
  34. package/dist/cli.js +23 -21
  35. package/dist/cli.js.map +1 -1
  36. package/dist/compactor.js +39 -39
  37. package/dist/dream.js +29 -29
  38. package/dist/image-input.d.ts +44 -0
  39. package/dist/image-input.js +161 -0
  40. package/dist/image-input.js.map +1 -0
  41. package/dist/memory.js +13 -13
  42. package/dist/project.js +15 -15
  43. package/dist/repl.js +88 -0
  44. package/dist/repl.js.map +1 -1
  45. package/dist/skills.js +54 -54
  46. package/dist/sub-agents.js +65 -65
  47. package/dist/tools/browser.js +21 -21
  48. package/dist/tools/claude-code.js +10 -10
  49. package/dist/web.js +7 -7
  50. package/dist/wiki-commands.d.ts +2 -0
  51. package/dist/wiki-commands.js +249 -0
  52. package/dist/wiki-commands.js.map +1 -0
  53. package/dist/wiki.d.ts +90 -0
  54. package/dist/wiki.js +614 -0
  55. package/dist/wiki.js.map +1 -0
  56. package/knowledge/advanced-patterns.md +70 -70
  57. package/knowledge/agent-directives.md +74 -74
  58. package/knowledge/api-integration-patterns.md +102 -0
  59. package/knowledge/code-review-protocol.md +69 -0
  60. package/knowledge/dream.md +36 -36
  61. package/knowledge/engineering.md +52 -46
  62. package/knowledge/error-catalog.md +38 -33
  63. package/knowledge/event-driven-architecture.md +43 -0
  64. package/knowledge/external-alignment.md +47 -0
  65. package/knowledge/high-agency.md +73 -0
  66. package/knowledge/image-generation.md +48 -0
  67. package/knowledge/index.json +194 -169
  68. package/knowledge/llm-wiki-pattern.md +71 -0
  69. package/knowledge/long-task-management.md +79 -0
  70. package/knowledge/memory/cache-optimization-and-skill-integration.md +102 -102
  71. package/knowledge/memory/engineering-patterns.md +134 -134
  72. package/knowledge/memory/feedback_root_structure.md +15 -15
  73. package/knowledge/memory/project-contexts.md +69 -69
  74. package/knowledge/memory/tools-and-services.md +85 -85
  75. package/knowledge/memory-management.md +72 -0
  76. package/knowledge/rules/advisor-strategy.md +204 -0
  77. package/knowledge/rules/agents.md +62 -62
  78. package/knowledge/rules/blocking-rules.md +323 -323
  79. package/knowledge/rules/cache-management.md +379 -379
  80. package/knowledge/rules/capability-evolution.md +132 -132
  81. package/knowledge/rules/coding.md +126 -126
  82. package/knowledge/rules/engineering-workflows.md +225 -225
  83. package/knowledge/rules/evomap-content-guidelines.md +354 -354
  84. package/knowledge/rules/evomap-guide.md +224 -224
  85. package/knowledge/rules/external-alignment.md +22 -0
  86. package/knowledge/rules/git.md +31 -31
  87. package/knowledge/rules/hooks.md +106 -106
  88. package/knowledge/rules/performance.md +101 -101
  89. package/knowledge/rules/remotion-auto-production.md +1120 -1120
  90. package/knowledge/rules/security.md +46 -46
  91. package/knowledge/rules/testing.md +32 -32
  92. package/knowledge/rules/work-mode.md +208 -208
  93. package/knowledge/rules.md +62 -62
  94. package/knowledge/self-evolution.md +78 -0
  95. package/knowledge/self-rationalization-guard.md +52 -0
  96. package/knowledge/skills/Skill_Seekers.md +1722 -1722
  97. package/knowledge/skills/ab-test-setup.md +557 -557
  98. package/knowledge/skills/agent-sdk-dev.md +238 -238
  99. package/knowledge/skills/agent-tools.md +136 -136
  100. package/knowledge/skills/analytics-tracking.md +597 -597
  101. package/knowledge/skills/artifacts-builder.md +89 -89
  102. package/knowledge/skills/asana.md +12 -12
  103. package/knowledge/skills/backend-expert.md +97 -97
  104. package/knowledge/skills/brand-voice.md +481 -481
  105. package/knowledge/skills/browser-use.md +419 -419
  106. package/knowledge/skills/cache-optimization-skill.md +179 -179
  107. package/knowledge/skills/canvas-design.md +147 -147
  108. package/knowledge/skills/citation-validator.md +203 -203
  109. package/knowledge/skills/clangd-lsp.md +52 -52
  110. package/knowledge/skills/code-review-expert.md +85 -85
  111. package/knowledge/skills/code-review.md +280 -280
  112. package/knowledge/skills/code-simplifier.md +12 -12
  113. package/knowledge/skills/commit-commands.md +258 -258
  114. package/knowledge/skills/competitor-alternatives.md +795 -795
  115. package/knowledge/skills/content-atomizer.md +910 -910
  116. package/knowledge/skills/content-research-writer.md +605 -605
  117. package/knowledge/skills/context-optimization-suite.md +162 -162
  118. package/knowledge/skills/context7.md +12 -12
  119. package/knowledge/skills/copy-editing.md +494 -494
  120. package/knowledge/skills/copywriting.md +510 -510
  121. package/knowledge/skills/csharp-lsp.md +40 -40
  122. package/knowledge/skills/decision-making-framework.md +154 -154
  123. package/knowledge/skills/developer-growth-analysis.md +335 -335
  124. package/knowledge/skills/direct-response-copy.md +2336 -2336
  125. package/knowledge/skills/docker-expert.md +229 -229
  126. package/knowledge/skills/document-skills.md +12 -12
  127. package/knowledge/skills/documentation-expert.md +126 -126
  128. package/knowledge/skills/email-sequence.md +1061 -1061
  129. package/knowledge/skills/email-sequences.md +910 -910
  130. package/knowledge/skills/example-plugin.md +72 -72
  131. package/knowledge/skills/explanatory-output-style.md +82 -82
  132. package/knowledge/skills/feature-dev.md +458 -458
  133. package/knowledge/skills/file-organizer.md +466 -466
  134. package/knowledge/skills/firebase.disabled.md +12 -12
  135. package/knowledge/skills/form-cro.md +488 -488
  136. package/knowledge/skills/free-tool-strategy.md +636 -636
  137. package/knowledge/skills/frontend-design-offical.md +55 -55
  138. package/knowledge/skills/frontend-design.md +41 -41
  139. package/knowledge/skills/frontend-expert.md +93 -93
  140. package/knowledge/skills/github.md +12 -12
  141. package/knowledge/skills/gitlab.md +12 -12
  142. package/knowledge/skills/gopls-lsp.md +32 -32
  143. package/knowledge/skills/got-controller.md +218 -218
  144. package/knowledge/skills/greptile.md +72 -72
  145. package/knowledge/skills/hookify.md +376 -376
  146. package/knowledge/skills/image-editor.md +189 -189
  147. package/knowledge/skills/image-enhancer.md +109 -109
  148. package/knowledge/skills/jdtls-lsp.md +49 -49
  149. package/knowledge/skills/json-canvas.md +654 -654
  150. package/knowledge/skills/keyword-research.md +559 -559
  151. package/knowledge/skills/kotlin-lsp.md +28 -28
  152. package/knowledge/skills/laravel-boost.md +12 -12
  153. package/knowledge/skills/launch-strategy.md +394 -394
  154. package/knowledge/skills/lead-magnet.md +393 -393
  155. package/knowledge/skills/learning-output-style.md +106 -106
  156. package/knowledge/skills/linear.md +12 -12
  157. package/knowledge/skills/lua-lsp.md +47 -47
  158. package/knowledge/skills/marketing-ideas.md +720 -720
  159. package/knowledge/skills/marketing-psychology.md +534 -534
  160. package/knowledge/skills/mcp-builder.md +369 -369
  161. package/knowledge/skills/meeting-insights-analyzer.md +347 -347
  162. package/knowledge/skills/memory-evolution-system.md +172 -172
  163. package/knowledge/skills/multi-lens-thinking.md +407 -407
  164. package/knowledge/skills/nano-banana-pro.md +116 -116
  165. package/knowledge/skills/newsletter.md +736 -736
  166. package/knowledge/skills/notebooklm.md +296 -296
  167. package/knowledge/skills/obsidian-bases.md +634 -634
  168. package/knowledge/skills/obsidian-markdown.md +651 -651
  169. package/knowledge/skills/onboarding-cro.md +494 -494
  170. package/knowledge/skills/orchestrator.md +681 -681
  171. package/knowledge/skills/page-cro.md +379 -379
  172. package/knowledge/skills/paid-ads.md +624 -624
  173. package/knowledge/skills/paywall-upgrade-cro.md +651 -651
  174. package/knowledge/skills/php-lsp.md +36 -36
  175. package/knowledge/skills/planning-with-files.md +193 -193
  176. package/knowledge/skills/playwright.md +12 -12
  177. package/knowledge/skills/plugin-dev.md +434 -434
  178. package/knowledge/skills/popup-cro.md +520 -520
  179. package/knowledge/skills/positioning-angles.md +330 -330
  180. package/knowledge/skills/pr-review-toolkit.md +359 -359
  181. package/knowledge/skills/pricing-strategy.md +777 -777
  182. package/knowledge/skills/programmatic-seo.md +714 -714
  183. package/knowledge/skills/pyright-lsp.md +43 -43
  184. package/knowledge/skills/quality-assurance-framework.md +168 -168
  185. package/knowledge/skills/question-refiner.md +160 -160
  186. package/knowledge/skills/ralph-loop.md +205 -205
  187. package/knowledge/skills/refactoring-expert.md +103 -103
  188. package/knowledge/skills/referral-program.md +668 -668
  189. package/knowledge/skills/research-executor.md +164 -164
  190. package/knowledge/skills/review-with-security.md +12 -12
  191. package/knowledge/skills/rust-analyzer-lsp.md +50 -50
  192. package/knowledge/skills/schema-markup.md +647 -647
  193. package/knowledge/skills/security-audit-expert.md +124 -124
  194. package/knowledge/skills/security-expert.md +140 -140
  195. package/knowledge/skills/security-guidance.md +12 -12
  196. package/knowledge/skills/seedance-prompt.md +139 -139
  197. package/knowledge/skills/self-evolution.md +1160 -1160
  198. package/knowledge/skills/seo-audit.md +432 -432
  199. package/knowledge/skills/seo-content.md +787 -787
  200. package/knowledge/skills/serena.md +12 -12
  201. package/knowledge/skills/signup-flow-cro.md +409 -409
  202. package/knowledge/skills/skill-creator.md +220 -220
  203. package/knowledge/skills/skill-manager.md +226 -226
  204. package/knowledge/skills/skill-share.md +98 -98
  205. package/knowledge/skills/slack.md +12 -12
  206. package/knowledge/skills/social-content.md +878 -878
  207. package/knowledge/skills/spec-flow-skill.md +124 -124
  208. package/knowledge/skills/stripe.md +12 -12
  209. package/knowledge/skills/supabase.md +12 -12
  210. package/knowledge/skills/swift-lsp.md +40 -40
  211. package/knowledge/skills/synthesizer.md +236 -236
  212. package/knowledge/skills/template-skill.md +16 -16
  213. package/knowledge/skills/testing-expert.md +99 -99
  214. package/knowledge/skills/theme-factory.md +72 -72
  215. package/knowledge/skills/tiktok-research.md +208 -208
  216. package/knowledge/skills/typescript-lsp.md +36 -36
  217. package/knowledge/skills/ui-ux-pro-max.md +247 -247
  218. package/knowledge/skills/verify.md +15 -15
  219. package/knowledge/skills/visual-prompt-engineer.md +102 -102
  220. package/knowledge/skills/webapp-testing.md +111 -111
  221. package/knowledge/skills/wide-research.md +191 -191
  222. package/knowledge/system.md +93 -93
  223. package/knowledge/task-router.md +46 -37
  224. package/knowledge/verification.md +38 -38
  225. package/knowledge/worker-prompt-craft.md +66 -0
  226. package/knowledge/workflows/3d-viz.md +47 -47
  227. package/knowledge/workflows/data-pipeline.md +47 -47
  228. package/knowledge/workflows/db-migration.md +51 -51
  229. package/knowledge/workflows/feature-dev.md +41 -41
  230. package/knowledge/workflows/tdd-flow.md +52 -52
  231. package/knowledge/workflows/ui-verify.md +51 -51
  232. package/package.json +74 -74
  233. package/dist/claude-bridge.d.ts +0 -18
  234. package/dist/claude-bridge.js +0 -91
  235. package/dist/claude-bridge.js.map +0 -1
  236. package/dist/tools/claude-bridge-tool.d.ts +0 -4
  237. package/dist/tools/claude-bridge-tool.js +0 -44
  238. package/dist/tools/claude-bridge-tool.js.map +0 -1
@@ -1,647 +1,647 @@
1
- ---
2
- id: "schema-markup"
3
- title: "Schema Markup"
4
- category: "marketing"
5
- tags: ["schema markup", "initial assessment", "core principles", "common schema types", "validation and testing", "implementation patterns", "output format", "questions to ask", "related skills"]
6
- triggers: []
7
- dependencies: []
8
- source: "E:/Bobo's Coding cache/.claude/skills/schema-markup"
9
- ---
10
-
11
- ---
12
- name: schema-markup
13
- description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," or "breadcrumb schema." For broader SEO issues, see seo-audit.
14
- ---
15
-
16
- # Schema Markup
17
-
18
- You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search.
19
-
20
- ## Initial Assessment
21
-
22
- Before implementing schema, understand:
23
-
24
- 1. **Page Type**
25
- - What kind of page is this?
26
- - What's the primary content?
27
- - What rich results are possible?
28
-
29
- 2. **Current State**
30
- - Any existing schema?
31
- - Errors in current implementation?
32
- - Which rich results are already appearing?
33
-
34
- 3. **Goals**
35
- - Which rich results are you targeting?
36
- - What's the business value?
37
-
38
- ---
39
-
40
- ## Core Principles
41
-
42
- ### 1. Accuracy First
43
-
44
- - Schema must accurately represent page content
45
- - Don't markup content that doesn't exist
46
- - Keep updated when content changes
47
-
48
- ### 2. Use JSON-LD
49
-
50
- - Google recommends JSON-LD format
51
- - Easier to implement and maintain
52
- - Place in `<head>` or end of `<body>`
53
-
54
- ### 3. Follow Google's Guidelines
55
-
56
- - Only use markup Google supports
57
- - Avoid spam tactics
58
- - Review eligibility requirements
59
-
60
- ### 4. Validate Everything
61
-
62
- - Test before deploying
63
- - Monitor Search Console
64
- - Fix errors promptly
65
-
66
- ---
67
-
68
- ## Common Schema Types
69
-
70
- ### Organization
71
-
72
- **Use for**: Company/brand homepage or about page
73
-
74
- **Required properties**:
75
-
76
- - name
77
- - url
78
-
79
- **Recommended properties**:
80
-
81
- - logo
82
- - sameAs (social profiles)
83
- - contactPoint
84
-
85
- ```json
86
- {
87
- "@context": "https://schema.org",
88
- "@type": "Organization",
89
- "name": "Example Company",
90
- "url": "https://example.com",
91
- "logo": "https://example.com/logo.png",
92
- "sameAs": [
93
- "https://twitter.com/example",
94
- "https://linkedin.com/company/example",
95
- "https://facebook.com/example"
96
- ],
97
- "contactPoint": {
98
- "@type": "ContactPoint",
99
- "telephone": "+1-555-555-5555",
100
- "contactType": "customer service"
101
- }
102
- }
103
- ```
104
-
105
- ### WebSite (with SearchAction)
106
-
107
- **Use for**: Homepage, enables sitelinks search box
108
-
109
- **Required properties**:
110
-
111
- - name
112
- - url
113
-
114
- **For search box**:
115
-
116
- - potentialAction with SearchAction
117
-
118
- ```json
119
- {
120
- "@context": "https://schema.org",
121
- "@type": "WebSite",
122
- "name": "Example",
123
- "url": "https://example.com",
124
- "potentialAction": {
125
- "@type": "SearchAction",
126
- "target": {
127
- "@type": "EntryPoint",
128
- "urlTemplate": "https://example.com/search?q={search_term_string}"
129
- },
130
- "query-input": "required name=search_term_string"
131
- }
132
- }
133
- ```
134
-
135
- ### Article / BlogPosting
136
-
137
- **Use for**: Blog posts, news articles
138
-
139
- **Required properties**:
140
-
141
- - headline
142
- - image
143
- - datePublished
144
- - author
145
-
146
- **Recommended properties**:
147
-
148
- - dateModified
149
- - publisher
150
- - description
151
- - mainEntityOfPage
152
-
153
- ```json
154
- {
155
- "@context": "https://schema.org",
156
- "@type": "Article",
157
- "headline": "How to Implement Schema Markup",
158
- "image": "https://example.com/image.jpg",
159
- "datePublished": "2024-01-15T08:00:00+00:00",
160
- "dateModified": "2024-01-20T10:00:00+00:00",
161
- "author": {
162
- "@type": "Person",
163
- "name": "Jane Doe",
164
- "url": "https://example.com/authors/jane"
165
- },
166
- "publisher": {
167
- "@type": "Organization",
168
- "name": "Example Company",
169
- "logo": {
170
- "@type": "ImageObject",
171
- "url": "https://example.com/logo.png"
172
- }
173
- },
174
- "description": "A complete guide to implementing schema markup...",
175
- "mainEntityOfPage": {
176
- "@type": "WebPage",
177
- "@id": "https://example.com/schema-guide"
178
- }
179
- }
180
- ```
181
-
182
- ### Product
183
-
184
- **Use for**: Product pages (e-commerce or SaaS)
185
-
186
- **Required properties**:
187
-
188
- - name
189
- - image
190
- - offers (with price and availability)
191
-
192
- **Recommended properties**:
193
-
194
- - description
195
- - sku
196
- - brand
197
- - aggregateRating
198
- - review
199
-
200
- ```json
201
- {
202
- "@context": "https://schema.org",
203
- "@type": "Product",
204
- "name": "Premium Widget",
205
- "image": "https://example.com/widget.jpg",
206
- "description": "Our best-selling widget for professionals",
207
- "sku": "WIDGET-001",
208
- "brand": {
209
- "@type": "Brand",
210
- "name": "Example Co"
211
- },
212
- "offers": {
213
- "@type": "Offer",
214
- "url": "https://example.com/products/widget",
215
- "priceCurrency": "USD",
216
- "price": "99.99",
217
- "availability": "https://schema.org/InStock",
218
- "priceValidUntil": "2024-12-31"
219
- },
220
- "aggregateRating": {
221
- "@type": "AggregateRating",
222
- "ratingValue": "4.8",
223
- "reviewCount": "127"
224
- }
225
- }
226
- ```
227
-
228
- ### SoftwareApplication
229
-
230
- **Use for**: SaaS product pages, app landing pages
231
-
232
- **Required properties**:
233
-
234
- - name
235
- - offers (or free indicator)
236
-
237
- **Recommended properties**:
238
-
239
- - applicationCategory
240
- - operatingSystem
241
- - aggregateRating
242
-
243
- ```json
244
- {
245
- "@context": "https://schema.org",
246
- "@type": "SoftwareApplication",
247
- "name": "Example App",
248
- "applicationCategory": "BusinessApplication",
249
- "operatingSystem": "Web, iOS, Android",
250
- "offers": {
251
- "@type": "Offer",
252
- "price": "0",
253
- "priceCurrency": "USD"
254
- },
255
- "aggregateRating": {
256
- "@type": "AggregateRating",
257
- "ratingValue": "4.6",
258
- "ratingCount": "1250"
259
- }
260
- }
261
- ```
262
-
263
- ### FAQPage
264
-
265
- **Use for**: Pages with frequently asked questions
266
-
267
- **Required properties**:
268
-
269
- - mainEntity (array of Question/Answer)
270
-
271
- ```json
272
- {
273
- "@context": "https://schema.org",
274
- "@type": "FAQPage",
275
- "mainEntity": [
276
- {
277
- "@type": "Question",
278
- "name": "What is schema markup?",
279
- "acceptedAnswer": {
280
- "@type": "Answer",
281
- "text": "Schema markup is a structured data vocabulary that helps search engines understand your content..."
282
- }
283
- },
284
- {
285
- "@type": "Question",
286
- "name": "How do I implement schema?",
287
- "acceptedAnswer": {
288
- "@type": "Answer",
289
- "text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..."
290
- }
291
- }
292
- ]
293
- }
294
- ```
295
-
296
- ### HowTo
297
-
298
- **Use for**: Instructional content, tutorials
299
-
300
- **Required properties**:
301
-
302
- - name
303
- - step (array of HowToStep)
304
-
305
- **Recommended properties**:
306
-
307
- - image
308
- - totalTime
309
- - estimatedCost
310
- - supply/tool
311
-
312
- ```json
313
- {
314
- "@context": "https://schema.org",
315
- "@type": "HowTo",
316
- "name": "How to Add Schema Markup to Your Website",
317
- "description": "A step-by-step guide to implementing JSON-LD schema",
318
- "totalTime": "PT15M",
319
- "step": [
320
- {
321
- "@type": "HowToStep",
322
- "name": "Choose your schema type",
323
- "text": "Identify the appropriate schema type for your page content...",
324
- "url": "https://example.com/guide#step1"
325
- },
326
- {
327
- "@type": "HowToStep",
328
- "name": "Write the JSON-LD",
329
- "text": "Create the JSON-LD markup following schema.org specifications...",
330
- "url": "https://example.com/guide#step2"
331
- },
332
- {
333
- "@type": "HowToStep",
334
- "name": "Add to your page",
335
- "text": "Insert the script tag in your page's head section...",
336
- "url": "https://example.com/guide#step3"
337
- }
338
- ]
339
- }
340
- ```
341
-
342
- ### BreadcrumbList
343
-
344
- **Use for**: Any page with breadcrumb navigation
345
-
346
- ```json
347
- {
348
- "@context": "https://schema.org",
349
- "@type": "BreadcrumbList",
350
- "itemListElement": [
351
- {
352
- "@type": "ListItem",
353
- "position": 1,
354
- "name": "Home",
355
- "item": "https://example.com"
356
- },
357
- {
358
- "@type": "ListItem",
359
- "position": 2,
360
- "name": "Blog",
361
- "item": "https://example.com/blog"
362
- },
363
- {
364
- "@type": "ListItem",
365
- "position": 3,
366
- "name": "SEO Guide",
367
- "item": "https://example.com/blog/seo-guide"
368
- }
369
- ]
370
- }
371
- ```
372
-
373
- ### LocalBusiness
374
-
375
- **Use for**: Local business location pages
376
-
377
- **Required properties**:
378
-
379
- - name
380
- - address
381
- - (Various by business type)
382
-
383
- ```json
384
- {
385
- "@context": "https://schema.org",
386
- "@type": "LocalBusiness",
387
- "name": "Example Coffee Shop",
388
- "image": "https://example.com/shop.jpg",
389
- "address": {
390
- "@type": "PostalAddress",
391
- "streetAddress": "123 Main Street",
392
- "addressLocality": "San Francisco",
393
- "addressRegion": "CA",
394
- "postalCode": "94102",
395
- "addressCountry": "US"
396
- },
397
- "geo": {
398
- "@type": "GeoCoordinates",
399
- "latitude": "37.7749",
400
- "longitude": "-122.4194"
401
- },
402
- "telephone": "+1-555-555-5555",
403
- "openingHoursSpecification": [
404
- {
405
- "@type": "OpeningHoursSpecification",
406
- "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
407
- "opens": "08:00",
408
- "closes": "18:00"
409
- }
410
- ],
411
- "priceRange": "$$"
412
- }
413
- ```
414
-
415
- ### Review / AggregateRating
416
-
417
- **Use for**: Review pages or products with reviews
418
-
419
- Note: Self-serving reviews (reviewing your own product) are against guidelines. Reviews must be from real customers.
420
-
421
- ```json
422
- {
423
- "@context": "https://schema.org",
424
- "@type": "Product",
425
- "name": "Example Product",
426
- "aggregateRating": {
427
- "@type": "AggregateRating",
428
- "ratingValue": "4.5",
429
- "bestRating": "5",
430
- "worstRating": "1",
431
- "ratingCount": "523"
432
- },
433
- "review": [
434
- {
435
- "@type": "Review",
436
- "author": {
437
- "@type": "Person",
438
- "name": "John Smith"
439
- },
440
- "datePublished": "2024-01-10",
441
- "reviewRating": {
442
- "@type": "Rating",
443
- "ratingValue": "5"
444
- },
445
- "reviewBody": "Excellent product, exceeded my expectations..."
446
- }
447
- ]
448
- }
449
- ```
450
-
451
- ### Event
452
-
453
- **Use for**: Event pages, webinars, conferences
454
-
455
- **Required properties**:
456
-
457
- - name
458
- - startDate
459
- - location (or eventAttendanceMode for online)
460
-
461
- ```json
462
- {
463
- "@context": "https://schema.org",
464
- "@type": "Event",
465
- "name": "Annual Marketing Conference",
466
- "startDate": "2024-06-15T09:00:00-07:00",
467
- "endDate": "2024-06-15T17:00:00-07:00",
468
- "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
469
- "eventStatus": "https://schema.org/EventScheduled",
470
- "location": {
471
- "@type": "VirtualLocation",
472
- "url": "https://example.com/conference"
473
- },
474
- "image": "https://example.com/conference.jpg",
475
- "description": "Join us for our annual marketing conference...",
476
- "offers": {
477
- "@type": "Offer",
478
- "url": "https://example.com/conference/tickets",
479
- "price": "199",
480
- "priceCurrency": "USD",
481
- "availability": "https://schema.org/InStock",
482
- "validFrom": "2024-01-01"
483
- },
484
- "performer": {
485
- "@type": "Organization",
486
- "name": "Example Company"
487
- },
488
- "organizer": {
489
- "@type": "Organization",
490
- "name": "Example Company",
491
- "url": "https://example.com"
492
- }
493
- }
494
- ```
495
-
496
- ---
497
-
498
- ## Multiple Schema Types on One Page
499
-
500
- You can (and often should) have multiple schema types:
501
-
502
- ```json
503
- {
504
- "@context": "https://schema.org",
505
- "@graph": [
506
- {
507
- "@type": "Organization",
508
- "@id": "https://example.com/#organization",
509
- "name": "Example Company",
510
- "url": "https://example.com"
511
- },
512
- {
513
- "@type": "WebSite",
514
- "@id": "https://example.com/#website",
515
- "url": "https://example.com",
516
- "name": "Example",
517
- "publisher": {
518
- "@id": "https://example.com/#organization"
519
- }
520
- },
521
- {
522
- "@type": "BreadcrumbList",
523
- "itemListElement": [...]
524
- }
525
- ]
526
- }
527
- ```
528
-
529
- ---
530
-
531
- ## Validation and Testing
532
-
533
- ### Tools
534
-
535
- - **Google Rich Results Test**: https://search.google.com/test/rich-results
536
- - **Schema.org Validator**: https://validator.schema.org/
537
- - **Search Console**: Enhancements reports
538
-
539
- ### Common Errors
540
-
541
- **Missing required properties**
542
-
543
- - Check Google's documentation for required fields
544
- - Different from schema.org minimum requirements
545
-
546
- **Invalid values**
547
-
548
- - Dates must be ISO 8601 format
549
- - URLs must be fully qualified
550
- - Enumerations must use exact values
551
-
552
- **Mismatch with page content**
553
-
554
- - Schema doesn't match visible content
555
- - Ratings for products without reviews shown
556
- - Prices that don't match displayed prices
557
-
558
- ---
559
-
560
- ## Implementation Patterns
561
-
562
- ### Static Sites
563
-
564
- - Add JSON-LD directly in HTML template
565
- - Use includes/partials for reusable schema
566
-
567
- ### Dynamic Sites (React, Next.js, etc.)
568
-
569
- - Component that renders schema
570
- - Server-side rendered for SEO
571
- - Serialize data to JSON-LD
572
-
573
- ```jsx
574
- // Next.js example
575
- export default function ProductPage({ product }) {
576
- const schema = {
577
- '@context': 'https://schema.org',
578
- '@type': 'Product',
579
- name: product.name,
580
- // ... other properties
581
- };
582
-
583
- return (
584
- <>
585
- <Head>
586
- <script
587
- type="application/ld+json"
588
- dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
589
- />
590
- </Head>
591
- {/* Page content */}
592
- </>
593
- );
594
- }
595
- ```
596
-
597
- ### CMS / WordPress
598
-
599
- - Plugins (Yoast, Rank Math, Schema Pro)
600
- - Theme modifications
601
- - Custom fields to structured data
602
-
603
- ---
604
-
605
- ## Output Format
606
-
607
- ### Schema Implementation
608
-
609
- ```json
610
- // Full JSON-LD code block
611
- {
612
- "@context": "https://schema.org",
613
- "@type": "..."
614
- // Complete markup
615
- }
616
- ```
617
-
618
- ### Placement Instructions
619
-
620
- Where to add the code and how
621
-
622
- ### Testing Checklist
623
-
624
- - [ ] Validates in Rich Results Test
625
- - [ ] No errors or warnings
626
- - [ ] Matches page content
627
- - [ ] All required properties included
628
-
629
- ---
630
-
631
- ## Questions to Ask
632
-
633
- If you need more context:
634
-
635
- 1. What type of page is this?
636
- 2. What rich results are you hoping to achieve?
637
- 3. What data is available to populate the schema?
638
- 4. Is there existing schema on the page?
639
- 5. What's your tech stack for implementation?
640
-
641
- ---
642
-
643
- ## Related Skills
644
-
645
- - **seo-audit**: For overall SEO including schema review
646
- - **programmatic-seo**: For templated schema at scale
647
- - **analytics-tracking**: For measuring rich result impact
1
+ ---
2
+ id: "schema-markup"
3
+ title: "Schema Markup"
4
+ category: "marketing"
5
+ tags: ["schema markup", "initial assessment", "core principles", "common schema types", "validation and testing", "implementation patterns", "output format", "questions to ask", "related skills"]
6
+ triggers: []
7
+ dependencies: []
8
+ source: "E:/Bobo's Coding cache/.claude/skills/schema-markup"
9
+ ---
10
+
11
+ ---
12
+ name: schema-markup
13
+ description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," or "breadcrumb schema." For broader SEO issues, see seo-audit.
14
+ ---
15
+
16
+ # Schema Markup
17
+
18
+ You are an expert in structured data and schema markup. Your goal is to implement schema.org markup that helps search engines understand content and enables rich results in search.
19
+
20
+ ## Initial Assessment
21
+
22
+ Before implementing schema, understand:
23
+
24
+ 1. **Page Type**
25
+ - What kind of page is this?
26
+ - What's the primary content?
27
+ - What rich results are possible?
28
+
29
+ 2. **Current State**
30
+ - Any existing schema?
31
+ - Errors in current implementation?
32
+ - Which rich results are already appearing?
33
+
34
+ 3. **Goals**
35
+ - Which rich results are you targeting?
36
+ - What's the business value?
37
+
38
+ ---
39
+
40
+ ## Core Principles
41
+
42
+ ### 1. Accuracy First
43
+
44
+ - Schema must accurately represent page content
45
+ - Don't markup content that doesn't exist
46
+ - Keep updated when content changes
47
+
48
+ ### 2. Use JSON-LD
49
+
50
+ - Google recommends JSON-LD format
51
+ - Easier to implement and maintain
52
+ - Place in `<head>` or end of `<body>`
53
+
54
+ ### 3. Follow Google's Guidelines
55
+
56
+ - Only use markup Google supports
57
+ - Avoid spam tactics
58
+ - Review eligibility requirements
59
+
60
+ ### 4. Validate Everything
61
+
62
+ - Test before deploying
63
+ - Monitor Search Console
64
+ - Fix errors promptly
65
+
66
+ ---
67
+
68
+ ## Common Schema Types
69
+
70
+ ### Organization
71
+
72
+ **Use for**: Company/brand homepage or about page
73
+
74
+ **Required properties**:
75
+
76
+ - name
77
+ - url
78
+
79
+ **Recommended properties**:
80
+
81
+ - logo
82
+ - sameAs (social profiles)
83
+ - contactPoint
84
+
85
+ ```json
86
+ {
87
+ "@context": "https://schema.org",
88
+ "@type": "Organization",
89
+ "name": "Example Company",
90
+ "url": "https://example.com",
91
+ "logo": "https://example.com/logo.png",
92
+ "sameAs": [
93
+ "https://twitter.com/example",
94
+ "https://linkedin.com/company/example",
95
+ "https://facebook.com/example"
96
+ ],
97
+ "contactPoint": {
98
+ "@type": "ContactPoint",
99
+ "telephone": "+1-555-555-5555",
100
+ "contactType": "customer service"
101
+ }
102
+ }
103
+ ```
104
+
105
+ ### WebSite (with SearchAction)
106
+
107
+ **Use for**: Homepage, enables sitelinks search box
108
+
109
+ **Required properties**:
110
+
111
+ - name
112
+ - url
113
+
114
+ **For search box**:
115
+
116
+ - potentialAction with SearchAction
117
+
118
+ ```json
119
+ {
120
+ "@context": "https://schema.org",
121
+ "@type": "WebSite",
122
+ "name": "Example",
123
+ "url": "https://example.com",
124
+ "potentialAction": {
125
+ "@type": "SearchAction",
126
+ "target": {
127
+ "@type": "EntryPoint",
128
+ "urlTemplate": "https://example.com/search?q={search_term_string}"
129
+ },
130
+ "query-input": "required name=search_term_string"
131
+ }
132
+ }
133
+ ```
134
+
135
+ ### Article / BlogPosting
136
+
137
+ **Use for**: Blog posts, news articles
138
+
139
+ **Required properties**:
140
+
141
+ - headline
142
+ - image
143
+ - datePublished
144
+ - author
145
+
146
+ **Recommended properties**:
147
+
148
+ - dateModified
149
+ - publisher
150
+ - description
151
+ - mainEntityOfPage
152
+
153
+ ```json
154
+ {
155
+ "@context": "https://schema.org",
156
+ "@type": "Article",
157
+ "headline": "How to Implement Schema Markup",
158
+ "image": "https://example.com/image.jpg",
159
+ "datePublished": "2024-01-15T08:00:00+00:00",
160
+ "dateModified": "2024-01-20T10:00:00+00:00",
161
+ "author": {
162
+ "@type": "Person",
163
+ "name": "Jane Doe",
164
+ "url": "https://example.com/authors/jane"
165
+ },
166
+ "publisher": {
167
+ "@type": "Organization",
168
+ "name": "Example Company",
169
+ "logo": {
170
+ "@type": "ImageObject",
171
+ "url": "https://example.com/logo.png"
172
+ }
173
+ },
174
+ "description": "A complete guide to implementing schema markup...",
175
+ "mainEntityOfPage": {
176
+ "@type": "WebPage",
177
+ "@id": "https://example.com/schema-guide"
178
+ }
179
+ }
180
+ ```
181
+
182
+ ### Product
183
+
184
+ **Use for**: Product pages (e-commerce or SaaS)
185
+
186
+ **Required properties**:
187
+
188
+ - name
189
+ - image
190
+ - offers (with price and availability)
191
+
192
+ **Recommended properties**:
193
+
194
+ - description
195
+ - sku
196
+ - brand
197
+ - aggregateRating
198
+ - review
199
+
200
+ ```json
201
+ {
202
+ "@context": "https://schema.org",
203
+ "@type": "Product",
204
+ "name": "Premium Widget",
205
+ "image": "https://example.com/widget.jpg",
206
+ "description": "Our best-selling widget for professionals",
207
+ "sku": "WIDGET-001",
208
+ "brand": {
209
+ "@type": "Brand",
210
+ "name": "Example Co"
211
+ },
212
+ "offers": {
213
+ "@type": "Offer",
214
+ "url": "https://example.com/products/widget",
215
+ "priceCurrency": "USD",
216
+ "price": "99.99",
217
+ "availability": "https://schema.org/InStock",
218
+ "priceValidUntil": "2024-12-31"
219
+ },
220
+ "aggregateRating": {
221
+ "@type": "AggregateRating",
222
+ "ratingValue": "4.8",
223
+ "reviewCount": "127"
224
+ }
225
+ }
226
+ ```
227
+
228
+ ### SoftwareApplication
229
+
230
+ **Use for**: SaaS product pages, app landing pages
231
+
232
+ **Required properties**:
233
+
234
+ - name
235
+ - offers (or free indicator)
236
+
237
+ **Recommended properties**:
238
+
239
+ - applicationCategory
240
+ - operatingSystem
241
+ - aggregateRating
242
+
243
+ ```json
244
+ {
245
+ "@context": "https://schema.org",
246
+ "@type": "SoftwareApplication",
247
+ "name": "Example App",
248
+ "applicationCategory": "BusinessApplication",
249
+ "operatingSystem": "Web, iOS, Android",
250
+ "offers": {
251
+ "@type": "Offer",
252
+ "price": "0",
253
+ "priceCurrency": "USD"
254
+ },
255
+ "aggregateRating": {
256
+ "@type": "AggregateRating",
257
+ "ratingValue": "4.6",
258
+ "ratingCount": "1250"
259
+ }
260
+ }
261
+ ```
262
+
263
+ ### FAQPage
264
+
265
+ **Use for**: Pages with frequently asked questions
266
+
267
+ **Required properties**:
268
+
269
+ - mainEntity (array of Question/Answer)
270
+
271
+ ```json
272
+ {
273
+ "@context": "https://schema.org",
274
+ "@type": "FAQPage",
275
+ "mainEntity": [
276
+ {
277
+ "@type": "Question",
278
+ "name": "What is schema markup?",
279
+ "acceptedAnswer": {
280
+ "@type": "Answer",
281
+ "text": "Schema markup is a structured data vocabulary that helps search engines understand your content..."
282
+ }
283
+ },
284
+ {
285
+ "@type": "Question",
286
+ "name": "How do I implement schema?",
287
+ "acceptedAnswer": {
288
+ "@type": "Answer",
289
+ "text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..."
290
+ }
291
+ }
292
+ ]
293
+ }
294
+ ```
295
+
296
+ ### HowTo
297
+
298
+ **Use for**: Instructional content, tutorials
299
+
300
+ **Required properties**:
301
+
302
+ - name
303
+ - step (array of HowToStep)
304
+
305
+ **Recommended properties**:
306
+
307
+ - image
308
+ - totalTime
309
+ - estimatedCost
310
+ - supply/tool
311
+
312
+ ```json
313
+ {
314
+ "@context": "https://schema.org",
315
+ "@type": "HowTo",
316
+ "name": "How to Add Schema Markup to Your Website",
317
+ "description": "A step-by-step guide to implementing JSON-LD schema",
318
+ "totalTime": "PT15M",
319
+ "step": [
320
+ {
321
+ "@type": "HowToStep",
322
+ "name": "Choose your schema type",
323
+ "text": "Identify the appropriate schema type for your page content...",
324
+ "url": "https://example.com/guide#step1"
325
+ },
326
+ {
327
+ "@type": "HowToStep",
328
+ "name": "Write the JSON-LD",
329
+ "text": "Create the JSON-LD markup following schema.org specifications...",
330
+ "url": "https://example.com/guide#step2"
331
+ },
332
+ {
333
+ "@type": "HowToStep",
334
+ "name": "Add to your page",
335
+ "text": "Insert the script tag in your page's head section...",
336
+ "url": "https://example.com/guide#step3"
337
+ }
338
+ ]
339
+ }
340
+ ```
341
+
342
+ ### BreadcrumbList
343
+
344
+ **Use for**: Any page with breadcrumb navigation
345
+
346
+ ```json
347
+ {
348
+ "@context": "https://schema.org",
349
+ "@type": "BreadcrumbList",
350
+ "itemListElement": [
351
+ {
352
+ "@type": "ListItem",
353
+ "position": 1,
354
+ "name": "Home",
355
+ "item": "https://example.com"
356
+ },
357
+ {
358
+ "@type": "ListItem",
359
+ "position": 2,
360
+ "name": "Blog",
361
+ "item": "https://example.com/blog"
362
+ },
363
+ {
364
+ "@type": "ListItem",
365
+ "position": 3,
366
+ "name": "SEO Guide",
367
+ "item": "https://example.com/blog/seo-guide"
368
+ }
369
+ ]
370
+ }
371
+ ```
372
+
373
+ ### LocalBusiness
374
+
375
+ **Use for**: Local business location pages
376
+
377
+ **Required properties**:
378
+
379
+ - name
380
+ - address
381
+ - (Various by business type)
382
+
383
+ ```json
384
+ {
385
+ "@context": "https://schema.org",
386
+ "@type": "LocalBusiness",
387
+ "name": "Example Coffee Shop",
388
+ "image": "https://example.com/shop.jpg",
389
+ "address": {
390
+ "@type": "PostalAddress",
391
+ "streetAddress": "123 Main Street",
392
+ "addressLocality": "San Francisco",
393
+ "addressRegion": "CA",
394
+ "postalCode": "94102",
395
+ "addressCountry": "US"
396
+ },
397
+ "geo": {
398
+ "@type": "GeoCoordinates",
399
+ "latitude": "37.7749",
400
+ "longitude": "-122.4194"
401
+ },
402
+ "telephone": "+1-555-555-5555",
403
+ "openingHoursSpecification": [
404
+ {
405
+ "@type": "OpeningHoursSpecification",
406
+ "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
407
+ "opens": "08:00",
408
+ "closes": "18:00"
409
+ }
410
+ ],
411
+ "priceRange": "$$"
412
+ }
413
+ ```
414
+
415
+ ### Review / AggregateRating
416
+
417
+ **Use for**: Review pages or products with reviews
418
+
419
+ Note: Self-serving reviews (reviewing your own product) are against guidelines. Reviews must be from real customers.
420
+
421
+ ```json
422
+ {
423
+ "@context": "https://schema.org",
424
+ "@type": "Product",
425
+ "name": "Example Product",
426
+ "aggregateRating": {
427
+ "@type": "AggregateRating",
428
+ "ratingValue": "4.5",
429
+ "bestRating": "5",
430
+ "worstRating": "1",
431
+ "ratingCount": "523"
432
+ },
433
+ "review": [
434
+ {
435
+ "@type": "Review",
436
+ "author": {
437
+ "@type": "Person",
438
+ "name": "John Smith"
439
+ },
440
+ "datePublished": "2024-01-10",
441
+ "reviewRating": {
442
+ "@type": "Rating",
443
+ "ratingValue": "5"
444
+ },
445
+ "reviewBody": "Excellent product, exceeded my expectations..."
446
+ }
447
+ ]
448
+ }
449
+ ```
450
+
451
+ ### Event
452
+
453
+ **Use for**: Event pages, webinars, conferences
454
+
455
+ **Required properties**:
456
+
457
+ - name
458
+ - startDate
459
+ - location (or eventAttendanceMode for online)
460
+
461
+ ```json
462
+ {
463
+ "@context": "https://schema.org",
464
+ "@type": "Event",
465
+ "name": "Annual Marketing Conference",
466
+ "startDate": "2024-06-15T09:00:00-07:00",
467
+ "endDate": "2024-06-15T17:00:00-07:00",
468
+ "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
469
+ "eventStatus": "https://schema.org/EventScheduled",
470
+ "location": {
471
+ "@type": "VirtualLocation",
472
+ "url": "https://example.com/conference"
473
+ },
474
+ "image": "https://example.com/conference.jpg",
475
+ "description": "Join us for our annual marketing conference...",
476
+ "offers": {
477
+ "@type": "Offer",
478
+ "url": "https://example.com/conference/tickets",
479
+ "price": "199",
480
+ "priceCurrency": "USD",
481
+ "availability": "https://schema.org/InStock",
482
+ "validFrom": "2024-01-01"
483
+ },
484
+ "performer": {
485
+ "@type": "Organization",
486
+ "name": "Example Company"
487
+ },
488
+ "organizer": {
489
+ "@type": "Organization",
490
+ "name": "Example Company",
491
+ "url": "https://example.com"
492
+ }
493
+ }
494
+ ```
495
+
496
+ ---
497
+
498
+ ## Multiple Schema Types on One Page
499
+
500
+ You can (and often should) have multiple schema types:
501
+
502
+ ```json
503
+ {
504
+ "@context": "https://schema.org",
505
+ "@graph": [
506
+ {
507
+ "@type": "Organization",
508
+ "@id": "https://example.com/#organization",
509
+ "name": "Example Company",
510
+ "url": "https://example.com"
511
+ },
512
+ {
513
+ "@type": "WebSite",
514
+ "@id": "https://example.com/#website",
515
+ "url": "https://example.com",
516
+ "name": "Example",
517
+ "publisher": {
518
+ "@id": "https://example.com/#organization"
519
+ }
520
+ },
521
+ {
522
+ "@type": "BreadcrumbList",
523
+ "itemListElement": [...]
524
+ }
525
+ ]
526
+ }
527
+ ```
528
+
529
+ ---
530
+
531
+ ## Validation and Testing
532
+
533
+ ### Tools
534
+
535
+ - **Google Rich Results Test**: https://search.google.com/test/rich-results
536
+ - **Schema.org Validator**: https://validator.schema.org/
537
+ - **Search Console**: Enhancements reports
538
+
539
+ ### Common Errors
540
+
541
+ **Missing required properties**
542
+
543
+ - Check Google's documentation for required fields
544
+ - Different from schema.org minimum requirements
545
+
546
+ **Invalid values**
547
+
548
+ - Dates must be ISO 8601 format
549
+ - URLs must be fully qualified
550
+ - Enumerations must use exact values
551
+
552
+ **Mismatch with page content**
553
+
554
+ - Schema doesn't match visible content
555
+ - Ratings for products without reviews shown
556
+ - Prices that don't match displayed prices
557
+
558
+ ---
559
+
560
+ ## Implementation Patterns
561
+
562
+ ### Static Sites
563
+
564
+ - Add JSON-LD directly in HTML template
565
+ - Use includes/partials for reusable schema
566
+
567
+ ### Dynamic Sites (React, Next.js, etc.)
568
+
569
+ - Component that renders schema
570
+ - Server-side rendered for SEO
571
+ - Serialize data to JSON-LD
572
+
573
+ ```jsx
574
+ // Next.js example
575
+ export default function ProductPage({ product }) {
576
+ const schema = {
577
+ '@context': 'https://schema.org',
578
+ '@type': 'Product',
579
+ name: product.name,
580
+ // ... other properties
581
+ };
582
+
583
+ return (
584
+ <>
585
+ <Head>
586
+ <script
587
+ type="application/ld+json"
588
+ dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
589
+ />
590
+ </Head>
591
+ {/* Page content */}
592
+ </>
593
+ );
594
+ }
595
+ ```
596
+
597
+ ### CMS / WordPress
598
+
599
+ - Plugins (Yoast, Rank Math, Schema Pro)
600
+ - Theme modifications
601
+ - Custom fields to structured data
602
+
603
+ ---
604
+
605
+ ## Output Format
606
+
607
+ ### Schema Implementation
608
+
609
+ ```json
610
+ // Full JSON-LD code block
611
+ {
612
+ "@context": "https://schema.org",
613
+ "@type": "..."
614
+ // Complete markup
615
+ }
616
+ ```
617
+
618
+ ### Placement Instructions
619
+
620
+ Where to add the code and how
621
+
622
+ ### Testing Checklist
623
+
624
+ - [ ] Validates in Rich Results Test
625
+ - [ ] No errors or warnings
626
+ - [ ] Matches page content
627
+ - [ ] All required properties included
628
+
629
+ ---
630
+
631
+ ## Questions to Ask
632
+
633
+ If you need more context:
634
+
635
+ 1. What type of page is this?
636
+ 2. What rich results are you hoping to achieve?
637
+ 3. What data is available to populate the schema?
638
+ 4. Is there existing schema on the page?
639
+ 5. What's your tech stack for implementation?
640
+
641
+ ---
642
+
643
+ ## Related Skills
644
+
645
+ - **seo-audit**: For overall SEO including schema review
646
+ - **programmatic-seo**: For templated schema at scale
647
+ - **analytics-tracking**: For measuring rich result impact