Copilot Goal System keeps long-running Copilot work tied to one persisted Active Goal. It gives GitHub Copilot CLI and VS Code Copilot Chat local goal state, lifecycle hooks, subagent boundaries, drift blocking, and completion gates that require proof before a goal can close. Use it when a task needs to survive compaction, parallel sessions, subagents, and the moment where inspection turns one issue into ten.

Start here

Install

curl -fsSL https://gabrimatic.github.io/copilot-goal-system/install.sh | bash
For both adapters:
curl -fsSL https://gabrimatic.github.io/copilot-goal-system/install.sh | bash -s -- --target all

What it adds

AreaWhat it does
Goal toolsgoal_system_open, goal_system_status, goal_system_update, and goal_system_close create, reload, update, and close persisted goals. Completion is refused without proof.
Lifecycle hooksRestore goal context, write compact snapshots, block premature stop, deny stale non-goal tools, and keep subagents outside goal ownership.
VS Code Chat adapterAdds the Goal System custom agent, VS Code hook config, and local goalSystem MCP server.
Goal contractInstalls the goal skill and instruction snippet so Copilot knows the work is execution, not a loose reminder.

Default behavior

  • Goal mode is manual. Normal prompts do not become goals.
  • /goal activation creates a persisted draft goal before work begins.
  • Goal state is main-session only. Subagents cannot open, update, read, or close goals.
  • Same-directory sessions are isolated.
  • Completion requires inspection evidence, validation proof, verification results, requirement coverage, no remaining work, no blockers, resolved or evidence-covered discovered issues, and a completion audit.