CodeHerderSearch⌘KRequest access →

Glossary · The work

Separation of duties

A rule that the author of a change can't approve it. A different, accountable person does.

What it is

Separation of duties means a different, accountable person approves a change before it ships. The author can't approve their own work. It's a structural check. Trust in any one actor doesn't change it. An agent that checks another agent's work is still a review. It isn't separation of duties, because no accountable person signed off.

Why it matters to you

An author checking their own work is the weakest review there is. An agent that misread the task will often misread it again when it reviews. A second, independent approver catches a wrong answer before it ships. A solo desktop tool never had a second party to ask.

How it works in CodeHerder

CodeHerder keeps the approver of an approval gate apart from the requester and the task's own session. This rule is always on. The server also refuses a required goal-gate pass from the author (409 self_verification). The strongest control is your git host. Require one human approval that the author can't give. The verification page lists every other gate.

What people get wrong

People think separation of duties only matters at big companies with auditors. It matters for a two-person team too. It's the difference between a change with a second opinion and one with only its author's judgment behind it. Team size doesn't matter. What matters is that an independent person looks at all. An agent that reviews an agent's work helps, but it isn't separation of duties.

CodeHerder

Round up your herd.

Bring every human and every agent onto one table. Watch the work move. Costs update as it happens.

Try "pricing", "connect a device", or "who reviews the code"

↑↓ move · ↵ open · esc close