| name | ms |
| description | meta_skill (ms) — the skill-search/load engine over both corpora (agentops + jsm). Find a skill for a task, search skills, or load runnable skill guidance. Triggers: "ms", "meta_skill", "skill search", "find a skill for", "load skill guidance". |
| practices | ["pragmatic-programmer"] |
| skill_api_version | 1 |
| user-invocable | false |
| hexagonal_role | supporting |
| consumes | [] |
| produces | [] |
| context_rel | [] |
| metadata | {"dependencies":[],"capabilities":["ms"],"effects":[],"canonical_status":"canonical","disposition":"keep_specialist","tier":"execution","external_dependencies":["ms binary (Jeffrey Emanuel's meta_skill; source build from ~/dev/meta_skill, branch local/frontmatter-id — the 0.1.2 release binary corrupts IDs on Anthropic-frontmatter skills)","jq (required for parsing -O json output)","python3 (required by the disposable MCP search helper)"]} |
ms — meta_skill search/load engine
Core Insight: ms is the skill-search engine over both configured corpora (agentops + jsm). Consume via MCP, write/admin via CLI. One law: after ANY reindex/wipe, every running ms mcp serve MUST be killed (sessions respawn fresh). A surviving server silently reads pre-wipe data and returns recorded:true on writes that land in orphaned files.
Constraints
- Load with
full: true or --full when the intent is to execute a skill, because metadata cards and packed overviews omit runnable guidance.
- Keep the consume/write boundary explicit: use MCP for search and load, but use the CLI for feedback and outcomes because only CLI writes are verified to land in the live database.
- When attached
mcp__ms__* tools are unavailable, use the skill-local one-shot MCP helper for search. A zero-result ms search CLI response is not evidence that MCP BM25 found no match and must not silently substitute for it.
- Reindex only through
scripts/ms-reindex.sh, because it sweeps stale servers and proves source equivalence after rebuilding the index.
- Treat the local index as disposable state, not a source of truth; the non-goal is editing indexed content instead of
skills/**.
- Keep
ms retrieval-only for production skill work. It returns search and load
results; the caller owns authoring, validation, and every subsequent decision.
Quick Start
Find a skill (MCP-primary — BM25, currently strictly better than CLI search), then load the FULL runnable SKILL.md in one call (always full: true when you mean to use it):
mcp__ms__search {query: "handle a rate limit switching accounts"}
mcp__ms__load {skill: "account-rotation", full: true}
No attached MCP tool: start one disposable stdio server, return only the structured search JSON, and reap it on success, error, or timeout:
python3 skills/ms/scripts/mcp-search.py "switch accounts on rate limit"
ms load account-rotation --full -O json | jq -r '.data.content'
State root: ~/Library/Application Support/ms/.
Consume — MCP-primary (mcp__ms__*)