Skill Finder logo

Skill Finder

Community
mizchi
skill-finder

Use ONLY when the user explicitly asks to discover or evaluate a skill from OUTSIDE the curated catalog — e.g., "find a Stripe skill", "is there a skill for X?", "evaluate this candidate before adopting". Meta-skill, complementary to skill-selector: do NOT auto-invoke on routine apm-management, project-init, or catalog-resident requests. Cross-source survey across vetted registries (Anthropic official, claude-skill-registry, VoltAgent/awesome-agent-skills, ComposioHQ, Superpowers, GitHub topic) with a mandatory waxa-eval adoption gate.

Overview

Publishermizchi
Repositoryskills
Skill nameskill-finder
Stars
333
Forks
4
Bundled files
6
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 6 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by mizchi on GitHub. Read the source before you install it.

Installation

Install the Skill Finder AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/mizchi/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skill-finder .claude/skills/skill-finder
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Skill Finder in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Skill Finder on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Skill Finder is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Skill Finder

Adopting a skill found outside the curated catalog has two failure modes the in-catalog flow does not carry:

  1. Low-quality content — registries vary wildly in vetting; some are SEO scrapes.
  2. Registry blindness — Tier-1 official sources can already cover the need; jumping to GitHub grep first wastes effort and lands in noisier listings.

This skill exists to make the cross-source search deliberate and to refuse adoption of anything that has not passed a waxa eval.

When to invoke

Explicit user request only. Triggering phrases:

  • "find a <X> skill"
  • "is there a skill for <X>?"
  • "evaluate <owner/repo> as a skill before adopting"
  • "search the registries for <X>"

When NOT to use:

  • The catalog already has a fit → stop immediately and tell the user to use skill-selector Phase 1 instead. Do NOT continue into Tier 1-4 search, do NOT propose install steps, do NOT survey other sources. Even if the catalog skill is plausibly improvable by something external, the existing fit is the answer; respect Phase 1.
  • One-off task with no recurrence → solve inline; do not adopt a skill you will trigger once.
  • The user did not ask for discovery → as a meta-skill, this never auto-fires (cf. user-level CLAUDE.md "Skill 利用方針").

Pre-flight check (mandatory first step)

Before doing anything else, scan the skill-selector/references/catalog.md rows against the user's stated need. If any row matches:

  1. State the matching catalog row to the user.
  2. Recommend they invoke skill-selector (Phase 1) for the install.
  3. Stop. Do not run the workflow below. Do not survey Tier 1+ sources.

Only proceed past this check when the catalog scan finds no row matching within roughly 30 seconds of reading.

Sources

Priority tiers. Always start at the top and only escalate when the tier above has no fit.

TierSourceFormNotes
1anthropics/skillsGitHub repo, ~30 first-party skillsHighest trust. Install: apm install anthropics/skills/skills/<name> (the repo nests under skills/).
1anthropics/claude-plugins-officialPlugin marketplaceOfficial plugins (frontend-design / mcp-server-dev / code-review / ralph-loop / external_plugins/...).
2majiayu000/claude-skill-registryDaily-crawled, dedup'd, security-scanned cross-source indexBest discovery hub. Path format owner/repo/skills/name translates directly to APM.
2VoltAgent/awesome-agent-skillsOrg-grouped awesome-list (MIT, active)Each entry routes through officialskills.sh; resolve to underlying GitHub repo before adoption.
3ComposioHQ/awesome-claude-skillsAwesome-list, broader/looser curationTreat entries as candidates, not endorsements.
3obra/superpowersSkill bundle, methodology-heavy (TDD / subagent / brainstorming)High-quality but opinionated; check fit carefully.
4GitHub topic:claude-skill / topic:agent-skills / path:**/SKILL.mdRaw searchLast resort. Sort by recently-updated, not stars (top-starred repos are usually awesome-lists, not skills).
NGagent-skills.ccSEO scrape, stars-only signal, APM-incompatibleDo not source from here. May be used as an alias lookup to find the underlying GitHub repo, never as a primary recommendation.

