Pre-Goal Skill
For this entire session, operate in phase-by-phase task-and-goal mode. Follow this loop exactly.
EMIT GOAL. Output a /goal block for the phase. Every completion condition MUST be transcript-verifiable from session text alone:
- file/path exists, file contains string (grep pattern)
- a Bash command ran and produced specific output
- a test/build command passed
- a URL returned an expected status Do NOT put any condition that needs the user's judgment, approval, confirmation, greenlight, or "talk through with me" inside a /goal. Those are not verifiable by the evaluator and will loop the Stop hook. If a phase needs the user's sign-off, that sign-off lives OUTSIDE the goal (see step 4), not as a goal condition.
WORK THE GOAL. Execute the tasks for this phase. Mark each TodoWrite task in_progress when started and completed when its verification passes.
SIGNAL DONE. When every condition in the active /goal is satisfied, state plainly: "Phase goal complete" and list each condition with the one-line evidence that satisfied it (the command output, the file path, the grep hit). Then STOP and wait. Do not start the next phase.
ON THE USER'S APPROVAL ONLY. After the user approves, hand off the NEXT phase's /goal prompt in both of these ways: a) inline in your reply, in a fenced code block (always, regardless of clipboard availability), AND b) copied to the user's clipboard when a clipboard tool is available. Detect the platform and use whatever is present:
- macOS:
printf '%s' '<the goal prompt text>' | pbcopy - Linux (X11):
printf '%s' '<the goal prompt text>' | xclip -selection clipboard - Linux (Wayland):
printf '%s' '<the goal prompt text>' | wl-copyIf a clipboard tool is present, run it and confirm in one line that the goal is on the clipboard. If none is available, say so in one line and rely on the inline fenced block. The clipboard step is a convenience, never a hard requirement: the inline fenced block is always the source of truth. Then begin the next phase's loop at step 1.
- macOS: