ms

GitHub

ms是技能搜索与加载引擎,用于在agentops和jsm语料库中查找并获取可执行技能指导。支持通过MCP工具进行BM25搜索和全量加载,或通过CLI管理索引。主要用于快速定位和消费其他Skill的完整内容。

images/gemini/skills/ms/SKILL.md boshu2/agentops

Trigger Scenarios

skill search find a skill for load skill guidance meta_skill

Install

npx skills add boshu2/agentops --skill ms -g -y
More Options

Non-standard path

npx skills add https://github.com/boshu2/agentops/tree/main/images/gemini/skills/ms -g -y

Use without installing

npx skills use boshu2/agentops@ms

指定 Agent (Claude Code)

npx skills add boshu2/agentops --skill ms -a claude-code -g -y

安装 repo 全部 skill

npx skills add boshu2/agentops --all -g -y

预览 repo 内 skill

npx skills add boshu2/agentops --list

SKILL.md

Frontmatter
{
    "name": "ms",
    "consumes": [],
    "metadata": {
        "tier": "execution",
        "effects": [
            "spawn_search_server",
            "write_feedback_outcomes",
            "rebuild_search_index"
        ],
        "disposition": "keep_specialist",
        "capabilities": [
            "ms"
        ],
        "dependencies": [],
        "canonical_status": "canonical",
        "external_dependencies": [
            "ms binary (Jeffrey Emanuel's meta_skill). The 0.1.2 release binary corrupts IDs on Anthropic-frontmatter skills, so it must be built from a source checkout carrying the frontmatter-id fix; this operator builds from ~\/dev\/meta_skill, branch local\/frontmatter-id.",
            "jq (required for parsing -O json output)",
            "python3 (required by the disposable MCP search helper)"
        ]
    },
    "produces": [],
    "practices": [
        "pragmatic-programmer"
    ],
    "context_rel": [],
    "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\".",
    "hexagonal_role": "supporting",
    "user-invocable": false,
    "output_contract": "search and load results plus source identity on stdout; the local index is disposable state, never a source of truth",
    "skill_api_version": 1
}

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__*)

Prefer the MCP tools whenever a ms mcp serve is attached — they are the fast, verified read path.

Tool Use
mcp__ms__search {query} BM25 search. Currently strictly better than CLI search (see Footguns — CLI hybrid is BM25-only; ms never stores doc embeddings).
mcp__ms__load {skill, full: true} Returns the full runnable SKILL.md in ONE call, zero extraction friction. full: false returns a useless metadata card — always full: true when you intend to use the skill.
mcp__ms__show {skill} Metadata card for a skill.
mcp__ms__suggest {cwd} Suggests skills for a directory. Works — but ignore its project-language detection (misdetects Makefile repos as C; cosmetic only).

No attached MCP tool: use the server-backed one-shot helper so retrieval still follows the MCP BM25 path:

python3 skills/ms/scripts/mcp-search.py "<query>"

The helper writes a clean search object (query, count, results) to stdout, reports transport/protocol errors on stderr, applies a 30-second timeout by default, and owns the disposable server process group through termination and reap. Override its executable with MS_BIN and its timeout with MS_MCP_SEARCH_TIMEOUT or --timeout.

The CLI remains the supported full-load fallback after search:

ms load <id> --full -O json | jq -r '.data.content'   # content lives in .data.content

Do not replace the helper with ms search. The CLI path is useful only for diagnostics while its retrieval parity gap remains; in particular, zero CLI results do not prove the corpus has no matching skill.


Write / Admin — CLI-only (verified landing in the live DB)

The MCP feedback tool exists, but only the CLI write path is verified to land — trust the CLI for writes.

ms feedback add <skill> --positive --comment "..."   # feedback on a skill
ms feedback add <skill> --negative --comment "..."

ms outcome <skill> --success   # record only AFTER downstream factory use + validation
ms outcome <skill> --failure

ms doctor                      # admin: health
scripts/ms-reindex.sh          # (re)index THE way: rebuild + sweep + probe + source-equivalence check
scripts/ms-reindex.sh --check-source  # read-only freshness proof against current skills/** source
# Optional operator policy only; rebuild completeness is derived from live
# discovered/indexed/errors accounting, not a historical absolute count:
MS_REINDEX_MIN_INDEXED=100 scripts/ms-reindex.sh
ms list -O jsonl --limit 1000  # counting / enumeration
ms config                      # resolved config + skill_paths

