Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add SII-Holos/synergy --skill change-plugin-runtimegit clone --depth 1 https://github.com/SII-Holos/synergyWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sii-holos/synergy/change-plugin-runtime)<a href="https://agentmods.dev/skills/sii-holos/synergy/change-plugin-runtime"><img src="https://agentmods.dev/badge/skills/sii-holos/synergy/change-plugin-runtime/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sii-holos/synergy/change-plugin-runtime"><img src="https://agentmods.dev/badge/skills/sii-holos/synergy/change-plugin-runtime.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00051 | $0.03990 |
| Opus 5.5 | $0.00020 | $0.01596 |
| Sonnet 5.5 | $0.00010 | $0.00798 |
| Haiku 4.5 | $0.00005 | $0.00399 |
Grade A, and why
change-plugin-runtime scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 91 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Change the Plugin Runtime
Trace the Single Contract
- Read Plugin documentation and the focused contract for the affected area.
- Start with source types in
packages/plugin, then plugin-kit build output, host discovery/install underpackages/plugin-host/src/plugin, runtime generation/dispatch underplugin-runtime, server routes, and the Web host underapps/web/src/plugin. - Trace
definePlugin()→ generated manifest/artifacts → metadata-only validation → approval review → installation transaction → contribution adapter → lazy runtime generation → invocation context/Host Service → disposer or lifecycle cleanup. - Load
change-execution-boundariesfor host capability enforcement,change-server-apifor routes/SDK,change-persistencefor lock/approval/config migration, anddevelop-frontendfor the Web host.
Preserve the Architecture
definePlugin()is the only source of identity, compatibility, capabilities, contributions, and handlers. Do not add a source manifest, handler map, or nested permission tree. Preserve the frozen API-family decoder and its single boundary adapter rather than adding runtime compatibility branches.- Keep plugin ID identical across package name, artifact basename, manifest, registry, lockfile, approval, runtime generation, asset URL, and UI surface namespace.
manifest.nameis display text and must not participate in identity checks or artifact naming. - Validate generated metadata, paths, hashes, and approval before importing executable code. Derive manifest and permissions hashes only through
@ericsanchezok/synergy-plugin/integrity; plugin-kit, marketplace publication, installation, and approval must not maintain private payload or canonical JSON implementations. The manifest hash protects identity/integrity and review freshness; user authorization is the structured publisher/access grant. Approval reviews are server-authoritative: clients fetch the current review, submit onlytargetplus opaquereviewToken, and rely on the server to bind the canonical target to the current manifest hash, permissions hash, source, and signer. Stale reviews return a refreshed review without writes. - Treat API4 as the stable family: do not delete, rename, narrow, or change the meaning of stable public fields, contribution kinds, Host Services, hooks, or types. Plugin and plugin-kit npm package versions follow the Synergy product release version, while additive releases keep
apiVersion: "4.0"; plugins raisecompatibility.synergyonly when using a newer host addition. Intersect every alternative of host and plugin compatibility ranges, including current and historical release lines; test the first supporting release and rejection below an explicit feature minimum. Keep deprecated stable APIs implemented and typed.experimental.*is excluded from this promise. Adding a Host Service method, hook point, or contribution kind is not by itself a transport change. Keep the runtime protocol version unchanged unless the IPC envelope or handshake semantics actually change. Any real protocol revision requires a frozen executable artifact from the previous release, a host compatibility test, and an explicit negotiation or transition strategy before implementation. The running host owns the selected protocol version. A process Runner echoes the activation value inreadyrather than re-reading a mutable source-tree constant, so plugin-only development reloads cannot mix a stale host selection with newer Runner files. - Reconfirm only a first non-policy install, added/broadened access, unknown constraint change, or publisher/source change. Equal/narrower same-publisher updates refresh the grant silently. Do not compute or present an overall plugin risk rating. Keep runtime capability/permission/sandbox enforcement intact.
- Keep contribution kinds flat and adapter-owned. Adding a kind means adding its public type/schema, adapter, validation, lifecycle disposal, and tests—not a branch in a central registration loop.
- Treat generated operation, event, and tool JSON Schema as canonical metadata. Plugin-kit must convert live Zod schemas inside the definition-loader child before the descriptor crosses its JSON process boundary; never serialize Zod internals or attempt to reconstruct them in the parent. Reject schemas such as transforms that cannot be represented as JSON Schema during build. Tool inputs must be top-level objects, and AJV-backed execution validation must not round-trip schemas through Zod. Settings-gated tools are filtered for the current Scope and checked again at dispatch. Settings-gated MCP contributions use the same schema-default-aware condition contract and atomically refresh the plugin's complete MCP server set when settings change.
- External plugins use
process; only trusted built-ins may useinProcess. Do not restore worker mode or describe the process boundary as an OS sandbox. - Classify invocation termination by the owner that triggered it, not by the shape of
AbortSignal.reason. Only the runtime manager's own deadline isTIMEOUTand may contain a hung external process; an upstream abort isCANCELLEDeven when its reason is aTimeoutError, and must reach the active handler before ordinary generation cleanup. - One active generation is shared across enabled Scopes. Inject Scope/Session per invocation and reject stale-generation responses.
- Expose Synergy internals only through capability-gated Host Services. Do not pass a raw SDK client, server URL, token, or mutable current Scope into plugin code.
Connection providers use
host.connection.manage; verify both contribution gating and local human/lifecycle authority through a real process invocation. Keep pairing keys in Harness and expose only the gateway endpoint. Test final-Scope/global-reset and approved-generation withdrawal while preserving multi-Scope retention and durable pairing records. Exercise pending WebSocket open after revocation and HTTP body cancellation, not only connected sockets or returned headers. Preauthenticate body intake and verify reader/deadline/aggregate budgets, including anonymous pairing endpoints. Do not retain invocation-bound Host Service callbacks in background timers; refresh endpoint snapshots during a live operation or startup hook.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · +4 lines 47519cd5da6a
- 4d ago Changed · +4 lines 84eaaa9d0e4a
- 8d ago Changed · +2 lines 54b397a4f04d
- 10d ago Changed · +2 lines 3c5d9eabaf3a
- 13d ago Changed · +2 lines 2320078775ef
- 17d ago Changed b2745d827c03
- 18d ago Changed · +2 lines aebbbce9dfcc
- 19d ago Changed f5617d1e847c
- 21d ago Changed · +2 lines cea4eeca47ae
- 23d ago First seen · 73 lines · 51 tokens per session scan A 92a94d68cfa3
change-plugin-runtime is a skill published in the GitHub repository SII-Holos/synergy (388 stars, last pushed today), licensed MIT. It adds 51 tokens to every session and 3,990 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…