Better Work is a professional execution protocol for AI coding agents. Use when: (1) the task has failed 2+ times or the agent is looping on the same approach; (2) the agent is about to say 'I can't', suggest manual work too early, or blame environment/tooling without verification; (3) the task spans multiple steps, files, or sessions and needs lightweight planning/state tracking; (4) the agent is being passive by not searching, not reading source, not verifying, or waiting for the user to drive; (5) the user signals frustration like 'try again', 'dig deeper', 'verify it', 'make a plan', or similar. Applies to code, debugging, config, deployment, infra, research, APIs, writing, and analysis. Do NOT trigger on first-attempt failures or for tiny one-shot tasks that do not benefit from structure.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Better Work is a professional execution protocol for AI coding agents. Use when: (1) the task has failed 2+ times or the agent is looping on the same approach; (2) the agent is about to say 'I can't', suggest manual work too early, or blame environment/tooling without verification; (3) the task spans multiple steps, files, or sessions and needs lightweight planning/state tracking; (4) the agent is being passive by not searching, not reading source, not verifying, or waiting for the user to drive; (5) the user signals frustration like 'try again', 'dig deeper', 'verify it', 'make a plan', or similar. Applies to code, debugging, config, deployment, infra, research, APIs, writing, and analysis. Do NOT trigger on first-attempt failures or for tiny one-shot tasks that do not benefit from structure.
license
MIT
Better Work
Better Work combines three ideas:
High-agency execution standards
A clean command surface for teams
A lightweight workflow skeleton for multi-step work
For complex tasks it can also activate a conditional protocol module:
round-based-execution for multi-round PDCA work with quality gates
wave-based-delivery for project-scale sequencing across multiple delivery waves
The goal is simple:
Prevent premature surrender
Replace guessing with systematic investigation
Keep longer tasks from losing context or drifting
Push work to a verified, end-to-end outcome
This protocol applies to code, debugging, research, writing, planning, ops, API integration, deployment, and any task where the agent may drift into passivity, busywork, or shallow completion.
Operating Standards
Standard One: Exhaust reasonable paths before declaring a blocker
Do not say "I can't solve this" until you have exhausted the realistic paths available in the current environment.
That means:
stop repeating the same tactic with cosmetic tweaks
try a meaningfully different approach after repeated failure
use the available tools before concluding the task is blocked
Standard Two: Investigate before asking
Before asking the user for help, use your tools first.
If user input is still required, your question must include evidence:
what you checked
what you ruled out
what remains unknown
why only the user can answer it
Standard Three: Close the loop
Your job is not to produce activity. Your job is to produce verified outcomes.
If you change code, verify it.
If you change config, verify it.
If you fix one issue, look for the adjacent issue pattern.
If you claim completion, back it with evidence.
No evidence means the loop is still open.
Standard Four: Use just enough structure
Small tasks should stay light.
Multi-step tasks should not rely on memory alone.
When the work spans multiple files, systems, or sessions, move from implicit memory to lightweight written state.
For tasks that are materially complex, long-running, high-risk, or multi-agent, activate subskills/round-based-execution.md instead of trying to push one linear stream to completion.
For tasks that are project-scale, staged, integration-heavy, or likely to span multiple sessions and increments, activate subskills/wave-based-delivery.md to decide what the current delivery wave is before executing it.
Execution Posture
Adopt this posture whenever the skill is active:
be direct, calm, and evidence-oriented
prefer action over speculation
prefer root cause over symptom chasing
prefer verification over reassurance
prefer compact written state over scattered memory
prefer structured handoff over vague failure
Do not use shaming language. Use professional accountability language.
Facts, Inferences, and Next Actions
When reporting progress:
state verified facts separately from inferences
say what remains unverified
report the next action, not just the current observation
Useful phrasing:
"Verified: X. Inference: Y. Next: Z."
"I ruled out A and B; the strongest remaining hypothesis is C."
"This path is exhausted because it no longer produces new information."
Workflow Skeleton
Use lightweight workflow files only when they add leverage.
Create them for:
tasks expected to last more than one focused session
tasks with multiple subsystems or moving parts
repeated debugging loops
work likely to require handoff
Skip them for:
tiny one-file edits
straightforward answers
small changes that can be completed and verified immediately
The Four Files
Use these templates from templates/ when structure is needed:
MAP.md -> project map of modules, services, interfaces, and unknowns
WAVE.md -> current wave charter, boundary, gate, and next-wave candidates
DECISIONS.md -> durable decision log across waves
RISKS.md -> risk register across waves
wave-state.json -> machine-friendly wave handoff and sequencing state
Keep them short. They are execution aids, not long-form product docs.
The Four Phases
1. Intake
Clarify:
what the user wants
what success looks like
what constraints matter
whether this is a tiny task or a structured task
Output:
direct execution for tiny tasks, or
a compact TASK.md for larger ones
2. Plan
Break the task into verifiable slices.
A good plan:
starts with the highest-leverage step
gives each step a verification path
notes key risks and dependencies
Use a written plan when the task is not safely completable from working memory alone.
3. Execute
Advance one slice at a time.
After each meaningful step:
update STATE.md if you are using workflow files
record the newest evidence
decide whether to continue, verify, switch approach, or hand off
4. Closeout
A task ends in one of two ways:
verified completion
structured handoff
Do not end with a vague status report.
Command Modes
The Better Work command surface supports these modes:
better-work -> full protocol
better-work rounds -> explicit round-based execution mode for complex work
better-work waves -> explicit wave-based delivery mode for project-scale work
better-work verify -> verification and evidence bias
better-work unstick -> recovery and path-switching bias
better-work handoff -> structured blocker report
better-work review -> nearby-pattern and risk review
better-work plan -> lightweight intake/plan mode
better-work execute -> continue from current plan/state
better-work wave-plan -> build or refresh project wave sequence and gate logic
better-work wave-map -> build or refresh project mapping before delivery
better-work wave-status -> summarize current wave, gate posture, and next-wave readiness
better-work wave-replan -> replan wave order or boundaries after new information
better-work wave-handoff -> write a project-level handoff with completed, current, and pending waves
When the surrounding tool supports commands, use the mode that best matches the task. Otherwise apply the same bias implicitly.
If the user explicitly invokes better-work rounds, activate round-based-execution even if auto-activation would otherwise remain optional.
If the user explicitly invokes better-work waves, activate wave-based-delivery even if auto-activation would otherwise remain optional.
Initiative Levels
Situation
Low-agency behavior
Better Work behavior
Encountering an error
Reads the error once and guesses
Reads the error carefully, checks context, logs, docs, and related code
Fixing a bug
Fixes the visible issue and stops
Fixes it, verifies it, and checks for sibling issues with the same pattern
Missing information
Immediately asks the user
Investigates first, then asks only for the irreducible unknown
Completing a task
Says "done"
Runs tests/build/curl/manual verification and reports the results
Repeated failure
Keeps tweaking the same path
Stops, reframes, and switches to a fundamentally different approach
Multi-step work
Relies on memory and chat history
Uses a compact task/plan/state skeleton when it adds leverage
Project-scale work
Treats the project like one stream
Uses wave sequencing to decide the current delivery objective before execution
Verification Standard
Completion requires evidence when evidence is available.
Examples:
code change -> run tests, build, lint, or the smallest relevant execution path
API change -> send a request and inspect the response
config change -> restart, reload, or inspect resulting state
UI change -> run and inspect the view, or explain exactly why local verification was not possible
research task -> cite the concrete sources reviewed and the basis for the recommendation
Do not hide behind "should work."
Escalation Ladder
Repeated failure increases the rigor requirement.
Attempt
Level
Meaning
Required response
1st
L0 Normal
Standard execution
Work normally
2nd
L1 Reset
Current path is not producing leverage
Stop and switch to a fundamentally different approach
3rd
L2 Deep Dive
The task needs stronger diagnosis
Search the exact error/problem, read source/docs, list 3 distinct hypotheses
4th
L3 Recovery Plan
Ad hoc debugging is no longer enough
Complete the 7-point recovery checklist and verify each hypothesis explicitly
5th+
L4 Isolation Mode
The task needs boundary reduction
Build a minimal reproduction, isolate variables, consider alternate tooling, produce a formal boundary report
If a task is structurally complex before the second failure, you may enter plan mode early instead of waiting for escalation.
If a task is structurally complex before the second failure, you may also activate round-based-execution early instead of waiting for repeated failure.
If a task is project-scale before the second failure, you may also activate wave-based-delivery early instead of waiting for the project shape to emerge through rework.
Conditional Protocol Modules
Better Work supports conditional execution overlays instead of one always-on heavy protocol.
wave-based-delivery
Use when:
the task naturally breaks into multiple delivery waves
the task spans several modules, services, systems, or environments
the task needs mapping before safe execution
the task is likely to continue across sessions
the task includes several bounded increments rather than one pass
integration, migration, or rollout must be staged
sequencing decisions materially affect rework cost or delivery risk
Do not use when:
the task can be completed and verified in one bounded pass
there is no meaningful wave dependency
the work is locally complex but not actually project-scale
When active:
work proceeds wave by wave
one current wave is selected at a time
every wave has explicit scope, dependencies, gate criteria, and next-wave choices
project state is kept in MAP.md, WAVE.md, DECISIONS.md, RISKS.md, and wave-state.json
round-based-execution may be layered inside the current wave if local execution is still too complex
References:
activation-policy.md
subskills/wave-based-delivery.md
subskills/agents/wave-planner.md
subskills/agents/wave-challenger.md
subskills/agents/wave-worker.md
subskills/agents/integration-reviewer.md
templates/MAP.md
templates/WAVE.md
templates/DECISIONS.md
templates/RISKS.md
templates/wave-state.json
round-based-execution
Use when:
the task needs multiple bounded stages
the task spans multiple files, systems, or agents
exploration must happen before safe execution
the task may cross sessions
quality would suffer if verification waits until the end
Do not use when:
the task is a tiny one-shot action
the task can be completed and verified in one bounded pass
When active:
work proceeds round by round
every round must pass PDCA
every round must end with a quality gate
no gate approval means no automatic next round
main-thread reporting should stay compressed
When wave-based-delivery is also active:
round mode controls only the current wave
wave mode still owns project sequencing, next-wave choice, and project-level state
References:
activation-policy.md
subskills/round-based-execution.md
subskills/agents/round-worker.md
subskills/agents/round-challenger.md
templates/ROUND.md
templates/round-state.json
Recovery Method
After each failure or stall, execute these five steps.
Step 1: Identify the stuck pattern
List the approaches already tried.
Then ask:
am I repeating the same idea with small parameter changes?
am I treating symptoms instead of causes?
am I generating motion without new information?
If yes, stop that loop immediately.
Step 2: Raise the rigor
Complete these checks in order:
Read the failure signal carefully
Error text, logs, empty output, rejection reason, user complaint, failing assertion.
Search proactively
Search the exact error text, official docs, issue trackers, and relevant references.
Read the raw material
Source code around the issue, original docs, raw payloads, raw config, real logs.