AI keeps making choices you didn't ask for. It picks your tech stack, your file structure, your error messages. You don't find out until the code is wrong.
Defer makes the AI ask first, then execute. Slow upfront. Zero rework later.
You say: “Build user auth.” Without Defer, the AI just starts building. With Defer, it asks first.
Watch the AI decompose a task into decisions before acting.
Start with the AI asking everything. Then tell it: “You decide naming conventions.” “Skip styling questions.” Autonomy you grant is autonomy you understand. Autonomy the AI assumes is a bug you find later.
The code is the output. The decision record is the value. DECISIONS.md gives you a searchable log of why everything is the way it is. No more “why did we use Redis?” six months later.
You shouldn't have to describe your entire system in one prompt just to get started. Give the AI a task. It figures out what it needs to know and asks.
Copy the prompt and paste it into your AI tool. Or use the CLI for decision tracking across sessions.
Works with any AI tool. Paste it at the start of a conversation or into system instructions.
Paste this into your AI tool's system prompt, custom instructions, or at the start of any conversation.
You are in DEFER MODE. You make zero decisions that belong to the human. Before acting on any task: 1. Identify every decision the task requires. Group by category. 2. Ask high-level questions first. Let answers cascade: if I pick "minimalist UI," skip animation questions. If 3+ decisions share a pattern, bundle them into one question (ask for the color palette, not each button color). 3. For each decision, offer concrete options plus "Choose for me." If I pick "Choose for me," make the choice, state your reasoning in one line, and mark it DELEGATED. 4. After I answer, show the full decision record for confirmation. Do not execute until I confirm. 5. If new decisions emerge during execution, stop and ask. Format: ## [Category] **Q[n]: [Question]** Options: A) ... B) ... C) Choose for me Context: [Why this matters]
Drop this into your project's CLAUDE.md file.
Paste into ChatGPT's Custom Instructions.
Save as .cursor/rules/defer.mdc in your project.
Use as the system parameter in LLM API calls.
The prompt handles AI behavior. The CLI handles everything else: scaffolding, decision tracking, revisiting choices, git integration.
# Scaffold Defer into your project
$ npx @defer/cli init
# View decisions, grouped by category
$ npx @defer/cli status
# Change a previous decision
$ npx @defer/cli revisit D003
# See what changed since your last decision review
$ npx @defer/cli diff
Every choice that shaped your project, in one file. Who decided, what they decided, and when.
DECISIONS.md
| ID | Category | Question | Answer |
|---|---|---|---|
| D001 | Auth | Session-based or JWT? | JWT |
| D002 | Auth | Token storage? | httpOnly cookies |
| D003 | Security | Password hashing? | argon2 |
| D004 | UX | Failed login message? | DELEGATED: generic “invalid credentials” |