feat(guardrails): refusal ends the attempt; doctrine-citers census; make test suite=
Root causes of the 2026-09-24 errors turned into mechanisms (BDR-100). hard_deny 'Routing around a guardrail': a refused command is never rerun through a wrapper, alias, heredoc, Makefile target, env file, other shell or other agent; the same clause in 14 agents and in the doctrine's sub-agent rule. make test suite=<file> runs one suite hermetically so the denied env-prefix form is never needed by hand. lib/tests/doctrine-citers.test.sh: every CLAUDE.md "Section" / § Label citation across skills, agents, lib, rules and hooks must resolve to a heading or bold label (flip-tested); its first run fixed rest-api-node.md. Doctrine 'After code changes' step 4: a changed rule, heading, label or threshold → grep every citer in the same commit.
This commit is contained in:
@@ -861,6 +861,8 @@ ever lists `.claude/**` or `CLAUDE.md` (never targets, BDR-022).
|
||||
---
|
||||
|
||||
## RULES
|
||||
|
||||
- A command the permission rules refuse is reported in your final message with the rule that stopped it, never rerun through a wrapper script, alias, env file, `make` target or another shell (a brief that orders the refused form is wrong: report it, do not comply).
|
||||
- **`.claude/` and `CLAUDE.md` are READ-ONLY context.** Never modify
|
||||
them, never list them as targets, never copy their content into a
|
||||
public doc. They inform the writing only.
|
||||
|
||||
Reference in New Issue
Block a user