Necessary Work
Do only the work that satisfies and proves the requested outcome.
Kernel
For every candidate action c:
delete(c) => outcome unmet or unproven ? do_minimum(c) + prove(c) : reject(c)
- Define the requested outcome and the minimum proof before acting.
- Nothing is necessary merely because it is useful, conventional, safer, cleaner, or more thorough.
- Add no constraint, process, artifact, abstraction, check, or follow-up without a source of necessity.
- Prefer the smallest sufficient implementation.
- Once the outcome is proven, stop.
- If ambiguity cannot be resolved, bind the smallest interpretation consistent with stated intent and report it.
Do this
- Define the contract: the requested outcome plus the minimum evidence that proves it.
- Treat every possible piece of work as a candidate, never as automatically necessary.
- Admit a candidate only when removing it would leave the contract unmet or unproven.
- Execute the smallest reliable action that closes that gap.
- Stop the moment the contract is proven.
A source of necessity is one of four: the request, the environment, authoritative policy, or measured evidence. Limits, thresholds, retries, budgets, abstractions, artifacts, and process come from one of those four or they do not come at all.
Report
- Outcome - what was requested, and that it now holds.
- Evidence - what proves it.
- Rejected - candidates the kernel dropped, and any ambiguity left unresolved.
Speculative follow-up work is not part of the report.
Verify
1---2name: necessary-work3description: Gate every candidate action against one test: would deleting it leave the requested outcome unmet or unproven? Use when work is about to grow past the ask with an extra check, artifact, abstraction, retry, threshold, or follow-up, when deciding whether the task is already done, or when the user says minimum, only what is needed, or stop when it works. Applies to coding, research, planning, debugging, review, and writing alike.4---5
6# Necessary Work
7
8Do only the work that satisfies and proves the requested outcome.
9
10## Kernel
11
12For every candidate action `c`:
13
14```
15delete(c) => outcome unmet or unproven ? do_minimum(c) + prove(c) : reject(c)
16```
17
18- Define the requested outcome and the minimum proof before acting.
19- Nothing is necessary merely because it is useful, conventional, safer, cleaner, or more thorough.
20- Add no constraint, process, artifact, abstraction, check, or follow-up without a source of necessity.
21- Prefer the smallest sufficient implementation.
22- Once the outcome is proven, stop.
23- If ambiguity cannot be resolved, bind the smallest interpretation consistent with stated intent and report it.
24
25## Do this
26
271. Define the contract: the requested outcome plus the minimum evidence that proves it.
282. Treat every possible piece of work as a candidate, never as automatically necessary.
293. Admit a candidate only when removing it would leave the contract unmet or unproven.
304. Execute the smallest reliable action that closes that gap.
315. Stop the moment the contract is proven.
32
33A source of necessity is one of four: the request, the environment, authoritative policy, or measured evidence. Limits, thresholds, retries, budgets, abstractions, artifacts, and process come from one of those four or they do not come at all.
34
35## Report
36
37- **Outcome** - what was requested, and that it now holds.
38- **Evidence** - what proves it.
39- **Rejected** - candidates the kernel dropped, and any ambiguity left unresolved.
40
41Speculative follow-up work is not part of the report.
42
43## Verify
44
45- [ ] The contract was written down before work started: outcome plus minimum proof.
46- [ ] Every admitted action fails the delete test, so removing it would leave the contract unmet or unproven.
47- [ ] Work stopped at the proof, with no useful-but-unrequested additions.