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/fgmacedo/agent-skills/python-profilingnpx skills add fgmacedo/agent-skills --skill python-profilinggit clone --depth 1 https://github.com/fgmacedo/agent-skillsWhat 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.00120 | $0.02279 |
| Opus 5 | $0.00060 | $0.01140 |
| Sonnet 5 | $0.00024 | $0.00456 |
| Haiku 4.5 | $0.00012 | $0.00228 |
Grade A, and why
python-profiling 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 — 273 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Python Profiling & Optimization
A structured, measurement-driven workflow for making Python code faster and leaner. The core principle: never optimize without measuring first, and never trust an optimization without measuring after.
Before you start
Read references/tools-cheatsheet.md for detailed command syntax for each profiling
tool. It covers installation, usage patterns, and output interpretation.
Phase 1: Understand the project
Before profiling anything, gather context:
- Python version — Check
pyproject.tomlforrequires-pythonandtarget-version. This determines which tools and stdlib features are available. - Package manager — Look for
uv.lock,poetry.lock,Pipfile.lock, orrequirements.txtto determine how dependencies are managed. - Existing benchmarks — Search for
pytest-benchmark,benchmarkdirectories, or profiling scripts already in the project. - Test suite — Understand how tests run so you can validate correctness after each optimization.
Phase 2: Establish a baseline
You cannot improve what you haven't measured. Before any optimization:
If the project has pytest-benchmark
Save a named baseline snapshot:
uv run pytest <benchmark_file> -m slow \
--benchmark-only --benchmark-disable-gc \
--benchmark-save=baseline
If the project lacks benchmarks
Create a minimal benchmark file targeting the code to optimize. Use pytest-benchmark
with pedantic() for stable, reproducible results:
@pytest.mark.slow()
class TestPerformance:
def test_hot_path(self, benchmark):
# Setup outside the measured region
obj = create_object()
benchmark.pedantic(obj.hot_method, rounds=10, iterations=1000)
Use pedantic() over the simple benchmark() call — it gives explicit control over
rounds and iterations, producing more stable measurements with lower variance.
Quick ad-hoc baseline (no benchmark framework)
For quick exploration before setting up proper benchmarks:
import cProfile
cProfile.run('function_to_profile()', sort='cumulative')
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 First seen · 273 lines · 120 tokens per session scan A 0985131acaa6
python-profiling is a skill published in the GitHub repository fgmacedo/agent-skills (10 stars, last pushed 5mo ago), licensed MIT. It adds 120 tokens to every session and 2,279 once invoked, about $0.0006 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
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…
babysit-pr
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…
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…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…