一键导入
gk-cms
Integrate headless CMS (Sanity, Strapi, Payload), define content schemas, and generate typed data fetching queries
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Integrate headless CMS (Sanity, Strapi, Payload), define content schemas, and generate typed data fetching queries
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate precise visual component specs or review implemented UI for design quality and accessibility compliance.
Execute Markdown-based implementation plans by parsing, executing tasks, and updating status.
Validate framework compliance across all agents and skills.
Generate agent and skill files following Gemini Kit templates. Use when creating a new skill or /gk-* command. Use for building agent definitions or extending Gemini Kit.
Audit UI components for WCAG 2.2 AA compliance and generate actionable accessibility fixes
Setup product analytics integration and define event tracking schemas for user behavior measurement
| name | gk-cms |
| agent | developer |
| version | 1.0.0 |
| description | Integrate headless CMS (Sanity, Strapi, Payload), define content schemas, and generate typed data fetching queries |
| tier | optional |
| Flag | Description | Reference |
|---|---|---|
| --setup | Install and configure cms for stack; generates typed client, env vars, and ISR webhook config; requires stack for framework-specific setup | (base skill rules) |
| --schema | Generate content type schema from content_type natural-language description; requires content_type; returns schema definition with SEO fields and draft/publish status | (base skill rules) |
| --query | Generate typed data fetching query from query_description; requires query_description; returns GROQ (Sanity) or REST/GraphQL query with TypeScript response type | (base skill rules) |
| (default) | Audit current CMS integration for gaps: missing TypeScript types, absent ISR config, no error handling, unconfigured cache tags | (base skill rules) |
Senior Full-Stack Engineer — expert in Sanity, Strapi, Payload CMS, Contentful, GROQ query language, Next.js ISR.
Integrate headless CMS into projects with correct client configuration, typed content schemas, and optimized data fetching queries with ISR revalidation.
{
"cms": "string (optional, default: 'sanity') — sanity | strapi | payload | contentful",
"stack": "string[] (optional) — e.g. ['nextjs', 'react']",
"content_type": "string (optional, for --schema) — describe the content type in natural language",
"query_description": "string (optional, for --query) — describe what data to fetch",
"project_id": "string (optional, for Sanity) — Sanity project ID"
}
<mandatory_steps>
blocked with missing_fields if absentblocked with missing_fields: ["content_type"] if --schema is invoked without content_typeblocked with missing_fields: ["query_description"] if --query is invoked without query_descriptionUNSUPPORTED_CMS if cms is not in the supported listAPI_UNREACHABLE if project_id is provided but the CMS API cannot be reachedInternal data contract — consumed by the invoking agent, not displayed to users. Agent formats user-facing output per
04_output.md.
{
"status": "completed | failed | blocked",
"format": "json | markdown",
"result": {
"cms": "string — selected CMS",
"generated_files": [
{ "path": "string", "purpose": "string" }
],
"install_command": "string",
"env_vars_required": ["string"],
"content_schema": {
"name": "string — content type name",
"fields": [{ "name": "string", "type": "string", "required": "boolean", "description": "string" }],
"seo_fields": ["string — field names covering title, description, slug"]
},
"query": "string — data fetching query for --query mode",
"setup_steps": ["string"],
"audit_gaps": ["string — identified gaps for default mode"]
},
"summary": "one sentence describing CMS integration status and key findings",
"confidence": "high | medium | low"
}
Example (completed):
{
"status": "completed",
"format": "json",
"result": {
"provider": "contentful",
"generated_files": [{ "path": "src/lib/contentful.ts", "purpose": "Contentful client + typed query helpers" }],
"content_types": [
{ "name": "BlogPost", "fields": [{ "name": "title", "type": "Symbol", "required": true, "description": "Post title" }], "seo_fields": ["slug", "metaDescription"] }
],
"query": "const posts = await contentfulClient.getEntries({ content_type: 'blogPost' })",
"setup_steps": ["Add CONTENTFUL_SPACE_ID and CONTENTFUL_ACCESS_TOKEN to .env"],
"audit_gaps": []
},
"summary": "Contentful integration scaffolded with BlogPost content type and typed client.",
"confidence": "high"
}