MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
NLPM noun/verb registry (R51): pick the canonical term, detect vocabulary drift.
$ npx skills add xiaolai/nlpm --skill vocabulary -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install xiaolai/nlpm vocabulary --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/xiaolai/nlpm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/nlpm/vocabulary .claude/skills/vocabulary && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vocabulary" agent skill from https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabulary into .claude/skills/vocabulary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vocabulary", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabularyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add xiaolai/nlpm --skill vocabulary -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install xiaolai/nlpm vocabulary --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/xiaolai/nlpm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/nlpm/vocabulary .agents/skills/vocabulary && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vocabulary" agent skill from https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabulary into .agents/skills/vocabulary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vocabulary", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add xiaolai/nlpm --skill vocabulary -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install xiaolai/nlpm vocabulary --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/xiaolai/nlpm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/nlpm/vocabulary .cursor/skills/vocabulary && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vocabulary" agent skill from https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabulary into .cursor/skills/vocabulary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vocabulary", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/xiaolai/nlpm.git --path skills/nlpm/vocabulary--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add xiaolai/nlpm --skill vocabulary -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install xiaolai/nlpm vocabulary --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/xiaolai/nlpm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/nlpm/vocabulary .gemini/skills/vocabulary && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vocabulary" agent skill from https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabulary into .gemini/skills/vocabulary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vocabulary", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install xiaolai/nlpm vocabularyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add xiaolai/nlpm --skill vocabulary -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/xiaolai/nlpm.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/nlpm/vocabulary .github/skills/vocabulary && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vocabulary" agent skill from https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabulary into .github/skills/vocabulary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vocabulary", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add xiaolai/nlpm --skill vocabulary -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install xiaolai/nlpm vocabulary --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/xiaolai/nlpm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/nlpm/vocabulary .opencode/skills/vocabulary && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vocabulary" agent skill from https://github.com/xiaolai/nlpm/tree/main/skills/nlpm/vocabulary into .opencode/skills/vocabulary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vocabulary", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vocabularyNLPM noun/verb registry (R51): pick the canonical term, detect vocabulary drift.
Vocabulary is an agent skill from xiaolai/nlpm. NLPM noun/verb registry (R51): pick the canonical term, detect vocabulary drift.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `registry.yaml`).
It sits in Agent Workflows. The repository describes itself as: Natural-Language Programming Manager — scan, lint, and score NL artifacts with Claude-native quality scoring. The licence is ISC.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bfa2fc2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vocabulary loads about 3.9k tokens when it runs. Until then it costs about 23 tokens; SKILL.md has 1,732 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from xiaolai/nlpm at commit bfa2fc2, republished under its ISC licence (© xiaolai). 1,732 words, ~3,932 tokens.
.claude/skills/vocabulary/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The canonical noun-and-verb set NLPM uses to name what it does. Every artifact name, command name, agent name, rule wording, and prose description should draw from this registry. Synonyms are flagged by
/nlpm:checkand penalized by/nlpm:score.Sister skill:
nlpm:conventionsholds upstream Claude Code framework terms (hook events, frontmatter fields, manifest keys). This skill holds NLPM-internal domain language. If a term is from Anthropic's docs, it belongs inconventions. If it is from NLPM's own corpus, it belongs here.
Every term listed below has literary warrant — it appears in at least one NLPM artifact today, captured by analysis/scripts/extract-vocabulary.py. Re-run that script after adding or renaming artifacts; the freshest output lives at analysis/vocabulary-extract/summary.md. New terms enter the registry only after one of the four warrant types from analysis/vocabulary-design-principles.md (P6) is satisfied — literary warrant alone is the entry bar for terms already in use; new coinages need user, structural, or domain warrant.
NLPM has two declared scopes. A homonym across them is a boundary, not a collision.
| Scope | Lives in | What it operates on |
|---|---|---|
| internal | commands/, agents/, skills/, bin/, scripts/, project CLAUDE.md | NLPM's own behavior — scoring, checking, fixing, testing, listing, trending NL artifacts in the current project. |
| auditor | .github/workflows/auditor-*.yml, auditor/ | The self-evolution pipeline that audits external repos, opens contribution PRs, tracks outcomes, refines rules. |
A verb that appears in both scopes (scan, test, discover) carries the same identity criterion in both — these are sanctioned homonyms. A verb that appears in only one scope (audit, contribute, track in auditor; score, check, fix, ls, trend, init in internal) is scope-bound; using it in the other scope requires either renaming or declaring a second scope-specific definition.
| Canonical verb | Output | Judgment? | Examples in corpus |
|---|---|---|---|
score | number + penalty list | no (deterministic) | commands/score.md, agents/scorer.md |
check | consistency violation list | no (deterministic) | commands/check.md, agents/checker.md |
test | pass/fail against named specs | no (deterministic) | commands/test.md, agents/tester.md |
scan | pattern-match findings against a signature database | no (deterministic) | commands/security-scan.md, agents/vague-scanner.md, agents/security-scanner.md |
fix | mutated artifact | no (mechanical) | commands/fix.md |
ls | inventory of artifacts | no | commands/ls.md, agents/scanner.md |
trend | history report | no | commands/trend.md |
init | config file | no | commands/init.md |
Deprecated synonyms (do not use in internal scope):
lint, validate → use check (structural) or score (quality)find, search, list → use lsanalyze → use score (if quantitative) or pick a more specific verbaudit → not in internal scope; live in auditor scope only.github/workflows/auditor-*.yml, auditor/scripts/)| Canonical verb | Output | Judgment? | Examples in corpus |
|---|---|---|---|
discover | candidate-repo list | no | auditor-discover.yml |
audit | composite quality + security report | yes | auditor-audit.yml |
contribute | PR(s) to target repo | no | auditor-contribute.yml |
track | outcome events appended to events.jsonl | no | auditor-track.yml |
classify | categorical label on a PR comment | no (model-deterministic) | auditor-classify.yml |
refine | rule-edit PR (human-gated) | no (LLM-generated, human-merged) | auditor-refine-rules.yml |
cite | citation-edit PR (human-gated) | no | auditor-cite-exemplars.yml, propose-rule-citations.py |
diff | finding-by-finding comparison | no | diff-findings.py, auditor-docs-diff.yml |
report | rolled-up summary at a cadence | no | auditor-daily-report.yml, generate-daily-report.py |
review | rule-review issue body (human reads, decides) | yes (human) | auditor-rule-review.yml, generate-rule-review-body.py |
propose | a draft for human approval | no | propose-rule-citations.py |
validate | yes/no on a structural rule | no | validate-feedback.sh, validate-rule-ids.py |
Sibling-granularity note (P1):
reportis broader than its peers (classify,refine,cite,diff). The auditor's noun-named workflow convention absorbs this — workflows that produce reports are noun-named after the output (auditor-daily-report,auditor-rule-review), and the verbreportis the generic act behind that family. Documented inconsistency, not a P1 violation; flagged here so future additions don't replicate the pattern without intent.
Cross-scope homonyms (same meaning in both scopes):
scan — pattern-match against a signature database (used by security-scan command and scan-suppressions.py)test — pass/fail against named specs (used by /nlpm:test and auditor-integration-test.yml)discover — produce a candidate list (/nlpm:ls description text and auditor-discover.yml)Per the precedence order in analysis/vocabulary-design-principles.md (P6 last; warrant is an entry check, not a veto), proposed terms split into two lists.
Deferred (P2–P5 satisfied; awaiting warrant):
| Proposed verb | Closure gap or judgment named | Warrant needed |
|---|---|---|
triage | Finding-disposition (P4 closure: finding has no consumer verb) | User warrant — practitioner reaches for the term unprompted |
review (internal scope) | Human-in-the-loop reading, sanctioned cross-scope homonym with auditor review | User warrant — practitioner names a review act in internal artifacts |
rationalize | Vocabulary curation (P5: act of picking canonical from extracted frequencies has no name) | User warrant — practitioner names the curation act |
Deferred terms are documented but not yet canonical. R51 does not flag them as deprecated — they are nameless gaps, not synonyms.
Rejected by higher principle (no entry possible regardless of warrant):
| Proposed verb | Blocking principle | Reason |
|---|---|---|
audit (internal scope) | P1 | Merge test fails — score+check already cover internal-scope evaluation |
lint (internal scope) | P1 | Synonym of check; same identity criterion |
validate (internal scope) | P1 | Collapses to check in internal scope (canonical in auditor scope) |
analyze (internal scope) | P1 | Synonym of score; quantitative evaluation |
| Canonical noun | What it is | Examples |
|---|---|---|
artifact | any NL programming file Claude Code consumes | umbrella term |
command | commands/*.md, invoked via /<plugin>:<command> | commands/score.md |
agent | agents/*.md, invoked via Task tool with subagent_type | agents/scorer.md |
skill | skills/<plugin>/<name>/SKILL.md, auto-loaded by description match | skills/nlpm/rules/SKILL.md |
rule | a numbered item (R01–R50) inside the rules skill | inside skills/nlpm/rules/SKILL.md |
hook | shell script wired via hooks.json | hooks/hooks.json |
manifest | plugin.json or marketplace.json | .claude-plugin/plugin.json |
frontmatter | YAML block delimited by --- at the top of a Markdown file | every command, agent, skill |
Sanctioned homonyms (distinct senses, not drift — the drift scanner should not cluster these against the canonical nouns above):
| Term | Sanctioned sense | Where |
|---|---|---|
component | a structural part of the scored project's codebase — code modules, directories, services; may not be NL artifacts at all | R35/R49 rule text ("component map"), skills/nlpm/scoring/SKILL.md R35 row |
issue | a GitHub issue — the platform object the auditor opens, tracks, and closes | auditor scope: workflows, auditor-rule-review.yml, auditor pipeline prose in docs/auditor.md |
Everywhere else, component naming plugin pieces (command/agent/skill/hook)
and issue naming a detected problem are drift: the canonical nouns are
artifact and finding.
| Role-noun | Paired verb | File |
|---|---|---|
scanner | ls | agents/scanner.md |
scorer | score | agents/scorer.md |
checker | check | agents/checker.md |
tester | test | agents/tester.md |
vague-scanner | score (sub-step) | agents/vague-scanner.md |
security-scanner | scan | agents/security-scanner.md |
These are not top-level verbs in their own right (P3). They are role-names for sub-step agents. Treat them as nouns naming the worker, not as operations on artifacts.
| Noun | Produced by | Notes |
|---|---|---|
score | score verb | number 0–100 + penalty breakdown |
finding | score, check, scan | one problem detected; carries a fingerprint in auditor scope |
violation | check | a finding specifically from cross-reference checking |
penalty | score | the points subtracted by a single finding |
snapshot | score, trend | a point-in-time record appended to .claude/nlpm-history.json |
inventory | ls | the list of artifacts discovered in a path |
report | audit, report, trend | a roll-up document |
spec | test | a .nlpm-test/*.spec.md file defining expected behavior |
auditor/)| Noun | What it is | File evidence |
|---|---|---|
case-study | post-merge article comparing original audit to HEAD | auditor/audits/<slug>.re-audit.md |
exemplar | teaching artifact from a high-scoring audit | auditor/exemplars/<slug>.md |
fingerprint | content-hash identity of a finding across re-runs | compute-fingerprint.sh |
event | one append-only record in events.jsonl | auditor/logs/events.jsonl |
disagreement | self/maintainer dispute over a finding | auditor/disagreements.jsonl |
registry | the tracked-repo database | auditor/registry/repos.json |
disposition | a finding's lifecycle status | enum values inside events.jsonl |
policy gate | a pre-PR check (no-external-PRs, CLA, pushback) | auditor-contribute.yml |
When the evaluation cluster overlaps in practice, use this table to disambiguate:
| Verb | Scope | Deterministic? | Judgment? | Output | Use when |
|---|---|---|---|---|---|
score | internal | yes | no | number + penalty list | quantifying quality with a rubric |
check | internal | yes | no | violation list | verifying cross-references and structural consistency |
test | both | yes | no | pass/fail | comparing actual behavior against a named spec |
scan | both | yes | no | findings against signatures | pattern-matching for a known class of problems |
audit | auditor | partly | yes | composite report | full quality assessment that combines score + scan + judgment |
review | auditor | no | yes (human) | comment trail | a human reads and forms an opinion |
Two verbs share a scope and an identity criterion ⇒ one must be retired or scope-split. Two verbs share an identity criterion across scopes ⇒ that is a sanctioned homonym (declare it in this table).
analysis/vocabulary-design-principles.md P6: literary, user, structural, domain. Literary warrant is automatic via the extraction script — if the script picks the term up, it qualifies.python3 analysis/scripts/extract-vocabulary.py writes analysis/vocabulary-extract/summary.md. New terms appear there.| Item | Why deferred | What unblocks it |
|---|---|---|
| Per-rule warrant tags on R01–R50 | Requires reading every rule + judging which warrant it earns its place by. User warrant data lives in rule-health.py outputs. | A separate auditor-refine-rules follow-up pass that combines rule-health data with this principle set. |
Adding triage as a /nlpm:triage command | P4 closure gap is real but triage has zero literary warrant today. User warrant is the missing evidence. | A practitioner reaching for the word unprompted in actual NLPM use. |
Resolving the agent-name-vs-command-name shadowing (scanner/ls, scorer/score) | Already documented above as a class boundary; no rename proposed. | A confirmed case of practitioner confusion. None observed today. |
| (resolved 2026-05-19) Workflow filename convention | Declared as sanctioned split. See "Auditor workflow filename convention" below. | — |
.github/workflows/auditor-*.yml filenames follow a two-rule split, both sanctioned:
| Pattern | Use when | Examples |
|---|---|---|
auditor-<verb> | The workflow changes state (gates a transition, opens a PR, classifies, moves a finding through its lifecycle) | auditor-audit.yml, auditor-contribute.yml, auditor-track.yml, auditor-classify.yml, auditor-refine-rules.yml, auditor-cite-exemplars.yml, auditor-discover.yml |
auditor-<output-noun> | The workflow's purpose is to produce a named artifact that downstream tooling consumes by name | auditor-case-study.yml, auditor-exemplar.yml, auditor-daily-report.yml, auditor-suppressions.yml, auditor-docs-diff.yml, auditor-rule-review.yml |
By P3, both patterns produce or gate, so both pass the top-level-verb test. The split is genuine: noun-named workflows are named after what they write, verb-named workflows after what they do.
Outlier: auditor-batch-processor.yml is named after a process role, not a verb or an output noun. Rename candidate: auditor-promote-batch. Deferred — git history, badge, and external references make the rename costly, and the existing name has literary warrant.
This skill loads on requests to write, review, or name NLPM artifacts. For framework-level facts (hook event names, manifest field schemas, Claude Code naming conventions), see [[conventions]]. For the 50 quality rules (R01–R50), see [[rules]]. For penalty tables, see [[scoring]].
© xiaolai, ISC. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/nlpm/vocabulary of xiaolai/nlpm.
Open the folder on GitHubat commit bfa2fc2
Vocabulary next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vocabulary this skillxiaolai/nlpm | 150 | — | ~3.9k | Automated safety check: Pass | ISC | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Hook Development for Claude Code Pluginsanthropics/claude-plugins-official | 38k | 10 repos | ~4.1k | Automated safety check: Notes | Apache-2.0 | |
| Using Superpowersfarm-fe/farm | 5.6k | 36 repos | ~1.4k | Automated safety check: Pass | MIT | |
| Executing Plans Inlineobra/superpowers | 297k | 2 repos | ~5.1k | Automated safety check: Pass | MIT | |
| Skill CreatorAzure/azqr | 796 | 89 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/claude-plugins-official
Explains how to write Claude Code plugin hooks, both prompt-based checks and bash commands, for events such as PreToolUse, Stop and SessionStart.
farm-fe/farm
A skill your agent uses when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
obra/superpowers
Has the agent carry out an implementation plan itself, task by task in the current session, keeping a ledger, proving each step with a test and ending with one whole-branch review.
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
anthropics/claude-plugins-official
Explains how to write agents for Claude Code plugins: the markdown file with YAML frontmatter, trigger descriptions, model and color settings, and system prompt design.
xiaolai/nlpm
Universal NL conventions: SKILL.md open spec, AGENTS.md, vague quantifiers, naming.
xiaolai/nlpm
Antigravity and Gemini CLI artifact schemas: .gemini/ paths, extensions, hooks.
xiaolai/nlpm
Codex CLI artifact schemas: config.toml, .codex-plugin, skills, hooks, AGENTS.md.
xiaolai/nlpm
Multi-agent workflow patterns: parallel dispatch, pipelines, QC gates, retries.
xiaolai/nlpm
NL artifact anti-patterns: vague quantifiers, bare prohibitions, oversized skills.
xiaolai/nlpm
100-point NL artifact rubric: penalty tables per artifact type, calibration cases.
Categories
NLPM noun/verb registry (R51): pick the canonical term, detect vocabulary drift. Vocabulary is an agent skill from xiaolai/nlpm. NLPM noun/verb registry (R51): pick the canonical term, detect vocabulary drift.
Vocabulary fits situations like: agent Workflows work in your project.
Run `npx skills add xiaolai/nlpm --skill vocabulary -a claude-code`. Or copy the skill folder (skills/nlpm/vocabulary in xiaolai/nlpm) into .claude/skills/vocabulary in your project. Claude Code loads it when a task matches its description.
Run `npx skills add xiaolai/nlpm --skill vocabulary -a codex`. Or copy the skill folder (skills/nlpm/vocabulary in xiaolai/nlpm) into .agents/skills/vocabulary in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add xiaolai/nlpm --skill vocabulary -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vocabulary, .gemini/skills/vocabulary, .github/skills/vocabulary and .opencode/skills/vocabulary in your project.
Going by SKILL.md and its folder, Vocabulary needs the command-line tools its instructions call (python3).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Vocabulary is published under the ISC licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vocabulary: MCP Server Builder (anthropics/skills, 180k stars), Hook Development for Claude Code Plugins (anthropics/claude-plugins-official, 38k stars), Using Superpowers (farm-fe/farm, 5.6k stars) and Executing Plans Inline (obra/superpowers, 297k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
xiaolai (a GitHub user) maintains it in xiaolai/nlpm, which has 150 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 10, 2026.
Source: xiaolai/nlpm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.