avr-recipe

star 3

Interactive recipe builder. Guides the user through creating a calibration recipe, validates it against the template, and saves to recipes/custom/.

abarbaccia By abarbaccia schedule Updated 4/22/2026

name: avr:recipe version: 2.0.0 description: | Interactive recipe builder. Guides the user through creating a calibration recipe, validates it against the template, and saves to recipes/custom/. allowed-tools: - Bash - Read - Write - Edit - Glob - Grep - Agent - AskUserQuestion

/avr:recipe

Build or validate a custom calibration recipe.

Arguments

  • $ARGUMENTS — recipe name to create, or "validate {path}" to validate an existing recipe.

Step 1 — Read the templates

Read recipes/TEMPLATE.md (universal rules) and recipes/CALIBRATION.md (calibration-specific patterns) in full. These are the source of truth for recipe structure, hard rules, and available tools. Every decision in this skill flows from these templates.

Step 2 — Review existing recipes

List recipes in recipes/core/ and recipes/custom/.
Read the first few lines (Goal + Filter Strategy) of each.
Show the user what exists. Ask if they want to:
  a) Create a new recipe
  b) Validate an existing custom recipe
  c) Fork a core recipe as a starting point

If validating, skip to the Validation step.

Step 3 — Understand the user's goal

Ask one question at a time. Don't overwhelm with a questionnaire.

Question 1: What are you trying to achieve?

Examples: "flatten my sub response", "match Harman curve with FIR", "calibrate for music (less bass lift)", "align 3 subs then EQ"

Question 2: Hardware setup

  • How many subs?
  • PEQ only, FIR only, or both?
  • Any constraints? (e.g. limited PEQ slots, no FIR capability)

Question 3: What's different from existing recipes?

Show which existing recipe is closest and ask what they want to change. If the answer is "nothing" — point them to /avr:calibrate instead.

Step 4 — Choose a starting point

Based on the answers, either:

  • Fork an existing recipe: copy recipes/core/{closest}.md to recipes/custom/{name}.md and modify
  • Start from scratch: use the template structure from recipes/TEMPLATE.md plus recipes/CALIBRATION.md if it's a calibration recipe

If forking, tell the user which recipe you're starting from and why.

Step 5 — Build the recipe section by section

Walk through each required section from the template. For each section:

  1. Explain what it needs (from the template's requirements)
  2. Propose content based on the user's goals
  3. Ask for confirmation before moving on

Sections to walk through:

  1. Goal
  2. Configuration (target curve, frequency range, convergence thresholds)
  3. Filter Strategy (which layers, which tools, which NOT used)
  4. Pre-flight (always: check_system, get_config, mute shakers)
  5. Phase 0 — Setup (clear EQ, volume, matrix, level matching)
  6. Calibration phases (the core logic — this is where recipes differ)
  7. Convergence criteria (frequency range, RMS threshold, max iterations)
  8. When convergence fails
  9. Retrospective (always required — scorecard, recommendations, next steps)
  10. MCP tools list

For the calibration phases (step 6), enforce these hard rules from CALIBRATION.md:

  • Analyze fixability before designing corrections
  • Full-resolution FR for filter design (not 1/3-octave)
  • Simulate before applying
  • Use optimize_q, not guessed Q values
  • Include mandatory 18Hz HPF in every apply_eq call
  • Filter audit on every iteration (remove stale filters)
  • Iterative merge pattern for subsequent iterations
  • Anchor with null exclusion if using a target curve
  • Clean baselines after structural changes (FIR)
  • Prefer cuts over boosts

Step 6 — Write the recipe

Save to recipes/custom/{name}.md.

Step 7 — Validate

Run the full validation checklist (same as validate mode). Report results as a pass/fail checklist. Fix any failures before finishing.


Validation Mode

When invoked with "validate {path}" or after writing a new recipe, run every check below. Report as a checklist with pass/fail for each item.

Structure checks

  • Has ## Goal section
  • Has ## Configuration section (target curve, frequency range, convergence)
  • Has ## Filter Strategy section with layer table
  • Has ## Pre-flight section
  • Pre-flight calls check_system
  • Pre-flight calls get_config
  • Has setup phase that clears EQ before baseline
  • Has setup phase with volume setup (set_volume and/or calibrate_level)
  • Has ## Convergence section with measurable criteria
  • Convergence uses compute_deviation (not manual RMS)
  • Has max iteration count
  • Has ## When convergence fails section
  • Has retrospective phase
  • Retrospective includes before/after scorecard
  • Retrospective includes room improvement recommendations
  • Retrospective includes prioritized next steps
  • Has ## MCP tools used section

Analytics-first workflow checks

  • Calls analyze_phase before designing corrections
  • Checks coherence before designing corrections
  • Uses full-resolution FR for filter design (not 1/3-octave)
  • Calls simulate_eq before apply_eq (verify before apply)
  • Uses optimize_q for Q selection (not hardcoded Q values)
  • Calls analyze_decay for ringing mode Q selection

Safety checks

  • Every apply_eq / apply_input_eq mention includes mandatory 18Hz HPF
  • Iterative steps use merge pattern (track applied filters in context -> audit -> merge -> apply full set)
  • Target curve anchor excludes nulls (>15dB below average)
  • Target curve anchor excludes below-port frequencies
  • Does NOT re-anchor between iterations

Multi-sub checks (if applicable)

  • Calls configure_matrix for input routing
  • Calls compare_sub_phase before applying alignment corrections
  • Specifies delay reference sub (latest-arriving = 0)
  • Every mute_output has a corresponding unmute_output
  • Mutes shakers during calibration

Tool reference checks

  • Every tool name referenced exists in the Available MCP Tools list
  • No tools referenced that don't exist (e.g. made-up tool names)
  • Uses measure for fresh data (not get_measurement_history as baseline)

Important rules

  1. Recipes go in recipes/custom/, never recipes/core/. Core recipes are maintained by the project. Custom recipes are user-contributed.
  2. The templates are the source of truth. Always read recipes/TEMPLATE.md and recipes/CALIBRATION.md before building or validating.
  3. Don't skip validation. Every recipe must pass all applicable checks.
  4. Be opinionated about quality. If the user's proposed recipe would skip analytics (e.g. "just measure and apply EQ"), explain why the analytics-first workflow produces better results and guide them to include it.
Install via CLI
npx skills add https://github.com/abarbaccia/avr-calibration --skill avr-recipe
Repository Details
star Stars 3
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator