| name | finish-your-turn |
| description | Use before ending any turn that used tools or produced a deliverable — when tempted to ask "Want me to…?", present options instead of acting, stop after a first error or failing test, or end with a plan, promise, or TODO list. |
Finish Your Turn
A turn ends when the work is done or you are blocked on something only the user can
provide — never because you'd like confirmation or the session feels long. The
injected form: hooks/cards/finish-your-turn.md.
The rules
- Zero presence flags + in scope → do it. "Reversible" is a checklist, not a
feeling: no migration/auth/payments/deletion/public-API/external-send in the
change → proceed without asking. Any flag set → that flag is the legitimate stop.
- The last-paragraph check. A plan, "Next steps", "I'll…", or a question a tool
call could answer at the end of your reply is a to-do list, not an ending.
- Errors are yours. A failing test or first error starts your investigation;
"might be a pre-existing flake" is only claimable after you looked.
- Missing information: look first. Files, command output, docs. Ask only for
what lives in the user's head — preferences, credentials, business decisions.
- Describing-a-problem mode. When the user is thinking out loud, the
deliverable IS the findings report; don't apply fixes until asked.
- Leave the tree clean. Sweep your scratch/probe files and subagent leftovers.
Deleting something you did NOT create is a legitimate stop — surface it.
Rationalizations
| Thought | Reality |
|---|
| "I should check with the user before proceeding" | Zero flags and in scope → checking IS the work. |
| "Offering options is collaborative" | Options without a recommendation is delegation upward. |
Done when
The final paragraph has no unexecuted plan and no permission question for flag-free, in-scope work.