grepai-search-boosting — Claude Code skill: boost search ranking
A skill that configures GrepAI score boosting so source files outrank tests, docs and vendor code.
npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a claude-codeWhat grepai-search-boosting does
The skill walks through the search.boost section of .grepai/config.yaml. It ships ready-made blocks: penalties with a factor below 1.0 for tests, docs, vendor, node_modules and generated code, plus bonuses above 1.0 for src, lib, core and internal.
The mechanics are plain. A pattern is matched against the full file path, and the factor multiplies the original score. A 0.85 hit in tests/auth_test.go at factor 0.5 becomes 0.425, while 0.82 in src/auth/middleware.go at 1.1 becomes 0.90. That is why a test with similar content sinks and production code rises.
Presets cover frontend, Go, Python and monorepo layouts, with patterns like .spec., _test.go, .pb.go and /packages/core/. Turning the whole thing off takes one line, enabled: false. If search starts missing files you expect, look at the penalties first: a broad pattern such as _test. also catches unrelated files that happen to carry that name.
What it helps with
- rank source files above tests with similar content
- push vendor code and
node_modulesout of top results - tune ranking for a monorepo layout
- deprioritise docs and example directories
- give core logic a stronger factor than the rest of the code
Example prompts for the agent
- configure GrepAI boosting so tests stop topping my search results
- add a penalty for /vendor/ and /node_modules/ to my GrepAI config
- set up boost rules for a monorepo with /packages/core/
How to install grepai-search-boosting
1Skills CLI (Vercel)
npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a claude-code2Manually: put the files in place
~/.claude/skills/grepai-search-boosting/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/grepai-search-boosting/
1Skills CLI (Vercel)
npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a codex2Manually: put the files in place
.agents/skills/grepai-search-boosting/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a cursor2Manually: put the files in place
.cursor/skills/grepai-search-boosting/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install yoanbernabeu/grepai-skills grepai-search-boosting2Manually: put the files in place
.github/skills/grepai-search-boosting/SKILL.md1Skills CLI (Vercel)
npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a gemini-cli2Platform CLI
gemini skills install https://github.com/yoanbernabeu/grepai-skills --path skills/search/grepai-search-boostingManually: put the files in place
.devin/skills/grepai-search-boosting/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about grepai-search-boosting
How do I install grepai-search-boosting in Claude?
Run npx skills add yoanbernabeu/grepai-skills --skill grepai-search-boosting -a claude-code. The skill lands in ~/.claude/skills/grepai-search-boosting/SKILL.md.
What does grepai-search-boosting do?
It shows how to configure GrepAI search score boosts and penalties by file path. Source code gets a higher rank, tests and vendor directories a lower one.
How is a penalty different from ignoring files?
Ignoring removes files from search entirely, while a penalty keeps them findable at a lower rank. Tests and docs are better penalised, whereas node_modules and .git are better ignored.
Source text
SKILL.md · MIT
---
name: grepai-search-boosting
description: Configure search result boosting in GrepAI. Use this skill to prioritize certain paths and penalize others.
---
# GrepAI Search Boosting
This skill covers configuring score boosting to prioritize relevant code paths and deprioritize tests, docs, and vendor code.
## When to Use This Skill
- Prioritizing source code over tests
- Penalizing vendor/third-party code
- Boosting important directories
- Customizing result ranking
## What is Boosting?
Boosting modifies search scores based on file paths:
```
Original score: 0.85 (src/auth.go)
Bonus (+10%): 0.935
Original score: 0.85 (tests/auth_test.go)
Penalty (-50%): 0.425
```
This ensures production code ranks higher than tests with similar content.
## Configuration
### Basic Configuration
```yaml
# .grepai/config.yaml
search:
boost:
enabled: true
penalties:
- pattern: /tests/
factor: 0.5
bonuses:
- pattern: /src/
factor: 1.1
```
### Full Configuration
```yaml
search:
boost:
enabled: true
# Reduce scores (factor < 1.0)
penalties:
# Test files
- pattern: /tests/
factor: 0.5
- pattern: /__tests__/
factor: 0.5
- pattern: _test.
factor: 0.5
- pattern: .spec.
factor: 0.5
- pattern: .test.
factor: 0.5
# Documentation
- pattern: /docs/
factor: 0.6
- pattern: /documentation/
factor: 0.6
# Vendor/third-party
- pattern: /vendor/
factor: 0.3
- pattern: /node_modules/
factor: 0.3
- pattern: /third_party/
factor: 0.3
# Generated code
- pattern: /generated/
factor: 0.4
- pattern: .gen.
factor: 0.4
- pattern: .pb.go
factor: 0.4
# Examples and samples
- pattern: /examples/
factor: 0.7
- pattern: /samples/
factor: 0.7
# Increase scores (factor > 1.0)
bonuses:
# Core source code
- pattern: /src/
factor: 1.1
- pattern: /lib/
factor: 1.1
- pattern: /app/
factor: 1.1
- pattern: /core/
factor: 1.2
- pattern: /internal/
factor: 1.1
# Important directories
- pattern: /services/
factor: 1.1
- pattern: /handlers/
factor: 1.1
- pattern: /controllers/
factor: 1.1
```
## How Factors Work
| Factor | Effect | Use Case |
|--------|--------|----------|
| 0.3 | 70% reduction | Strong penalty (vendor) |
| 0.5 | 50% reduction | Moderate penalty (tests) |
| 0.7 | 30% reduction | Mild penalty (examples) |
| 1.0 | No change | Neutral |
| 1.1 | 10% increase | Mild boost (src) |
| 1.2 | 20% increase | Moderate boost (core) |
| 1.5 | 50% increase | Strong boost |
## Pattern Matching
Patterns match against the full file path:
```
/project/src/auth/middleware.go
^^^^
Matches "/src/" pattern
```
### Pattern Types
| Pattern | Matches | Doesn't Match |
|---------|---------|---------------|
| `/tests/` | `src/tests/auth.go` | `tests.go` |
| `_test.` | `auth_test.go` | `test_auth.go` |
| `.spec.` | `auth.spec.ts` | `spec/auth.ts` |
| `/src/` | `project/src/main.go` | `resource/file.go` |
## Effect on Rankings
### Without Boosting
```
Score: 0.85 | tests/auth_test.go:10-30
Score: 0.82 | src/auth/middleware.go:15-45
Score: 0.80 | src/auth/jwt.go:23-55
```
### With Boosting
```yaml
penalties:
- pattern: /tests/
factor: 0.5
bonuses:
- pattern: /src/
factor: 1.1
```
```
Score: 0.90 | src/auth/middleware.go:15-45 (0.82 × 1.1)
Score: 0.88 | src/auth/jwt.go:23-55 (0.80 × 1.1)
Score: 0.43 | tests/auth_test.go:10-30 (0.85 × 0.5)
```
## Common Configurations
### Standard (Recommended)
```yaml
search:
boost:
enabled: true
penalties:
- pattern: /tests/
factor: 0.5
- pattern: _test.
factor: 0.5
- pattern: .spec.
factor: 0.5
- pattern: /vendor/
factor: 0.3
- pattern: /docs/
factor: 0.6
bonuses:
- pattern: /src/
factor: 1.1
- pattern: /lib/
factor: 1.1
```
### Frontend Project
```yaml
search:
boost:
enabled: true
penalties:
- pattern: /__tests__/
factor: 0.5
- pattern: .test.
factor: 0.5
- pattern: .spec.
factor: 0.5
- pattern: /node_modules/
factor: 0.3
- pattern: .stories.
factor: 0.6
- pattern: /storybook/
factor: 0.6
bonuses:
- pattern: /src/
factor: 1.1
- pattern: /components/
factor: 1.1
- pattern: /hooks/
factor: 1.1
```
### Go Project
```yaml
search:
boost:
enabled: true
penalties:
- pattern: _test.go
factor: 0.5
- pattern: _mock.go
factor: 0.5
- pattern: /testdata/
factor: 0.5
- pattern: /vendor/
factor: 0.3
- pattern: .pb.go
factor: 0.4
bonuses:
- pattern: /internal/
factor: 1.1
- pattern: /cmd/
factor: 1.1
- pattern: /pkg/
factor: 1.1
```
### Python Project
```yaml
search:
boost:
enabled: true
penalties:
- pattern: /tests/
factor: 0.5
- pattern: test_
factor: 0.5
- pattern: _test.py
factor: 0.5
- pattern: /conftest
factor: 0.5
- pattern: /fixtures/
factor: 0.6
bonuses:
- pattern: /src/
factor: 1.1
- pattern: /app/
factor: 1.1
- pattern: /core/
factor: 1.2
```
### Monorepo
```yaml
search:
boost:
enabled: true
penalties:
- pattern: /tests/
factor: 0.5
- pattern: _test.
factor: 0.5
- pattern: /packages/deprecated/
factor: 0.3
- pattern: /packages/legacy/
factor: 0.4
bonuses:
- pattern: /packages/core/
factor: 1.2
- pattern: /packages/api/
factor: 1.1
- pattern: /packages/shared/
factor: 1.1
```
## Disabling Boosting
To disable boosting entirely:
```yaml
search:
boost:
enabled: false
```
Or remove the boost section from config.
## Boosting vs Ignoring
| Approach | Effect | Use Case |
|----------|--------|----------|
| **Ignore** | Completely excluded | Dependencies, build output |
| **Penalty** | Still searchable, lower rank | Tests, docs, examples |
| **Neutral** | Default ranking | Regular source code |
| **Bonus** | Higher rank | Core business logic |
### When to Ignore vs Penalize
- **Ignore:** Files you NEVER want to search (`node_modules`, `.git`)
- **Penalize:** Files you RARELY want but might need (`tests`, `docs`)
## Testing Your Configuration
After configuring boosting:
```bash
# Search and observe rankings
grepai search "authentication"
# Check if tests are properly deprioritized
grepai search "test authentication" # Should still find tests, but ranked lower
```
## Best Practices
1. **Start with penalties:** Deprioritize tests/vendor first
2. **Add bonuses sparingly:** Only for truly important paths
3. **Test with real queries:** Verify results make sense
4. **Don't over-penalize:** 0.5 is usually enough for tests
5. **Document your choices:** Add comments in config
## Common Issues
❌ **Problem:** Tests always show up first
✅ **Solution:** Add penalty patterns for your test naming convention
❌ **Problem:** Can't find code in penalized paths
✅ **Solution:** Penalties reduce rank, don't hide. Use ignore for complete exclusion.
❌ **Problem:** Scores above 1.0 seem wrong
✅ **Solution:** Bonuses can push scores above 1.0; this is normal
❌ **Problem:** Pattern not matching
✅ **Solution:** Check that pattern appears in full path (use `/tests/` not just `tests`)
## Output Format
Boosting configuration status:
```
✅ Search Boosting Configured
Status: Enabled
Penalties (5):
- /tests/ → 0.5 (50% reduction)
- _test. → 0.5
- .spec. → 0.5
- /vendor/ → 0.3 (70% reduction)
- /docs/ → 0.6
Bonuses (3):
- /src/ → 1.1 (10% boost)
- /lib/ → 1.1
- /core/ → 1.2 (20% boost)
Effect: Source code ranks higher than tests with similar content
```
© yoanbernabeu · MIT · yoanbernabeu/grepai-skills