---
creative_pillar: cast
always_load_for: [relationship-map]
authority: derived
---

# People dynamics

This file is auto-regenerated by Scriveno from the "Relations with other peoples" sections of `PEOPLES.md`. It is the one place to see how every people stands with every other, including pairs with no dealings. Do not hand-edit -- it is rebuilt on `/scr:new-people`, `/scr:save`, and `/scr:scan --fix`.

To change a dynamic, edit the people entries in `PEOPLES.md`; this file follows.

**Updated:** {{LAST_UPDATED}}
**Updated by:** {{LAST_COMMAND}}
**Project:** {{TITLE}} ({{WORK_TYPE}})

## Peoples

{{PEOPLE_COUNT}} peoples. Every pair is accounted for; a pair with no dealings is marked `no dealings` rather than left blank.

## Pairwise dynamics matrix

{{PEOPLE_MATRIX}}

Legend: `alliance`, `rivalry`, `oppression`, `trade`, `contempt`, `kinship`, `war`, `no dealings`, with `(rising)` or `(cooling)` for trajectory.

## Undefined pairs

Pairs of peoples whose standing no one has set yet, and no `no dealings` confirmed. Each is a prompt to decide, via `/scr:new-people` or by editing the people entries. The system surfaces the gap; it never invents a dynamic to fill it.

{{UNDEFINED_PEOPLE_PAIRS}}

## Trust check

The map above is derived from `PEOPLES.md`. The standings are claims, not facts -- run `/scr:scan` to confirm they still match the people entries.

**Last `/scr:scan` run:** {{LAST_SCAN}}
**Last drift verdict:** {{LAST_SCAN_VERDICT}}

---
*Derived map. See `docs/people-dynamics-protocol.md` for how it is computed. To change a dynamic, edit `PEOPLES.md`; this file follows.*
