Skip to main content
sourceSource: corpus/docs/adrs/0013-iron-law-red-flags-pattern.mdModified: 2026-06-23

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.