Retrieval Judge Skill
When using recall_search, you MUST apply critical judgment to results rather than treating them as authoritative. This is a mandatory step after every recall_search call.
Query Construction
Build specific queries that include conversation context:
- Good:
"payment retry logic after provider timeout", "Go error wrapping with sentinel errors"
- Bad:
"retry", "error handling"
Include the problem domain, technology, and specific concern in your query.
Result Evaluation
After each recall_search call, evaluate every result before using it:
- Title/type match — Does the entry's title and type (pattern, decision, failure, etc.) relate to what you're actually looking for?
- Content relevance — Does the snippet address your specific question, or is it tangentially related?
- Applicability — Does the result apply to the current technology, codebase area, or problem domain?
Only reference results that directly address the query. Discard results that are merely keyword-adjacent.
Anti-Patterns
- Don't trust rank order blindly. RRF scoring produces narrow distributions — result #1 may not be meaningfully better than result #5.
- Don't use results just because they appeared. An empty answer is better than citing irrelevant knowledge.
- Don't ignore low-ranked results. A result at position 8 may be more relevant than position 2 if it matches the actual intent.
- Don't skip evaluation. Every
recall_search call should be followed by a mental relevance check before incorporating results into your response.
Audit Trail
After evaluating recall_search results, always:
Log your judgment — call flight_recorder_log with:
- type:
retrieval_judgment
- content: One-line summary, e.g.
"3/7 results relevant for 'payment retry timeout'"
- metadata:
{
"query": "<the search query>",
"kept": [{"id": "<id>", "title": "<title>", "reason": "directly addresses retry logic"}],
"dropped": [{"id": "<id>", "title": "<title>", "reason": "about billing, not payments"}]
}
Show a summary to the user:
RECALL: 3/7 results kept for "payment retry timeout"
On request — if the user asks for details on the judgment, output the full kept/dropped list with per-result reasoning.
When Results Are Poor
If no results are clearly relevant:
- Say so — don't force-fit irrelevant knowledge
- Try a rephrased query with different terms
- Proceed without RECALL context rather than using noise
1---2name: retrieval-judge3description: Evaluate and filter recall_search results for relevance4---5
6# Retrieval Judge Skill
7
8When using `recall_search`, you MUST apply critical judgment to results rather than treating them as authoritative. This is a mandatory step after every `recall_search` call.
9
10## Query Construction
11
12Build specific queries that include conversation context:
13- **Good**: `"payment retry logic after provider timeout"`, `"Go error wrapping with sentinel errors"`
14- **Bad**: `"retry"`, `"error handling"`
15
16Include the problem domain, technology, and specific concern in your query.
17
18## Result Evaluation
19
20After each `recall_search` call, evaluate every result before using it:
21
221. **Title/type match** — Does the entry's title and type (pattern, decision, failure, etc.) relate to what you're actually looking for?
232. **Content relevance** — Does the snippet address your specific question, or is it tangentially related?
243. **Applicability** — Does the result apply to the current technology, codebase area, or problem domain?
25
26Only reference results that **directly address** the query. Discard results that are merely keyword-adjacent.
27
28## Anti-Patterns
29
30- **Don't trust rank order blindly.** RRF scoring produces narrow distributions — result #1 may not be meaningfully better than result #5.
31- **Don't use results just because they appeared.** An empty answer is better than citing irrelevant knowledge.
32- **Don't ignore low-ranked results.** A result at position 8 may be more relevant than position 2 if it matches the actual intent.
33- **Don't skip evaluation.** Every `recall_search` call should be followed by a mental relevance check before incorporating results into your response.
34
35## Audit Trail
36
37After evaluating recall_search results, always:
38
391. **Log your judgment** — call `flight_recorder_log` with:
40 - type: `retrieval_judgment`
41 - content: One-line summary, e.g. `"3/7 results relevant for 'payment retry timeout'"`
42 - metadata:
43 ```json
44 {
45 "query": "<the search query>",
46 "kept": [{"id": "<id>", "title": "<title>", "reason": "directly addresses retry logic"}],
47 "dropped": [{"id": "<id>", "title": "<title>", "reason": "about billing, not payments"}]
48 }
49 ```
50
512. **Show a summary** to the user:
52 ```
53 RECALL: 3/7 results kept for "payment retry timeout"
54 ```
55
563. **On request** — if the user asks for details on the judgment, output the full kept/dropped list with per-result reasoning.
57
58## When Results Are Poor
59
60If no results are clearly relevant:
61- Say so — don't force-fit irrelevant knowledge
62- Try a rephrased query with different terms
63- Proceed without RECALL context rather than using noise