Skip to content
Agent Orchestration
Skill

/asset-spec

Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible.

From plugin
claude-code-game-studios
31k74 skills49 agents

Claude Code

$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill asset-spec --agent claude-code

SKILL.md

asset-spec.SKILL.md
name: asset-spec
description: "Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible."
argument-hint: "[system:<name> | level:<name> | character:<name>] [--review full|lean|solo]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/asset-spec/../../hooks/yaml-helper.sh" resolve_config *)
model: sonnet

!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation`

Asset Spec

If no argument is provided, check whether `design/assets/entity-inventory.md` exists:

  • If it exists: read it, find the first entity or screen with status "Needed" but no spec file yet, and use `AskUserQuestion`:
  • Prompt: "The next unspecced item is **[name]**. Generate specs for it?"
  • Options: `[A] Yes — spec [name]` / `[B] Pick a different item` / `[C] Stop here`
  • If no entity inventory: check `design/assets/asset-manifest.md`. If manifest exists, same flow above but reading from manifest.
  • If neither exists: **start the Entity & Screen Inventory flow** (Phase 0b below) rather than failing.

---

Every `AskUserQuestion` call follows `.claude/docs/automation-modes.md` (collaborative asks always · guided major-only · autonomous logs and proceeds; `automation_always_ask` categories always prompt). **Note**: actually invoking an external image generator (calling an image API) always prompts regardless of `modes.automation` — it is an irreversible external action guarded unconditionally, independent of whether `external_calls` is listed in `automation_always_ask`. (Today this skill only emits generation-prompt *text*; the guard applies if live generation is ever wired in.)

Phase 0b: Entity & Screen Inventory (runs when no arguments and no existing inventory)

This flow produces `design/assets/entity-inventory.md` — the master list of everything the game needs visually. Run once before asset spec work begins.

Step 1 — Gather from docs

Read all available source material in parallel, each doc by section: find the headings you need with the Grep tool (pattern `^#`, content mode) and Read those ranges with offset and limit.

  • `design/gdd/systems-index.md` — extract every system listed
  • GDD asset content — do **not** full-read every GDD. The two wanted sections are

standard headings, and named entities live in the registry:

  Grep pattern="## (Visual/Audio Requirements|UI Requirements)" glob="design/gdd/*.md" output_mode="content" -A 25

For named entities (characters, enemies, buildings, items), read `design/registry/entities.yaml` (`entities`/`items`) if it exists and has entries; otherwise grep the GDDs for named content. Full-read a GDD only when its Visual/Audio section is missing or reads `[To be designed]` (Phase 1 already handles that case). VFX events surface in the Visual/Audio grep context.

  • `design/art/art-bible.md` — extract: any named visual categories, asset type expectations
  • `design/narrative/` — scan for any character or world entity documents if they exist (optional — not required)

Step 2 — Build proposed inventory

Organize everything found into categories:

Characters / Protagonists
Enemies / Creatures
Buildings / Structures
Environment / Terrain
Items / Props
VFX / Particles
UI Screens (list each screen by name)
HUD Elements
Audio (SFX, music — descriptions only, no generation prompts)
Other

For each item, note the source doc it was found in.

Step 3 — Present and collaborate

Present the full proposed inventory to the user in conversation. Then use `AskUserQuestion`:

  • Prompt: "I found **[N] visual entities and [N] UI screens** across your GDDs and art bible. Review the list — what's missing, what's not needed?"
  • Options:
  • `[A] Looks good — save this inventory`
  • `[B] Add items I'll describe`
  • `[C] Remove items that don't apply`
  • `[D] Both add and remove — let me edit`

If [B] or [D]: ask the user to describe additional items. Accept brief descriptions ("a medieval keep, used as a level background") or detailed ones — either works. Work through them collaboratively until the user is satisfied.

If [C] or [D]: ask which items to remove and why. Remove them from the list.

Step 4 — Write inventory

After user approval, ask: "May I write the entity inventory to `design/assets/entity-inventory.md`?"

Write the file:

# Visual Entity & Screen Inventory

> Generated: [date]
> Sources: [list of source docs read]

## Entities

| # | Name | Type | Description | Source | Status |
|---|------|------|-------------|--------|--------|
| 1 | [name] | Character / Enemy / Building / Environment / Item / Other | [brief description] | [source doc] | Needed |

## UI Screens

| # | Screen Name | Description | Source | Status |
|---|-------------|-------------|--------|--------|
| 1 | Main Menu | [description] | [source] | Needed |

## HUD Elements

| # | Element | Description | Source | Status |
|---|---------|-------------|--------|--------|

## Audio

| # | Name | Type (SFX / Music / Ambient) | Description | Source | Status |
|---|------|------------------------------|-------------|--------|--------|

After writing, tell the user: > "Entity inventory saved. Next steps: > - Run `/ux-design [screen name]` for each UI screen in the inventory > - Run `/asset-spec system:[name]`, `level:[name]` or `character:[name]` for each > visual entity — whichever of the three the entity belongs to > - Or run `/asset-spec` again to work through the inventory one item at a time"

---

Phase 0: Parse Arguments

Extract:

  • **Target type**: `system`, `level`, or `character`
  • **Target name**: the name after the colon (normalize to kebab-case)
  • **Review mode**: `--review [full|lean|solo]` if present

The effective mode is the one already resolved at the top of this skill via `resolve_config --keys review_mode`, which applies the full chain; with nothing set it follows `modes.rigor`

Read more
@donchitos
Ships withclaude-code-game-studios

Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.

31k74 skills49 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
31.3k
Star history of Donchitos/Claude-Code-Game-Studios on GitHub, a chart by star-history.com

Other skills on claude-code-game-studios.

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis12d393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca12d111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip12d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about asset-spec.

Which coding agents can use asset-spec?
asset-spec installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.