search-skills
Find the right bigpowers skill from natural-language intent using a local lexical index over SKILL.md frontmatter. Use when unsure which skill to invoke, or at start of research-first.
- License 许可
- MIT
- 最近更新
- 2026-11-10
- Stars
- ★ 292
- Forks
- 23
01 前言 Front Matter
- name
- search-skills
- model
- haiku
- description
- Find the right bigpowers skill from natural-language intent using a local lexical index over SKILL.md frontmatter. Use when unsure which skill to invoke, or at start of research-first.
03 SKILL.md 正文
<!-- story: e09s01 --> <!-- story: e21s01 -->
Search Skills
HARD GATE — Search results must be ranked by relevance. Do NOT return all matches without prioritization. Use skill metadata (phase, purpose, frequency) to rank.
HARD GATE — Do NOT use external embedding APIs or AI-based semantic search. This is a lexical-only index (ADR: zero external dependency).
Lexical search only — no embedding service (ADR: zero external dependency). The index is a flat markdown file (specs/SKILL-SEARCH-INDEX_LATEST.md) built from every SKILL.md's YAML frontmatter — name, description, and key phrases. No vector DB, no API calls, no network dependency.
When to use
- You're unsure which skill to invoke for a user's request
- At the start of
research-firstto find pre-existing skills that might solve the problem - When a user asks "is there a skill for X?"
- Before calling a skill by name, to confirm it's the right one
Pre-flight
- [ ] Does
specs/SKILL-SEARCH-INDEX_LATEST.mdexist? If not, runbash scripts/build-skill-index.sh. - [ ] Is the index fresh? Check its timestamp — if > 24 hours old or after any SKILL.md change, regenerate.
Process
-
Refresh index if stale — Run
bash scripts/build-skill-index.shifspecs/SKILL-SEARCH-INDEX_LATEST.mddoesn't exist or was modified before the last SKILL.md change. -
Search the index — Use ripgrep on the lexical index:
rg -i "<keywords>" specs/SKILL-SEARCH-INDEX_LATEST.mdThe index contains each skill's name, description, phase, and key use-case phrases, so natural language queries work well even without embeddings.
-
Rank results — Read the top 3 matches. Evaluate by:
- Exactness — Does the description literally match the user's intent?
- Phase fit — Is the skill designed for the current lifecycle phase?
- Trigger phrases — Does the skill's "Use when" section match the situation?
-
Recommend one skill — Select the single best-matching skill. Provide:
- The skill name
- Why it's the best match (citing the description or trigger phrase)
- What it produces (artifact, dialogue, or state change)
-
Invoke — Call the skill directly or through the orchestrator. If no match found, suggest the closest phase-appropriate skill or
using-bigpowersas a general entry point.
Index Format
specs/SKILL-SEARCH-INDEX_LATEST.md contains one section per skill:
## <skill-name>
- **Description:** <from frontmatter>
- **Phase:** <lifecycle phase>
- **Triggers:** <key phrases from description>
- **Keywords:** <extracted terms>
Why Not Semantic Search?
- Zero network dependency — works fully offline
- Zero cost — no API keys, no usage limits
- Instant — ripgrep on a local file is sub-second
- Deterministic — same query always returns same results
- Auditable — you can read the full index
Verify
→ verify: test -f specs/SKILL-SEARCH-INDEX_LATEST.md || (bash scripts/build-skill-index.sh && test -f specs/SKILL-SEARCH-INDEX_LATEST.md)
04 同仓库更多 Skills
skill-verify-fail-open-fixture
Negative-path fixture for run-skill-verify.sh — must never PASS.
negative-path
暂无简介
write-document
Write, organize, and sync high-integrity technical documents using the BMAD methodology. Ensures every document is Bold, Minimal, Actionable, and Durable. Use when creating architectural docs, technical guides, or organizing the specs/ directory.
wire-observability
Add structured JSON logging, observability commands, and idempotent setup scripts to a project. Use when a project needs production-readiness instrumentation, when user wants structured logging, or as a production-readiness gate at any phase of development.
wire-ci
CI pipeline setup with bundled, forge-neutral templates and local validation. Detects the forge from the git remote, generates workflows for supported forges, and skips honestly for the rest. The CI equivalent of wire-observability.
visual-dashboard
Start a browser-based dashboard that visualizes architecture, implementation plans, and project status. Persists artifacts in .bigpowers/dashboard/. Reads specs/state.yaml, release-plan.yaml, epics, and planning-status via HTTP API or opencode panel.