Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Review an existing Retrieval-Augmented Generation system and find why it underperforms. Use when asked to review or audit a RAG pipeline, diagnose wrong/ungrounded answers from a 'chat with your docs' feature, or improve an already-built knowledge assistant. Produces a staged review — ingestion, chunking, retrieval, reranking, generation, evaluation — with prioritised findings, root causes, and concrete fixes.
.claude/skills/mohitagw15856-rag-architecture-review/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 9% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-23 | ✗→✓ | ▲ Improved | 69% | 0% |
A RAG system that "hallucinates sometimes" is almost never one bug — it's a chain where the weakest stage caps quality, and the symptom (a wrong answer) is far from the cause (a chunk that was never retrieved). This skill reviews an existing pipeline stage by stage, isolates where quality leaks, and ranks fixes by impact so you work the biggest lever first. (Designing a new system from scratch? Use rag-design-doc.)
Given a partial description ("it uses pgvector and sometimes makes things up"), deliver the full staged review anyway — infer the likely setup for each unstated stage, label the inference, and flag what to confirm. Never withhold the review for missing detail; a labelled assumption plus "confirm this" beats a blank.
Ask for these only if they aren't already provided (else infer and label):
1. Summary — the headline: where quality is leaking and the top 3 fixes, in priority order.
2. Stage-by-stage findings — for each stage, what's working, what's not, and why:
| Stage | Finding | Severity | Root cause | Fix | |---|---|---|---|---| | Chunking | 1500-tok fixed chunks split tables mid-row | High | structure-blind splitting | structure-aware chunking + metadata | | Retrieval | pure vector, no keyword | High | exact IDs/terms missed | add hybrid (BM25 + dense) | | Generation | weak grounding instruction | Med | model answers from prior | "answer only from context; else say unknown" |
3. Diagnosis: symptom → stage — map each reported bad answer to the stage that caused it, so fixes target the real cause (a confident-but-wrong answer is usually retrieval, not the LLM).
4. Prioritised fix plan — ordered by impact-to-effort, with the one change likely to move quality most first.
5. Evaluation gap — whether retrieval quality (recall@k, MRR) is measured separately from answer quality (faithfulness, correctness); if not, that's finding #1 — you can't fix what you can't isolate. Pair with an ai-eval-plan.
Retrieval-Augmented Generation practice — staged diagnosis, separated retrieval/answer evaluation, hybrid retrieval, and grounded generation.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 61,907 | 33,494 | -46% | 1 | 1 | 0% | 7,590 | 5,733 | -24% | 0 | 0 | — |
case-02 | fail→pass | 61,977 | 33,706 | -46% | 1 | 1 | 0% | 8,302 | 5,225 | -37% | 0 | 0 | — |
case-03 | fail→fail | 45,834 | 35,613 | -22% | 1 | 1 | 0% | 6,274 | 5,962 | -5% | 0 | 0 | — |
case-04 | pass→pass | 34,015 | 30,538 | -10% | 1 | 1 | 0% | 4,366 | 5,308 | +22% | 0 | 0 | — |
case-05 | pass→pass | 24,279 | 25,543 | +5% | 1 | 1 | 0% | 3,068 | 4,814 | +57% | 0 | 0 | — |
case-06 | pass→pass | 45,449 | 35,855 | -21% | 1 | 1 | 0% | 6,429 | 9,148 | +42% | 0 | 0 | — |
case-07 | pass→pass | 21,344 | 23,995 | +12% | 1 | 1 | 0% | 3,572 | 4,399 | +23% | 0 | 0 | — |
case-08 | pass→pass | 24,902 | 22,577 | -9% | 1 | 1 | 0% | 3,327 | 4,385 | +32% | 0 | 0 | — |
case-09 | pass→pass | 20,032 | 23,001 | +15% | 1 | 1 | 0% | 3,060 | 4,492 | +47% | 0 | 0 | — |
case-10 | pass→pass | 58,623 | 83,710 | +43% | 1 | 1 | 0% | 3,617 | 4,743 | +31% | 0 | 0 | — |
case-11 | pass→pass | 19,388 | 27,350 | +41% | 1 | 1 | 0% | 3,014 | 4,206 | +40% | 0 | 0 | — |
case-12 | fail→pass | 22,021 | 21,087 | -4% | 1 | 1 | 0% | 3,048 | 4,282 | +40% | 0 | 0 | — |
case-13 | pass→pass | 17,846 | 22,995 | +29% | 1 | 1 | 0% | 2,549 | 4,119 | +62% | 0 | 0 | — |
case-14 | pass→pass | 19,269 | 27,272 | +42% | 1 | 1 | 0% | 2,610 | 4,320 | +66% | 0 | 0 | — |
case-15 | fail→pass | 32,439 | 31,047 | -4% | 1 | 1 | 0% | 4,540 | 4,946 | +9% | 0 | 0 | — |
case-16 | pass→pass | 15,868 | 20,169 | +27% | 1 | 1 | 0% | 2,616 | 4,394 | +68% | 0 | 0 | — |
case-17 | pass→pass | 18,088 | 24,162 | +34% | 1 | 1 | 0% | 3,240 | 4,253 | +31% | 0 | 0 | — |
case-18 | pass→pass | 21,476 | 25,253 | +18% | 1 | 1 | 0% | 3,681 | 4,923 | +34% | 0 | 0 | — |
case-19 | fail→pass | 22,046 | 25,348 | +15% | 1 | 1 | 0% | 3,994 | 5,250 | +31% | 0 | 0 | — |
case-20 | pass→pass | 33,485 | 20,033 | -40% | 1 | 1 | 0% | 2,825 | 4,176 | +48% | 0 | 0 | — |
case-21 | pass→pass | 16,657 | 29,119 | +75% | 1 | 1 | 0% | 2,545 | 4,765 | +87% | 0 | 0 | — |
case-22 | pass→pass | 19,592 | 20,175 | +3% | 1 | 1 | 0% | 2,671 | 4,130 | +55% | 0 | 0 | — |
case-23 | fail→pass | 19,626 | 29,790 | +52% | 1 | 1 | 0% | 3,278 | 5,548 | +69% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +22 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.