[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-contentful-contentful-help":3,"mdc-pgrm8x-key":31,"related-org-contentful-contentful-help":1626,"related-repo-contentful-contentful-help":1727},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"contentful-help","configure and diagnose Contentful projects","Diagnose, configure, and look up Contentful topics. Trigger keywords: contentful help, contentful doctor, contentful setup",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"contentful","Contentful","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcontentful.png",[12,14,17],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Documentation","documentation",{"name":18,"slug":19,"type":13},"CMS","cms",61,"https:\u002F\u002Fgithub.com\u002Fcontentful\u002Fskill-kit","2026-07-12T08:48:00.085365",null,0,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"TypeScript SDK for building agent skills as typed state machines — define steps, validate outputs, compile to self-contained executables.","https:\u002F\u002Fgithub.com\u002Fcontentful\u002Fskill-kit\u002Ftree\u002FHEAD\u002Fexamples\u002Fcontentful-help\u002Fskill","---\nname: contentful-help\ndescription: 'Diagnose, configure, and look up Contentful topics. Trigger keywords: contentful help, contentful doctor, contentful setup'\nmetadata:\n  version: '1.0.0'\nargument-hint: '[doctor|setup]'\nallowed-tools: 'Bash(scripts\u002Frun *) Read mcp__contentful-help__start mcp__contentful-help__advance mcp__contentful-help__topic mcp__contentful-help__topics'\ndisable-model-invocation: true\n---\n\n# contentful-help\n\nThis skill is a structured workflow. You interact with it via MCP tools (preferred) or a\nCLI binary (fallback), reading its JSON output, following the instructions in the `prompt`\nfield, and passing your response back. **Do not show the raw JSON or tool calls to the user.**\n\n**Use MCP tools if available.** If you have `mcp__contentful-help__start` and\n`mcp__contentful-help__advance`, use MCP mode. Only fall back to CLI mode if MCP tools\nare not available in your environment.\n\n## How this skill works\n\nThis skill was built with skill-kit, a structured workflow engine. Each step provides\na prompt containing XML-tagged sections:\n\n- **`\u003Csystem>`** — Behavioral directives: persona, tone, or constraints. Follow as\n  guidelines for how to behave, not as tasks to relay to the user.\n- **`\u003Cprompt>`** — Task instructions: what to do, what context to consider, what to produce.\n- **`\u003Cask-user>`** — Ask the user a question. Contains `\u003Coption>` children for structured\n  choices, or `type=\"open\"` for free-form conversation.\n- **`\u003Cconfirm>`** — Binary yes\u002Fno confirmation. Attributes: `default`, `destructive`.\n- **`\u003Cplan>`** — Present a plan for approval. Contains `\u003Cstep>` children.\n- **`\u003Cchecklist>`** — Create tracked work items. Contains `\u003Citem>` children with status.\n- **`\u003Csubagent>`** — Delegate work to an isolated sub-agent. If `no-recurse` is set,\n  the subagent must not invoke the skill named in the attribute.\n- **`\u003Crendered>`** — Pre-rendered output. Emit verbatim — no edits, no added commentary.\n\nA step may contain one or more of these sections in sequence. Follow them in order.\n\nThe skill author composed these sections to guide your behavior. The tags and tool\nmappings are generated by the SDK based on the author's intent and your host's\ncapabilities. A skill-level system directive may appear in the preamble — it applies\nto all steps unless a step includes its own `\u003Csystem>` override.\n\nThe **preamble** (sent on the first step) contains a table mapping each tag to the\nspecific tool available in your environment. Refer to it throughout the workflow.\n\n## How to run this skill\n\n### MCP mode (preferred)\n\nIf you have MCP tools for this skill (e.g., `mcp__contentful-help__start` and\n`mcp__contentful-help__advance`), use them instead of the CLI:\n\n1. Call the `start` tool (with `params` if the skill requires them).\n2. Read the `preamble` field (first call only). It maps XML tags to your available tools.\n3. Follow the `prompt` instructions. Produce a JSON object matching the `schema`.\n4. Call the `advance` tool with the `session`, `step`, and `output`.\n5. Repeat steps 3-4 until `status` is `\"done\"`.\n\nIf you get `status: \"error\"` with `retry: true`, fix your output and resubmit.\n**Do not show raw JSON, session IDs, or MCP tool calls to the user.**\n\nSkip the rest of this section — the CLI instructions below are only needed when\nMCP tools are not available.\n\n### CLI mode (fallback)\n\nThis SKILL.md file is inside the skill directory. Resolve the **absolute path** to `scripts\u002Frun`\nfrom this file's location (e.g., `\u002Fpath\u002Fto\u002Fskill\u002Fscripts\u002Frun`). Use the absolute path in all\nBash commands — do not `cd` into the skill directory.\n\nIn the examples below, `\u003Cskill>\u002Fscripts\u002Frun` is a placeholder for this absolute path.\n\n### Detect your host\n\nDetermine which agent host you are running in, and pass it as `--host`:\n\n- Claude Code: `--host claude-code`\n- Codex: `--host codex`\n- OpenCode: `--host opencode`\n- Gemini CLI: `--host gemini-cli`\n- Cline: `--host cline`\n- Roo Code: `--host roo-code`\n- Kilo Code: `--host kilo-code`\n- Cursor: `--host cursor`\n- Amp: `--host amp`\n- Unknown\u002Fother: omit the flag (defaults to generic)\n\n### Report your tools\n\nPass the tools you have available as a comma-separated `--tools` flag on the **start**\ncommand. The session remembers them — you don't need to pass `--tools` on advance.\n\nWhen `--host` is provided, `--tools` is merged with the host's known tool registry.\nThis means partial reporting is handled gracefully — the registry fills in any tools\nyou omit. If `--tools` is omitted entirely, the skill infers tools from `--host`.\nIf both are omitted, all interactions use generic fallbacks.\n\n### Subagent invocations\n\nIf you are a **subagent** (spawned by another agent, not the top-level agent the user\nis talking to), add `--subagent` to the start command. This tells the skill that your\nreported tools are a genuine subset — the skill will not merge them with the host registry.\n\nWithout `--subagent`, the skill assumes you are a top-level agent and merges your tools\nwith the registry (since top-level agents often under-report their tools).\n\n## Parameters\n\nThis skill takes no parameters. Pass `--params '{}'`.\n\n### Step 1: Start with a session\n\n```bash\n\u003Cskill>\u002Fscripts\u002Frun --params '{}' --host claude-code --tools \u003Cyour-tools> --session new 2>\u002Fdev\u002Fnull\n```\n\nThis returns a JSON pointer with `sessionId`, `file`, and `line`. The `line` field tells you\nwhich line to read — it will be `2`, not `1` (line 1 is an internal header, never read it).\n\nRead **only** line `line` from `file`. It contains the step prompt, schema, and preamble.\n\n**Read the `preamble` first.** It contains a table mapping XML tags to the tools\navailable in your environment. Refer to it throughout the workflow.\n\n### Step 2: Follow the prompt\n\nRead the `prompt` field. It contains XML-tagged sections (described in \"How this skill\nworks\" above): `\u003Csystem>` directives to follow, `\u003Cprompt>` instructions to act on, and\ninteraction tags (`\u003Cask-user>`, `\u003Cconfirm>`, `\u003Cplan>`, `\u003Cchecklist>`, `\u003Csubagent>`)\nto execute using the tools mapped in the preamble. If a `\u003Crendered>` block appears,\nemit its content verbatim.\n\nProduce a JSON object matching the `schema`.\n\n### Step 3: Advance\n\nPass your output back with the step name:\n\n```bash\n\u003Cskill>\u002Fscripts\u002Frun advance --step \u003Cstep-name> --output '\u003Cyour-json>' --session abc123 2>\u002Fdev\u002Fnull\n```\n\nThis returns a single line number (e.g., `4`). Read **exactly and only that line** from the session file — it contains the next prompt. Do not read any other lines.\n\n### Step 4: Repeat until done\n\nKeep advancing until the line you read contains `\"type\":\"done\"`. The `finalOutput` field\ncontains the skill's result. Present it to the user.\n\n### Step 5: Cleanup\n\nAfter presenting the result, remove the session file:\n\n```bash\n\u003Cskill>\u002Fscripts\u002Frun cleanup --session \u003Csession-id> 2>\u002Fdev\u002Fnull\n```\n\n### Important\n\n- **Never show raw JSON output or Bash commands to the user.** The user sees your natural\n  language responses, not the protocol.\n- **If you get a validation error** (the response has `\"error\": \"validation\"` or `\"type\":\"error\"`),\n  read the `message` field, fix your output, and retry the same step.\n\n## Steps in this skill\n\n- **choose**: (dynamic)\n- **get-space**: Ask the user for their Contentful space ID, or detect it from CONTENTFUL_SPACE_ID in the environm...\n- **ask-topic**: (dynamic)\n\n## Sub-skills\n\nThis skill contains sub-skills that the workflow routes to automatically.\nStart the skill normally — the dispatcher will determine which sub-skill to use.\nOnly use direct sub-skill access if the user explicitly requests a specific sub-skill by name.\n\nSub-skill step names are prefixed: `\u003Csubskill>\u002F\u003Cstep>` (e.g., `doctor\u002Fdiagnose`).\n\n### Direct sub-skill access\n\n```bash\n\u003Cskill>\u002Fscripts\u002Frun \u003Csubskill> --params '\u003Cjson>' --session new\n\u003Cskill>\u002Fscripts\u002Frun \u003Csubskill> advance --session \u003Cid>\n```\n\n### Available sub-skills\n\n- **doctor**: Diagnose and fix common Contentful issues. — params: `spaceId` (string)\n- **setup**: Guided Contentful space setup and configuration.\n\n## Reference topics\n\nQuick-reference topics accessible without running the full workflow:\n\n```bash\n\u003Cskill>\u002Fscripts\u002Frun topics              # list all topics\n\u003Cskill>\u002Fscripts\u002Frun topic \u003Cname>         # load a specific topic\n```\n\n- **rate-limits**: API rate limits and throttling\n- **locales**: Content localization and locale configuration\n",{"data":32,"body":38},{"name":4,"description":6,"metadata":33,"argument-hint":35,"allowed-tools":36,"disable-model-invocation":37},{"version":34},"1.0.0","[doctor|setup]","Bash(scripts\u002Frun *) Read mcp__contentful-help__start mcp__contentful-help__advance mcp__contentful-help__topic mcp__contentful-help__topics",true,{"type":39,"children":40},"root",[41,48,69,95,102,107,280,285,297,309,315,322,340,450,476,481,487,523,536,542,555,662,668,694,727,733,753,765,771,783,789,876,925,951,967,973,1036,1047,1053,1058,1129,1149,1155,1175,1181,1186,1235,1241,1288,1294,1326,1332,1337,1358,1364,1478,1484,1515,1521,1526,1597,1620],{"type":42,"tag":43,"props":44,"children":45},"element","h1",{"id":4},[46],{"type":47,"value":4},"text",{"type":42,"tag":49,"props":50,"children":51},"p",{},[52,54,61,63],{"type":47,"value":53},"This skill is a structured workflow. You interact with it via MCP tools (preferred) or a\nCLI binary (fallback), reading its JSON output, following the instructions in the ",{"type":42,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":47,"value":60},"prompt",{"type":47,"value":62},"\nfield, and passing your response back. ",{"type":42,"tag":64,"props":65,"children":66},"strong",{},[67],{"type":47,"value":68},"Do not show the raw JSON or tool calls to the user.",{"type":42,"tag":49,"props":70,"children":71},{},[72,77,79,85,87,93],{"type":42,"tag":64,"props":73,"children":74},{},[75],{"type":47,"value":76},"Use MCP tools if available.",{"type":47,"value":78}," If you have ",{"type":42,"tag":55,"props":80,"children":82},{"className":81},[],[83],{"type":47,"value":84},"mcp__contentful-help__start",{"type":47,"value":86}," and\n",{"type":42,"tag":55,"props":88,"children":90},{"className":89},[],[91],{"type":47,"value":92},"mcp__contentful-help__advance",{"type":47,"value":94},", use MCP mode. Only fall back to CLI mode if MCP tools\nare not available in your environment.",{"type":42,"tag":96,"props":97,"children":99},"h2",{"id":98},"how-this-skill-works",[100],{"type":47,"value":101},"How this skill works",{"type":42,"tag":49,"props":103,"children":104},{},[105],{"type":47,"value":106},"This skill was built with skill-kit, a structured workflow engine. Each step provides\na prompt containing XML-tagged sections:",{"type":42,"tag":108,"props":109,"children":110},"ul",{},[111,126,140,170,200,222,244,266],{"type":42,"tag":112,"props":113,"children":114},"li",{},[115,124],{"type":42,"tag":64,"props":116,"children":117},{},[118],{"type":42,"tag":55,"props":119,"children":121},{"className":120},[],[122],{"type":47,"value":123},"\u003Csystem>",{"type":47,"value":125}," — Behavioral directives: persona, tone, or constraints. Follow as\nguidelines for how to behave, not as tasks to relay to the user.",{"type":42,"tag":112,"props":127,"children":128},{},[129,138],{"type":42,"tag":64,"props":130,"children":131},{},[132],{"type":42,"tag":55,"props":133,"children":135},{"className":134},[],[136],{"type":47,"value":137},"\u003Cprompt>",{"type":47,"value":139}," — Task instructions: what to do, what context to consider, what to produce.",{"type":42,"tag":112,"props":141,"children":142},{},[143,152,154,160,162,168],{"type":42,"tag":64,"props":144,"children":145},{},[146],{"type":42,"tag":55,"props":147,"children":149},{"className":148},[],[150],{"type":47,"value":151},"\u003Cask-user>",{"type":47,"value":153}," — Ask the user a question. Contains ",{"type":42,"tag":55,"props":155,"children":157},{"className":156},[],[158],{"type":47,"value":159},"\u003Coption>",{"type":47,"value":161}," children for structured\nchoices, or ",{"type":42,"tag":55,"props":163,"children":165},{"className":164},[],[166],{"type":47,"value":167},"type=\"open\"",{"type":47,"value":169}," for free-form conversation.",{"type":42,"tag":112,"props":171,"children":172},{},[173,182,184,190,192,198],{"type":42,"tag":64,"props":174,"children":175},{},[176],{"type":42,"tag":55,"props":177,"children":179},{"className":178},[],[180],{"type":47,"value":181},"\u003Cconfirm>",{"type":47,"value":183}," — Binary yes\u002Fno confirmation. Attributes: ",{"type":42,"tag":55,"props":185,"children":187},{"className":186},[],[188],{"type":47,"value":189},"default",{"type":47,"value":191},", ",{"type":42,"tag":55,"props":193,"children":195},{"className":194},[],[196],{"type":47,"value":197},"destructive",{"type":47,"value":199},".",{"type":42,"tag":112,"props":201,"children":202},{},[203,212,214,220],{"type":42,"tag":64,"props":204,"children":205},{},[206],{"type":42,"tag":55,"props":207,"children":209},{"className":208},[],[210],{"type":47,"value":211},"\u003Cplan>",{"type":47,"value":213}," — Present a plan for approval. Contains ",{"type":42,"tag":55,"props":215,"children":217},{"className":216},[],[218],{"type":47,"value":219},"\u003Cstep>",{"type":47,"value":221}," children.",{"type":42,"tag":112,"props":223,"children":224},{},[225,234,236,242],{"type":42,"tag":64,"props":226,"children":227},{},[228],{"type":42,"tag":55,"props":229,"children":231},{"className":230},[],[232],{"type":47,"value":233},"\u003Cchecklist>",{"type":47,"value":235}," — Create tracked work items. Contains ",{"type":42,"tag":55,"props":237,"children":239},{"className":238},[],[240],{"type":47,"value":241},"\u003Citem>",{"type":47,"value":243}," children with status.",{"type":42,"tag":112,"props":245,"children":246},{},[247,256,258,264],{"type":42,"tag":64,"props":248,"children":249},{},[250],{"type":42,"tag":55,"props":251,"children":253},{"className":252},[],[254],{"type":47,"value":255},"\u003Csubagent>",{"type":47,"value":257}," — Delegate work to an isolated sub-agent. If ",{"type":42,"tag":55,"props":259,"children":261},{"className":260},[],[262],{"type":47,"value":263},"no-recurse",{"type":47,"value":265}," is set,\nthe subagent must not invoke the skill named in the attribute.",{"type":42,"tag":112,"props":267,"children":268},{},[269,278],{"type":42,"tag":64,"props":270,"children":271},{},[272],{"type":42,"tag":55,"props":273,"children":275},{"className":274},[],[276],{"type":47,"value":277},"\u003Crendered>",{"type":47,"value":279}," — Pre-rendered output. Emit verbatim — no edits, no added commentary.",{"type":42,"tag":49,"props":281,"children":282},{},[283],{"type":47,"value":284},"A step may contain one or more of these sections in sequence. Follow them in order.",{"type":42,"tag":49,"props":286,"children":287},{},[288,290,295],{"type":47,"value":289},"The skill author composed these sections to guide your behavior. The tags and tool\nmappings are generated by the SDK based on the author's intent and your host's\ncapabilities. A skill-level system directive may appear in the preamble — it applies\nto all steps unless a step includes its own ",{"type":42,"tag":55,"props":291,"children":293},{"className":292},[],[294],{"type":47,"value":123},{"type":47,"value":296}," override.",{"type":42,"tag":49,"props":298,"children":299},{},[300,302,307],{"type":47,"value":301},"The ",{"type":42,"tag":64,"props":303,"children":304},{},[305],{"type":47,"value":306},"preamble",{"type":47,"value":308}," (sent on the first step) contains a table mapping each tag to the\nspecific tool available in your environment. Refer to it throughout the workflow.",{"type":42,"tag":96,"props":310,"children":312},{"id":311},"how-to-run-this-skill",[313],{"type":47,"value":314},"How to run this skill",{"type":42,"tag":316,"props":317,"children":319},"h3",{"id":318},"mcp-mode-preferred",[320],{"type":47,"value":321},"MCP mode (preferred)",{"type":42,"tag":49,"props":323,"children":324},{},[325,327,332,333,338],{"type":47,"value":326},"If you have MCP tools for this skill (e.g., ",{"type":42,"tag":55,"props":328,"children":330},{"className":329},[],[331],{"type":47,"value":84},{"type":47,"value":86},{"type":42,"tag":55,"props":334,"children":336},{"className":335},[],[337],{"type":47,"value":92},{"type":47,"value":339},"), use them instead of the CLI:",{"type":42,"tag":341,"props":342,"children":343},"ol",{},[344,365,377,396,430],{"type":42,"tag":112,"props":345,"children":346},{},[347,349,355,357,363],{"type":47,"value":348},"Call the ",{"type":42,"tag":55,"props":350,"children":352},{"className":351},[],[353],{"type":47,"value":354},"start",{"type":47,"value":356}," tool (with ",{"type":42,"tag":55,"props":358,"children":360},{"className":359},[],[361],{"type":47,"value":362},"params",{"type":47,"value":364}," if the skill requires them).",{"type":42,"tag":112,"props":366,"children":367},{},[368,370,375],{"type":47,"value":369},"Read the ",{"type":42,"tag":55,"props":371,"children":373},{"className":372},[],[374],{"type":47,"value":306},{"type":47,"value":376}," field (first call only). It maps XML tags to your available tools.",{"type":42,"tag":112,"props":378,"children":379},{},[380,382,387,389,395],{"type":47,"value":381},"Follow the ",{"type":42,"tag":55,"props":383,"children":385},{"className":384},[],[386],{"type":47,"value":60},{"type":47,"value":388}," instructions. Produce a JSON object matching the ",{"type":42,"tag":55,"props":390,"children":392},{"className":391},[],[393],{"type":47,"value":394},"schema",{"type":47,"value":199},{"type":42,"tag":112,"props":397,"children":398},{},[399,400,406,408,414,415,421,423,429],{"type":47,"value":348},{"type":42,"tag":55,"props":401,"children":403},{"className":402},[],[404],{"type":47,"value":405},"advance",{"type":47,"value":407}," tool with the ",{"type":42,"tag":55,"props":409,"children":411},{"className":410},[],[412],{"type":47,"value":413},"session",{"type":47,"value":191},{"type":42,"tag":55,"props":416,"children":418},{"className":417},[],[419],{"type":47,"value":420},"step",{"type":47,"value":422},", and ",{"type":42,"tag":55,"props":424,"children":426},{"className":425},[],[427],{"type":47,"value":428},"output",{"type":47,"value":199},{"type":42,"tag":112,"props":431,"children":432},{},[433,435,441,443,449],{"type":47,"value":434},"Repeat steps 3-4 until ",{"type":42,"tag":55,"props":436,"children":438},{"className":437},[],[439],{"type":47,"value":440},"status",{"type":47,"value":442}," is ",{"type":42,"tag":55,"props":444,"children":446},{"className":445},[],[447],{"type":47,"value":448},"\"done\"",{"type":47,"value":199},{"type":42,"tag":49,"props":451,"children":452},{},[453,455,461,463,469,471],{"type":47,"value":454},"If you get ",{"type":42,"tag":55,"props":456,"children":458},{"className":457},[],[459],{"type":47,"value":460},"status: \"error\"",{"type":47,"value":462}," with ",{"type":42,"tag":55,"props":464,"children":466},{"className":465},[],[467],{"type":47,"value":468},"retry: true",{"type":47,"value":470},", fix your output and resubmit.\n",{"type":42,"tag":64,"props":472,"children":473},{},[474],{"type":47,"value":475},"Do not show raw JSON, session IDs, or MCP tool calls to the user.",{"type":42,"tag":49,"props":477,"children":478},{},[479],{"type":47,"value":480},"Skip the rest of this section — the CLI instructions below are only needed when\nMCP tools are not available.",{"type":42,"tag":316,"props":482,"children":484},{"id":483},"cli-mode-fallback",[485],{"type":47,"value":486},"CLI mode (fallback)",{"type":42,"tag":49,"props":488,"children":489},{},[490,492,497,499,505,507,513,515,521],{"type":47,"value":491},"This SKILL.md file is inside the skill directory. Resolve the ",{"type":42,"tag":64,"props":493,"children":494},{},[495],{"type":47,"value":496},"absolute path",{"type":47,"value":498}," to ",{"type":42,"tag":55,"props":500,"children":502},{"className":501},[],[503],{"type":47,"value":504},"scripts\u002Frun",{"type":47,"value":506},"\nfrom this file's location (e.g., ",{"type":42,"tag":55,"props":508,"children":510},{"className":509},[],[511],{"type":47,"value":512},"\u002Fpath\u002Fto\u002Fskill\u002Fscripts\u002Frun",{"type":47,"value":514},"). Use the absolute path in all\nBash commands — do not ",{"type":42,"tag":55,"props":516,"children":518},{"className":517},[],[519],{"type":47,"value":520},"cd",{"type":47,"value":522}," into the skill directory.",{"type":42,"tag":49,"props":524,"children":525},{},[526,528,534],{"type":47,"value":527},"In the examples below, ",{"type":42,"tag":55,"props":529,"children":531},{"className":530},[],[532],{"type":47,"value":533},"\u003Cskill>\u002Fscripts\u002Frun",{"type":47,"value":535}," is a placeholder for this absolute path.",{"type":42,"tag":316,"props":537,"children":539},{"id":538},"detect-your-host",[540],{"type":47,"value":541},"Detect your host",{"type":42,"tag":49,"props":543,"children":544},{},[545,547,553],{"type":47,"value":546},"Determine which agent host you are running in, and pass it as ",{"type":42,"tag":55,"props":548,"children":550},{"className":549},[],[551],{"type":47,"value":552},"--host",{"type":47,"value":554},":",{"type":42,"tag":108,"props":556,"children":557},{},[558,569,580,591,602,613,624,635,646,657],{"type":42,"tag":112,"props":559,"children":560},{},[561,563],{"type":47,"value":562},"Claude Code: ",{"type":42,"tag":55,"props":564,"children":566},{"className":565},[],[567],{"type":47,"value":568},"--host claude-code",{"type":42,"tag":112,"props":570,"children":571},{},[572,574],{"type":47,"value":573},"Codex: ",{"type":42,"tag":55,"props":575,"children":577},{"className":576},[],[578],{"type":47,"value":579},"--host codex",{"type":42,"tag":112,"props":581,"children":582},{},[583,585],{"type":47,"value":584},"OpenCode: ",{"type":42,"tag":55,"props":586,"children":588},{"className":587},[],[589],{"type":47,"value":590},"--host opencode",{"type":42,"tag":112,"props":592,"children":593},{},[594,596],{"type":47,"value":595},"Gemini CLI: ",{"type":42,"tag":55,"props":597,"children":599},{"className":598},[],[600],{"type":47,"value":601},"--host gemini-cli",{"type":42,"tag":112,"props":603,"children":604},{},[605,607],{"type":47,"value":606},"Cline: ",{"type":42,"tag":55,"props":608,"children":610},{"className":609},[],[611],{"type":47,"value":612},"--host cline",{"type":42,"tag":112,"props":614,"children":615},{},[616,618],{"type":47,"value":617},"Roo Code: ",{"type":42,"tag":55,"props":619,"children":621},{"className":620},[],[622],{"type":47,"value":623},"--host roo-code",{"type":42,"tag":112,"props":625,"children":626},{},[627,629],{"type":47,"value":628},"Kilo Code: ",{"type":42,"tag":55,"props":630,"children":632},{"className":631},[],[633],{"type":47,"value":634},"--host kilo-code",{"type":42,"tag":112,"props":636,"children":637},{},[638,640],{"type":47,"value":639},"Cursor: ",{"type":42,"tag":55,"props":641,"children":643},{"className":642},[],[644],{"type":47,"value":645},"--host cursor",{"type":42,"tag":112,"props":647,"children":648},{},[649,651],{"type":47,"value":650},"Amp: ",{"type":42,"tag":55,"props":652,"children":654},{"className":653},[],[655],{"type":47,"value":656},"--host amp",{"type":42,"tag":112,"props":658,"children":659},{},[660],{"type":47,"value":661},"Unknown\u002Fother: omit the flag (defaults to generic)",{"type":42,"tag":316,"props":663,"children":665},{"id":664},"report-your-tools",[666],{"type":47,"value":667},"Report your tools",{"type":42,"tag":49,"props":669,"children":670},{},[671,673,679,681,685,687,692],{"type":47,"value":672},"Pass the tools you have available as a comma-separated ",{"type":42,"tag":55,"props":674,"children":676},{"className":675},[],[677],{"type":47,"value":678},"--tools",{"type":47,"value":680}," flag on the ",{"type":42,"tag":64,"props":682,"children":683},{},[684],{"type":47,"value":354},{"type":47,"value":686},"\ncommand. The session remembers them — you don't need to pass ",{"type":42,"tag":55,"props":688,"children":690},{"className":689},[],[691],{"type":47,"value":678},{"type":47,"value":693}," on advance.",{"type":42,"tag":49,"props":695,"children":696},{},[697,699,704,706,711,713,718,720,725],{"type":47,"value":698},"When ",{"type":42,"tag":55,"props":700,"children":702},{"className":701},[],[703],{"type":47,"value":552},{"type":47,"value":705}," is provided, ",{"type":42,"tag":55,"props":707,"children":709},{"className":708},[],[710],{"type":47,"value":678},{"type":47,"value":712}," is merged with the host's known tool registry.\nThis means partial reporting is handled gracefully — the registry fills in any tools\nyou omit. If ",{"type":42,"tag":55,"props":714,"children":716},{"className":715},[],[717],{"type":47,"value":678},{"type":47,"value":719}," is omitted entirely, the skill infers tools from ",{"type":42,"tag":55,"props":721,"children":723},{"className":722},[],[724],{"type":47,"value":552},{"type":47,"value":726},".\nIf both are omitted, all interactions use generic fallbacks.",{"type":42,"tag":316,"props":728,"children":730},{"id":729},"subagent-invocations",[731],{"type":47,"value":732},"Subagent invocations",{"type":42,"tag":49,"props":734,"children":735},{},[736,738,743,745,751],{"type":47,"value":737},"If you are a ",{"type":42,"tag":64,"props":739,"children":740},{},[741],{"type":47,"value":742},"subagent",{"type":47,"value":744}," (spawned by another agent, not the top-level agent the user\nis talking to), add ",{"type":42,"tag":55,"props":746,"children":748},{"className":747},[],[749],{"type":47,"value":750},"--subagent",{"type":47,"value":752}," to the start command. This tells the skill that your\nreported tools are a genuine subset — the skill will not merge them with the host registry.",{"type":42,"tag":49,"props":754,"children":755},{},[756,758,763],{"type":47,"value":757},"Without ",{"type":42,"tag":55,"props":759,"children":761},{"className":760},[],[762],{"type":47,"value":750},{"type":47,"value":764},", the skill assumes you are a top-level agent and merges your tools\nwith the registry (since top-level agents often under-report their tools).",{"type":42,"tag":96,"props":766,"children":768},{"id":767},"parameters",[769],{"type":47,"value":770},"Parameters",{"type":42,"tag":49,"props":772,"children":773},{},[774,776,782],{"type":47,"value":775},"This skill takes no parameters. Pass ",{"type":42,"tag":55,"props":777,"children":779},{"className":778},[],[780],{"type":47,"value":781},"--params '{}'",{"type":47,"value":199},{"type":42,"tag":316,"props":784,"children":786},{"id":785},"step-1-start-with-a-session",[787],{"type":47,"value":788},"Step 1: Start with a session",{"type":42,"tag":790,"props":791,"children":796},"pre",{"className":792,"code":793,"language":794,"meta":795,"style":795},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cskill>\u002Fscripts\u002Frun --params '{}' --host claude-code --tools \u003Cyour-tools> --session new 2>\u002Fdev\u002Fnull\n","bash","",[797],{"type":42,"tag":55,"props":798,"children":799},{"__ignoreMap":795},[800],{"type":42,"tag":801,"props":802,"children":805},"span",{"class":803,"line":804},"line",1,[806,812,818,823,828,833,839,843,848,852,857,861,866,871],{"type":42,"tag":801,"props":807,"children":809},{"style":808},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[810],{"type":47,"value":811},"\u003C",{"type":42,"tag":801,"props":813,"children":815},{"style":814},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[816],{"type":47,"value":817},"skill",{"type":42,"tag":801,"props":819,"children":820},{"style":808},[821],{"type":47,"value":822},">",{"type":42,"tag":801,"props":824,"children":825},{"style":814},[826],{"type":47,"value":827},"\u002Fscripts\u002Frun --params ",{"type":42,"tag":801,"props":829,"children":830},{"style":808},[831],{"type":47,"value":832},"'",{"type":42,"tag":801,"props":834,"children":836},{"style":835},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[837],{"type":47,"value":838},"{}",{"type":42,"tag":801,"props":840,"children":841},{"style":808},[842],{"type":47,"value":832},{"type":42,"tag":801,"props":844,"children":845},{"style":814},[846],{"type":47,"value":847}," --host claude-code --tools ",{"type":42,"tag":801,"props":849,"children":850},{"style":808},[851],{"type":47,"value":811},{"type":42,"tag":801,"props":853,"children":854},{"style":814},[855],{"type":47,"value":856},"your-tools",{"type":42,"tag":801,"props":858,"children":859},{"style":808},[860],{"type":47,"value":822},{"type":42,"tag":801,"props":862,"children":863},{"style":814},[864],{"type":47,"value":865}," --session new ",{"type":42,"tag":801,"props":867,"children":868},{"style":808},[869],{"type":47,"value":870},"2>",{"type":42,"tag":801,"props":872,"children":873},{"style":814},[874],{"type":47,"value":875},"\u002Fdev\u002Fnull\n",{"type":42,"tag":49,"props":877,"children":878},{},[879,881,887,888,894,895,900,902,907,909,915,917,923],{"type":47,"value":880},"This returns a JSON pointer with ",{"type":42,"tag":55,"props":882,"children":884},{"className":883},[],[885],{"type":47,"value":886},"sessionId",{"type":47,"value":191},{"type":42,"tag":55,"props":889,"children":891},{"className":890},[],[892],{"type":47,"value":893},"file",{"type":47,"value":422},{"type":42,"tag":55,"props":896,"children":898},{"className":897},[],[899],{"type":47,"value":803},{"type":47,"value":901},". The ",{"type":42,"tag":55,"props":903,"children":905},{"className":904},[],[906],{"type":47,"value":803},{"type":47,"value":908}," field tells you\nwhich line to read — it will be ",{"type":42,"tag":55,"props":910,"children":912},{"className":911},[],[913],{"type":47,"value":914},"2",{"type":47,"value":916},", not ",{"type":42,"tag":55,"props":918,"children":920},{"className":919},[],[921],{"type":47,"value":922},"1",{"type":47,"value":924}," (line 1 is an internal header, never read it).",{"type":42,"tag":49,"props":926,"children":927},{},[928,930,935,937,942,944,949],{"type":47,"value":929},"Read ",{"type":42,"tag":64,"props":931,"children":932},{},[933],{"type":47,"value":934},"only",{"type":47,"value":936}," line ",{"type":42,"tag":55,"props":938,"children":940},{"className":939},[],[941],{"type":47,"value":803},{"type":47,"value":943}," from ",{"type":42,"tag":55,"props":945,"children":947},{"className":946},[],[948],{"type":47,"value":893},{"type":47,"value":950},". It contains the step prompt, schema, and preamble.",{"type":42,"tag":49,"props":952,"children":953},{},[954,965],{"type":42,"tag":64,"props":955,"children":956},{},[957,958,963],{"type":47,"value":369},{"type":42,"tag":55,"props":959,"children":961},{"className":960},[],[962],{"type":47,"value":306},{"type":47,"value":964}," first.",{"type":47,"value":966}," It contains a table mapping XML tags to the tools\navailable in your environment. Refer to it throughout the workflow.",{"type":42,"tag":316,"props":968,"children":970},{"id":969},"step-2-follow-the-prompt",[971],{"type":47,"value":972},"Step 2: Follow the prompt",{"type":42,"tag":49,"props":974,"children":975},{},[976,977,982,984,989,991,996,998,1003,1004,1009,1010,1015,1016,1021,1022,1027,1029,1034],{"type":47,"value":369},{"type":42,"tag":55,"props":978,"children":980},{"className":979},[],[981],{"type":47,"value":60},{"type":47,"value":983}," field. It contains XML-tagged sections (described in \"How this skill\nworks\" above): ",{"type":42,"tag":55,"props":985,"children":987},{"className":986},[],[988],{"type":47,"value":123},{"type":47,"value":990}," directives to follow, ",{"type":42,"tag":55,"props":992,"children":994},{"className":993},[],[995],{"type":47,"value":137},{"type":47,"value":997}," instructions to act on, and\ninteraction tags (",{"type":42,"tag":55,"props":999,"children":1001},{"className":1000},[],[1002],{"type":47,"value":151},{"type":47,"value":191},{"type":42,"tag":55,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":47,"value":181},{"type":47,"value":191},{"type":42,"tag":55,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":47,"value":211},{"type":47,"value":191},{"type":42,"tag":55,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":47,"value":233},{"type":47,"value":191},{"type":42,"tag":55,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":47,"value":255},{"type":47,"value":1028},")\nto execute using the tools mapped in the preamble. If a ",{"type":42,"tag":55,"props":1030,"children":1032},{"className":1031},[],[1033],{"type":47,"value":277},{"type":47,"value":1035}," block appears,\nemit its content verbatim.",{"type":42,"tag":49,"props":1037,"children":1038},{},[1039,1041,1046],{"type":47,"value":1040},"Produce a JSON object matching the ",{"type":42,"tag":55,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":47,"value":394},{"type":47,"value":199},{"type":42,"tag":316,"props":1048,"children":1050},{"id":1049},"step-3-advance",[1051],{"type":47,"value":1052},"Step 3: Advance",{"type":42,"tag":49,"props":1054,"children":1055},{},[1056],{"type":47,"value":1057},"Pass your output back with the step name:",{"type":42,"tag":790,"props":1059,"children":1061},{"className":792,"code":1060,"language":794,"meta":795,"style":795},"\u003Cskill>\u002Fscripts\u002Frun advance --step \u003Cstep-name> --output '\u003Cyour-json>' --session abc123 2>\u002Fdev\u002Fnull\n",[1062],{"type":42,"tag":55,"props":1063,"children":1064},{"__ignoreMap":795},[1065],{"type":42,"tag":801,"props":1066,"children":1067},{"class":803,"line":804},[1068,1072,1076,1080,1085,1089,1094,1098,1103,1107,1112,1116,1121,1125],{"type":42,"tag":801,"props":1069,"children":1070},{"style":808},[1071],{"type":47,"value":811},{"type":42,"tag":801,"props":1073,"children":1074},{"style":814},[1075],{"type":47,"value":817},{"type":42,"tag":801,"props":1077,"children":1078},{"style":808},[1079],{"type":47,"value":822},{"type":42,"tag":801,"props":1081,"children":1082},{"style":814},[1083],{"type":47,"value":1084},"\u002Fscripts\u002Frun advance --step ",{"type":42,"tag":801,"props":1086,"children":1087},{"style":808},[1088],{"type":47,"value":811},{"type":42,"tag":801,"props":1090,"children":1091},{"style":814},[1092],{"type":47,"value":1093},"step-name",{"type":42,"tag":801,"props":1095,"children":1096},{"style":808},[1097],{"type":47,"value":822},{"type":42,"tag":801,"props":1099,"children":1100},{"style":814},[1101],{"type":47,"value":1102}," --output ",{"type":42,"tag":801,"props":1104,"children":1105},{"style":808},[1106],{"type":47,"value":832},{"type":42,"tag":801,"props":1108,"children":1109},{"style":835},[1110],{"type":47,"value":1111},"\u003Cyour-json>",{"type":42,"tag":801,"props":1113,"children":1114},{"style":808},[1115],{"type":47,"value":832},{"type":42,"tag":801,"props":1117,"children":1118},{"style":814},[1119],{"type":47,"value":1120}," --session abc123 ",{"type":42,"tag":801,"props":1122,"children":1123},{"style":808},[1124],{"type":47,"value":870},{"type":42,"tag":801,"props":1126,"children":1127},{"style":814},[1128],{"type":47,"value":875},{"type":42,"tag":49,"props":1130,"children":1131},{},[1132,1134,1140,1142,1147],{"type":47,"value":1133},"This returns a single line number (e.g., ",{"type":42,"tag":55,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":47,"value":1139},"4",{"type":47,"value":1141},"). Read ",{"type":42,"tag":64,"props":1143,"children":1144},{},[1145],{"type":47,"value":1146},"exactly and only that line",{"type":47,"value":1148}," from the session file — it contains the next prompt. Do not read any other lines.",{"type":42,"tag":316,"props":1150,"children":1152},{"id":1151},"step-4-repeat-until-done",[1153],{"type":47,"value":1154},"Step 4: Repeat until done",{"type":42,"tag":49,"props":1156,"children":1157},{},[1158,1160,1166,1167,1173],{"type":47,"value":1159},"Keep advancing until the line you read contains ",{"type":42,"tag":55,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":47,"value":1165},"\"type\":\"done\"",{"type":47,"value":901},{"type":42,"tag":55,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":47,"value":1172},"finalOutput",{"type":47,"value":1174}," field\ncontains the skill's result. Present it to the user.",{"type":42,"tag":316,"props":1176,"children":1178},{"id":1177},"step-5-cleanup",[1179],{"type":47,"value":1180},"Step 5: Cleanup",{"type":42,"tag":49,"props":1182,"children":1183},{},[1184],{"type":47,"value":1185},"After presenting the result, remove the session file:",{"type":42,"tag":790,"props":1187,"children":1189},{"className":792,"code":1188,"language":794,"meta":795,"style":795},"\u003Cskill>\u002Fscripts\u002Frun cleanup --session \u003Csession-id> 2>\u002Fdev\u002Fnull\n",[1190],{"type":42,"tag":55,"props":1191,"children":1192},{"__ignoreMap":795},[1193],{"type":42,"tag":801,"props":1194,"children":1195},{"class":803,"line":804},[1196,1200,1204,1208,1213,1217,1222,1226,1231],{"type":42,"tag":801,"props":1197,"children":1198},{"style":808},[1199],{"type":47,"value":811},{"type":42,"tag":801,"props":1201,"children":1202},{"style":814},[1203],{"type":47,"value":817},{"type":42,"tag":801,"props":1205,"children":1206},{"style":808},[1207],{"type":47,"value":822},{"type":42,"tag":801,"props":1209,"children":1210},{"style":814},[1211],{"type":47,"value":1212},"\u002Fscripts\u002Frun cleanup --session ",{"type":42,"tag":801,"props":1214,"children":1215},{"style":808},[1216],{"type":47,"value":811},{"type":42,"tag":801,"props":1218,"children":1219},{"style":814},[1220],{"type":47,"value":1221},"session-id",{"type":42,"tag":801,"props":1223,"children":1224},{"style":808},[1225],{"type":47,"value":822},{"type":42,"tag":801,"props":1227,"children":1228},{"style":808},[1229],{"type":47,"value":1230}," 2>",{"type":42,"tag":801,"props":1232,"children":1233},{"style":814},[1234],{"type":47,"value":875},{"type":42,"tag":316,"props":1236,"children":1238},{"id":1237},"important",[1239],{"type":47,"value":1240},"Important",{"type":42,"tag":108,"props":1242,"children":1243},{},[1244,1254],{"type":42,"tag":112,"props":1245,"children":1246},{},[1247,1252],{"type":42,"tag":64,"props":1248,"children":1249},{},[1250],{"type":47,"value":1251},"Never show raw JSON output or Bash commands to the user.",{"type":47,"value":1253}," The user sees your natural\nlanguage responses, not the protocol.",{"type":42,"tag":112,"props":1255,"children":1256},{},[1257,1262,1264,1270,1272,1278,1280,1286],{"type":42,"tag":64,"props":1258,"children":1259},{},[1260],{"type":47,"value":1261},"If you get a validation error",{"type":47,"value":1263}," (the response has ",{"type":42,"tag":55,"props":1265,"children":1267},{"className":1266},[],[1268],{"type":47,"value":1269},"\"error\": \"validation\"",{"type":47,"value":1271}," or ",{"type":42,"tag":55,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":47,"value":1277},"\"type\":\"error\"",{"type":47,"value":1279},"),\nread the ",{"type":42,"tag":55,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":47,"value":1285},"message",{"type":47,"value":1287}," field, fix your output, and retry the same step.",{"type":42,"tag":96,"props":1289,"children":1291},{"id":1290},"steps-in-this-skill",[1292],{"type":47,"value":1293},"Steps in this skill",{"type":42,"tag":108,"props":1295,"children":1296},{},[1297,1307,1317],{"type":42,"tag":112,"props":1298,"children":1299},{},[1300,1305],{"type":42,"tag":64,"props":1301,"children":1302},{},[1303],{"type":47,"value":1304},"choose",{"type":47,"value":1306},": (dynamic)",{"type":42,"tag":112,"props":1308,"children":1309},{},[1310,1315],{"type":42,"tag":64,"props":1311,"children":1312},{},[1313],{"type":47,"value":1314},"get-space",{"type":47,"value":1316},": Ask the user for their Contentful space ID, or detect it from CONTENTFUL_SPACE_ID in the environm...",{"type":42,"tag":112,"props":1318,"children":1319},{},[1320,1325],{"type":42,"tag":64,"props":1321,"children":1322},{},[1323],{"type":47,"value":1324},"ask-topic",{"type":47,"value":1306},{"type":42,"tag":96,"props":1327,"children":1329},{"id":1328},"sub-skills",[1330],{"type":47,"value":1331},"Sub-skills",{"type":42,"tag":49,"props":1333,"children":1334},{},[1335],{"type":47,"value":1336},"This skill contains sub-skills that the workflow routes to automatically.\nStart the skill normally — the dispatcher will determine which sub-skill to use.\nOnly use direct sub-skill access if the user explicitly requests a specific sub-skill by name.",{"type":42,"tag":49,"props":1338,"children":1339},{},[1340,1342,1348,1350,1356],{"type":47,"value":1341},"Sub-skill step names are prefixed: ",{"type":42,"tag":55,"props":1343,"children":1345},{"className":1344},[],[1346],{"type":47,"value":1347},"\u003Csubskill>\u002F\u003Cstep>",{"type":47,"value":1349}," (e.g., ",{"type":42,"tag":55,"props":1351,"children":1353},{"className":1352},[],[1354],{"type":47,"value":1355},"doctor\u002Fdiagnose",{"type":47,"value":1357},").",{"type":42,"tag":316,"props":1359,"children":1361},{"id":1360},"direct-sub-skill-access",[1362],{"type":47,"value":1363},"Direct sub-skill access",{"type":42,"tag":790,"props":1365,"children":1367},{"className":792,"code":1366,"language":794,"meta":795,"style":795},"\u003Cskill>\u002Fscripts\u002Frun \u003Csubskill> --params '\u003Cjson>' --session new\n\u003Cskill>\u002Fscripts\u002Frun \u003Csubskill> advance --session \u003Cid>\n",[1368],{"type":42,"tag":55,"props":1369,"children":1370},{"__ignoreMap":795},[1371,1427],{"type":42,"tag":801,"props":1372,"children":1373},{"class":803,"line":804},[1374,1378,1382,1386,1391,1395,1400,1404,1409,1413,1418,1422],{"type":42,"tag":801,"props":1375,"children":1376},{"style":808},[1377],{"type":47,"value":811},{"type":42,"tag":801,"props":1379,"children":1380},{"style":814},[1381],{"type":47,"value":817},{"type":42,"tag":801,"props":1383,"children":1384},{"style":808},[1385],{"type":47,"value":822},{"type":42,"tag":801,"props":1387,"children":1388},{"style":814},[1389],{"type":47,"value":1390},"\u002Fscripts\u002Frun ",{"type":42,"tag":801,"props":1392,"children":1393},{"style":808},[1394],{"type":47,"value":811},{"type":42,"tag":801,"props":1396,"children":1397},{"style":814},[1398],{"type":47,"value":1399},"subskill",{"type":42,"tag":801,"props":1401,"children":1402},{"style":808},[1403],{"type":47,"value":822},{"type":42,"tag":801,"props":1405,"children":1406},{"style":814},[1407],{"type":47,"value":1408}," --params ",{"type":42,"tag":801,"props":1410,"children":1411},{"style":808},[1412],{"type":47,"value":832},{"type":42,"tag":801,"props":1414,"children":1415},{"style":835},[1416],{"type":47,"value":1417},"\u003Cjson>",{"type":42,"tag":801,"props":1419,"children":1420},{"style":808},[1421],{"type":47,"value":832},{"type":42,"tag":801,"props":1423,"children":1424},{"style":814},[1425],{"type":47,"value":1426}," --session new\n",{"type":42,"tag":801,"props":1428,"children":1430},{"class":803,"line":1429},2,[1431,1435,1439,1443,1447,1451,1455,1459,1464,1468,1473],{"type":42,"tag":801,"props":1432,"children":1433},{"style":808},[1434],{"type":47,"value":811},{"type":42,"tag":801,"props":1436,"children":1437},{"style":814},[1438],{"type":47,"value":817},{"type":42,"tag":801,"props":1440,"children":1441},{"style":808},[1442],{"type":47,"value":822},{"type":42,"tag":801,"props":1444,"children":1445},{"style":814},[1446],{"type":47,"value":1390},{"type":42,"tag":801,"props":1448,"children":1449},{"style":808},[1450],{"type":47,"value":811},{"type":42,"tag":801,"props":1452,"children":1453},{"style":814},[1454],{"type":47,"value":1399},{"type":42,"tag":801,"props":1456,"children":1457},{"style":808},[1458],{"type":47,"value":822},{"type":42,"tag":801,"props":1460,"children":1461},{"style":814},[1462],{"type":47,"value":1463}," advance --session ",{"type":42,"tag":801,"props":1465,"children":1466},{"style":808},[1467],{"type":47,"value":811},{"type":42,"tag":801,"props":1469,"children":1470},{"style":814},[1471],{"type":47,"value":1472},"id",{"type":42,"tag":801,"props":1474,"children":1475},{"style":808},[1476],{"type":47,"value":1477},">\n",{"type":42,"tag":316,"props":1479,"children":1481},{"id":1480},"available-sub-skills",[1482],{"type":47,"value":1483},"Available sub-skills",{"type":42,"tag":108,"props":1485,"children":1486},{},[1487,1505],{"type":42,"tag":112,"props":1488,"children":1489},{},[1490,1495,1497,1503],{"type":42,"tag":64,"props":1491,"children":1492},{},[1493],{"type":47,"value":1494},"doctor",{"type":47,"value":1496},": Diagnose and fix common Contentful issues. — params: ",{"type":42,"tag":55,"props":1498,"children":1500},{"className":1499},[],[1501],{"type":47,"value":1502},"spaceId",{"type":47,"value":1504}," (string)",{"type":42,"tag":112,"props":1506,"children":1507},{},[1508,1513],{"type":42,"tag":64,"props":1509,"children":1510},{},[1511],{"type":47,"value":1512},"setup",{"type":47,"value":1514},": Guided Contentful space setup and configuration.",{"type":42,"tag":96,"props":1516,"children":1518},{"id":1517},"reference-topics",[1519],{"type":47,"value":1520},"Reference topics",{"type":42,"tag":49,"props":1522,"children":1523},{},[1524],{"type":47,"value":1525},"Quick-reference topics accessible without running the full workflow:",{"type":42,"tag":790,"props":1527,"children":1529},{"className":792,"code":1528,"language":794,"meta":795,"style":795},"\u003Cskill>\u002Fscripts\u002Frun topics              # list all topics\n\u003Cskill>\u002Fscripts\u002Frun topic \u003Cname>         # load a specific topic\n",[1530],{"type":42,"tag":55,"props":1531,"children":1532},{"__ignoreMap":795},[1533,1559],{"type":42,"tag":801,"props":1534,"children":1535},{"class":803,"line":804},[1536,1540,1544,1548,1553],{"type":42,"tag":801,"props":1537,"children":1538},{"style":808},[1539],{"type":47,"value":811},{"type":42,"tag":801,"props":1541,"children":1542},{"style":814},[1543],{"type":47,"value":817},{"type":42,"tag":801,"props":1545,"children":1546},{"style":808},[1547],{"type":47,"value":822},{"type":42,"tag":801,"props":1549,"children":1550},{"style":814},[1551],{"type":47,"value":1552},"\u002Fscripts\u002Frun topics              ",{"type":42,"tag":801,"props":1554,"children":1556},{"style":1555},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1557],{"type":47,"value":1558},"# list all topics\n",{"type":42,"tag":801,"props":1560,"children":1561},{"class":803,"line":1429},[1562,1566,1570,1574,1579,1583,1588,1592],{"type":42,"tag":801,"props":1563,"children":1564},{"style":808},[1565],{"type":47,"value":811},{"type":42,"tag":801,"props":1567,"children":1568},{"style":814},[1569],{"type":47,"value":817},{"type":42,"tag":801,"props":1571,"children":1572},{"style":808},[1573],{"type":47,"value":822},{"type":42,"tag":801,"props":1575,"children":1576},{"style":814},[1577],{"type":47,"value":1578},"\u002Fscripts\u002Frun topic ",{"type":42,"tag":801,"props":1580,"children":1581},{"style":808},[1582],{"type":47,"value":811},{"type":42,"tag":801,"props":1584,"children":1585},{"style":814},[1586],{"type":47,"value":1587},"name",{"type":42,"tag":801,"props":1589,"children":1590},{"style":808},[1591],{"type":47,"value":822},{"type":42,"tag":801,"props":1593,"children":1594},{"style":1555},[1595],{"type":47,"value":1596},"         # load a specific topic\n",{"type":42,"tag":108,"props":1598,"children":1599},{},[1600,1610],{"type":42,"tag":112,"props":1601,"children":1602},{},[1603,1608],{"type":42,"tag":64,"props":1604,"children":1605},{},[1606],{"type":47,"value":1607},"rate-limits",{"type":47,"value":1609},": API rate limits and throttling",{"type":42,"tag":112,"props":1611,"children":1612},{},[1613,1618],{"type":42,"tag":64,"props":1614,"children":1615},{},[1616],{"type":47,"value":1617},"locales",{"type":47,"value":1619},": Content localization and locale configuration",{"type":42,"tag":1621,"props":1622,"children":1623},"style",{},[1624],{"type":47,"value":1625},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1627,"total":1726},[1628,1634,1650,1661,1673,1685,1700,1715],{"slug":4,"name":4,"fn":5,"description":6,"org":1629,"tags":1630,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1631,1632,1633],{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13},{"slug":1635,"name":1635,"fn":1636,"description":1637,"org":1638,"tags":1639,"stars":1647,"repoUrl":1648,"updatedAt":1649},"contentful-api","integrate Contentful REST and GraphQL APIs","Comprehensive Contentful REST API guide. Covers Content Management API (CMA) for creating\u002Fupdating content, Content Delivery API (CDA) for fetching published content, Preview API, Images API, and GraphQL API. All examples use curl\u002FHTTP — language-agnostic.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1640,1643,1644],{"name":1641,"slug":1642,"type":13},"API Development","api-development",{"name":18,"slug":19,"type":13},{"name":1645,"slug":1646,"type":13},"GraphQL","graphql",36,"https:\u002F\u002Fgithub.com\u002Fcontentful\u002Fskills","2026-07-12T08:47:43.592187",{"slug":1651,"name":1651,"fn":1652,"description":1653,"org":1654,"tags":1655,"stars":1647,"repoUrl":1648,"updatedAt":1660},"contentful-custom-app-enhancement","enhance and debug Contentful custom apps","Improve, debug, and extend an existing Contentful App Framework custom app in a customer's own repository. Use when users provide a bug report, feature request, support note, customer feedback, or direct change request for an existing custom app, including app configuration, sidebar, field editor, dialog, page, home, App Action, Function, installation parameters, local validation, or PR preparation. Also triggers on \"fix my Contentful app\", \"improve a custom app\", \"enhance App Framework app\", \"debug custom app\", \"update sidebar app\", and \"custom app feature request\". Not for creating a brand new app from scratch (contentful-custom-app-from-scratch), generic API examples (contentful-api), migrations (contentful-migration), or website integration (contentful-nextjs).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1656,1657],{"name":18,"slug":19,"type":13},{"name":1658,"slug":1659,"type":13},"Debugging","debugging","2026-07-12T08:48:03.887678",{"slug":1662,"name":1662,"fn":1663,"description":1664,"org":1665,"tags":1666,"stars":1647,"repoUrl":1648,"updatedAt":1672},"contentful-custom-app-from-scratch","build custom Contentful App Framework apps","Design, scaffold, build, and validate a new Contentful App Framework custom app for a customer's own repository or workspace. Use when users want to create a custom app from an idea, choose App Framework locations, build a sidebar app, field editor app, page app, dialog, configuration screen, App Action, or Function-backed app, scaffold with create-contentful-app, or make a locally testable app for an organization-specific Contentful workflow. Also triggers on \"build a Contentful app\", \"custom app from scratch\", \"App Framework app\", \"sidebar app\", \"field editor app\", \"page app\", \"app action\", and \"app function\". Not for generic Contentful API examples (contentful-api), content model migrations (contentful-migration), or website integration (contentful-nextjs).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1667,1670,1671],{"name":1668,"slug":1669,"type":13},"Architecture","architecture",{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},"2026-07-12T08:48:05.103951",{"slug":1674,"name":1674,"fn":1675,"description":1676,"org":1677,"tags":1678,"stars":1647,"repoUrl":1648,"updatedAt":1684},"contentful-guide","guide Contentful implementation and concepts","Explain core Contentful concepts and route users to the right implementation skill or documentation. Use when users ask conceptual questions, need terminology clarified, want help choosing between APIs (CDA\u002FCMA\u002FCPA\u002FGraphQL), or need guidance on the Contentful MCP server. Also triggers on \"Contentful 101\", \"which Contentful API\", \"how do I get started\", \"which skill should I use\", \"what does X mean in Contentful\", \"Contentful glossary\", \"CDA vs CPA\", \"CDA vs GraphQL\", \"how does Contentful work\", \"Contentful architecture\", \"explain environments\", \"what are aliases\", \"content model design\", \"headless CMS\", \"Contentful MCP\", \"MCP server\", \"set up MCP\", \"Remix Contentful\", \"Astro Contentful\", \"Gatsby Contentful\", \"SvelteKit Contentful\", \"Nuxt Contentful\". Not for framework-specific implementation (contentful-nextjs), migrations (contentful-migration), personalization (contentful-personalization), or hands-on REST\u002FGraphQL request examples (contentful-api).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1679,1680,1681],{"name":18,"slug":19,"type":13},{"name":15,"slug":16,"type":13},{"name":1682,"slug":1683,"type":13},"Reference","reference","2026-07-12T08:47:45.041396",{"slug":1686,"name":1686,"fn":1687,"description":1688,"org":1689,"tags":1690,"stars":1647,"repoUrl":1648,"updatedAt":1699},"contentful-migration","run Contentful content model migrations","Write and run Contentful content model migration scripts using the contentful-migration library and the Contentful CLI. Covers creating, editing, and deleting content types and fields, validations, editor interface configuration, editor layouts, sidebar widgets, entry transformations, tags, annotations, and the migration context object. Use when asked to write a migration, create or add a content type, add, rename, or delete fields, change or update a content model, transform entries, derive linked entries, configure editor controls, or run a migration script. Also triggers on \"migration script\", \"contentful-migration\", \"schema migration\", \"content model migration\", \"field validation\", \"editor interface\", \"editor layout\", \"sidebar widget\", \"moveField\", \"changeFieldId\", \"rich text field\", \"reference field\", \"link field\". Not for SDK client setup or Next.js integration (contentful-nextjs). Not for Contentful terminology or API routing (contentful-guide).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1691,1694,1695,1696],{"name":1692,"slug":1693,"type":13},"CLI","cli",{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":1697,"slug":1698,"type":13},"Migration","migration","2026-07-12T08:47:50.532378",{"slug":1701,"name":1701,"fn":1702,"description":1703,"org":1704,"tags":1705,"stars":1647,"repoUrl":1648,"updatedAt":1714},"contentful-nextjs","integrate Contentful into Next.js applications","Add and configure Contentful in an existing Next.js project. Covers installing the JavaScript SDK, configuring environment variables, creating production and preview-aware clients, fetching content in App Router or Pages Router, and wiring Draft Mode preview flows. Use when users ask to integrate Contentful with Next.js, fetch entries, set up preview or draft content, or configure the Contentful client. Also triggers on \"Contentful SDK Next.js\", \"contentful.js\", \"fetch Contentful entries\", \"get content from Contentful\", \"Contentful preview\", \"preview mode\", \"Contentful environment variables\", \"Contentful client setup\", \"create Contentful client\", \"Pages Router Contentful\", \"getStaticProps Contentful\", \"Server Components Contentful\", \"revalidate Contentful\", \"ISR Contentful\". Not for personalization or Experiences SDK setup (contentful-personalization). Not for non-Next.js frameworks (contentful-guide can route to platform docs).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1706,1707,1708,1711],{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":1709,"slug":1710,"type":13},"Frontend","frontend",{"name":1712,"slug":1713,"type":13},"Next.js","next-js","2026-07-12T08:47:49.223411",{"slug":1716,"name":1716,"fn":1717,"description":1718,"org":1719,"tags":1720,"stars":1647,"repoUrl":1648,"updatedAt":1725},"contentful-personalization","build and debug Contentful personalization","Implement, extend, and debug Contentful personalization. Use onboarding for new, project-wide, or unknown setups; use extend-existing only for scoped work on an explicitly working integration. Trigger keywords: personalization, optimization, ninetailed, A\u002FB test, experiment, multivariate test, targeting, audience targeting, segments, variants, content variants, set up personalization, implement personalization, enable personalization, personalization not working, personalization broken, personalize this component, am I ready for personalization, experience API, Contentful Experiences, Experiences SDK, Studio Experiences, personalization in Next.js, @contentful\u002Foptimization, @ninetailed\u002Fexperience.js, run an experiment, check this URL, debug this live page, inspect network requests, check console errors, experience.ninetailed.co",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1721,1722,1723,1724],{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":1658,"slug":1659,"type":13},{"name":1709,"slug":1710,"type":13},"2026-08-01T05:44:01.030731",8,{"items":1728,"total":804},[1729],{"slug":4,"name":4,"fn":5,"description":6,"org":1730,"tags":1731,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1732,1733,1734],{"name":18,"slug":19,"type":13},{"name":9,"slug":8,"type":13},{"name":15,"slug":16,"type":13}]