mover-os 4.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.

Potentially problematic release.


This version of mover-os might be problematic. Click here for more details.

Files changed (149) hide show
  1. package/README.md +201 -0
  2. package/install.js +1424 -0
  3. package/package.json +35 -0
  4. package/src/hooks/context-staleness.sh +46 -0
  5. package/src/hooks/dirty-tree-guard.sh +33 -0
  6. package/src/hooks/engine-protection.sh +43 -0
  7. package/src/hooks/git-safety.sh +47 -0
  8. package/src/hooks/pre-compact-backup.sh +177 -0
  9. package/src/hooks/session-log-reminder.sh +64 -0
  10. package/src/skills/THIRD-PARTY-LICENSES.md +53 -0
  11. package/src/skills/agent-code-reviewer/SKILL.md +41 -0
  12. package/src/skills/agent-content-researcher/SKILL.md +59 -0
  13. package/src/skills/agent-research-analyst/SKILL.md +53 -0
  14. package/src/skills/agent-security-auditor/SKILL.md +42 -0
  15. package/src/skills/agent-strategy-analyst/SKILL.md +54 -0
  16. package/src/skills/defuddle/SKILL.md +41 -0
  17. package/src/skills/find-bugs/SKILL.md +75 -0
  18. package/src/skills/find-skills/SKILL.md +133 -0
  19. package/src/skills/frontend-design/LICENSE.txt +177 -0
  20. package/src/skills/frontend-design/SKILL.md +42 -0
  21. package/src/skills/human-writer/SKILL.md +185 -0
  22. package/src/skills/json-canvas/SKILL.md +656 -0
  23. package/src/skills/marketingskills/.claude-plugin/marketplace.json +45 -0
  24. package/src/skills/marketingskills/README.md +204 -0
  25. package/src/skills/marketingskills/skills/ab-test-setup/SKILL.md +508 -0
  26. package/src/skills/marketingskills/skills/analytics-tracking/SKILL.md +539 -0
  27. package/src/skills/marketingskills/skills/competitor-alternatives/SKILL.md +750 -0
  28. package/src/skills/marketingskills/skills/copy-editing/SKILL.md +439 -0
  29. package/src/skills/marketingskills/skills/copywriting/SKILL.md +455 -0
  30. package/src/skills/marketingskills/skills/email-sequence/SKILL.md +925 -0
  31. package/src/skills/marketingskills/skills/form-cro/SKILL.md +425 -0
  32. package/src/skills/marketingskills/skills/free-tool-strategy/SKILL.md +576 -0
  33. package/src/skills/marketingskills/skills/launch-strategy/SKILL.md +344 -0
  34. package/src/skills/marketingskills/skills/marketing-ideas/SKILL.md +565 -0
  35. package/src/skills/marketingskills/skills/marketing-psychology/SKILL.md +451 -0
  36. package/src/skills/marketingskills/skills/onboarding-cro/SKILL.md +433 -0
  37. package/src/skills/marketingskills/skills/page-cro/SKILL.md +334 -0
  38. package/src/skills/marketingskills/skills/paid-ads/SKILL.md +551 -0
  39. package/src/skills/marketingskills/skills/paywall-upgrade-cro/SKILL.md +570 -0
  40. package/src/skills/marketingskills/skills/popup-cro/SKILL.md +449 -0
  41. package/src/skills/marketingskills/skills/pricing-strategy/SKILL.md +710 -0
  42. package/src/skills/marketingskills/skills/programmatic-seo/SKILL.md +626 -0
  43. package/src/skills/marketingskills/skills/referral-program/SKILL.md +602 -0
  44. package/src/skills/marketingskills/skills/schema-markup/SKILL.md +596 -0
  45. package/src/skills/marketingskills/skills/seo-audit/SKILL.md +384 -0
  46. package/src/skills/marketingskills/skills/signup-flow-cro/SKILL.md +355 -0
  47. package/src/skills/marketingskills/skills/social-content/SKILL.md +807 -0
  48. package/src/skills/obsidian-bases/SKILL.md +651 -0
  49. package/src/skills/obsidian-cli/SKILL.md +103 -0
  50. package/src/skills/obsidian-markdown/SKILL.md +620 -0
  51. package/src/skills/react-best-practices/SKILL.md +136 -0
  52. package/src/skills/refactoring/SKILL.md +119 -0
  53. package/src/skills/seo-content-writer/SKILL.md +661 -0
  54. package/src/skills/seo-content-writer/references/content-structure-templates.md +875 -0
  55. package/src/skills/seo-content-writer/references/title-formulas.md +339 -0
  56. package/src/skills/skill-creator/LICENSE.txt +202 -0
  57. package/src/skills/skill-creator/SKILL.md +357 -0
  58. package/src/skills/skill-creator/references/output-patterns.md +82 -0
  59. package/src/skills/skill-creator/references/workflows.md +28 -0
  60. package/src/skills/skill-creator/scripts/init_skill.py +303 -0
  61. package/src/skills/skill-creator/scripts/package_skill.py +110 -0
  62. package/src/skills/skill-creator/scripts/quick_validate.py +103 -0
  63. package/src/skills/systematic-debugging/CREATION-LOG.md +119 -0
  64. package/src/skills/systematic-debugging/SKILL.md +296 -0
  65. package/src/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  66. package/src/skills/systematic-debugging/condition-based-waiting.md +115 -0
  67. package/src/skills/systematic-debugging/defense-in-depth.md +122 -0
  68. package/src/skills/systematic-debugging/find-polluter.sh +63 -0
  69. package/src/skills/systematic-debugging/root-cause-tracing.md +169 -0
  70. package/src/skills/systematic-debugging/test-academic.md +14 -0
  71. package/src/skills/systematic-debugging/test-pressure-1.md +58 -0
  72. package/src/skills/systematic-debugging/test-pressure-2.md +68 -0
  73. package/src/skills/systematic-debugging/test-pressure-3.md +69 -0
  74. package/src/skills/ui-ux-pro-max/SKILL.md +386 -0
  75. package/src/skills/webhook-handler-patterns/SKILL.md +81 -0
  76. package/src/skills/webhook-handler-patterns/references/error-handling.md +299 -0
  77. package/src/skills/webhook-handler-patterns/references/frameworks/express.md +295 -0
  78. package/src/skills/webhook-handler-patterns/references/frameworks/fastapi.md +415 -0
  79. package/src/skills/webhook-handler-patterns/references/frameworks/nextjs.md +331 -0
  80. package/src/skills/webhook-handler-patterns/references/handler-sequence.md +51 -0
  81. package/src/skills/webhook-handler-patterns/references/idempotency.md +227 -0
  82. package/src/skills/webhook-handler-patterns/references/retry-logic.md +261 -0
  83. package/src/structure/00_Inbox/.gitkeep +0 -0
  84. package/src/structure/00_Inbox/Quick_Capture.md +5 -0
  85. package/src/structure/01_Projects/.gitkeep +0 -0
  86. package/src/structure/01_Projects/_Template Project/plan.md +55 -0
  87. package/src/structure/01_Projects/_Template Project/project_brief.md +45 -0
  88. package/src/structure/01_Projects/_Template Project/project_state.md +19 -0
  89. package/src/structure/02_Areas/Engine/Active_Context.md +126 -0
  90. package/src/structure/02_Areas/Engine/Auto_Learnings.md +36 -0
  91. package/src/structure/02_Areas/Engine/Dailies/.gitkeep +0 -0
  92. package/src/structure/02_Areas/Engine/Daily_Template.md +130 -0
  93. package/src/structure/02_Areas/Engine/Goals.md +65 -0
  94. package/src/structure/02_Areas/Engine/Identity_Prime_template.md +86 -0
  95. package/src/structure/02_Areas/Engine/Metrics_Log.md +45 -0
  96. package/src/structure/02_Areas/Engine/Monthly Reviews/.gitkeep +0 -0
  97. package/src/structure/02_Areas/Engine/Mover_Dossier.md +120 -0
  98. package/src/structure/02_Areas/Engine/Quarterly Reviews/.gitkeep +0 -0
  99. package/src/structure/02_Areas/Engine/Someday_Maybe.md +51 -0
  100. package/src/structure/02_Areas/Engine/Strategy_template.md +65 -0
  101. package/src/structure/02_Areas/Engine/Weekly Reviews/.gitkeep +0 -0
  102. package/src/structure/03_Library/Cheatsheets/.gitkeep +0 -0
  103. package/src/structure/03_Library/Entities/Decisions/_TEMPLATE.md +38 -0
  104. package/src/structure/03_Library/Entities/Entities MOC.md +49 -0
  105. package/src/structure/03_Library/Entities/Organizations/_TEMPLATE.md +28 -0
  106. package/src/structure/03_Library/Entities/People/_TEMPLATE.md +31 -0
  107. package/src/structure/03_Library/Entities/Places/_TEMPLATE.md +26 -0
  108. package/src/structure/03_Library/Inputs/.gitkeep +0 -0
  109. package/src/structure/03_Library/Inputs/Archive/.gitkeep +0 -0
  110. package/src/structure/03_Library/Inputs/Articles/.gitkeep +0 -0
  111. package/src/structure/03_Library/Inputs/Articles/_TEMPLATE.md +29 -0
  112. package/src/structure/03_Library/Inputs/Books/.gitkeep +0 -0
  113. package/src/structure/03_Library/Inputs/Books/_TEMPLATE.md +41 -0
  114. package/src/structure/03_Library/Inputs/Inputs MOC.md +40 -0
  115. package/src/structure/03_Library/Inputs/Videos/.gitkeep +0 -0
  116. package/src/structure/03_Library/Inputs/Videos/_TEMPLATE.md +29 -0
  117. package/src/structure/03_Library/MOCs/.gitkeep +0 -0
  118. package/src/structure/03_Library/Misc/.gitkeep +0 -0
  119. package/src/structure/03_Library/Principles/.gitkeep +0 -0
  120. package/src/structure/03_Library/Principles/Naval_Leverage.md +65 -0
  121. package/src/structure/03_Library/SOPs/Mover_OS_Architecture.md +74 -0
  122. package/src/structure/03_Library/SOPs/Tech_Doctrine.md +123 -0
  123. package/src/structure/03_Library/SOPs/Tech_Stack.md +55 -0
  124. package/src/structure/03_Library/SOPs/Zone_Operating.md +58 -0
  125. package/src/structure/04_Archives/.gitkeep +0 -0
  126. package/src/system/AI_INSTALL_MANIFEST.md +219 -0
  127. package/src/system/Mover_Global_Rules.md +646 -0
  128. package/src/system/V4_CONTEXT.md +223 -0
  129. package/src/workflows/analyse-day.md +376 -0
  130. package/src/workflows/context.md +24 -0
  131. package/src/workflows/debrief.md +199 -0
  132. package/src/workflows/debug-resistance.md +181 -0
  133. package/src/workflows/harvest.md +240 -0
  134. package/src/workflows/history.md +247 -0
  135. package/src/workflows/ignite.md +696 -0
  136. package/src/workflows/init-plan.md +16 -0
  137. package/src/workflows/log.md +314 -0
  138. package/src/workflows/morning.md +209 -0
  139. package/src/workflows/overview.md +203 -0
  140. package/src/workflows/pivot-strategy.md +218 -0
  141. package/src/workflows/plan-tomorrow.md +286 -0
  142. package/src/workflows/primer.md +209 -0
  143. package/src/workflows/project-notes.md +17 -0
  144. package/src/workflows/reboot.md +201 -0
  145. package/src/workflows/refactor-plan.md +135 -0
  146. package/src/workflows/review-week.md +537 -0
  147. package/src/workflows/setup.md +387 -0
  148. package/src/workflows/update.md +411 -0
  149. package/src/workflows/walkthrough.md +259 -0
