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 SummerEngine/summer-engine-agent --skill tune-performancegit clone --depth 1 https://github.com/SummerEngine/summer-engine-agentWrote 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/summerengine/summer-engine-agent/tune-performance)<a href="https://agentmods.dev/skills/summerengine/summer-engine-agent/tune-performance"><img src="https://agentmods.dev/badge/skills/summerengine/summer-engine-agent/tune-performance.svg" alt="Measured on agentmods" 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.00094 | $0.03409 |
| Opus 5 | $0.00047 | $0.01705 |
| Sonnet 5 | $0.00019 | $0.00682 |
| Haiku 4.5 | $0.00009 | $0.00341 |
Grade A, and why
tune-performance 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 8d 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 — 239 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/tune-performance — Profile, Diagnose, Fix
Overview
Performance tuning without measurement is gambling. This skill enforces a measure-first loop: read diagnostics, identify the dominant cost (rendering / physics / scripting / startup), drill into the specific pattern, propose one fix, verify the metric moved. No shotgun optimization.
Core principle: the engine's diagnostics tell you which subsystem is bleeding. Don't optimize a different subsystem.
Steps
1. Get the user's symptom precisely
What's slow? Pick the closest: framerate drops in scene X / startup is long / freezes for a moment / runs fine on my machine but bad on hardware Y.
Wait. The answer narrows the fix domain by 5x:
| Symptom | Likely subsystem |
|---|---|
| Framerate drops as more enemies spawn | Scripting (_process per-instance) or physics |
| Framerate is fine standing still, drops looking at level X | Rendering (overdraw, draw calls, lights) |
| Stutter every N seconds | GC pause, autoload loop, or async load |
| Long startup | Asset import, autoload _ready work, shader compilation |
| Runs fine on dev machine, bad on user machine | Resolution, GPU features (compute, GI), shadow quality |
2. Take a baseline measurement
Don't guess. Read the engine's actual numbers.
summer_get_diagnostics is NOT a profiler. It returns counts of console errors, debugger errors, debugger warnings and script errors — nothing else. It carries no FPS, no frame time, no draw calls, no body counts. Never quote a performance number you claim came from it.
Preferred (Summer MCP): measure inside a verification probe. RunVerification spawns a hidden, disposable game instance with a real renderer, runs your GDScript probe, and dies without touching the user's editor. Performance.get_monitor(...) inside that probe returns the real numbers.
summer_batch ops:[{
"op": "RunVerification",
"probe_source": "<probe below>",
"max_seconds": 20
}]
extends SummerProbeBase
func _ready() -> void:
await super._ready()
await get_tree().process_frame
await get_tree().create_timer(3.0).timeout # let it settle, then sample
report("fps", Performance.get_monitor(Performance.TIME_FPS))
report("process_ms", Performance.get_monitor(Performance.TIME_PROCESS) * 1000.0)
report("physics_ms", Performance.get_monitor(Performance.TIME_PHYSICS_PROCESS) * 1000.0)
report("draw_calls", Performance.get_monitor(Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME))
report("objects", Performance.get_monitor(Performance.RENDER_TOTAL_OBJECTS_IN_FRAME))
report("primitives", Performance.get_monitor(Performance.RENDER_TOTAL_PRIMITIVES_IN_FRAME))
report("video_mem", Performance.get_monitor(Performance.RENDER_VIDEO_MEM_USED))
report("bodies_3d", Performance.get_monitor(Performance.PHYSICS_3D_ACTIVE_OBJECTS))
report("bodies_2d", Performance.get_monitor(Performance.PHYSICS_2D_ACTIVE_OBJECTS))
report("objects_total", Performance.get_monitor(Performance.OBJECT_COUNT))
save_frame("baseline")
finish()
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.
- 8d ago First seen · 239 lines · 94 tokens per session scan A 3c2032aab857
tune-performance is a skill published in the GitHub repository SummerEngine/summer-engine-agent (57 stars, last pushed 4d ago), licensed MIT. It adds 94 tokens to every session and 3,409 once invoked, about $0.0005 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-30.
Other skills, from other repositories
console-get-logs
Retrieve Unity Editor logs from the MCP plugin's LogCollector, optionally filtered by log type or time window. Useful for debugging and monitoring Editor activity.
editor-application-get-state
Return the current state of UnityEditor.EditorApplication — playmode, paused state, compilation state, and related flags.
console-clear-logs
Clear the MCP log cache (used by 'console-get-logs') and the Unity Editor Console window. Useful for isolating logs to a specific action by clearing the slate first.
profiler-start
Enable Unity's runtime profiler and open the Profiler window. Idempotent: calling when already enabled returns the current enabled state without error.
beehave
Use when using the Beehave addon — pure-GDScript behavior trees with composites, decorators, leaves, a blackboard, and a visual runtime debugger.
godot-debugging
Use when debugging Godot projects — remote debugger, print techniques, signal tracing, common error patterns and fixes.