From powerskills-tool
Runs transmission power-system studies: AC/DC power flow, OPF, contingency analysis, PTDF/LODF sensitivities, ATC, SCED, SCUC. Builds or edits networks and loads MATPOWER, PSS/E, XIIDM, CIM/CGMES files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/powerskills-tool:surgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Start by loading a network with `load_builtin_case`, `load_network`, or `create_empty_network`. Solve the base case before any advanced study — contingency, sensitivity, and OPF results are meaningless on a non-convergent base.
evals/evals.jsonevals/mcp_config.example.jsonevals/run_eval_with_mcp.pyreferences/API_REFERENCE.mdreferences/DISPATCH_REQUEST_SCHEMA.jsonreferences/EXAMPLES.mdreferences/SOLVER_GUIDE.mdrequirements.txtscripts/contingency_analysis.pyscripts/contingency_ranking.pyscripts/dispatch_analysis.pyscripts/network_analysis.pyscripts/opf_analysis.pyscripts/sensitivity_analysis.pyscripts/test_scripts.pyscripts/transfer_capability.pyStart by loading a network with load_builtin_case, load_network, or create_empty_network. Solve the base case before any advanced study — contingency, sensitivity, and OPF results are meaningless on a non-convergent base.
load_builtin_case(name) (e.g. case118), load_network(file_path, format?), or create_empty_network(...).get_network_info() for counts, totals, areas, zones, voltage levels. get_topology(...) / get_islands() / find_path(...) for connectivity reasoning.run_ac_power_flow(...) for the base operating point. run_dc_power_flow(...) only when a linearized study is explicitly requested.compute_ptdf, compute_lodf, compute_otdf for screening and transfer analysis.run_n1_branch_contingency / run_n1_generator_contingency / run_n2_branch_contingency once the base case solves.run_dc_opf → run_ac_opf → run_scopf for optimization. Pass explicit lp_solver / nlp_solver only when the deployment requires it.run_sced (single-period) and run_scuc (multi-period commitment). Call get_dispatch_request_schema() before constructing the request dict.compute_nerc_atc / compute_ac_atc for transfer capability. Build source/sink bus lists from list_buses output.export_tables(output_dir) to hand CSVs back to the user.For synthetic cases, scenario edits (outage, dispatch change, load scaling), or mutations to a loaded case. Re-solve run_ac_power_flow after any material edit.
create_empty_network, add_bus, add_generator, add_load, add_line, add_transformer, add_storage.set_branch_rating, set_branch_in_service (outages), set_generator_limits, set_generator_in_service.scale_loads(factor, area?), scale_generators(factor, area?).remove_bus, remove_branch, remove_generator, remove_load.format="summary". Use "sparse" or "full" only when CSR or dense output is actually needed."default"); pass "highs" / "ipopt" for open-source runs, "gurobi" for large MIPs. See references/SOLVER_GUIDE.md.get_dispatch_request_schema() before building a run_sced / run_scuc request dict.Map observed violations to the mitigation skill that handles them. If multiple triggers fire, escalate voltage → thermal → contingency.
| Observation | Escalate to |
|---|---|
Any bus vm_pu < 0.95 or > 1.05 | voltage-violation-mitigation |
Any branch loading > 100% of rate_a_mva | thermal-overload-mitigation |
run_n1_* returns ≥ 1 binding contingency | contingency-mitigation |
get_islands() returns > 1 island after a contingency | contingency-mitigation |
| SCED / SCUC infeasible, reserve shortage, or LMP volatility | operations-planning-mitigation |
run_ac_power_flow fails to converge on the base case | convergence-failure-mitigation |
| The study is a new generator, storage, or large-load connection at a POI | interconnection-impact-mitigation |
Report the specific numbers that triggered the escalation (bus + vm_pu, branch + loading %, contingency label). Do not say "violations exist" without values.
scripts/network_analysis.py — inspection and base PF review.scripts/sensitivity_analysis.py — PTDF, LODF drill-down.scripts/contingency_analysis.py — N-1 / N-2 summaries.scripts/contingency_ranking.py — N-1 → severity rank → CSV → mitigation-skill mapping. python contingency_ranking.py <case> <out_dir>.scripts/opf_analysis.py — DC / AC / SCOPF with solver-selection examples.scripts/dispatch_analysis.py — SCED / SCUC.scripts/transfer_capability.py — NERC ATC and AC ATC path setup.scripts/test_scripts.py — end-to-end smoke test on a built-in case.references/API_REFERENCE.md — 44-tool catalog.references/SOLVER_GUIDE.md — HiGHS / Gurobi / Ipopt selection.references/EXAMPLES.md — multi-tool workflows.references/DISPATCH_REQUEST_SCHEMA.json — JSON schema for run_sced / run_scuc request. Also served by get_dispatch_request_schema().get_network_info.npx claudepluginhub power-agent/powerskills --plugin powerskills-toolOpens PowerWorld cases, solves power flow, inspects flows/voltages, changes model data, runs contingency analysis, and pulls sensitivity matrices (PTDF, LODF, Jacobian, Ybus) via PowerMCP.
Analyzes electric power networks with pandapower v3.4.0: builds models (buses, lines, transformers, loads, generators), runs AC/DC power flow, OPF, short circuit (IEC 60909), state estimation, time series, topology, plotting.
Performs steady-state distribution power system analysis including power flow, state estimation, short-circuit calculations, and batch simulations using power-grid-model library with numpy structured arrays.