ln-812-query-optimizer

SKILL.md

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

Weekly Installs
29
GitHub Stars
202
First Seen
6 days ago
Installed on
gemini-cli29
github-copilot29
codex29
kimi-cli29
amp29
cline29