Workflow

  1. Pre-flight catalog check (see above). If skill-selector/references/catalog.md has a fit, stop and defer to skill-selector. Only continue past step 0 when no catalog row matches.
  2. State the recurring need. A skill is justified only by a recurring task type. If the user cannot name one, do not adopt — solve inline.
  3. Sweep top-down. Hit Tier 1 first. Stop at the first usable hit; do not survey lower tiers when Tier 1 already matches. Capture per candidate: skill name, resolved GitHub URL, one-line description, last-update date, license.
  4. Apply the rubric. A candidate passes only if all seven axes are acceptable:
    • Fit — does the skill's "Use when..." actually match the project task? Re-read the description, not the title.
    • Non-redundancy — does the project's already-installed skill set cover this need? A "Fit ✓" candidate that overlaps with skills already in the stack should still be rejected (or at most project-pinned to one project that genuinely lacks the coverage). Common overlap pairs: skill-creation skills vs superpowers:writing-skills + empirical-prompt-tuning + waxa-eval; testing skills vs playwright-test; dotfile skills vs chezmoi-management. A redundant skill costs context every conversation without a unique payoff.
    • Maintenance — last commit recent? Visible upstream activity?
    • License — SPDX present and compatible with the consuming project?
    • Frontmatter healthname matches dir; description ≤1024 chars and triggering-condition-shaped (per superpowers:writing-skills CSO).
    • Body quality — explicit "When NOT to use"? Concrete patterns vs vague advice?
    • Footprint — body length, demand-loaded vs always-loaded references, cross-skill dependencies.
  5. waxa audit (recommended). Before spending the eval-gate budget, run npx @mizchi/waxa audit <candidate-skill-dir> to surface structural problems cheaply: frontmatter shape, body length, missing "When NOT to use", suspicious scripts, missing LICENSE, plus apm audit's hidden-Unicode (prompt-injection) scan. A candidate with audit errors is a probable Reject without spending LLM time on the eval gate.
  6. waxa eval gate (mandatory). Adoption without empirical evaluation is the failure mode this skill exists to prevent. For each shortlisted candidate:
    • Install temporarily: apm install <owner>/<repo>/skills/<name> into a sandbox project (or symlink for local audit).
    • Author 1-2 representative tasks/*.yaml matching the project's actual recurring task. See skill-selector/evals/ and nix-setup/evals/ (skill-local layout from waxa 0.2.0) for working templates.
    • Run waxa run with trials_per_task: 2 minimum.
    • Iterate (waxa iterate) until the ledger converges. Convergence = 2 consecutive runs with zero unclear-points (cf. empirical-prompt-tuning).
    • If unclear-points persist across 2 iterations with no decreasing trend → treat as divergent, reject.
  7. Decide and pin. Adoption is always pinned; pinning is non-negotiable.
    • Catalog-promote — passes eval AND used in 2+ projects without issue → propose addition to skill-selector/references/catalog.md with the project signal that should trigger it.
    • Project-pin — fits one project; add to that project's apm.yml with a tag or SHA resolved via apm view <repo> (or the upstream release page). Pin to the exact ref the waxa eval passed against — adopt after eval, pin the ref that was eval'd. Floating refs (main, master, HEAD) are forbidden for production projects.
    • Reject — record the reason in references/rejection-log.md (this skill) and / or the project's own docs/skills-rejected.md so the same candidate is not re-evaluated quarterly. Common reject reasons: license absent, body quality below floor, non-redundancy axis fails (already covered by installed stack), or maintenance signal too weak.
  8. Fork-and-fix path. If a candidate is close-but-not-quite, prefer forking it into mizchi/skills/<name> (or the project's local skills dir) and reshaping it, over working around its shortcomings at call sites. Document the divergence so an upstream PR can converge.

Source-specific resolution notes

  • anthropics/skills: skills live under skills/<name>. Install string: apm install anthropics/skills/skills/<name> (the path includes "skills/skills" — not a typo).

  • anthropics/claude-plugins-official: includes external_plugins/ (asana, linear, playwright, serena, laravel-boost, github, gitlab, firebase, terraform). These are plugins, not raw skills — verify the plugin manifest exposes a SKILL.md before treating them as APM dependencies.

  • majiayu000/claude-skill-registry: ships its own sk CLI; you do not need it. apm install owner/repo/skills/name works once you have the path. Use the registry's web UI / data files for discovery only.

  • VoltAgent/awesome-agent-skills: README is org-grouped (Anthropic / Stripe / HashiCorp / Cloudflare / Sentry / etc.). Extract entries with:

    bash
    curl -sL https://raw.githubusercontent.com/VoltAgent/awesome-agent-skills/main/README.md \
      | grep -oE '\[[^]]+\]\(https?://officialskills\.sh[^)]+\)'

    Each officialskills.sh URL routes to a GitHub repo; traverse to that repo before evaluating.

  • GitHub topic search: use the API. topic:claude-skill (1.4k repos) and topic:agent-skills (4.3k) are both noisy — filter by SKILL.md presence and recent activity. The path:SKILL.md qualifier helps narrow. Star count is mostly signal-less past Tier 3 (top-starred repos are awesome-lists, not skills).

waxa eval template

For a candidate at <owner>/<repo>/skills/<name>, scaffold:

evals/
└── <name>/
    ├── eval.yaml
    └── tasks/
        ├── scenario-typical.yaml
        └── scenario-edge.yaml

eval.yaml skeleton:

yaml
name: <name>-eval
skill: <name>
version: "0.1"

config:
  trials_per_task: 2
  timeout_seconds: 180
  parallel: false
  executor: claude-cli   # mock for smoke; claude-cli for real eval
  model: claude-opus-4-8

graders:
  - name: <task-specific>
    type: text | code | llm | self_report
    config: { ... }

tasks:
  - "tasks/*.yaml"

Working references in this repo: skill-selector/evals/eval.yaml, nix-setup/evals/eval.yaml (skill-local layout from waxa 0.2.0).

Common mistakes

MistakeFix
Surveying every tier in parallelTop-down. Stop at first fit.
Skipping the pre-flight catalog checkAlways check skill-selector/references/catalog.md first. If it covers the need, defer immediately — do not proceed into Tier 1+ surveys. The playwright-test / cloudflare-deploy / gh-fix-ci rows are the most common false-escalations to watch for.
Adopting because "Fit ✓" aloneNon-redundancy is a separate axis. A skill that fits the user's stated need but overlaps with skills already installed (e.g. anthropic's skill-creator overlapping with superpowers:writing-skills + empirical-prompt-tuning + waxa-eval) is a reject. The cost is context per conversation; the payoff has to be unique.
Skipping references/rejection-log.md on rejectRecording the reason takes 30 seconds and prevents re-evaluating the same candidate in 3 months when its star count grows. The log is the durable artifact of the skill-finder run, mirroring how the eval ledger works for waxa-eval.
Citing agent-skills.cc as a recommendationSource is SEO scrape; only use it for alias-lookups to GitHub. Never as a primary recommendation.
Skipping waxa eval ("the README looks fine")Forbidden. Adoption-without-eval is the exact failure this skill prevents.
Pinning to main / masterResolve a tag or SHA via apm view <repo> and pin that explicitly.
Treating org membership as qualityA repo under a known org is not auto-trusted; still apply the rubric. Anthropic-published skills are the rare exception.
Re-evaluating a previously rejected skillCheck docs/skills-rejected.md first. Recording rejection reasons prevents quarterly re-evaluation churn.
Going to Tier 4 without sweeping Tier 1-3The cost asymmetry is large: GitHub search is noisy and the curated tiers are pre-filtered.

Related

  • skill-selector — Phase 1 catalog selection. Always run before this skill. If Phase 1 covers the need, do not invoke skill-finder.
  • apm-usageapm.yml syntax for the install / pinning step
  • empirical-prompt-tuning — convergence/divergence semantics underlying the waxa eval gate
  • superpowers:writing-skills — when no candidate passes the rubric, write the skill yourself instead of forcing a poor match

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Skill Finder AI skill do?

Use ONLY when the user explicitly asks to discover or evaluate a skill from OUTSIDE the curated catalog — e.g., "find a Stripe skill", "is there a skill for X?", "evaluate this candidate before adopting". Meta-skill, complementary to skill-selector: do NOT auto-invoke on routine apm-management, project-init, or catalog-resident requests. Cross-source survey across vetted registries (Anthropic official, claude-skill-registry, VoltAgent/awesome-agent-skills, ComposioHQ, Superpowers, GitHub topic) with a mandatory waxa-eval adoption gate.

Why use Skill Finder on TypingMind?

Because you install it once and use it with any model. Skill Finder is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Skill Finder in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/mizchi/skills/tree/main/skill-finder. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Skill Finder?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Skill Finder?

As many as you like. As long as a model supports skills, you can use Skill Finder with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Skill Finder AI skill free?

It is published on GitHub by mizchi. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