# The message catalogue (AD-34). Every sentence addressed to a person # lives here, addressed by key, and nowhere else. # # Why one file: before this, each gate elected its own wording home, so # the same situation was worded twice and drifted, and the depth # projection had to be implemented once per gate. # # Why an owned asset and not a seed: a seed is user-owned and never # overwritten, so a wording improvement would never reach an existing # install. This file is registry-owned and replaced on every install -- # which is exactly why a seed may carry a KEY but never a sentence. # # Format: one entry per line, `keytext`. Lines starting with # are # comments. Keys are stable; changing a key is a breaking change. write-gate.denied.a2 Write gate: the router has not been consulted in this session. write-gate.denied.a3 I stopped myself before changing any file: I want to check the project rules for this task first. Nothing is broken and nothing is lost. This happens once. write-gate.reason.model Write gate: this session has no skill-router invocation. Invoke the skill-router skill, complete its step 1, then tell the person in one short plain sentence what you are about to do, and retry this write. This is the only write refused in this session. router-gate.reminder SKILL GATE, enforced by a hook and not optional: before you plan, write, review, document or answer anything, invoke the skill-router skill and follow it. Step 1 of that skill is mandatory: name the bmad phase skill you routed into, or state explicitly why no phase applies to this task. Then layer on every discipline skill whose description matches. A loaded skill outranks your own defaults, habits and taste. List every skill you loaded before you act. Ignoring this gate is a rule violation, not a judgement call. Answer in the language the person wrote to you in, and apply the installed plain-language and readability rules to the reply itself, not only to documents. depth.question Do you write software yourself, or should I do the technical work and explain the decisions in plain words? enforcement.claude-code Claude Code enforces the router gate and the write gate at harness level. enforcement.other This assistant has no deny-capable hook, so the gates exist as always-on rules it is asked to follow, not as guarantees. enforcement.residual A gate can prove the router was invoked. It cannot prove the router was followed. read-gate.reason.model Read gate: this whole file would flood the main context. Read only the range you need with offset and limit after a search, or delegate the reading to a subagent that returns findings only. Keep debugging, architecture and security reasoning yourself. The owner can raise the threshold or set BESTAICONFIG_READ_GATE_LINES=0 to switch the gate off.