defer.sh

Zero-Autonomy AI.
Every Decision Is Yours.

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.

See it work

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.

Why this works

You can always grant autonomy. You can't claw back silent decisions.

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.

Decisions are the product

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.

Structured questions beat blank prompts

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.

Get started

Copy the prompt and paste it into your AI tool. Or use the CLI for decision tracking across sessions.

~

Universal

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]
+ Show prompts for Claude Code, ChatGPT, Cursor, API
>_

Claude Code

Drop this into your project's CLAUDE.md file.

G

ChatGPT

Paste into ChatGPT's Custom Instructions.

{}

Cursor

Save as .cursor/rules/defer.mdc in your project.

//

API System Prompt

Use as the system parameter in LLM API calls.

CLI

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

The decision record

Every choice that shaped your project, in one file. Who decided, what they decided, and when.

DECISIONS.md

IDCategoryQuestionAnswer
D001AuthSession-based or JWT?JWT
D002AuthToken storage?httpOnly cookies
D003SecurityPassword hashing?argon2
D004UXFailed login message?DELEGATED: generic “invalid credentials”