Add pi-supervisor skill#1
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refines the pi-supervisor extension’s user-facing “goal” terminology and improves operational guidance/docs, while adding session-scoped preference persistence so model/sensitivity selections can act as defaults for future supervision runs.
Changes:
- Rename UI/docs language from “outcome” → “goal” in key user-facing surfaces.
- Persist session-scoped supervisor defaults (provider/modelId/sensitivity) separately from active supervision state.
- Add a
pi-supervisorskill guide and expand README guidance around goal-writing, supervision behavior, and defaults.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ui/settings-panel.ts | Renames the active “Outcome” settings item label to “Goal”. |
| src/types.ts | Introduces SupervisorPrefs for session-scoped default settings. |
| src/state.ts | Adds persistence + restore logic for supervisor-prefs alongside supervisor-state. |
| src/index.ts | Uses session prefs when resolving defaults; allows setting model/sensitivity even when inactive. |
| src/engine.ts | Updates prompt wording to “goal” in user prompt; converts idle continue decisions into a steer. |
| skills/pi-supervisor/SKILL.md | Adds a new skill doc describing how/when to use pi-supervisor and how to write goals. |
| package.json | Updates repository metadata and registers the skills directory for Pi. |
| README.md | Updates wording/guidance for goals, settings/status behavior, and idle continue handling. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const BUILTIN_SYSTEM_PROMPT = `You are a supervisor monitoring a coding AI assistant conversation. | ||
| Your job: ensure the assistant fully achieves a specific outcome without needing the human to intervene. | ||
|
|
||
| You only see the supplied goal text, summary, recent conversation, and prior interventions. | ||
| You do not inspect the repository, run tools, or gather new evidence yourself. | ||
|
|
There was a problem hiding this comment.
The built-in system prompt still frames the task in terms of a “specific outcome”, but the rest of the extension (UI/README/commands/user prompt) now consistently uses “goal”. Since this text is part of what the supervisor model reads, keeping terminology consistent will reduce ambiguity—consider replacing “outcome” with “goal” throughout the built-in prompt (including the done/steering bullet points later in the prompt).
| this.persistPrefs(); | ||
| } | ||
|
|
||
| /** Restore state from session entries (finds the most recent supervisor-state entry). */ |
There was a problem hiding this comment.
loadFromSession now restores both the most recent supervisor-state and supervisor-prefs entries, but the doc comment still says it only finds the most recent supervisor-state entry. Updating the comment to reflect the new behavior will help future maintainers understand the persistence model.
| /** Restore state from session entries (finds the most recent supervisor-state entry). */ | |
| /** Restore the most recent supervisor-state and supervisor-prefs session entries, falling back to prefs derived from state if needed. */ |
| - it can either let the agent continue, inject a steer, or declare the goal | ||
| done when the agent is idle |
There was a problem hiding this comment.
This description implies that when the agent is idle the supervisor might return continue, but the runtime now converts idle continue decisions into a steer to avoid stalling (and the built-in prompt says idle must be done/steer). Please reword this bullet to reflect that continue is only applicable while the agent is actively working (mid-turn).
| - it can either let the agent continue, inject a steer, or declare the goal | |
| done when the agent is idle | |
| - while the agent is actively working (mid-turn), it can let the agent | |
| continue; when the agent is idle, it can inject a steer or declare the | |
| goal done |
| "video": "https://github.com/tintinweb/pi-supervisor/raw/master/media/demo.mp4", | ||
| "image": "https://github.com/tintinweb/pi-supervisor/raw/master/media/screenshot.png" |
There was a problem hiding this comment.
After switching the repository/homepage URLs to shanelindsay/pi-supervisor, the pi.video and pi.image links still point at tintinweb/pi-supervisor. If the repo move is intentional, these asset URLs should be updated as well (or switched to relative paths) to avoid broken media in package metadata.
| "video": "https://github.com/tintinweb/pi-supervisor/raw/master/media/demo.mp4", | |
| "image": "https://github.com/tintinweb/pi-supervisor/raw/master/media/screenshot.png" | |
| "video": "https://github.com/shanelindsay/pi-supervisor/raw/master/media/demo.mp4", | |
| "image": "https://github.com/shanelindsay/pi-supervisor/raw/master/media/screenshot.png" |
| "url": "https://github.com/shanelindsay/pi-supervisor.git" | ||
| }, | ||
| "homepage": "https://github.com/tintinweb/pi-supervisor#readme", | ||
| "homepage": "https://github.com/shanelindsay/pi-supervisor#readme", | ||
| "bugs": { | ||
| "url": "https://github.com/tintinweb/pi-supervisor/issues" | ||
| "url": "https://github.com/shanelindsay/pi-supervisor/issues" | ||
| }, |
There was a problem hiding this comment.
The repository/homepage/bugs URLs were updated to shanelindsay/pi-supervisor, but related package metadata (e.g. the top-level description currently mentioning “outcome”) is now inconsistent with the repo/docs “goal” terminology. Consider updating the remaining metadata fields for consistency so npm/pi users see the same phrasing everywhere.
8ac25f0 to
fb324ec
Compare
fb324ec to
28d19d1
Compare
Summary
pi-supervisorskill underskills/pi-supervisor/SKILL.mdpackage.jsonSUPERVISOR.mdfits inDetailed breakdown
skills/pi-supervisor/SKILL.mdSUPERVISOR.mdpackage.json./skillsso the package exposes the new skillTesting