Agree on the plan. Then walk away.
One /ideation turns what you want into a plan you can read, answer and approve before a line of code is written, at the depth the work needs. Then your coding agent builds it in reviewed local commits, proves it with checks, and stops for your review.
Two ways in, with equal standing. Pick the one that fits your agent and your idea.
In PiAgree once, walk away.
- 01
Say what should change
/ideationThe agent reads your code, picks a depth (just do it, short plan, interview or map) and says why in one line. Overrule it in a word. It asks only what the code cannot answer.
- 02
Answer the plan
/ideation respondA short plan or an interview opens a plan page, live with pi-artifacts, or a form in the terminal. Each answer becomes the next plan version only after you confirm it. A just-do-it change skips the page.
- 03
Approve once
/ideation approveThe plan becomes a contract page with every check and the exact paths and commands. One short confirmation in Pi binds them; the page never approves (with pi-artifacts 1.6.0, not yet published, its Approve in Pi button brings up the same confirmation). Work starts right away in an isolated worktree on its own branch.
- 04
Let it work
walk awayEach unit is built and independently reviewed, with no time or token limit. The Pi widget and the same contract page update as evidence arrives.
- 05
Decide at review
/ideation acceptReady for review is not accepted. Read the evidence, make the human judgments, and accept. Merging the branch stays yours.
One page, from draft to receipt
The contract you approve becomes the run’s live page, then its record: the same link, and the same comments. The stamp only ever reports recorded state.
Commands
- /ideation
- — the guided menu for whatever is in flight
- plan <idea>
- — start at the right depth
- approve [path]
- — confirm once and start
- accept
- — record your decision
- exit
- — leave, taking the work with you
Where it lands
- Commits on
ideation/<run-id>, in its own worktree. Merging stays yours. - The plan and its versions, the brief, contract and receipt in
docs/ideation/<slug>/: commit them, or don’t. - Uncommitted work never blocks it. Start from your last commit, or include your changes; it never stashes or edits them.
- Never trapped:
/ideation exitstops the run and brings its work into your checkout.
Install
Pi 0.87.1 or newer. The second line is optional and makes plan and contract pages live; the last two are the tools planning calls (approving and running a plan needs neither). Then run /ideation.
pi install git:github.com/nicknisi/ideationpi install npm:@nicknisi/pi-artifactsoptional: live plan and contract pagespi install npm:@nicknisi/pi-subagentspi install npm:@juicesharp/rpiv-ask-user-questionIn Claude CodePlan it, then run it.
Ideation / Plan
Bookmark garden
interview · plan v1
Evidence gates · 5 of 5
✓problemthe visit log that already exists
✓goalssave → revisit → grow, one loop
✓criteria4 of 6 carry check commands
✓scopeseasons cut, recorded as not changing
✓consistencyschema.ts · bookmarks.visits
Decisions
[1.2]Where does the wilt clock live?
Answered: computed on read
[1.3]Who can change the wilt window?
Recommended: one app setting · open
Units · 3 waves
/ideation picks the depth. At the interview depth it keeps going until every gate carries evidence, and four adversarial critics read the plan. You answer its decisions on a page served from your machine, or paste them back. Approve in the terminal, and it builds: one unit through execute-spec in your checkout, more through autopilot on its own branch, one reviewed commit per unit.
- evidence gates
- 5
- read-only critics
- 4
- stages that can stop it
- 6
The same skill is /ideation in Pi.
The seven stages
Each has a defined output and defined grounds for stopping. Stopping is not error handling; it is the mechanism.
- 01
Should we?
A position on whether the idea is worth building at all. Conversation only: it writes no files, a hard rule of the opening.
Stops whenit concludes no — and writes nothing either way.
- 02
Interview
5 gates, each backed by an artifact rather than a confident sentence: the problem, the goals, the success criteria, the scope, and requirements that don't contradict each other.
Stops whena gate cannot be evidenced. It keeps asking; the plan is written at 5 of 5, or says why it stopped early.
- 03
Critique
Four read-only critics — scope creep, over-engineering, hidden dependencies, unfalsifiable criteria — file findings at three severities.
Stops whena blocker is filed. The plan is fixed first, and the interview can reopen on that gate.
- 04
The plan
plan.json, rendered as a page: claims, the decisions still open with a recommended answer each, checks and units. Your answers come back as the next version.
Stops whenalways. Nothing runs until you approve in the terminal; the page itself can never approve.
- 05
Execute
Units build in waves on an isolation branch, each reviewed before it commits, each commit carrying its Ideation-Unit trailer so a resumed run skips it.
Stops whenreview still fails after three cycles, a strict run’s reviewer returns no verdict, or a commit cannot name its files.
- 06
Harvest
At most three candidate lessons from the run, deduped against what is already recorded. Accept, edit or dismiss each one.
Stops whenyou dismiss them. A learning store nobody curates is only a log.
- 07
Next run
When a recorded lesson applies, the next interview says so in one line, at the question it shapes. learnings.md is committed with the repo: the team’s memory, not one machine’s.
Stops whennever. The only stage that cannot stop you — it points back at the interview.
What it refuses
Structural, not advisory: enforced by tool lists and commit rules, not good intentions.
No blind commits
There is no git add -A anywhere in it. Every commit names the files it wrote; one that cannot refuses instead.
No question cap
The interview runs as long as the evidence takes. In practice it is short, because every question arrives with a recommended answer.
No silent edits
Critics are read-only by construction. A fix that changes the plan lands as a decision on the claim it changes, with the old approach recorded as rejected.
Commands
- /ideation
- — One entry point, at the right depth
- /ideation:brainstorm
- — Decide whether to build it, before any planning
- /ideation:autopilot
- — Run every unit of an approved plan on the workflow engine
- /ideation:execute-spec
- — Run a single unit by hand, with the same review loop
- /ideation:get-goal-prompt
- — Print a /goal that drives the whole plan unattended
What it writes
docs/ideation/
├── learnings.md
└── bookmark-garden/
├── plan.json # always the current plan
├── plan.v1.json … # every earlier version
├── plan.html # the page you answer
├── run-contract.json # frozen when you approve
├── unit-<id>.md … # one work packet per unit
└── run-<date>.html # the run report (+ .json)Reviewable files, yours to commit with the code. In Pi, the folder gets brief.json (the run contract), contract.html and receipt.json instead of the packets and the report.
Install
Run these two lines one after the other, then run /ideation and describe the messy version of your idea.
Running it in Pi instead
Install the plugin and the two tools planning calls, then run /ideation. The execution commands here also run as /skill:<name>.
pi install git:github.com/nicknisi/ideationpi install npm:@nicknisi/pi-subagentspi install npm:@juicesharp/rpiv-ask-user-question/plugin marketplace add nicknisi/ideation/plugin install ideation@ideationEither way
Two front doors, one set of promises.
Approval is the only permission
Nothing is built before you approve a plan in the terminal. Pages, comments, questions and silence never count as a yes.
Evidence, not confidence
Plans need artifacts, and checks are commands that must exit 0. A judgment only a person can make waits for a person.
It stops at review
Work lands as local commits, on an isolation branch for any plan of more than one unit. Neither path pushes, merges or deploys.
Files you own
Plans, their versions, run contracts and receipts are files in docs/ideation/, yours to commit or not. There is no service and no account.