원클릭으로
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"
}