Paths: File paths ( shared/ , references/ , ../ln-* ) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. ln-812-query-optimizer Type: L3 Worker Category: 8XX Optimization Parent: ln-810-performance-optimization-coordinator Fixes query efficiency issues found by ln-651-query-efficiency-auditor. Each fix verified via tests with keep/discard pattern. Metric: query count reduction (not runtime benchmark). Overview Aspect Details Input Audit findings from docs/project/persistence_audit.md (ln-651 section) OR target file Output Optimized queries, verification report Companion ln-651-query-efficiency-auditor (finds issues) → ln-812 (fixes them) Workflow Phases: Pre-flight → Load Findings → Prioritize → Fix Loop → Report Phase 0: Pre-flight Checks Check Required Action if Missing Audit findings OR target file Yes Block optimization Test infrastructure Yes Block (need tests for verification) Git clean state Yes Block (need clean baseline for revert) MANDATORY READ: Load shared/references/ci_tool_detection.md — use Test Frameworks section for test detection. Worktree & Branch Isolation MANDATORY READ: Load shared/references/git_worktree_fallback.md — use ln-812 row. Phase 1: Load Findings From Audit Report Read docs/project/persistence_audit.md , extract ln-651 findings: Finding Type Optimization N+1 query Batch loading / eager loading / .Include() / prefetch_related Redundant fetch Pass object instead of ID, cache result Over-fetching Select specific fields / projection / .Select() Missing index hint Add index annotation / migration Unbounded query Add .Take() / LIMIT / pagination From Target File If no audit report: scan target file for query patterns matching the table above. Phase 2: Prioritize Fixes Priority Criteria 1 (highest) N+1 in hot path (called per request) 2 Redundant fetches (same entity loaded multiple times) 3 Over-fetching (SELECT * where few columns needed) 4 Missing pagination on user-facing endpoints Phase 3: Fix Loop (Keep/Discard) Per-Fix Cycle FOR each finding (F1..FN): 1. APPLY: Edit query code (surgical change) 2. VERIFY: Run tests IF tests FAIL → DISCARD (revert) → next finding 3. VERIFY: Tests PASS → KEEP 4. LOG: Record fix for report Keep/Discard Decision Condition Decision No tests cover affected file/function SKIP finding — log as "uncovered, skipped" Tests pass KEEP Tests fail DISCARD + log failure reason Fix introduces new N+1 DISCARD Note: No benchmark needed — query optimization metric is correctness (tests pass) + structural improvement (fewer queries). The audit already identified the inefficiency. Phase 4: Report Results Report Schema Field Description source Audit report path or target file findings_total Total findings from audit fixes_applied Successfully kept fixes fixes_discarded Failed fixes with reasons fix_details[] Per-fix: finding type, file, before/after description Configuration Options :
Source
audit_report : "docs/project/persistence_audit.md" target_file : ""
Alternative to audit report
Verification
run_tests : true
Scope
fix_types :
Filter which types to fix
- n_plus_one - redundant_fetch - over_fetching - unbounded_query Error Handling Error Cause Solution No audit findings ln-651 not run or no issues Report "no findings to optimize" ORM-specific syntax Unknown ORM Query Context7/Ref for ORM docs Migration needed Index addition requires migration Log as manual step, skip References ../ln-651-query-efficiency-auditor/SKILL.md (companion: finds issues) shared/references/ci_tool_detection.md (test detection) Definition of Done Findings loaded from audit report or target file scan Fixes prioritized (N+1 first, then redundant, over-fetch, unbounded) Each fix applied with keep/discard: tests pass → keep, tests fail → discard No new query inefficiencies introduced by fixes Report returned with findings total, fixes applied, fixes discarded Version: 1.0.0 Last Updated: 2026-03-08