goal-prep

Prepares structured goal boards with role-tagged tasks for long-running Codex and Claude Code work.

820|66|Updated May 3, 2026
One-click install
npx skills add https://github.com/tolimarchuk/goalbuddy --skill goal-prep-tolimarchuk
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: goal-prep
Source: https://github.com/tolimarchuk/goalbuddy/tree/main/goalbuddy
Command: npx skills add https://github.com/tolimarchuk/goalbuddy --skill goal-prep-tolimarchuk

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Long-running, vague, or stalled coding goals in Codex and Claude Code lose direction across turns: plans get re-invented, verification is skipped, and agents stop early. Goal Prep compiles raw user intent into a durable local goal board (goal.md, state.yaml, notes/) with a goal oracle, one active task, and receipt-based proof so runs can pause, resume, and finish against observable evidence. ## Core Features & Use Cases - Intake Compiler: Translates vague, specific, existing-plan, recovery, or audit input into a structured goal intake with completion proof, goal oracle, likely misfire, and blind spots, asking guided diagnostic questions when clarity is missing. - Role-Tagged Board Seeding: Creates a state.yaml task board with Scout (read-only evidence mapping), Judge (read-only decisions), and Worker (bounded writes inside allowed_files with verify and stop_if) tasks, plus a final audit task. - Validation and Receipt Tooling: Bundled scripts check board validity (check-goal-state.mjs), apply receipts atomically with fail-closed revert (apply-receipt.mjs), enforce a stop gate (check-can-stop.mjs), and dispatch tasks to external harness CLIs with git-based scope verification (dispatch-task.mjs). - Use Case: A user says "make this repo's billing flow reliable." Goal Prep runs diagnostic intake, creates docs/goals/billing-reliability/ with a charter and seeded Scout/Judge/Worker board, starts the local live board, and prints the exact /goal or /goalbuddy command to begin execution. ## Quick Start Ask the agent to run goal-prep for your broad coding objective, answer its intake questions, then start execution with the printed /goal or /goalbuddy command.

Frequently Asked Questions about goal-prep

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I prepare a long-running coding goal in Codex or Claude Code?

Invoke $goal-prep in Codex or /goal-prep in Claude Code with your objective. The skill runs an intake compiler, asks guided questions for vague input, then creates docs/goals/<slug>/ with goal.md, state.yaml, and notes/, and prints the exact /goal or /goalbuddy command to start execution.

What is the difference between goal-prep and the /goal execution command?

goal-prep only compiles the board: intake, goal.md, state.yaml, and starter commands, then stops. Codex /goal or Claude Code /goalbuddy executes the board, running Scout, Judge, and Worker tasks and recording receipts. The boundary is strict; prep never performs the requested work.

Can a GoalBuddy board move between Codex and Claude Code?

Yes. The board lives as plain files in the repo, with state.yaml as the only truth. A goal started in Codex can resume in Claude Code and vice versa, and receipts can record which harness performed each task. Tasks can also be dispatched to the other vendor's CLI with dispatch-task.mjs.

What happens if the Scout, Worker, or Judge agents are not installed?

The board records agent availability as installed, bundled_not_installed, missing, or unknown. Non-installed states are warnings, not failures: the main /goal PM thread performs Scout, Judge, and Worker shaped tasks directly as a fallback when dedicated agents are unavailable.

When should I not use goal-prep for a task?

Do not create a GoalBuddy board for a one-change task. If goal-prep is invoked on one anyway, it offers the direct change without a board as the recommended option, or prepares the smallest valid board if the user insists on defaults.

Why does the goal state checker reject my state.yaml file?

Common causes include missing version: 2, task ids not matching the T### format, more than one active task, done tasks without receipts, or Worker receipts with failing commands or files outside allowed_files. Run check-goal-state.mjs on the goal directory for the exact error list.