# Cops Npc Generator

> Use when creating an original COPS NPC that must obey a strict generation workflow, exact markdown structure, and stat/skill distribution rules anchored in the 2033 Los Angeles setting.

- Skill: `ludofleury/cops-npc-generator` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add ludofleury/cops-npc-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ludofleury/cops-npc-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: ludofleury (https://skillmd.com/u/ludofleury)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ludofleury/cops-npc-generator

---


# COPS NPC Generator

This skill creates **complete, table-ready NPCs** for `COPS`.

Use it when the user wants:

- a brand-new NPC
- a rewrite of an NPC that feels too generic or out of universe
- an NPC sheet that must follow a fixed format
- a COPS NPC that may later be inserted into Notion
- a COPS NPC with a portrait workflow attached

## Core promise

The NPC must feel like it belongs in a gritty semi-futurist Los Angeles in `2033`,
with the atmosphere of a tense TV cop show rather than generic cyberpunk.

Do not collapse the character into clichés, placeholders, or thin archetypes.

## Source discipline

Before drafting, read [references/npc-generation-rules.md](references/npc-generation-rules.md).

If the user provides additional canon, notes, or COPS campaign context, use that too.
If canon sources disagree, prefer the most specific source in the current task.

For age and birth-year math, use `2033` as the reference year.

## Required workflow

1. Start from the user's seed if one exists. If not, invent an original concept.
2. Follow the mandatory creation order from the rules reference.
3. After each step, sanity-check all previous steps against the new decision.
4. If the new decision improves the NPC, revise earlier choices before moving on.
5. If the request includes a Notion publish flow, publish the NPC first with `$cops-npc-to-notion`.
6. After a successful Notion insert for a new NPC, default to an immediate first portrait proposal with `$cops-npc-photo` unless the user explicitly skips portraits.
7. If the user explicitly wants prompt approval before generation, keep the prompt-first loop; otherwise the post-publish proposal may generate one first image automatically.
8. Do not consider the NPC fully done until the written sheet is coherent and the portrait step is either approved, explicitly skipped, or deliberately parked by the user.

This is an **iterative build loop**, not a one-pass fill-in form.

## Hard rules

- Keep the exact section order from the reference template.
- Include every required block: `Quote`, `Items`, `Cool`, `Uncool`, `Photo`, and
  the stat blocks.
- Verify the characteristic total explicitly.
- Verify the skill distribution against the NPC level explicitly.
- Make the stat line and skill picks reflect the NPC's life, job, and behavior.
- Do not invent sourcebook page numbers. If criminal affiliations require a book
  and page but you cannot ground them in an actual source available to you, say
  that the page citation still needs verification.
- Do not invent music links. Use a real link only when one is available; otherwise
  keep the track in plain text markdown with no hyperlink.
- Never use placeholder URLs such as `example.com`, fake YouTube links, or guessed
  music URLs.
- For music links, prefer this order:
  `YouTube Music`, then `YouTube`, then `Spotify`.
- The residence must use a district logic anchored in `Amitié de Los Angeles`,
  not generic real-world Los Angeles assumptions.
- When a portrait is part of the request, use `$cops-npc-photo` rather than improvising a loose one-off image prompt.

## Validation

For a final answer that will be reused, stored, or inserted into Notion, validate
the markdown before sending it.

If you can use the shell, write the NPC markdown to a temp file and run:

```bash
python3 scripts/validate_npc_markdown.py /tmp/npc.md
```

If you cannot run the script, perform the same checks manually using the rules
reference.

## Output

- Default output language: French
- Output format: the exact markdown template from the rules reference
- Tone: vivid, grounded, flavorful, never parody

## Portrait handoff

When the user wants a portrait:

1. finish the NPC sheet
2. if publication is requested, create or update the Cast page with `$cops-npc-to-notion`
3. immediately continue into `$cops-npc-photo` for a first proposal unless the user opted out
4. if the user asked for prompt-first review, validate the prompt before generating
5. otherwise generate one first proposal image automatically after the Notion write
6. iterate until the user validates one image or explicitly stops

