skill-create · git:20260911.b4df358 · 2026-09-11 · sha256 877d96350b152417
skill-create git:20260911.b4df358A
Immutable. This exact content never changes and is served at /api/v1/blob/877d96350b152417.
--- name: skill-create description: "Bootstrap a new Summer library skill (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections." license: MIT compatibility: [Cursor, Claude Code, Windsurf, Codex] category: workflow allowed-tools: Read Write Glob Grep Bash --- # /skill-create: bootstrap a new library skill Works inside a checkout of the summer-engine agent repository (the one with `library/` and `registry/`). Outside it, capture the lesson with `gameskill` in the game project instead. ## Steps ### 1. Get the basics Ask the user: - **Slug** (kebab-case, 64 chars or fewer, flat: no category folders). Example: `state-machine-patterns`. - **Domain facets**: pick from the vocabulary in `registry/schemas/domains.json` (read it, do not guess). Example: `scripting`, `gameplay`. - **One-sentence summary** and a "Use when ..." description for the frontmatter. - **Template-id** (optional). Look it up in `library/templates/<id>/resource.yaml`. ### 2. Create the folder May I create `library/skills/<slug>/` with this structure? ``` library/skills/<slug>/ resource.yaml routing metadata (schema: registry/schemas/resource.schema.json + skill.schema.json) SKILL.md the skill body references/ optional, populate as needed ``` ### 3. Write resource.yaml (template) ```yaml id: skill/<slug> kind: skill version: 1.0.0 summary: <one sentence, what and when> use_when: - <situation the router should match> - <second situation> do_not_use_when: - <situation that belongs to a neighbouring skill> facets: lifecycle: [build] domains: [<domain>] modalities: [<scripts | scenes | assets | docs>] compatibility: engine: ">=4.6" related: skills: [skill/<neighbour>] source: official license: MIT status: preview recommended: false ``` `status: preview` until the skill has been exercised against a live engine; flip to `stable` in the same change as the evidence. ### 4. Write SKILL.md (template) ```markdown --- name: <slug> description: Use when <situation>. Lead with the trigger phrases. license: MIT compatibility: [Cursor, Claude Code, Windsurf, Codex] category: <domain> template-id: <optional> allowed-tools: Read Grep <summer_* tools this skill uses> paths: ["**/*.gd", "**/*.tscn"] --- # <Title> for Summer Engine <One paragraph: why this exists, who needs it.> ## Steps ### 1. <First step> **Preferred (Summer MCP):** \`\`\` summer_<tool>(...) \`\`\` **Fallback (no MCP, edit `<file>` directly):** \`\`\` <raw text/code> \`\`\` May I <action>? ## Common mistakes - <mistake, with a one-line fix> ## Want a working starter? `summer create <template-id> my-game` (see `summer list templates` for the slugs) ## See also - `godot-version` and `gd-style` in `library/references/` - (related skills by bare slug) ``` Keep SKILL.md under 500 lines; push shared detail into `library/references/`. Cross-reference other skills by bare slug, never by path or `@` link. ### 5. Generate and validate Nothing is registered by hand. Run: ```bash npm run generate:registry npm run validate:library npm test ``` `generate:registry` rewrites `registry/generated/` and every plugin manifest from `library/`; `validate:library` checks the schema, facets, related links and capability lint; the test suite checks manifest parity. Commit the generated files with the skill. ### 6. Run /skill-test Confirm the structural checks pass and, if the skill drives tools, that the routing eval still finds it (`npm run eval:routing`). ## Collaborative protocol This skill writes files. Always ask before each write step. ## See also - `collaborative-protocol` in `library/references/` - `skill-test`, `skill-improve`, `gameskill`