Output Specification

  • Path: search, load, and admin results are returned on stdout; durable index state remains under ~/Library/Application Support/ms/.
  • Filename: no result filename is created by this skill; callers capture CLI output explicitly when they need a durable artifact.
  • Format: attached MCP returns structured tool data; the one-shot helper unwraps MCP content into clean search JSON; CLI automation uses JSON or JSONL, with full skill text at .data.content for ms load --full -O json.
  • Validation command: run skills/ms/scripts/validate.sh for the retrieval boundary and scripts/ms-reindex.sh --check-source for normalized source equivalence.
  • Downstream handoff: return the loaded guidance and source identity to the caller. Retrieval never chooses or starts a workflow.

Production Skill Handoff

Production-intent handoff: When the query concerns creating or editing a skill, ms retrieves relevant guidance and stops. The caller may separately invoke skill-builder (create, heal, or audit mode) or another authoring tool.

Authority boundary: skills/** is canonical source; the generator owns the ms Codex twin and other projections. Never edit the index, loaded copies, or generated projections as source.

ms never validates or interprets downstream work. A failed search, load, write, or reindex is returned as evidence and ends this invocation.

Outcome timing: Record ms outcome only after the caller has independent evidence about downstream usefulness, never after retrieval alone. That observation does not change core state.


Footguns (measured through 2026-07-15)

Footgun Truth
MCP server survives a DB wipe/reindex An ms mcp serve NEVER reopens handles — it follows renamed inodes into the backup, giving stale reads AND silent misdirected writes (recorded:true into orphaned files). Reindex via scripts/ms-reindex.sh — THE way to reindex (rebuilds, proves every live-discovered skill was indexed or reported as an allowed error, TERMs every server, probes a fresh server, then compares normalized local loads with current skills/** source); never run bare ms index and leave servers up. Sessions respawn fresh.
ms load --pack N Trap: caps at the gutted overview tier for ANY N (800 == 20000) — drops the executable steps and returns LESS than the no-flag default. Use --full (CLI) or full: true (MCP).
-O plain Prints name-only on load; truncates list output ([N more lines]). The content lives in -O json.data.content.
CLI ms search "hybrid" Effectively BM25-only — ms never stores doc embeddings (upsert_embedding is called only from a unit test), so hybrid ≡ BM25 under ANY backend; no config/backend change fixes it (upstream gap, feature-noted; measured 2026-07-02, age-s3jf). It can return zero while MCP BM25 returns ranked matches. Without attached tools, use scripts/mcp-search.py; never treat zero CLI results as a successful MCP fallback.
Stale ms.lock ms doctor prints "Lock held" for a DEAD pid yet still says all-pass. A dead-pid lock is safe to delete.
Symlinks ms does NOT follow directory symlinks — skill_paths must list BOTH roots explicitly: the ~/.claude skills dir AND the ~/dev/agentops/skills repo dir.
Binary Source build only (~/dev/meta_skill, branch local/frontmatter-id); the 0.1.2 release binary corrupts IDs on Anthropic-frontmatter skills. Update: git fetch && git rebase origin/main && cargo install --path . --locked.

Concurrency

Parallel CLI + MCP load measured clean — no lock errors. The lock hazard is the survive-a-wipe case above (kill the serve), not concurrent reads.


Scenarios

Scenario: Load a skill's full runnable guidance
  Given an ms mcp serve is attached
  When I call mcp__ms__load {skill: "account-rotation", full: true}
  Then the full runnable SKILL.md content is returned in one call

Scenario: Search without an attached MCP tool
  Given mcp__ms__search is unavailable
  When I run python3 skills/ms/scripts/mcp-search.py with the query
  Then it returns only structured MCP search JSON
  And its disposable ms mcp serve process is reaped on success, error, or timeout

Scenario: Reindex invalidates every running server
  Given one or more ms mcp serve processes are running
  When I run ms index (or wipe/rebuild the DB)
  Then I kill every ms mcp serve so sessions respawn against fresh data
  And a surviving server would silently read pre-wipe data and mis-land writes

Scenario: A stale local projection fails closed
  Given AgentOps skills are authoritative and ms is a disposable local index
  When a full ms load has a different normalized name or description from source
  Then scripts/ms-reindex.sh exits nonzero and names the stale skill

Quality Checklist

  • Full loads preserve the complete runnable guidance rather than a metadata card or packed overview.
  • Search reads use attached MCP tools or the one-shot MCP helper, never a silent zero-result CLI substitution; full loads use MCP or the verified CLI shape.
  • Any rebuild accounts for every live-discovered skill, rejects an empty searchable index, then finishes with stale servers swept and source equivalence reported.
  • Production skill intent leaves ms after retrieval; generated twins and loaded/indexed copies are never hand-edited as source.
  • Search and load results remain advisory inputs, never proof that downstream work is correct.
  • ms outcome records observed usefulness only after independent downstream evidence.

References

  • Upstream: Jeffrey Emanuel's meta_skill (source at ~/dev/meta_skill, branch local/frontmatter-id).
  • Related consume-tool skill in this repo: cass (session archaeology). The jsm cass-memory (cm) procedural-memory tool is the write-side complement (installed separately, not in this repo).
  • Lifecycle contract validator: scripts/validate.sh.

Version History

  • 7b07a7d Current 2026-08-19 21:59

    Wave W7更新:修正了ms技能的validator逻辑,不再机械断言effects为空,改为提取frontmatter并严格验证honest effects值;同时涉及其他多个技能的契约、文档和修复。

  • 3f402e5 2026-07-24 22:07

Same Skill Collection

images/gemini/skills/account-rotation/SKILL.md
images/gemini/skills/agent-mail/SKILL.md
images/gemini/skills/agent-native/SKILL.md
images/gemini/skills/agy-native/SKILL.md
images/gemini/skills/anti-ceremony/SKILL.md
images/gemini/skills/automation-shape-routing/SKILL.md
images/gemini/skills/bootstrap/SKILL.md
images/gemini/skills/cass/SKILL.md
images/gemini/skills/cc-hooks/SKILL.md
images/gemini/skills/codebase-recon/SKILL.md
images/gemini/skills/codex-exec/SKILL.md
images/gemini/skills/converter/SKILL.md
images/gemini/skills/council/SKILL.md
images/gemini/skills/craft-goal/SKILL.md
images/gemini/skills/dcg/SKILL.md
images/gemini/skills/doc/SKILL.md
images/gemini/skills/domain/SKILL.md
images/gemini/skills/fitness/SKILL.md
images/gemini/skills/goals/SKILL.md
images/gemini/skills/handoff/SKILL.md
images/gemini/skills/idea-genie/SKILL.md
images/gemini/skills/implement/SKILL.md
images/gemini/skills/learn/SKILL.md
images/gemini/skills/ntm/SKILL.md
images/gemini/skills/operationalize/SKILL.md
images/gemini/skills/pattern-mining/SKILL.md
images/gemini/skills/plan/SKILL.md
images/gemini/skills/postmortem/SKILL.md
images/gemini/skills/premortem/SKILL.md
images/gemini/skills/product/SKILL.md
images/gemini/skills/rch/SKILL.md
images/gemini/skills/reality-check/SKILL.md
images/gemini/skills/refactor/SKILL.md
images/gemini/skills/research/SKILL.md
images/gemini/skills/reverse-engineer/SKILL.md
images/gemini/skills/rpi/SKILL.md
images/gemini/skills/sbh/SKILL.md
images/gemini/skills/scaffold/SKILL.md
images/gemini/skills/scope/SKILL.md
images/gemini/skills/security/SKILL.md
images/gemini/skills/shared/SKILL.md
images/gemini/skills/skill-builder/SKILL.md
images/gemini/skills/standards/SKILL.md
images/gemini/skills/status/SKILL.md
images/gemini/skills/swarm/SKILL.md
images/gemini/skills/test/SKILL.md
images/gemini/skills/toil-mining/SKILL.md
images/gemini/skills/using-flywheel/SKILL.md
images/gemini/skills/using-gc/SKILL.md

Metadata

Files
0
Version
7b07a7d
Hash
e5474e52
Indexed
2026-07-24 22:07

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 14:17
浙ICP备14020137号-1 $방문자$