# Cops Npc Photo

> Use when generating, regenerating, iterating, and validating a raw ultra-realistic portrait for a COPS NPC before publishing the approved character to Notion.

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

---


# COPS NPC Photo

This skill generates raw, documentary-feeling NPC portraits for `COPS`.

Use it when:

- a new NPC needs a portrait
- an existing NPC portrait must be regenerated
- the user wants to iterate until a photo feels right
- a validated portrait must be handed off to Notion
- a newly created NPC was just published to Notion and should receive an immediate first photo proposal

Use [$imagegen](/Users/ludovicfleury/.codex/skills/.system/imagegen/SKILL.md) for actual image generation or editing.

Before prompting, read [references/raw-photo-rules.md](references/raw-photo-rules.md).
Then read [references/proven-prompt-patterns.md](references/proven-prompt-patterns.md).

## Source of truth

The finalized NPC sheet is the source of truth for:

- age range
- social level
- ethnicity
- face and body plausibility
- occupation
- residence and likely backdrop
- clothing logic
- visible stress, wear, and habits

Do not generate a portrait from vibes alone if the sheet already exists.

If the user explicitly overrides sheet facts for the portrait direction, follow the
user override and keep the divergence explicit.

## Modes

This skill supports two portrait rhythms:

- `prompt-first mode`: write the prompt, wait for user validation, then generate
- `proposal mode`: after a new NPC is published to Notion, write the prompt and
  generate one first proposal immediately unless the user explicitly asked for
  prompt-first review

Default policy:

- if the user has established a manual review loop for prompts, keep prompt-first mode
- if the NPC was just created and inserted into `Cast`, default to proposal mode

## Required workflow

1. Start from the finalized NPC sheet.
2. Extract only the visual and environmental facts that should stay stable.
3. Write the portrait prompt in English.
4. Default to a believable `4:3` iPhone-like documentary photo unless the user asks otherwise.
5. In `prompt-first mode`, show the prompt and wait for explicit user validation before generating.
6. In `proposal mode`, show the prompt and generate one first proposal immediately in the same flow.
7. Review the output against the raw-photo rules and the proven prompt patterns.
8. Reject anything that looks like AI beauty bias, fashion editorial, overprocessed cinema, or generic action-poster art.
9. Iterate with one targeted correction at a time.
10. Stop only when the user explicitly validates one image, or explicitly asks to stop.

## Prompt construction

Build prompts in this order:

1. camera and realism framing
2. precise Los Angeles 2030-2033 environment
3. social texture of the location
4. subject identity and body plausibility
5. clothing and gear logic
6. pose and scene logic
7. lighting and phone-camera feel
8. explicit anti-style constraints

The best results so far came from prompts that:

- open immediately on `ultra-realistic documentary photo` and `believable as a real iPhone photo`
- anchor the city, district, and micro-location before the face
- describe social wear and environmental evidence instead of mood words alone
- define the subject as believable first, impressive second
- end with a hard anti-beauty-bias block

## Hard rules

- Prefer ugly, lived-in, specific faces over attractive generic ones.
- Avoid model symmetry, perfect teeth, perfect skin, and beauty-shot posture.
- Avoid saturation, teal-orange grading, bloom, fashion lighting, and influencer framing.
- Prefer drab lighting, practical lighting, weathered textures, and ordinary clothes.
- Keep the environment credible to the NPC's actual life.
- Do not silently switch to illustration, concept art, or stylized render.
- Do not skip the location paragraph; the place is part of the character.
- Do not use generic `cool tactical` language without social and operational context.
- If the user asks for a correction, change only the requested variable unless another issue is clearly blocking realism.

## Validation gate

Do not mark a portrait as final until the user says it is approved.

For the approved image, keep:

- the final prompt
- the file path or accessible image location
- a short note about what made this version pass

## Handoff to Notion

After approval, hand off these artifacts to `$cops-npc-to-notion`:

- the finalized NPC sheet
- the approved image path or URL
- the final leitmotiv choice
- any validated affiliation relations

If the image cannot yet be written to the `Photo` property with the current tool path, say so explicitly before publishing.

If the portrait started in `proposal mode`, keep the distinction clear:

- the first generated image is a proposal, not an approved final
- do not imply it has been published to Notion until the user validates it

