Installs into .claude/skills of the current project.
Are you the author of Ai Cost Manager Reducer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/conectlens-ai-cost-manager-reducer-lenserfight)
---
name: ai-cost-manager-reducer
description: Audit AI-powered features, API calls, agent workflows, prompt chains, tool calls, embeddings, vector search, retries, caching, and model selection to detect token waste and inefficient patterns. Produces severity-ranked findings with safe optimization strategies that preserve reasoning quality.
---
# AI Cost Manager & Reducer
Audit `[[scope]]` as an efficiency engineer. Use `[[context]]` when provided.
Every finding must name a concrete waste pattern, its cost risk, and a safe optimization strategy that preserves reasoning quality and chain correctness.
**Never recommend removing a reasoning step unless you verify it is truly redundant or its output is unused downstream.**
---
## Step 1 — Map the AI Call Graph
For each AI call site in scope, record:
```
File → function → purpose → model → avg input tokens → avg output tokens → call frequency → cached?
```
Flag any call where: frequency × token-cost > threshold, or model tier doesn't match task complexity.
---
## Step 2 — Apply Waste Pattern Catalogue
### Token Waste
| ID | Pattern | Signal |
|----|---------|--------|
| TW-1 | Oversized system prompt on every call | System prompt > 500 tokens with mostly static content |
| TW-2 | Full history resent without truncation | Context grows unboundedly per session |
| TW-3 | Redundant context injection | Same DB rows / user profile fetched and embedded on every request |
| TW-4 | Verbose output without `max_tokens` cap | Responses regularly exceed task requirements |
| TW-5 | Unstructured output where JSON would halve tokens | Free-text response parsed by regex downstream |
| TW-6 | Recursive summarization without memoization | Same document re-summarized on every call |
### Repeated / Duplicate Calls
| ID | Pattern | Signal |
|----|---------|--------|
| RC-1 | Identical prompt sent multiple times per request | No cache; same query triggers 2+ completions |
| RC-2 | Duplicate embedding generation | Same text embedded on insert and query with no stored cache |
| RC-3 | Classification called once per item in a loop | Per-row intent/sentiment when batch classification is available |
| RC-4 | Agent re-reads same tool output | Tool result not stored in agent state |
| RC-5 | Background job re-processes unchanged records | No `updated_at` / version gate before AI call |
### Model Overuse
| ID | Pattern | Signal |
|----|---------|--------|
| MO-1 | Opus/GPT-4 used for simple classification or formatting | Task needs < 200 tokens and has deterministic answer |
| MO-2 | Expensive model in high-frequency cron | Cron calls Opus/GPT-4 every minute on potentially unchanged data |
| MO-3 | No model routing between tiers | Same model regardless of task complexity |
| MO-4 | Embedding model overqualified for the retrieval task | Ada-3 on short lookups where text-embedding-3-small suffices |
### Retry & Loop Storms
| ID | Pattern | Signal |
|----|---------|--------|
| RL-1 | Unbounded agent loop | `while (true)` or recursive agent with no step cap |
| RL-2 | Retry on every error including non-retryable (400s) | Retry wrapper doesn't skip validation errors |
| RL-3 | Retry storm on quota hit without jitter | Simultaneous retries after 429 with no backoff spread |
| RL-4 | Tool call in loop without early exit | Agent calls search repeatedly even after finding answer |
### Caching Gaps
| ID | Pattern | Signal |
|----|---------|--------|
| CG-1 | No prompt-level cache | Identical prompts hit the API on every call |
| CG-2 | No embedding cache | pgvector rows recalculated instead of reused |
| CG-3 | No semantic cache | Similar prompts bypass cache |
| CG-4 | Short or missing TTL on AI responses | Cache evicts results before they can be reused |
| CG-5 | Streaming response not cached | Streamed output never stored; replays cost full tokens |
### Chain Inefficiency
| ID | Pattern | Signal |
|----|---------|--------|
| CI-1 | Sequential calls that could be parallelized | Step B doesn't need step A's output but waits for it |
| CI-2 | Multi-step chain where one call could replace two | Classify then reformat is one structured-output call |
| CI-3 | Intermediate results discarded and regenerated | Summarization result thrown away; re-run next request |
| CI-4 | Unnecessary tool calls | Agent calls `search` when result is already in context |
---
## Output Format
Each finding:
```
ID: <waste-pattern-id>
Severity: critical | high | medium | low
Affected: <file:line or function or workflow>
Current cost risk: <frequency × token-cost at scale, e.g. "1,000 battles/day × 4,000 tokens = $X/day">
Failure / explosion scenario: <what breaks or costs explode under load>
Optimization strategy: <model swap, caching, dedup, batching, prompt compression, etc.>
Preserves reasoning: yes / no + explanation
Validation steps:
1. <unit test or integration check>
2. <metric to observe before/after>
3. <rollback condition>
```
Order by severity. Group by call site when multiple findings share a file.
---
## Constraints
- Do not recommend removing a reasoning step unless its output is unused or redundant.
- Do not recommend switching models without verifying the cheaper model produces equivalent quality.
- Do not recommend aggressive caching for calls where staleness breaks product correctness.
- Mark every recommendation with "Preserves reasoning: yes/no".
- If a call site cannot be safely optimized, say so and explain the constraint.