feat(content): reparent disposition-ladder to mechanics.md; purge Duncarrow

Move rule.disposition-ladder into content/lore/mechanics.md and delete the
Duncarrow scaffolding (source + 23 generated JSON). Remove the redundant
test_duncarrow.py (routing/secrecy already covered by test_emit.py synthetic
fixtures); repoint a cosmetic slug-test id.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HuHRPE7VfppUJEaoGBEUqZ
This commit is contained in:
2026-07-12 15:30:59 -05:00
parent c1edcfe015
commit ac8da4e6da
27 changed files with 23 additions and 537 deletions

21
content/lore/mechanics.md Normal file
View File

@@ -0,0 +1,21 @@
# MECHANICS — canonical world rules (mechanical, not lore)
> Home for mechanical `rule.*` entries the dialogue/engine layer depends on.
> `rule.disposition-ladder` lives here (moved from the retired `duncarrow.md`
> scaffolding); it is the required-exactly-once gate vocabulary every NPC
> knowledge-gate references.
```yaml
id: rule.disposition-ladder
type: rule
status: canon
secrecy: 0
related: []
rungs: [hostile, cold, neutral, warm, trusted]
body: >
NPC trust toward the player is one of five ordered states:
hostile < cold < neutral < warm < trusted. Where a given player sits with a
given NPC is runtime state owned by code. The ladder itself is canon. Every
knowledge-link gate references one of these five names, plus the special
gate `never` (fact is known but never revealed through dialogue at any rung).
```