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 ccevans/bobbycode --skill bobby-performancegit clone --depth 1 https://github.com/ccevans/bobbycodeWrote 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/ccevans/bobbycode/bobby-performance)<a href="https://agentmods.dev/skills/ccevans/bobbycode/bobby-performance"><img src="https://agentmods.dev/badge/skills/ccevans/bobbycode/bobby-performance/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/ccevans/bobbycode/bobby-performance"><img src="https://agentmods.dev/badge/skills/ccevans/bobbycode/bobby-performance.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.01038 |
| Opus 5.5 | $0.00020 | $0.00415 |
| Sonnet 5.5 | $0.00010 | $0.00208 |
| Haiku 4.5 | $0.00005 | $0.00104 |
Grade A, and why
benchmark-perf 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 1mo 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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bobby Performance Skill
Measures page load times, resource sizes, and detects regressions. Establishes baselines and compares before/after on every run.
Before Starting
- Check learnings — Read
.claude/skills/bobby-performance/learnings.md+.claude/skills/bobby-performance/learnings.local.md - Read
.bobby/benchmarks/baseline.jsonif it exists - Health check — Verify dev environment:
Benchmarking Process
Step 1: Identify Pages to Benchmark
Benchmark these pages (in order of priority):
- Homepage / landing page
- Main dashboard or primary user view
- Any pages affected by recently shipped tickets
- Pages listed in
.bobbyrc.ymlunderwatchdog_pages(if configured)
Step 2: Measure Each Page
For each page, measure via browser automation:
Page Load Metrics:
- Time to First Byte (TTFB) —
performance.timing.responseStart - performance.timing.requestStart - First Contentful Paint (FCP) —
performance.getEntriesByName('first-contentful-paint')[0].startTime - DOM Content Loaded —
performance.timing.domContentLoadedEventEnd - performance.timing.navigationStart - Full Page Load —
performance.timing.loadEventEnd - performance.timing.navigationStart
Resource Metrics:
- Total transfer size — sum of
performance.getEntriesByType('resource').map(r => r.transferSize) - Number of requests —
performance.getEntriesByType('resource').length - Largest resource — identify the biggest JS/CSS/image file
Interaction Metrics (if applicable):
- Time to Interactive — can the user click/type within 3 seconds?
- Layout shift — does the page jump around during load?
Step 3: Record Results
Save results to .bobby/benchmarks/run-{YYYYMMDD-HHmmss}.json:
{
"timestamp": "ISO date",
"branch": "current git branch",
"pages": [
{
"url": "/dashboard",
"ttfb_ms": 120,
"fcp_ms": 450,
"dom_loaded_ms": 800,
"full_load_ms": 1200,
"total_transfer_kb": 850,
"request_count": 42,
"largest_resource": { "url": "/js/bundle.js", "size_kb": 320 }
}
]
}
What ships with it
2 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.
- 1mo ago First seen · 118 lines · 51 tokens per session scan A 8261f0e7c293
benchmark-perf is a skill published in the GitHub repository ccevans/bobbycode (6 stars, last pushed 2d ago), licensed MIT. It adds 51 tokens to every session and 1,038 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-09-03.
Other skills, from other repositories
wttr-weather
Weather via wttr.in GET (no key). Use for weather/forecast; prefer os.http.request.
engineering-principles
Practical engineering judgement: smallest change, subtract before adding, data structures before logic, idempotent operations, migrate callers then delete. Use when designing, building, or reviewing changes.
scheduling
Scheduling across time zones: confirm times in the attendee's own zone, use IANA zone names, mind DST edges, buffers and calendar etiquette. Use when booking meetings or calls with people in other zones.
aiox-devops
Activate Gage (devops) for GitHub Repository Manager & DevOps Specialist. Use for repository operations, version management, CI/CD, quality gates, and GitHub push operations. ONLY agent authorized to push to remote repository.
agent-desktop
Use the built-in Computer sub-agent with agent-desktop for macOS desktop automation. Apply when a task needs application launching, accessibility snapshots, stable element refs, window focusing, semantic clicks/typing, or visual confirmation outside the browser sandbox.
docs-page-style
House style and structure for uploads.sh documentation pages — the MDX subject pages under apps/web/src/content/docs/ (and the docs.astro hub) built on DocsLayout. Use this whenever you write, restructure, trim, or review a docs page: requests like "clean up the galleries docs", "this docs page has too much prose"…