Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when you need to find code by concept (not just text). Uses Serena MCP for semantic code search across the codebase with minimal token usage. Ideal for understanding architecture, finding authentication flows, or multi-file refactoring.
.claude/skills/aiskillstore-semantic-code-hunter/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 226% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -16% | 0% |
Uses Serena MCP tools for semantic understanding:
find_symbol - Find symbols by concept, not just namefind_referencing_symbols - Trace code relationshipsfind_referencing_code_snippets - Find where code is usedget_symbols_overview - Understand file structure firstFind symbols globally or locally with/containing a given name/substring.
Example: find_symbol("authenticate")
Finds: authenticateUser, isAuthenticated, AuthenticationServiceFind symbols that reference another symbol.
Example: find_referencing_symbols("User", type="function")
Finds: All functions that use the User modelGet high-level overview of symbols in a file.
Example: get_symbols_overview("src/services/auth.ts")
Returns: List of classes, functions, exports in filePattern search across project (when semantic search not sufficient).
If you know the file:
1. get_symbols_overview("path/to/file.ts")
2. Identify relevant symbols
3. Use find_symbol to get detailsIf you don't know the file:
1. find_symbol("concept")
2. Review results
3. Use find_referencing_symbols to trace usageOnce you know what you need:
1. Use find_symbol to get specific code
2. Only loads relevant sections (not entire files)
3. Minimal token consumptionTask: "Where do we handle user authentication?"
Process:
1. find_symbol("auth") - Find auth-related symbols
2. Identify: authenticateUser, validateToken, etc.
3. find_referencing_symbols("authenticateUser") - Where is it called?
4. Trace the flow: Login route → Auth service → JWT generation
Result: Complete authentication flow mapped without reading full filesTask: "Rename User model to Account"
Process:
1. find_symbol("User") - Find User model
2. find_referencing_symbols("User") - Find all usages
3. List all files that need updating
4. Use rename_symbol (Serena tool) for safe refactoring
Result: All references found and renamed consistentlyTask: "How does ProjectCard component get data?"
Process:
1. find_symbol("ProjectCard")
2. find_referencing_symbols("ProjectCard") - Where is it used?
3. Trace backwards to data source
4. Understand the data flow
Result: Complete data flow from API → Page → ComponentTraditional approach (without Serena):
Serena approach:
If Serena returns too many results:
If Serena returns no results:
If symbols missing:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 28,588 | 29,581 | +3% | 1 | 1 | 0% | 2,175 | 3,610 | +66% | 0 | 0 | — |
case-02 | fail→fail | 3,376 | 3,763 | +11% | 1 | 1 | 0% | 256 | 1,575 | +515% | 0 | 0 | — |
case-03 | fail→fail | 15,281 | 8,843 | -42% | 1 | 1 | 0% | 1,880 | 1,649 | -12% | 0 | 0 | — |
case-04 | pass→pass | 11,923 | 9,694 | -19% | 1 | 1 | 0% | 1,267 | 1,873 | +48% | 0 | 0 | — |
case-05 | pass→pass | 9,809 | 3,937 | -60% | 1 | 1 | 0% | 1,878 | 1,852 | -1% | 0 | 0 | — |
case-06 | pass→pass | 8,428 | 9,085 | +8% | 1 | 1 | 0% | 1,444 | 1,756 | +22% | 0 | 0 | — |
case-07 | fail→pass | 3,872 | 9,137 | +136% | 1 | 1 | 0% | 533 | 1,738 | +226% | 0 | 0 | — |
case-08 | fail→pass | 10,644 | 3,715 | -65% | 1 | 1 | 0% | 1,668 | 1,896 | +14% | 0 | 0 | — |
case-09 | fail→pass | 16,611 | 8,625 | -48% | 1 | 1 | 0% | 1,845 | 1,930 | +5% | 0 | 0 | — |
case-10 | fail→pass | 16,765 | 8,518 | -49% | 1 | 1 | 0% | 1,989 | 1,673 | -16% | 0 | 0 | — |
case-11 | fail→pass | 9,618 | 9,506 | -1% | 1 | 1 | 0% | 1,456 | 1,859 | +28% | 0 | 0 | — |
case-12 | fail→pass | 20,861 | 11,396 | -45% | 1 | 1 | 0% | 2,579 | 2,405 | -7% | 0 | 0 | — |
case-13 | fail→pass | 10,471 | 9,012 | -14% | 1 | 1 | 0% | 1,324 | 1,861 | +41% | 0 | 0 | — |
case-14 | fail→pass | 12,462 | 3,963 | -68% | 1 | 1 | 0% | 1,226 | 1,896 | +55% | 0 | 0 | — |
case-15 | fail→pass | 15,405 | 11,040 | -28% | 1 | 1 | 0% | 2,760 | 2,113 | -23% | 0 | 0 | — |
case-16 | pass→pass | 20,790 | 11,431 | -45% | 1 | 1 | 0% | 2,533 | 2,212 | -13% | 0 | 0 | — |
case-17 | fail→pass | 19,046 | 13,573 | -29% | 1 | 1 | 0% | 1,873 | 2,515 | +34% | 0 | 0 | — |
case-18 | fail→pass | 14,769 | 4,698 | -68% | 1 | 1 | 0% | 1,576 | 2,041 | +30% | 0 | 0 | — |
case-19 | fail→pass | 17,420 | 8,869 | -49% | 1 | 1 | 0% | 2,017 | 1,750 | -13% | 0 | 0 | — |
case-20 | fail→pass | 14,858 | 7,030 | -53% | 1 | 1 | 0% | 855 | 2,056 | +140% | 0 | 0 | — |
case-21 | pass→pass | 22,486 | 10,309 | -54% | 1 | 1 | 0% | 1,063 | 1,897 | +78% | 0 | 0 | — |
case-22 | pass→pass | 31,835 | 27,764 | -13% | 1 | 1 | 0% | 2,837 | 3,306 | +17% | 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. 22 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 22 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.