mcpField
M
mstack-find-skills

mstack-find-skills

github.com/mubedaOther011 installsUpdated today
Repository

About mstack-find-skills

A skill matcher that first checks installed skills, then searches the skills.sh directory only for uncovered needs. It supports both direct user requests and calls from other mstack skills, with different question and installation rules for each mode.

Key features

  1. 01Inventories installed skills first
  2. 02Scores and selects skills for each task
  3. 03Searches public candidates only for gaps
  4. 04Controls questions and installation by mode
  5. 05Returns matches in work-item order

Use cases

  1. 01Finding suitable skills for work items
  2. 02Checking whether installed skills cover a task
  3. 03Screening public candidates for skill gaps

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mubeda/mstack --skill mstack-find-skills

After installing, type/mstack-find-skillsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evals/called-three-tasks/
case.yaml
place-files.sh
prompt.md
evals/called-three-tasks/files/app/
README.md
evals/called-three-tasks/files/app/.agents/skills/python-email-testing/
SKILL.md.fixture
evals/called-three-tasks/files/app/.agents/skills/sql-migrations/
SKILL.md.fixture
evals/called-three-tasks/files/app/.claude/skills/react-testing/
SKILL.md.fixture
evals/called-three-tasks/files/app/mailer/
send.py
evals/called-three-tasks/files/app/plugins/vue-testing/skills/vue-testing/
SKILL.md.fixture
evals/called-three-tasks/files/app/src/
Cart.vue
evals/called-three-tasks/graders/
01-order.md
02-no-wrong-framework.md
03-also-read.md
04-new-session.md
05-email.md
06-readme-empty.md
07-no-online.md
08-no-question-no-install.md
evals/failed-audit/
case.yaml
place-files.sh
prompt.md
evals/failed-audit/files/bin/
curl
npx
evals/failed-audit/files/web/
package.json
evals/failed-audit/files/web/src/
app.spec.ts
evals/failed-audit/graders/
01-fail-not-recommended.md
02-not-audited.md
03-no-install.md
04-no-api-search.md
evals/no-network/
case.yaml

Details

From the project README

mstack-find-skills

Finds the skills that fit a job: installed skills first, then vetted public candidates from the skills.sh directory for the gaps only. Every other mstack skill takes its skill matches from here.

RoleClaude CodeCodex
Question toolAskUserQuestiona numbered question in chat, then wait
Loading another skillthe Skill toolread its SKILL.md

Two modes

  • User mode: the user invoked the skill. If they gave a text, that text is the one work item; do not ask what they need. If they gave nothing, ask one question about the job with your question tool and wait. Search nothing until the answer arrives.
  • Called mode: another skill loaded this one and said which skill is calling. Ask nothing and install nothing, ever. Return one result block entry per work item, in the order given.

A called message lists work items, each with an ID, a goal, and optionally files and steps. An optional line Also read: <folders> names folders whose SKILL.md files join the inventory although they are not installed, such as a repository's own plugin folders. Two optional input lines change the run:

  • Online search: off (<reason>), or a message saying the network is unavailable: run no online step, and close with Online search: not run (<reason>).
  • Install: <owner/repo>@<skill> lines, one per candidate from an earlier result, in user mode: skip the inventory and the search, and go straight to references/install.md with those candidates.

Order of work

  1. Inventory. Read references/matching.md and build the list of installed skills for this host, then add the Also read folders. Mark each skill loads now, loads in a new session or repository, not installed.
  2. Score. Score every skill against every item with the rules in references/matching.md. Keep at most four per item. An empty list is a valid answer.
  3. Gaps. Mark the items with a clear domain and no match. An item that needs no specialist is not a gap.
  4. Search and vet. Only for gaps, follow references/public-search.md. Recommend at most two candidates per gap, each vetted on audits, installs and age, license and its SKILL.md. When the search fails, report it as not run; never conclude that no public skill exists.
  5. Report. Write the result block below.
  6. Install, user mode only. When the user wants a candidate, follow references/install.md: one round of questions, then only the selected commands. In called mode, stop after the result block.

Result block

## mstack-find-skills result

### <ID>
Skills:
- <name> (<where installed>, <loads now | loads in a new session | repository, not installed>): <reason of six to twelve words>
Gaps:
- <what is missing> (searched: "<query>", "<query>")
  - <owner/repo>@<skill>: installs <N>, first seen <date>, audits <vendor verdict (categories), ... | not audited>, license <license>, <skills.sh link>
    Install: <the commands from references/install.md>

Online search: ran | not run (<reason>)

Write Skills: none or Gaps: none when a list is empty. Write one ### <ID> section per item, in the caller's order. In user mode, the item ID is 1.

Never report a candidate whose audit lookup failed or was not found as passed; it reads not audited. A candidate with a fail verdict or without a license is never recommended.

Comments

Markdown supported