← スキル一覧に戻る
benchmark-advisor
wildcard / caro
⭐ 23🍴 2📅 2026年1月19日
Suggests which benchmarks to run based on code changes
SKILL.md
--- name: benchmark-advisor description: Suggests which benchmarks to run based on code changes --- # Benchmark Advisor Skill This skill analyzes your code changes and recommends specific Criterion benchmarks to run. ## When to Use This skill automatically activates when: - You've made changes to performance-critical code - You're preparing to commit performance-related work - You want to verify your changes don't introduce regressions ## How It Works 1. **Detects Changed Files**: Analyzes `git diff` to see which files you've modified 2. **Maps to Benchmarks**: Uses pattern matching to identify relevant benchmarks 3. **Provides Recommendations**: Suggests specific `cargo bench` commands with explanations ## Usage Simply ask: - "What benchmarks should I run?" - "Which benchmarks are affected by my changes?" - "Suggest benchmarks for my current work" ## Skill Logic ```bash # 1. Detect changed files CHANGED_FILES=$(git diff --name-only HEAD) # 2. Load mapping configuration # See mapping.toml for file-to-benchmark mappings # 3. Match changed files to benchmarks # Example mappings: # src/cache/**/*.rs → cargo bench --bench cache # src/config/**/*.rs → cargo bench --bench config # src/main.rs → cargo bench (full suite - affects startup time) # 4. Generate recommendation with explanation ``` ## Example Interaction **User:** "What benchmarks should I run?" **Claude:** "I analyzed your changes and found modifications to: - `src/cache/manifest.rs` - `src/cache/lru.rs` **Recommended benchmarks:** ```bash cargo bench --bench cache ``` **Why**: Changes to cache implementation files can affect cache operation performance (get_model, add_model, remove_model, lru_eviction). You can also run the full suite if you want comprehensive validation: ```bash cargo bench ```" ## Mapping Configuration The skill uses `mapping.toml` to define file patterns and their corresponding benchmarks: ```toml # Cache-related files [[mapping]] pattern = "src/cache/**/*.rs" benchmark = "cargo bench --bench cache" reason = "Cache implementation changes can affect cache operation performance" # Config-related files [[mapping]] pattern = "src/config/**/*.rs" benchmark = "cargo bench --bench config" reason = "Config loading and merging performance may be impacted" # Main entry point [[mapping]] pattern = "src/main.rs" benchmark = "cargo bench" reason = "Main entry point affects startup time - run full suite" ``` ## Output Format **Concise**: Lists changed files, recommended command, and brief explanation **No false positives**: Only suggests benchmarks for performance-critical changes **Actionable**: Provides exact commands to copy/paste