Skip to content
Back to skills

Search Quality

ASecurity

Check that a search box finds the right thing and says "no results" when nothing matches - fuzzy matching tuned so loose it returns everything, missing typo tolerance, bad ranking, no empty state. Use on any search, filter, finder or command palette.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsgo

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add FJRG2007/enigma --skill search-quality --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Search Quality?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Search Quality
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fjrg2007-search-quality/badge)](https://www.skillsdirectory.com/skills/fjrg2007-search-quality)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: search-quality
description: Check that a search box finds the right thing and says "no results" when nothing matches - fuzzy matching tuned so loose it returns everything, missing typo tolerance, bad ranking, no empty state. Use on any search, filter, finder or command palette.
---

# Search quality

A search that cannot return nothing is broken, however good it looks on the happy path.

## Three queries, every time

1. **An exact item** - it must come first.
2. **A one-letter typo of it** - it must still be found.
3. **A word that appears nowhere** - it must return nothing and show an empty state that names
   the query.

Run all three in the browser on the real data, not only in a unit test.

## Usual causes

- fuse.js left at its default `threshold` (0.6), often with `ignoreLocation: true`: nearly every
  item matches. Use about 0.3, `minMatchCharLength: 2`, and weight the title above long text.
- Searching a long description field with the same weight as the title.
- A substring `includes()` filter: no typo tolerance and no ranking.
- No empty state, so "no matches" looks like a broken page or the full list stays visible.
- Searching only the loaded page of a server-paginated list without saying so.

## Report

| Query | Expected | Got | Cause (`file:line`) | Fix |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.