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 for actual image generation or editing.
Before prompting, read references/raw-photo-rules.md.
Then read 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
- Start from the finalized NPC sheet.
- Extract only the visual and environmental facts that should stay stable.
- Write the portrait prompt in English.
- Default to a believable
4:3 iPhone-like documentary photo unless the user asks otherwise.
- In
prompt-first mode, show the prompt and wait for explicit user validation before generating.
- In
proposal mode, show the prompt and generate one first proposal immediately in the same flow.
- Review the output against the raw-photo rules and the proven prompt patterns.
- Reject anything that looks like AI beauty bias, fashion editorial, overprocessed cinema, or generic action-poster art.
- Iterate with one targeted correction at a time.
- Stop only when the user explicitly validates one image, or explicitly asks to stop.
Prompt construction
Build prompts in this order:
- camera and realism framing
- precise Los Angeles 2030-2033 environment
- social texture of the location
- subject identity and body plausibility
- clothing and gear logic
- pose and scene logic
- lighting and phone-camera feel
- 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
1---2name: cops-npc-photo3description: Use when generating, regenerating, iterating, and validating a raw ultra-realistic portrait for a COPS NPC before publishing the approved character to Notion.4---56# COPS NPC Photo78This skill generates raw, documentary-feeling NPC portraits for `COPS`.910Use it when:1112- a new NPC needs a portrait13- an existing NPC portrait must be regenerated14- the user wants to iterate until a photo feels right15- a validated portrait must be handed off to Notion16- a newly created NPC was just published to Notion and should receive an immediate first photo proposal1718Use [$imagegen](/Users/ludovicfleury/.codex/skills/.system/imagegen/SKILL.md) for actual image generation or editing.1920Before prompting, read [references/raw-photo-rules.md](references/raw-photo-rules.md).21Then read [references/proven-prompt-patterns.md](references/proven-prompt-patterns.md).2223## Source of truth2425The finalized NPC sheet is the source of truth for:2627- age range28- social level29- ethnicity30- face and body plausibility31- occupation32- residence and likely backdrop33- clothing logic34- visible stress, wear, and habits3536Do not generate a portrait from vibes alone if the sheet already exists.3738If the user explicitly overrides sheet facts for the portrait direction, follow the39user override and keep the divergence explicit.4041## Modes4243This skill supports two portrait rhythms:4445- `prompt-first mode`: write the prompt, wait for user validation, then generate46- `proposal mode`: after a new NPC is published to Notion, write the prompt and47 generate one first proposal immediately unless the user explicitly asked for48 prompt-first review4950Default policy:5152- if the user has established a manual review loop for prompts, keep prompt-first mode53- if the NPC was just created and inserted into `Cast`, default to proposal mode5455## Required workflow56571. Start from the finalized NPC sheet.582. Extract only the visual and environmental facts that should stay stable.593. Write the portrait prompt in English.604. Default to a believable `4:3` iPhone-like documentary photo unless the user asks otherwise.615. In `prompt-first mode`, show the prompt and wait for explicit user validation before generating.626. In `proposal mode`, show the prompt and generate one first proposal immediately in the same flow.637. Review the output against the raw-photo rules and the proven prompt patterns.648. Reject anything that looks like AI beauty bias, fashion editorial, overprocessed cinema, or generic action-poster art.659. Iterate with one targeted correction at a time.6610. Stop only when the user explicitly validates one image, or explicitly asks to stop.6768## Prompt construction6970Build prompts in this order:71721. camera and realism framing732. precise Los Angeles 2030-2033 environment743. social texture of the location754. subject identity and body plausibility765. clothing and gear logic776. pose and scene logic787. lighting and phone-camera feel798. explicit anti-style constraints8081The best results so far came from prompts that:8283- open immediately on `ultra-realistic documentary photo` and `believable as a real iPhone photo`84- anchor the city, district, and micro-location before the face85- describe social wear and environmental evidence instead of mood words alone86- define the subject as believable first, impressive second87- end with a hard anti-beauty-bias block8889## Hard rules9091- Prefer ugly, lived-in, specific faces over attractive generic ones.92- Avoid model symmetry, perfect teeth, perfect skin, and beauty-shot posture.93- Avoid saturation, teal-orange grading, bloom, fashion lighting, and influencer framing.94- Prefer drab lighting, practical lighting, weathered textures, and ordinary clothes.95- Keep the environment credible to the NPC's actual life.96- Do not silently switch to illustration, concept art, or stylized render.97- Do not skip the location paragraph; the place is part of the character.98- Do not use generic `cool tactical` language without social and operational context.99- If the user asks for a correction, change only the requested variable unless another issue is clearly blocking realism.100101## Validation gate102103Do not mark a portrait as final until the user says it is approved.104105For the approved image, keep:106107- the final prompt108- the file path or accessible image location109- a short note about what made this version pass110111## Handoff to Notion112113After approval, hand off these artifacts to `$cops-npc-to-notion`:114115- the finalized NPC sheet116- the approved image path or URL117- the final leitmotiv choice118- any validated affiliation relations119120If the image cannot yet be written to the `Photo` property with the current tool path, say so explicitly before publishing.121122If the portrait started in `proposal mode`, keep the distinction clear:123124- the first generated image is a proposal, not an approved final125- do not imply it has been published to Notion until the user validates it