write-goal
Turn a rough task into one /goal line Claude can actually prove
$ claude
> /write-goal ▌
Overview
A Claude Code skill that converts a vague task into a single copy-paste /goal command with a measurable end state, transcript-visible proof, explicit constraints, and a turn cap. Claude Code's built-in /goal loop keeps the AI working until a condition is true — but the condition is judged by a small model that can only see what's printed in the chat. A goal like “until the code is clean” never terminates. This skill writes goals that carry their own proof.
Why it exists
I was poking at Claude Code's /goal command when it clicked that I'd been babysitting long tasks by hand while a whole built-in loop sat unused. Then I hit the catch: the evaluator can't run commands or open files — it only sees the transcript. So “loop until the tests pass” is worthless if the test output never gets printed. Solving that puzzle by hand every time got old fast, so I built a skill that writes the goal for me. Fittingly, every task in the session that built it was itself running under /goal — including the one that built this.
What it does
Produces a measurable end state — a real signal like an exit code or a file count, never “works” or “done”
Builds in transcript-visible proof: a specific command whose output Claude must print, so the loop can tell it's finished
Encodes constraints — what must not change on the way to the goal
Adds a turn cap, so a stuck loop stops and reports instead of running forever
If the task is too vague to have a finish line, it asks exactly one question — never a quiz
A real example
Hand it a rough task and get back a goal with all four ingredients built in:
/write-goal utils.js is too big, split it
/goal src/utils.js is split into focused modules each under 200 lines with all imports updated, proven in the transcript by `npm run build` and `npm test` both exiting 0 with the same passing-test count as before. Do not change any exported function signature. Stop after 25 turns and report what remains.
Install
One command from the repo root. It drops the skill into ~/.claude/skills/ — nothing gets overwritten without you doing it yourself.
$ git clone https://github.com/edcadet10/write-goal $ cd write-goal $ ./install.sh
More from the toolkit
Want AI that proves its work?
I build tools like this because I use AI for real work every day — and I help businesses adopt it the same way.