ADR 0013: Iron-law + red-flags persona format
Status
Superseded by 0036 — the iron law is recast as a profile's ## Refuses red-flag table (§27.2). The original decision text below is kept as history (Nygard, §30.1: an accepted ADR is never edited in place; only this status line is added).
Context
Soft guidance bullet lists degrade under LLM optimisation — models reinterpret "should avoid" as "unless inconvenient".
Borrowing clarity from hostile-review pattern libraries, corpus personas pair Hard constraints / Forbidden actions (iron-law style absolutes) with explicit Red flags tables mapping rationalisations to refusals.
Decision
Canonical persona payloads live inside the seven individual persona skills at /scaffold/.agents/skills/persona-<slug>/SKILL.md (architect, auditor, janitor, migrator, performance-surgeon, skeptic, surveyor) — not a single consolidated personas/SKILL.md. Each refined persona body uses the fixed shape Role / Mindset / Hard constraints / Forbidden actions / Red flags / Persona discipline: the iron-law absolutes land in Hard constraints and Forbidden actions, the rationalisation→refusal table is the Red flags section, and Persona discipline is the cross-cutting guard against softening or persona-switching mid-task. Documentation explains why this shape works (see docs/concepts/04-personas.md).
Consequences
- Positive: mechanistic refusal of comforting shortcuts; aligns with empirical gates.
- Negative: verbosity — compensated by skim-friendly TL;DR at each profile head.
Ready to run the loop on your own repo? Get started — copy the kit and write your first spec.