Required primitives
Any adapter needs these primitives:| Primitive | Why it matters |
|---|---|
| User-triggered skill or slash command | Goal mode must stay manual. |
| Local persistent tool state | Goal state must survive compaction and resume. |
| Custom tools | The model needs explicit status, open, update, and close operations. |
| Pre-tool decision hook | Drift blocking needs a way to deny stale tool calls. |
| Prompt/session hooks | Continuation needs compact context injection. |
| Stop hook | Open goals need a way to block premature turn completion. |
| Subagent lifecycle metadata | Subagents must be excluded from goal ownership. |
GitHub Copilot CLI
Stable strict mode is supported by this project. Copilot provides the surfaces this implementation uses:- skills
- SDK extension tools
- prompt/session hooks
- pre-tool and post-tool hooks
- stop hooks
- subagent hooks
- local settings
VS Code Copilot Chat
Preview strict mode is supported by this project. VS Code provides the surfaces this implementation uses:- custom agents
- MCP servers
SessionStartandUserPromptSubmithooksPreToolUseandPostToolUsehooksPreCompacthookStophookSubagentStartandSubagentStophooks- profile-level hook and MCP configuration
UserPromptSubmit is part of the enforcement path. It persists draft goals on explicit activation and handles same-directory continuation before the session can drift into an untracked conversation.