@@ -0,0 +1,596 @@
1
+ ---
2
+ name: schema-markup
3
+ 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.
4
+ ---
5
+
6
+ # Schema Markup
7
+
8
+ 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.
9
+
10
+ ## Initial Assessment
11
+
12
+ Before implementing schema, understand:
13
+
14
+ 1. **Page Type**
15
+ - What kind of page is this?
16
+ - What's the primary content?
17
+ - What rich results are possible?
18
+
19
+ 2. **Current State**
20
+ - Any existing schema?
21
+ - Errors in current implementation?
22
+ - Which rich results are already appearing?
23
+
24
+ 3. **Goals**
25
+ - Which rich results are you targeting?
26
+ - What's the business value?
27
+
28
+ ---
29
+
30
+ ## Core Principles
31
+
32
+ ### 1. Accuracy First
33
+ - Schema must accurately represent page content
34
+ - Don't markup content that doesn't exist
35
+ - Keep updated when content changes
36
+
37
+ ### 2. Use JSON-LD
38
+ - Google recommends JSON-LD format
39
+ - Easier to implement and maintain
40
+ - Place in `<head>` or end of `<body>`
41
+
42
+ ### 3. Follow Google's Guidelines
43
+ - Only use markup Google supports
44
+ - Avoid spam tactics
45
+ - Review eligibility requirements
46
+
47
+ ### 4. Validate Everything
48
+ - Test before deploying
49
+ - Monitor Search Console
50
+ - Fix errors promptly
51
+
52
+ ---
53
+
54
+ ## Common Schema Types
55
+
56
+ ### Organization
57
+ **Use for**: Company/brand homepage or about page
58
+
59
+ **Required properties**:
60
+ - name
61
+ - url
62
+
63
+ **Recommended properties**:
64
+ - logo
65
+ - sameAs (social profiles)
66
+ - contactPoint
67
+
68
+ ```json
69
+ {
70
+ "@context": "https://schema.org",
71
+ "@type": "Organization",
72
+ "name": "Example Company",
73
+ "url": "https://example.com",
74
+ "logo": "https://example.com/logo.png",
75
+ "sameAs": [
76
+ "https://twitter.com/example",
77
+ "https://linkedin.com/company/example",
78
+ "https://facebook.com/example"
79
+ ],
80
+ "contactPoint": {
81
+ "@type": "ContactPoint",
82
+ "telephone": "+1-555-555-5555",
83
+ "contactType": "customer service"
84
+ }
85
+ }
86
+ ```
87
+
88
+ ### WebSite (with SearchAction)
89
+ **Use for**: Homepage, enables sitelinks search box
90
+
91
+ **Required properties**:
92
+ - name
93
+ - url
94
+
95
+ **For search box**:
96
+ - potentialAction with SearchAction
97
+
98
+ ```json
99
+ {
100
+ "@context": "https://schema.org",
101
+ "@type": "WebSite",
102
+ "name": "Example",
103
+ "url": "https://example.com",
104
+ "potentialAction": {
105
+ "@type": "SearchAction",
106
+ "target": {
107
+ "@type": "EntryPoint",
108
+ "urlTemplate": "https://example.com/search?q={search_term_string}"
109
+ },
110
+ "query-input": "required name=search_term_string"
111
+ }
112
+ }
113
+ ```
114
+
115
+ ### Article / BlogPosting
116
+ **Use for**: Blog posts, news articles
117
+
118
+ **Required properties**:
119
+ - headline
120
+ - image
121
+ - datePublished
122
+ - author
123
+
124
+ **Recommended properties**:
125
+ - dateModified
126
+ - publisher
127
+ - description
128
+ - mainEntityOfPage
129
+
130
+ ```json
131
+ {
132
+ "@context": "https://schema.org",
133
+ "@type": "Article",
134
+ "headline": "How to Implement Schema Markup",
135
+ "image": "https://example.com/image.jpg",
136
+ "datePublished": "2024-01-15T08:00:00+00:00",
137
+ "dateModified": "2024-01-20T10:00:00+00:00",
138
+ "author": {
139
+ "@type": "Person",
140
+ "name": "Jane Doe",
141
+ "url": "https://example.com/authors/jane"
142
+ },
143
+ "publisher": {
144
+ "@type": "Organization",
145
+ "name": "Example Company",
146
+ "logo": {
147
+ "@type": "ImageObject",
148
+ "url": "https://example.com/logo.png"
149
+ }
150
+ },
151
+ "description": "A complete guide to implementing schema markup...",
152
+ "mainEntityOfPage": {
153
+ "@type": "WebPage",
154
+ "@id": "https://example.com/schema-guide"
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### Product
160
+ **Use for**: Product pages (e-commerce or SaaS)
161
+
162
+ **Required properties**:
163
+ - name
164
+ - image
165
+ - offers (with price and availability)
166
+
167
+ **Recommended properties**:
168
+ - description
169
+ - sku
170
+ - brand
171
+ - aggregateRating
172
+ - review
173
+
174
+ ```json
175
+ {
176
+ "@context": "https://schema.org",
177
+ "@type": "Product",
178
+ "name": "Premium Widget",
179
+ "image": "https://example.com/widget.jpg",
180
+ "description": "Our best-selling widget for professionals",
181
+ "sku": "WIDGET-001",
182
+ "brand": {
183
+ "@type": "Brand",
184
+ "name": "Example Co"
185
+ },
186
+ "offers": {
187
+ "@type": "Offer",
188
+ "url": "https://example.com/products/widget",
189
+ "priceCurrency": "USD",
190
+ "price": "99.99",
191
+ "availability": "https://schema.org/InStock",
192
+ "priceValidUntil": "2024-12-31"
193
+ },
194
+ "aggregateRating": {
195
+ "@type": "AggregateRating",
196
+ "ratingValue": "4.8",
197
+ "reviewCount": "127"
198
+ }
199
+ }
200
+ ```
201
+
202
+ ### SoftwareApplication
203
+ **Use for**: SaaS product pages, app landing pages
204
+
205
+ **Required properties**:
206
+ - name
207
+ - offers (or free indicator)
208
+
209
+ **Recommended properties**:
210
+ - applicationCategory
211
+ - operatingSystem
212
+ - aggregateRating
213
+
214
+ ```json
215
+ {
216
+ "@context": "https://schema.org",
217
+ "@type": "SoftwareApplication",
218
+ "name": "Example App",
219
+ "applicationCategory": "BusinessApplication",
220
+ "operatingSystem": "Web, iOS, Android",
221
+ "offers": {
222
+ "@type": "Offer",
223
+ "price": "0",
224
+ "priceCurrency": "USD"
225
+ },
226
+ "aggregateRating": {
227
+ "@type": "AggregateRating",
228
+ "ratingValue": "4.6",
229
+ "ratingCount": "1250"
230
+ }
231
+ }
232
+ ```
233
+
234
+ ### FAQPage
235
+ **Use for**: Pages with frequently asked questions
236
+
237
+ **Required properties**:
238
+ - mainEntity (array of Question/Answer)
239
+
240
+ ```json
241
+ {
242
+ "@context": "https://schema.org",
243
+ "@type": "FAQPage",
244
+ "mainEntity": [
245
+ {
246
+ "@type": "Question",
247
+ "name": "What is schema markup?",
248
+ "acceptedAnswer": {
249
+ "@type": "Answer",
250
+ "text": "Schema markup is a structured data vocabulary that helps search engines understand your content..."
251
+ }
252
+ },
253
+ {
254
+ "@type": "Question",
255
+ "name": "How do I implement schema?",
256
+ "acceptedAnswer": {
257
+ "@type": "Answer",
258
+ "text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..."
259
+ }
260
+ }
261
+ ]
262
+ }
263
+ ```
264
+
265
+ ### HowTo
266
+ **Use for**: Instructional content, tutorials
267
+
268
+ **Required properties**:
269
+ - name
270
+ - step (array of HowToStep)
271
+
272
+ **Recommended properties**:
273
+ - image
274
+ - totalTime
275
+ - estimatedCost
276
+ - supply/tool
277
+
278
+ ```json
279
+ {
280
+ "@context": "https://schema.org",
281
+ "@type": "HowTo",
282
+ "name": "How to Add Schema Markup to Your Website",
283
+ "description": "A step-by-step guide to implementing JSON-LD schema",
284
+ "totalTime": "PT15M",
285
+ "step": [
286
+ {
287
+ "@type": "HowToStep",
288
+ "name": "Choose your schema type",
289
+ "text": "Identify the appropriate schema type for your page content...",
290
+ "url": "https://example.com/guide#step1"
291
+ },
292
+ {
293
+ "@type": "HowToStep",
294
+ "name": "Write the JSON-LD",
295
+ "text": "Create the JSON-LD markup following schema.org specifications...",
296
+ "url": "https://example.com/guide#step2"
297
+ },
298
+ {
299
+ "@type": "HowToStep",
300
+ "name": "Add to your page",
301
+ "text": "Insert the script tag in your page's head section...",
302
+ "url": "https://example.com/guide#step3"
303
+ }
304
+ ]
305
+ }
306
+ ```
307
+
308
+ ### BreadcrumbList
309
+ **Use for**: Any page with breadcrumb navigation
310
+
311
+ ```json
312
+ {
313
+ "@context": "https://schema.org",
314
+ "@type": "BreadcrumbList",
315
+ "itemListElement": [
316
+ {
317
+ "@type": "ListItem",
318
+ "position": 1,
319
+ "name": "Home",
320
+ "item": "https://example.com"
321
+ },
322
+ {
323
+ "@type": "ListItem",
324
+ "position": 2,
325
+ "name": "Blog",
326
+ "item": "https://example.com/blog"
327
+ },
328
+ {
329
+ "@type": "ListItem",
330
+ "position": 3,
331
+ "name": "SEO Guide",
332
+ "item": "https://example.com/blog/seo-guide"
333
+ }
334
+ ]
335
+ }
336
+ ```
337
+
338
+ ### LocalBusiness
339
+ **Use for**: Local business location pages
340
+
341
+ **Required properties**:
342
+ - name
343
+ - address
344
+ - (Various by business type)
345
+
346
+ ```json
347
+ {
348
+ "@context": "https://schema.org",
349
+ "@type": "LocalBusiness",
350
+ "name": "Example Coffee Shop",
351
+ "image": "https://example.com/shop.jpg",
352
+ "address": {
353
+ "@type": "PostalAddress",
354
+ "streetAddress": "123 Main Street",
355
+ "addressLocality": "San Francisco",
356
+ "addressRegion": "CA",
357
+ "postalCode": "94102",
358
+ "addressCountry": "US"
359
+ },
360
+ "geo": {
361
+ "@type": "GeoCoordinates",
362
+ "latitude": "37.7749",
363
+ "longitude": "-122.4194"
364
+ },
365
+ "telephone": "+1-555-555-5555",
366
+ "openingHoursSpecification": [
367
+ {
368
+ "@type": "OpeningHoursSpecification",
369
+ "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
370
+ "opens": "08:00",
371
+ "closes": "18:00"
372
+ }
373
+ ],
374
+ "priceRange": "$$"
375
+ }
376
+ ```
377
+
378
+ ### Review / AggregateRating
379
+ **Use for**: Review pages or products with reviews
380
+
381
+ Note: Self-serving reviews (reviewing your own product) are against guidelines. Reviews must be from real customers.
382
+
383
+ ```json
384
+ {
385
+ "@context": "https://schema.org",
386
+ "@type": "Product",
387
+ "name": "Example Product",
388
+ "aggregateRating": {
389
+ "@type": "AggregateRating",
390
+ "ratingValue": "4.5",
391
+ "bestRating": "5",
392
+ "worstRating": "1",
393
+ "ratingCount": "523"
394
+ },
395
+ "review": [
396
+ {
397
+ "@type": "Review",
398
+ "author": {
399
+ "@type": "Person",
400
+ "name": "John Smith"
401
+ },
402
+ "datePublished": "2024-01-10",
403
+ "reviewRating": {
404
+ "@type": "Rating",
405
+ "ratingValue": "5"
406
+ },
407
+ "reviewBody": "Excellent product, exceeded my expectations..."
408
+ }
409
+ ]
410
+ }
411
+ ```
412
+
413
+ ### Event
414
+ **Use for**: Event pages, webinars, conferences
415
+
416
+ **Required properties**:
417
+ - name
418
+ - startDate
419
+ - location (or eventAttendanceMode for online)
420
+
421
+ ```json
422
+ {
423
+ "@context": "https://schema.org",
424
+ "@type": "Event",
425
+ "name": "Annual Marketing Conference",
426
+ "startDate": "2024-06-15T09:00:00-07:00",
427
+ "endDate": "2024-06-15T17:00:00-07:00",
428
+ "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
429
+ "eventStatus": "https://schema.org/EventScheduled",
430
+ "location": {
431
+ "@type": "VirtualLocation",
432
+ "url": "https://example.com/conference"
433
+ },
434
+ "image": "https://example.com/conference.jpg",
435
+ "description": "Join us for our annual marketing conference...",
436
+ "offers": {
437
+ "@type": "Offer",
438
+ "url": "https://example.com/conference/tickets",
439
+ "price": "199",
440
+ "priceCurrency": "USD",
441
+ "availability": "https://schema.org/InStock",
442
+ "validFrom": "2024-01-01"
443
+ },
444
+ "performer": {
445
+ "@type": "Organization",
446
+ "name": "Example Company"
447
+ },
448
+ "organizer": {
449
+ "@type": "Organization",
450
+ "name": "Example Company",
451
+ "url": "https://example.com"
452
+ }
453
+ }
454
+ ```
455
+
456
+ ---
457
+
458
+ ## Multiple Schema Types on One Page
459
+
460
+ You can (and often should) have multiple schema types:
461
+
462
+ ```json
463
+ {
464
+ "@context": "https://schema.org",
465
+ "@graph": [
466
+ {
467
+ "@type": "Organization",
468
+ "@id": "https://example.com/#organization",
469
+ "name": "Example Company",
470
+ "url": "https://example.com"
471
+ },
472
+ {
473
+ "@type": "WebSite",
474
+ "@id": "https://example.com/#website",
475
+ "url": "https://example.com",
476
+ "name": "Example",
477
+ "publisher": {
478
+ "@id": "https://example.com/#organization"
479
+ }
480
+ },
481
+ {
482
+ "@type": "BreadcrumbList",
483
+ "itemListElement": [...]
484
+ }
485
+ ]
486
+ }
487
+ ```
488
+
489
+ ---
490
+
491
+ ## Validation and Testing
492
+
493
+ ### Tools
494
+ - **Google Rich Results Test**: https://search.google.com/test/rich-results
495
+ - **Schema.org Validator**: https://validator.schema.org/
496
+ - **Search Console**: Enhancements reports
497
+
498
+ ### Common Errors
499
+
500
+ **Missing required properties**
501
+ - Check Google's documentation for required fields
502
+ - Different from schema.org minimum requirements
503
+
504
+ **Invalid values**
505
+ - Dates must be ISO 8601 format
506
+ - URLs must be fully qualified
507
+ - Enumerations must use exact values
508
+
509
+ **Mismatch with page content**
510
+ - Schema doesn't match visible content
511
+ - Ratings for products without reviews shown
512
+ - Prices that don't match displayed prices
513
+
514
+ ---
515
+
516
+ ## Implementation Patterns
517
+
518
+ ### Static Sites
519
+ - Add JSON-LD directly in HTML template
520
+ - Use includes/partials for reusable schema
521
+
522
+ ### Dynamic Sites (React, Next.js, etc.)
523
+ - Component that renders schema
524
+ - Server-side rendered for SEO
525
+ - Serialize data to JSON-LD
526
+
527
+ ```jsx
528
+ // Next.js example
529
+ export default function ProductPage({ product }) {
530
+ const schema = {
531
+ "@context": "https://schema.org",
532
+ "@type": "Product",
533
+ name: product.name,
534
+ // ... other properties
535
+ };
536
+
537
+ return (
538
+ <>
539
+ <Head>
540
+ <script
541
+ type="application/ld+json"
542
+ dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
543
+ />
544
+ </Head>
545
+ {/* Page content */}
546
+ </>
547
+ );
548
+ }
549
+ ```
550
+
551
+ ### CMS / WordPress
552
+ - Plugins (Yoast, Rank Math, Schema Pro)
553
+ - Theme modifications
554
+ - Custom fields to structured data
555
+
556
+ ---
557
+
558
+ ## Output Format
559
+
560
+ ### Schema Implementation
561
+ ```json
562
+ // Full JSON-LD code block
563
+ {
564
+ "@context": "https://schema.org",
565
+ "@type": "...",
566
+ // Complete markup
567
+ }
568
+ ```
569
+
570
+ ### Placement Instructions
571
+ Where to add the code and how
572
+
573
+ ### Testing Checklist
574
+ - [ ] Validates in Rich Results Test
575
+ - [ ] No errors or warnings
576
+ - [ ] Matches page content
577
+ - [ ] All required properties included
578
+
579
+ ---
580
+
581
+ ## Questions to Ask
582
+
583
+ If you need more context:
584
+ 1. What type of page is this?
585
+ 2. What rich results are you hoping to achieve?
586
+ 3. What data is available to populate the schema?
587
+ 4. Is there existing schema on the page?
588
+ 5. What's your tech stack for implementation?
589
+
590
+ ---
591
+
592
+ ## Related Skills
593
+
594
+ - **seo-audit**: For overall SEO including schema review
595
+ - **programmatic-seo**: For templated schema at scale
596
+ - **analytics-tracking**: For measuring rich result impact