Requirements
| Requirement | Version | Notes |
|---|---|---|
| Node.js | >= 20 | Required by the Copilot SDK package. |
| npm | >= 10 | Used by the installer to install production dependencies. |
| GitHub Copilot CLI | current | Required for CLI strict mode. Restart it after install. |
| VS Code Copilot Chat | current | Required for VS Code Chat preview mode. |
| macOS or Linux shell | bash-compatible | The hook helper is a shell script. |
Preferred setup
VS Code Marketplace
Install the extension:copilotGoalSystem.homeOverride when you need to install into a different local profile. Set copilotGoalSystem.vscodeMcpConfigPathOverride only if your VS Code MCP config lives outside the detected profile path.
Terminal
Clone with SSH:What gets installed
| Path | Purpose |
|---|---|
~/.copilot/extensions/goal-system/ | Extension package, tests, docs, hook config, and dependencies. |
~/.copilot/skills/goal/SKILL.md | Goal-mode skill used by Copilot. |
~/.copilot/hooks/goal-context.sh | CLI lifecycle hook helper. |
~/.copilot/hooks/goal-system-vscode.json | VS Code Chat lifecycle hook config. |
~/.copilot/agents/goal-system.agent.md | VS Code Chat custom agent. |
VS Code profile mcp.json | goalSystem stdio MCP server config. |
~/.copilot/settings.json | Hook entries are merged into existing settings. |
~/.copilot/copilot-instructions.md | A short goal-system reminder is appended once. |
Hook entries
The installer adds these hook events:.github/hooks/goal-system.json into a repository when you want the hook setup committed with that project.
The VS Code Chat adapter adds these hook events:
UserPromptSubmit is required for VS Code Chat to persist a draft goal immediately when a prompt starts /goal, inject active-goal context on each prompt, and load one unambiguous same-directory goal on explicit continuation.
Update
From VS Code, update the extension through the Marketplace. The extension checks whether the local runtime in~/.copilot/extensions/goal-system/ is older than the bundled version and prompts you to update stale local files. You can also run:
~/.copilot/extensions/goal-system/.
Marketplace publish
GitHub Actions publishes Marketplace releases when av* tag is pushed. The workflow requires a repository secret named VSCE_PAT.
Create the token in Azure DevOps with Marketplace publish permission, then store it:
Publish VS Code Extension workflow manually with publish=false.
Uninstall
Remove the installed files:~/.copilot/settings.json and remove hook entries whose bash value is:
~/.copilot/copilot-instructions.md:
goalSystem entry from the VS Code profile mcp.json.
Troubleshooting
/goal only says the skill loaded
Run:
goal skill appears and the extension tools are visible. Restart Copilot CLI if the extension was installed while a session was already running.
Goal state does not resume after compaction
Check state files:goal_system_status inside Copilot before continuing. If no state exists, start a new goal and inspect before acting.
Tool calls get denied
The drift guard is working. Callgoal_system_update with real progress, inspection evidence, verification results, remaining work, or blockers.
VS Code Chat tools do not appear
Run:goalSystem MCP server appears under MCP: List Servers.
A stop is blocked
An open goal still exists. Follow the continuation directive: callgoal_system_status, continue the next concrete remaining item, update persisted state with evidence, or call goal_system_close as complete, blocked, or cancelled with evidence.
npm install fails
Run manually:./install.sh.