Get goal prompt
Generate a /goal command that runs an ideation project to completion UNATTENDED by driving /ideation:autopilot. The /goal string is owned by scripts/contract-gen.ts (--print-goal); this skill resolves the project's contract-data.json, prints the goal, and copies it to the clipboard. Use when the user says 'goal', 'run as goal', 'goal prompt', or wants to run the project long-haul/unattended rather than watching /ideation:autopilot interactively.From its SKILL.md
npx -y skills add nicknisi/ideation --skill get-goal-promptAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 11 stars11 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.1 KB, as published. Nobody here has run it
Generate /goal Command for Unattended Execution
Arguments: $ARGUMENTS
Emit the /goal that drives /ideation:autopilot to completion unattended. The goal
string has exactly one owner — buildGoal() in ${CLAUDE_PLUGIN_ROOT}/scripts/contract-gen.ts,
printed by --print-goal — so this skill only resolves the project, prints, and copies.
Never hand-author or template the /goal; a second copy of that string is drift.
(The layered model — goal wrapper → autopilot → engine → execute-spec — is owned by
ideation SKILL.md § 5.4.)
- Resolve
contract-data.jsonfirst — it is the source of truth;contract.mdis only a legacy fallback. Argument given: acontract-data.jsonpath is used directly; acontract.mdpath means its siblingcontract-data.json. No argument: glob./docs/ideation/*/contract-data.jsonand take the most recently modified. If the project has nocontract-data.json, stop and say so —--print-goalconsumes it, so the fix is re-running ideation, not hand-writing a goal. - Already complete? Run
node ${CLAUDE_PLUGIN_ROOT}/scripts/verify.mjs <contract-data.json>. Exit 0 → quote its finalVERIFY {slug}: …line, tell the user the project is complete, and stop. - Print the goal:
node ${CLAUDE_PLUGIN_ROOT}/scripts/contract-gen.ts --input <contract-data.json> --print-goal— an early exit that writes nothing (no lineage snapshot, no re-render). The output already carries the isolation-branch clause when the contract hasbranch, the background-workflow rule, and the verify.mjs-based done-when. - Copy and show: pipe the printed command to
pbcopy(Linux:xclip -selection clipboardorxsel --clipboard), then print it so the user sees what they are about to paste. - On a permission denial of any command above: print the exact command for the user
to run themselves (
! node …) and stop. There is no fallback template.
Then remind the user: enable auto mode (/auto) so tool calls don't block each turn, and
confirm the engine is available (Workflow tool in Claude Code; in pi the plugin bundles
its engine extension, so nothing further is needed). One caveat, not a gate — and honestly labeled: this detail was derived from
Claude Code binary strings and could not be verified from this repo — /goal appears to
require a trusted workspace and may refuse to run when hooks are restricted. If the paste
is rejected, that is the likely reason; it is a property of the CLI session, not of this
project.