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 agentmods add skills/comisai/comis/grid-operatornpx skills add comisai/comis --skill grid-operatorgit clone --depth 1 https://github.com/comisai/comisWhat 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 | $0.00061 | $0.00747 |
| Opus 5 | $0.00030 | $0.00374 |
| Sonnet 5 | $0.00012 | $0.00149 |
| Haiku 4.5 | $0.00006 | $0.00075 |
Grade A, and why
grid-sim-operator 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 — 39 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the operator on shift for a balancing authority (control area). Your job is to keep generation and load in balance so system frequency stays inside its operating limits, then settle the dispatch interval. This skill explains how to use the console tools — what to do with what you observe (how much reserve, when, which strategy) is your call as the operator.
Your tools (mcp:grid-sim/*)
Observe (read-only — assess the area):
get_load— the current served load (MW) and its near-term trend.get_generation— current output by asset (MW online, type, and remaining headroom), plus the online total.forecast { horizon }— the short-horizon forecast for load and per-type generation (including renewables) over the next intervals.get_reserves— reserve capacity: how much is available to commit, how much is already committed, and how long each reserve takes to come online.asset_status { asset }— per-asset health/derate flags and any condition warnings the units are reporting. Omitassetfor all units.frequency— the current system frequency (Hz), nominal, and the operating limits you must stay within.
Act (consequential):
commit_reserve { mw, resource }— make reserve capacity available to the area. Committing has a standby cost; no energy is delivered until it is allowed to respond.set_dispatch_strategy { strategy }— choose how the area balances at settlement:static(hold the current dispatch) orfollow(let committed reserve respond to the imbalance).dispatch { asset, deltaMw }— change an asset's output set-point (positive ramps up, negative ramps down). Bounded by that asset's headroom.shed_load { mw }— curtail firm customer load to relieve a shortfall. High penalty — a last resort.settle_interval { note }— advance and settle the interval. The system resolves load against generation and reserves and returns the graded outcome.
How to run an interval
- Read the area first:
get_load,get_generation,frequency, andget_reservesto see where you stand. - Look ahead and at unit health:
forecastandasset_statustell you what is coming and which units to trust. - Position the area with the act tools (
commit_reserve,set_dispatch_strategy,dispatch) before you settle. settle_intervalonce to resolve the interval. This is terminal and returns the grade — call it last.
What ships with it
3 files 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 First seen · 39 lines · 61 tokens per session scan A 10a2576b7b13
grid-sim-operator is a skill published in the GitHub repository comisai/comis (5 stars, last pushed 2d ago), licensed Apache-2.0. It adds 61 tokens to every session and 747 once invoked, about $0.0003 per session on Opus 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-31.
Other skills, from other repositories
org-sync
Use when the CEO wants an organization-wide sync across PuPu's agent teams — running each org's internal sync, then a cross-org sync where departments challenge each other, converging into one decision list. Triggers: "跑一次 org sync", "全局同步", "组织盘点", "/org-sync", "各部门现在什么情况", "有什么要我拍板的".
release-feature-audit
Use when a new PuPu feature finishes implementation and needs its consistency audit before its ticket is marked done — "audit #123", "审计这个功能", "这个 feature 过一遍检查" — or when release-close-sprint roll-call finds a new feature that was never audited. Also covers standalone i18n checks ("漏翻了吗", "检查 i18n"), which used to be…
growth-analyst
Use when analyzing PuPu's open-source growth or health for the founder — GitHub traffic, downloads/installs, releases, community, or contributor activity — or when producing a growth report or weekly COO report. Repo is haoxiang-xu/PuPu. Triggers: "how is PuPu growing?", "are people installing PuPu?", "which release…
test-api
Use when running QA / regression tests against PuPu, when verifying a code change actually works in the running app, or when reading PuPu UI/state without screenshotting manually. Triggers on tasks like "test that PuPu still creates chats correctly", "verify the new model selector works end-to-end", "send a message…
gitnexus-impact-analysis
Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples: "Is it safe to change X?", "What depends on this?", "What will break?".
gitnexus-refactoring
Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: "Rename this function", "Extract this into a module", "Refactor this class", "Move this to a separate file".