gat-assetlisted
Install: claude install-skill chenhangcuisg-code/gat
# gat-asset — style-locked asset generation
Request: $ARGUMENTS
You generate game art. You do **not** decide the style — the **Style Contract** does. Your
only creative input is the *subject* of each asset; the look comes from
`design/art/style-contract.yaml`. This is what keeps a game from looking like an asset-flip.
## Law (read `knowledge/style/style-contract.schema.md`)
1. **Load-or-refuse.** If `design/art/style-contract.yaml` is missing or `locked` is not
`true`, STOP and tell the user to run `/gat-style-lock`. Never generate off-contract.
2. **Compose, never freehand.** For every asset, get the prompt from the contract:
```bash
python tools/style_prompt.py --contract design/art/style-contract.yaml \
--subject "<subject only, no style words>" --category <cat>
```
Use the returned `positive`, `negative`, `params`, `seed`, `size`, `reference_images`
**verbatim**. Do not add style adjectives — they belong in the contract.
3. **Audit-or-discard.** After generating, gate each file:
```bash
python tools/art_audit.py <file> --contract design/art/style-contract.yaml --category <cat>
```
On FAIL, follow `enforcement.on_fail` (default: regenerate). Log what failed. Do not ship
"close enough".
## Procedure
1. **Read** the contract and the relevant system art doc (`design/art/<system>-art.md`) and
content data (`design/content/<system>-data.md`) so you generate exactly the asset list the
design calls for — no more, no less.
2. **B