Digivolution Plugin
Digivolution helps agents leave repositories in a state that's easier for the next agent to work in. It combines a post-task reflection skill with an adaptive extension that invokes the reflection only when a turn contains strong evidence of a durable repository learning opportunity.
Use it to keep these surfaces accurate and high signal:
AGENTS.mdCLAUDE.mdshims.github/copilot-instructions.md.github/instructions/*.instructions.md- In-repo skills such as
.github/skills/**/SKILL.mdorplugins/*/skills/**/SKILL.md
The extension observes the active turn in memory and may request one extra reflection turn when:
- The user directly corrects a repository-specific command, instruction, setup step, convention, or workflow.
- A repo-local operation fails repeatedly and a materially changed operation succeeds.
- A command usage error is recovered by a materially changed command against the same repo-local target.
It does not trigger for ordinary test failures, long turns, repeated edits, generic frustration, network failures, or successful validation alone. It does not read session transcripts or persist prompts, tool arguments, results, or errors.
Prerequisites
- GitHub Copilot CLI with plugin, skill, and native extension support.
- Node.js 22.18 or newer for development and building from source.
Installation
copilot plugin marketplace add scaryrawr/scarypilot
copilot plugin install digivolution@scarypilot
Usage
Digivolution is most useful near the end of a task, after the agent has learned something durable about a repository.
Example prompts:
- "Use digivolution before finishing this task."
- "Digivolve before you finish."
- "If you discovered any durable repo guidance, update the right instruction file."
- "Check whether any in-repo skill you used is stale or misleading, and correct it if needed."
- "Before you finish, decide whether AGENTS.md or Copilot instructions need a concise update."
The skill should:
- Prefer correcting existing guidance over duplicating text.
- Use the narrowest appropriate destination for any change.
- Make no edit when there is no durable improvement and avoid a no-op status that interrupts task completion.
Adaptive trigger behavior
The extension registers typed session hooks through @github/copilot-sdk:
onUserPromptSubmittedstarts a fresh in-memory turn and detects only explicit, repository-specific corrections.onPostToolUseFailurerecords minimized operation fingerprints and failure categories.onPostToolUsecorrelates a changed successful operation with prior repo-local failures.onAgentStoprequests one self-contained digivolution continuation when the current turn has qualifying evidence.
Every handler requires the event's session ID to match the extension's joined primary session ID. Subagent events are ignored, and onAgentStop is additionally documented by the SDK as a top-level-agent event.
The continuation includes the reflection rules directly and avoids the skill name and routing language instead of asking the continuation turn to resolve and invoke the installed skill again. This avoids skill lookup failures in the stop-hook lifecycle. It is loop-safe: the extension claims the reflection before blocking, ignores its own continuation prompt, and allows any stop where stopHookActive is set. If hook processing is uncertain or fails, the turn ends normally.
Development
In plugins/digivolution/extensions/digivolution, install dependencies and run
npm run build, npm run typecheck, and npm test after changes. Commit the
generated dist/ and bundle-manifest.json. Installed plugins use that bundle
without requiring npm install; Copilot supplies the SDK at runtime.