Requirement Zero
Every requirement must earn its right to exist.
Reach a verdict on whether the requirement should exist before designing or writing code. Do
not scaffold files, choose libraries, or write implementation until the verdict is BUILD or
BUILD HARD.
Ordered discipline
Run these in order. Do not reorder — simplifying unnecessary work is wasted work, and
automating an unproven workflow makes an unnecessary process cheaper to keep. Stop at the first
step that produces a terminal verdict — DELETE, REDUCE, or DEFER. BUILD and BUILD HARD are not
terminal: continue to step 4 to size what gets built.
QUESTION — What fundamental outcome is required, stated as an observable change for
someone outside the codebase? Who created this requirement — a named person, an incident, a
measurement, a written obligation? If the source is a role, a document, or a norm ("legal
says", "architecture requires", "industry best practice", "the CEO asked for it", "for
compliance"), provenance is unresolved: ask which specific rule, clause, or event it comes
from before accepting any scope from it.
DELETE — Try to remove the whole thing, then its parts. Ask: if this ships without it,
who notices, and through what signal? Name the observer and name the signal. If neither can
be named, DELETE. If the whole survives, run the same test on each part — fields, states,
options, config flags, layers, endpoints, dependencies, process steps — and delete every part
that fails it. Deleting parts is the common outcome; a REDUCE verdict is that list.
FOCUS — Does this move the system's core value, or is it adjacent polish that survives
only because it was requested? Adjacent work with real but non-core value is DEFER, with the
trigger that would revive it named. Core work is not automatically small: when the difficulty
is where the value lives, the verdict is BUILD HARD.
SIMPLIFY — Ask: what version, with the fewest moving parts, new concepts, and new
dependencies, cannot be distinguished from the proposal by the observer named in step 2?
Build that. Do not simplify past the proven outcome — something simpler that fails the
outcome is not simpler, it is a different requirement.
ACCELERATE — Only now shorten the feedback loop: cut wait time, review latency, and
round-trips on work already established as necessary and simplified. Never accelerate a step
that step 2 should have deleted.
AUTOMATE — Automate only a workflow that is necessary, simplified, stable, and has been
run manually often enough that its steps are known. Automating an unproven workflow converts
a removable process into permanent infrastructure.
Steps 5 and 6 apply to workflows and processes. For a single feature requirement, skip them
silently rather than narrating them.
Verdicts
State exactly one. Do not present the five as options for the user to choose between, and do not
hedge with "it depends" — commit, then show the reasoning that can be argued with.
| Verdict |
Select when |
| DELETE |
No observer and no signal can be named for the whole requirement, or it duplicates something the system already does. |
| REDUCE |
The core outcome has evidence, but named parts failed the step 2 test. List every part removed. |
| DEFER |
Value is plausible but nothing is blocked today — either the only support is a prediction, or the value is real but adjacent to the core. Name the concrete trigger that would revive it. |
| BUILD |
Evidence supports the outcome and it is core. Build the step 4 version, nothing beyond it. |
| BUILD HARD |
Core, and the cheap version provably fails the outcome. Say which simplification was rejected and what it would break. |
A BUILD HARD verdict is invalid unless it names the simpler version considered and the specific
way that version fails the outcome. Without both, downgrade to BUILD and return to step 4.
Verdict rules that decide common cases. When several apply, the verdict describes the whole
requirement while the rules describe parts: if the core outcome survives and only parts fail,
that is REDUCE with those parts listed as deleted scope — even where a part-level rule below says
DELETE.
- An abstraction, interface, or plugin point with exactly one implementation and no committed
second consumer is REDUCE — build the concrete thing. "Committed" means a named consumer with
a date, not an anticipated one.
- Configurability with no user who has asked to configure it is DELETE. Hardcode the value; a
constant is one edit away from a setting.
- A generalization justified by a second case that does not exist yet is DEFER, and the trigger
is the second case arriving.
- Scope justified only by symmetry, consistency, or completeness ("we support X, so we should
support Y") is DELETE unless Y has its own observer.
- Work whose only support is a hypothetical future user, elegance, or best practice is never
BUILD. It is DEFER if a specific event would make it necessary and that event can be named;
DELETE if no such event can be named.
- If the same outcome is reachable by deleting existing code, that is the BUILD.
Output contract
Report, in this order and no longer than it needs to be:
- Fundamental objective — the observable outcome required, not the requested artifact.
- Evidence — what supports it, and its provenance. State "no evidence found" plainly when
that is the case; do not fill the gap with plausible reasoning.
- Verdict — one of the five.
- Deleted scope — what is not being built, itemized.
- Retained scope — what is being built, itemized and bounded.
- Next action — the single concrete next step, or the trigger to wait for.
What counts as evidence
Counts: a specific person or team who asked, with what they were trying to do; a production
incident or bug report; a measured number (latency, cost, error rate, support volume); a signed
contract, regulation clause, or audit finding; an existing usage pattern in the code or logs.
Does not count: a hypothetical future customer; "it's best practice"; "we'll need it eventually";
symmetry with an existing feature; elegance; a competitor having it; the requester's seniority.
Provenance beats confidence. "Legal requires it" is not evidence until it names the obligation;
"the CEO asked for it" identifies who, not why, and the underlying outcome still needs stating.
Escalate an unresolved authority claim to the human rather than guessing at the constraint.
The asymmetry
Missing evidence is not symmetric across requirement types.
- For speculative scope — future flexibility, anticipated scale, unrequested generality —
missing evidence lowers confidence and pushes toward DELETE or DEFER.
- For protective constraints — security, safety, privacy, data integrity, legal and
regulatory obligations, backward compatibility of a published interface — missing evidence does
not license removal. The default is retain. Removal requires a named owner's decision and,
where applicable, security, legal, or compliance review; record the residual risk.
Protective constraints can still be scoped: challenge the implementation's size, not the
protection. "We need audit logging" may be REDUCE on which events are logged, while remaining
BUILD on logging at all.
When the human pushes back
Insistence is not evidence, and neither is repetition. But you are not the decision-maker.
- Ask once for the missing piece specifically: who is affected, or what breaks without it.
- If a concrete answer arrives, update the verdict and say what changed it.
- If the answer is authority or restatement, say so plainly, note the specific risk you expect,
and proceed as instructed — build the smallest version that satisfies the instruction.
- Do not relitigate a settled decision, and do not silently build a larger version than the one
you argued for.
Minimalism is not the objective. Preserve difficulty when the difficulty is the mission: a
verdict that never says BUILD HARD is a bias, not a discipline.
References
Load only the one that matches the step you are on.
- references/workflow.md — when to run the discipline at all, stopping
rules, evidence gathering, and applying it to a plan or to mid-implementation scope.
- references/provenance.md — resolving "legal says", "architecture
requires", "best practice", "the CEO asked", and what to do when nobody can be asked.
- references/deletion.md — the observer/signal test, the full list of
parts to enumerate, per-case deletion rules, and deletion that needs an owner's decision.
- references/mission-alignment.md — defining core value,
classifying adjacent work, and the four-part bar for BUILD HARD.
1---2name: requirement-zero3description: Challenge whether a requirement deserves to exist before planning or implementing it. Use when a request asks to build, add, or design something and its necessity or scope has not been established — new features, abstractions, plugin systems, dashboards, configurability, migrations, or "we should probably support X". Reaches an explicit verdict: DELETE, REDUCE, DEFER, BUILD, or BUILD HARD. Do not use for already-validated work, bug fixes, or explicit safety, security, legal, or compliance requirements.4---56# Requirement Zero78**Every requirement must earn its right to exist.**910Reach a verdict on whether the requirement should exist before designing or writing code. Do11not scaffold files, choose libraries, or write implementation until the verdict is BUILD or12BUILD HARD.1314## Ordered discipline1516Run these in order. Do not reorder — simplifying unnecessary work is wasted work, and17automating an unproven workflow makes an unnecessary process cheaper to keep. Stop at the first18step that produces a terminal verdict — DELETE, REDUCE, or DEFER. BUILD and BUILD HARD are not19terminal: continue to step 4 to size what gets built.20211. **QUESTION** — What fundamental outcome is required, stated as an observable change for22 someone outside the codebase? Who created this requirement — a named person, an incident, a23 measurement, a written obligation? If the source is a role, a document, or a norm ("legal24 says", "architecture requires", "industry best practice", "the CEO asked for it", "for25 compliance"), provenance is unresolved: ask which specific rule, clause, or event it comes26 from before accepting any scope from it.27282. **DELETE** — Try to remove the whole thing, then its parts. Ask: if this ships without it,29 who notices, and through what signal? Name the observer and name the signal. If neither can30 be named, DELETE. If the whole survives, run the same test on each part — fields, states,31 options, config flags, layers, endpoints, dependencies, process steps — and delete every part32 that fails it. Deleting parts is the common outcome; a REDUCE verdict is that list.33343. **FOCUS** — Does this move the system's core value, or is it adjacent polish that survives35 only because it was requested? Adjacent work with real but non-core value is DEFER, with the36 trigger that would revive it named. Core work is not automatically small: when the difficulty37 is where the value lives, the verdict is BUILD HARD.38394. **SIMPLIFY** — Ask: what version, with the fewest moving parts, new concepts, and new40 dependencies, cannot be distinguished from the proposal by the observer named in step 2?41 Build that. Do not simplify past the proven outcome — something simpler that fails the42 outcome is not simpler, it is a different requirement.43445. **ACCELERATE** — Only now shorten the feedback loop: cut wait time, review latency, and45 round-trips on work already established as necessary and simplified. Never accelerate a step46 that step 2 should have deleted.47486. **AUTOMATE** — Automate only a workflow that is necessary, simplified, stable, and has been49 run manually often enough that its steps are known. Automating an unproven workflow converts50 a removable process into permanent infrastructure.5152Steps 5 and 6 apply to workflows and processes. For a single feature requirement, skip them53silently rather than narrating them.5455## Verdicts5657State exactly one. Do not present the five as options for the user to choose between, and do not58hedge with "it depends" — commit, then show the reasoning that can be argued with.5960| Verdict | Select when |61|---|---|62| **DELETE** | No observer and no signal can be named for the whole requirement, or it duplicates something the system already does. |63| **REDUCE** | The core outcome has evidence, but named parts failed the step 2 test. List every part removed. |64| **DEFER** | Value is plausible but nothing is blocked today — either the only support is a prediction, or the value is real but adjacent to the core. Name the concrete trigger that would revive it. |65| **BUILD** | Evidence supports the outcome and it is core. Build the step 4 version, nothing beyond it. |66| **BUILD HARD** | Core, and the cheap version provably fails the outcome. Say which simplification was rejected and what it would break. |6768A BUILD HARD verdict is invalid unless it names the simpler version considered and the specific69way that version fails the outcome. Without both, downgrade to BUILD and return to step 4.7071Verdict rules that decide common cases. When several apply, the verdict describes the *whole72requirement* while the rules describe *parts*: if the core outcome survives and only parts fail,73that is REDUCE with those parts listed as deleted scope — even where a part-level rule below says74DELETE.7576- An abstraction, interface, or plugin point with exactly one implementation and no committed77 second consumer is REDUCE — build the concrete thing. "Committed" means a named consumer with78 a date, not an anticipated one.79- Configurability with no user who has asked to configure it is DELETE. Hardcode the value; a80 constant is one edit away from a setting.81- A generalization justified by a second case that does not exist yet is DEFER, and the trigger82 is the second case arriving.83- Scope justified only by symmetry, consistency, or completeness ("we support X, so we should84 support Y") is DELETE unless Y has its own observer.85- Work whose only support is a hypothetical future user, elegance, or best practice is never86 BUILD. It is DEFER if a specific event would make it necessary and that event can be named;87 DELETE if no such event can be named.88- If the same outcome is reachable by deleting existing code, that is the BUILD.8990## Output contract9192Report, in this order and no longer than it needs to be:93941. **Fundamental objective** — the observable outcome required, not the requested artifact.952. **Evidence** — what supports it, and its provenance. State "no evidence found" plainly when96 that is the case; do not fill the gap with plausible reasoning.973. **Verdict** — one of the five.984. **Deleted scope** — what is not being built, itemized.995. **Retained scope** — what is being built, itemized and bounded.1006. **Next action** — the single concrete next step, or the trigger to wait for.101102## What counts as evidence103104Counts: a specific person or team who asked, with what they were trying to do; a production105incident or bug report; a measured number (latency, cost, error rate, support volume); a signed106contract, regulation clause, or audit finding; an existing usage pattern in the code or logs.107108Does not count: a hypothetical future customer; "it's best practice"; "we'll need it eventually";109symmetry with an existing feature; elegance; a competitor having it; the requester's seniority.110111Provenance beats confidence. "Legal requires it" is not evidence until it names the obligation;112"the CEO asked for it" identifies who, not why, and the underlying outcome still needs stating.113Escalate an unresolved authority claim to the human rather than guessing at the constraint.114115## The asymmetry116117Missing evidence is not symmetric across requirement types.118119- For **speculative** scope — future flexibility, anticipated scale, unrequested generality —120 missing evidence lowers confidence and pushes toward DELETE or DEFER.121- For **protective** constraints — security, safety, privacy, data integrity, legal and122 regulatory obligations, backward compatibility of a published interface — missing evidence does123 *not* license removal. The default is retain. Removal requires a named owner's decision and,124 where applicable, security, legal, or compliance review; record the residual risk.125126Protective constraints can still be *scoped*: challenge the implementation's size, not the127protection. "We need audit logging" may be REDUCE on which events are logged, while remaining128BUILD on logging at all.129130## When the human pushes back131132Insistence is not evidence, and neither is repetition. But you are not the decision-maker.1331341. Ask once for the missing piece specifically: who is affected, or what breaks without it.1352. If a concrete answer arrives, update the verdict and say what changed it.1363. If the answer is authority or restatement, say so plainly, note the specific risk you expect,137 and proceed as instructed — build the smallest version that satisfies the instruction.1384. Do not relitigate a settled decision, and do not silently build a larger version than the one139 you argued for.140141Minimalism is not the objective. Preserve difficulty when the difficulty is the mission: a142verdict that never says BUILD HARD is a bias, not a discipline.143144## References145146Load only the one that matches the step you are on.147148- [references/workflow.md](references/workflow.md) — when to run the discipline at all, stopping149 rules, evidence gathering, and applying it to a plan or to mid-implementation scope.150- [references/provenance.md](references/provenance.md) — resolving "legal says", "architecture151 requires", "best practice", "the CEO asked", and what to do when nobody can be asked.152- [references/deletion.md](references/deletion.md) — the observer/signal test, the full list of153 parts to enumerate, per-case deletion rules, and deletion that needs an owner's decision.154- [references/mission-alignment.md](references/mission-alignment.md) — defining core value,155 classifying adjacent work, and the four-part bar for BUILD HARD.