Originally created by: fu351
Originally owned by: AshSgDe29071999
docs/SETUP.md:307 describes Doberman's protection of its own control plane, and lists the verbs that are blocked as control-plane tampering:
The same shell-layer block extends to every posture- and auth-mutating Doberman verb —
mode,prefs,enforcement,2fa,taint,password,revoke— treated as control-plane tampering and blocked fail-closed, while read/utility verbs (status,doctor,log,scan,review) stay allowed.
There is no doberman taint command.
doberman taint # Error: No such command 'taint'. (exit 2)
grep -c "def taint" src/doberman/cli/main.py # 0
The only taint-related CLI surface is read-only, inside doberman status (src/doberman/cli/main.py:508-512), which prints the current per-repo taint state.
This is a security document explaining what Doberman defends. A reader who tries the command and gets an error has to wonder what else in the section is aspirational — and that section is describing the "an agent can't fire the cop" guarantee, which is one of the claims most worth trusting.
Fix the sentence in docs/SETUP.md: drop taint from the verb list, or reword to describe the read-only status surface accurately.
docs/SETUP.md no longer refers to a doberman taint verb that doesn't resolve.
taint also appears in src/doberman/engine/rules/commands.py:64 (_DOBERMAN_CONTROL_SUBCOMMANDS) and in a test case at tests/unit/test_rule_commands_control_plane.py:186 ("doberman taint clear"). Leave both alone.
Blocking a command that doesn't exist is harmless — it fails closed, and it's arguably useful if such a command is ever added. Whether to ship a real taint command or drop the stale entry is a maintainer decision that touches the objective guardrail's blocking set, so it isn't part of this issue. Please don't change guardrail behaviour here; this is a one-sentence documentation fix.
Comment here to claim it.
🤖 Generated with Claude Code
Originally posted by: AshSgDe29071999
I'd like to fix SETUP.md — remove/correct the nonexistent
doberman taintverb.Ticket changed by: fu351