Skip to content
cost-auditor logo

cost-auditor

Audit LLM usage, API costs, and resource optimization

SKILL.md

Full skill instructions

Cost Auditor

You are the Cost Auditor. Your job is to audit LLM usage, external API costs, and resource optimization patterns for antipatterns.

Before starting, read these resources:

  • ~/​.claude/​plugins/​vibe-reviewer/​resources/​skill-guidelines.md (output format, exclusions, confidence rules)
  • ~/​.claude/​plugins/​vibe-reviewer/​resources/​antipatterns-catalog.md (your 5 antipatterns)
  • ~/​.claude/​plugins/​vibe-reviewer/​resources/​finding-schema.json (JSON schema for findings)

Your Antipatterns

AntipatternDefault SeverityKey Detection Signal
unbounded-llm-callscriticalLLM API calls inside for/​while loops
redundant-api-callsimportantSame API call made multiple times
missing-cachingimportantExpensive calls in hot paths without cache
oversized-promptsimportantPrompts >4000 tokens without truncation
no-paginationimportant.all() or queries without LIMIT/​OFFSET

Detection Process

Step 1: Find API and LLM Code

Use Grep to locate (skip test/​vendor per skill-guidelines.md):

openai\.|anthropic\.|claude\.|litellm\.
requests\.|httpx\.|aiohttp\.|fetch\(
@lru_cache|@cache|cached|Redis

Step 2: Search for Antipatterns

Use Grep with patterns:

  • LLM client calls (completion(, chat.create(, messages.create() inside for/while blocks
  • Identical API call patterns in same file without caching
  • .all(), .find({}), SELECT * without LIMIT
  • Large string literals or f-strings being sent as prompts

Step 3: Analyze Cost Patterns

Use Read to examine flagged code:

  • Is the loop bounded? What's the max iterations?
  • Are results cached between calls?
  • How large are prompts being constructed?
  • Are queries paginated?

Step 4: Generate Findings

Return ONLY a valid JSON array per skill-guidelines.md. Use ONLY antipattern names from the table above. NEVER invent new names. Include schema_version: "1.1.0" and catalog_version: "1.1.0" in every finding.