- Add missing author field to cursor plugin marketplace.json
- Restore query-level filter in migration example for performance
- Clarify sameAs vs socialLinks field purposes in EEAT schema
- Add TypeScript types to generateMetadata params in hreflang example
- Revert useCdn to false for SSR getting-started example
- Add NDJSON guardrail back to AGENTS.md boundaries
- Fix npx prefix consistency in typegen watch mode command
- Add schema.org position comment in BreadcrumbList example
- Clarify @graph @context usage and improve JSON-LD security note
- Deduplicate typegen-workflow.md by referencing the canonical rule file
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixes from final review pass by DX and TypeScript expert agents:
- Added "unique query names" requirement (common developer footgun)
- Added tsconfig includes requirement for sanity.types.ts
- Fixed AUTHOR_QUERY example: was array query used as single object
- Added .astro, .svelte, .vue to path glob examples
- Updated Astro rule to use defineQuery instead of raw strings
- Updated get-started guide to use defineQuery (was raw string)
- Updated GROQ maintenance workflow to mention automatic generation
- Updated AGENTS.md boundary to mention typegen.enabled option
- Fixed groq-define-query.md to show auto-inference as primary pattern
- Standardized import path to @/sanity.types
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TypeGen is now GA. Key changes:
- Config moved from deprecated sanity-typegen.json to sanity.cli.ts
- Added automatic type generation (typegen.enabled: true)
- Added watch mode for separate frontend repos
- Added overloadClientMethods for automatic client.fetch() typing
- Added --enforce-required-fields flag
- Added Get and FilterByType type utilities
- Added supported file types (.astro, .svelte, .vue)
- Added @sanity-typegen-ignore for skipping individual queries
- Updated project structure to remove deprecated config file
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Added metadata.version to Claude plugin marketplace.json
- Added owner.url to Cursor plugin marketplace.json
- Pinned skills-ref dependency to exact 0.1.5 (was ^0.1.5)
- Removed emojis from sanity.md command headers for consistency
- Added actual resource file paths to content-modeling SKILL.md
- Softened absolutist language in AGENTS.md (NDJSON no longer prohibited)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Standardized TypeGen output path to sanity.types.ts
- Fixed any typing in Portable Text component to PortableTextBlock[]
- Converted CommonJS require() to ESM import in migration example
- Removed non-standard filter property from migration API example
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Added AI crawler robots.txt directives (GPTBot, ClaudeBot, etc.)
- Added Google AI Overviews optimization section to AEO
- Added BreadcrumbList schema and @graph combining pattern
- Added hreflang/international SEO to technical SEO
- Added JSON-LD sanitization note for dangerouslySetInnerHTML
- Enriched EEAT author schema with sameAs field
- Improved AEO monitoring section and freshness advice
- Noted that sitemap changeFrequency/priority are ignored by Google
- Added actual resource file paths to SKILL.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fixed sample size example: was ~3,000/variant, correct is ~7,600
- Corrected p-value definition (common misinterpretation)
- Added Bayesian methods, multi-armed bandits, and sequential testing
- Added SRM checks and novelty/primacy effects to common pitfalls
- Added actual resource file paths to SKILL.md for agent discovery
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
API version examples were inconsistent across files: 2025-11-01 in GROQ,
2024-01-01 in get-started, v2024-08-01 (with v prefix) in Next.js, and
various other dates in framework rules. Standardized all to 2026-02-01
without the v prefix. Also fixed useCdn contradiction (get-started had
false, Next.js rule said true should be default) and added webhook path
validation to prevent cache-busting abuse.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
AGENTS.md tool names were inconsistent with actual MCP server tools
(e.g. create_document_from_markdown vs create_documents_from_markdown).
Updated both AGENTS.md and README.md to match the current MCP server
tool list, organized into 5 categories: content operations, schema &
development, media & AI, releases, and project management.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove sanity-plugin/ folder from tree and show commands, .claude-plugin,
and .mcp.json at root level to match the new flattened structure.
Co-authored-by: Cursor <cursoragent@cursor.com>
- schema-deprecation-pattern.md: Replace raw client.patch with
defineMigration, at, setIfMissing, unset from sanity/migrate
- migration-html-import.md: Add defineMigration wrapper example
for reproducible HTML imports
- Add Google source link for Core Web Vitals thresholds
- Update FID to INP (current metric as of 2024)
- Add "(Next.js example)" labels to framework-specific sections
- pte-custom-components.md: Use generic <a> with tip about framework Link components
- schema-array-keys.md: Remove unrealistic Math.random() key example
- separation-of-concerns.md: Make naming examples more specific
- groq-define-query.md: Remove redundant Option C (plain defineQuery)
- image-hotspot.md: Remove unrelated alt text from hotspot example