CtrlK
BlogDocsLog inGet started
Tessl Logo

compromise-nlp

Write correct code with the `compromise` JavaScript NLP library (the npm package `compromise`, imported as `nlp`). Use this whenever you are writing or editing JS/TS that imports compromise, calls `nlp(...)`, or chains methods like `.match()`, `.tag()`, `.people()`, `.verbs()`, `.nouns()`, `.numbers()`, `.normalize()`, or `.replace()` — and also whenever doing rule-based natural-language tasks in JavaScript (extracting entities/dates/numbers, matching text patterns, changing verb tense, pluralizing, redacting/anonymizing text, building a simple chatbot intent matcher) where compromise is or could be the tool. compromise's match-syntax and tagset are non-obvious and easy to get wrong from memory; consult this skill before guessing.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

90%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A tight, highly actionable reference skill: dense rules, a match-syntax cheat sheet, verified copy-paste patterns, a sharp-edges section, and a debugging recipe with a recovery loop. The main gap is structural rather than substantive — no bundle files exist, so progressive disclosure is good but not fully realized.

Suggestions

Convert the match-syntax cheat sheet into a dedicated references file (e.g. references/match-syntax.md) so the inlined table can be trimmed and the '(see references for the rest)' pointer resolves to a real bundle file.

Add a brief explicit numbered workflow at the top (consult the tagset → write the match → verify with `.debug()` → read results from `doc`) to give the reference material a clear procedural spine.

Move the version-matched doc pointers into a short 'Further reading' references list rather than embedding them in the body, sharpening the overview/depth separation.

DimensionReasoningScore

Conciseness

Lean and efficient; a one-line orientation ('compromise is a rule-based English NLP library for JavaScript (no network, no model, no deps)') followed by dense, high-value rules, a cheat-sheet table, verified patterns, sharp edges, and a debugging recipe — every section earns its place and it does not explain concepts Claude already knows.

5 / 5

Actionability

Fully executable, copy-paste-ready examples covering the common cases: importing/tiering, transforms with the read-from-doc rule, match-syntax capture groups, entities/topics, numbers, boolean routing, lexicon addWords, and debugging calls (`.debug()`, `.json()`, `nlp.verbose(true)`).

5 / 5

Workflow Clarity

The 'Debugging a wrong result' section gives an ordered sequence (`doc.debug()` → `doc.json()` → `nlp.verbose(true)`) plus a recovery checklist ('If `.match()` returns nothing: confirm the tag is real (rule #2), remember sentence boundaries (rule #4), recall exact words match literally'), a clear feedback loop; not a 5 because there is no full multi-step procedural workflow with explicit checkpoints (the skill is reference-shaped, not a destructive/batch pipeline).

4 / 5

Progressive Disclosure

Well-organized into clear sections with a 'Going deeper' block pointing to version-matched installed-package docs (`node_modules/compromise/docs/*.md`) that are one level deep and clearly signaled; not a 5 because all content lives inline in SKILL.md (no bundle/reference files to split into) and the phrase '(see references for the rest)' implies reference files that do not exist in the bundle.

4 / 5

Total

18

/

20

Passed

Description

95%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, specific description that clearly states both what the skill does and when to use it, with rich natural trigger terms and minimal conflict risk. The only issue is second-person voice ('you are writing'), which lowers the specificity score by one point per the rubric guidelines.

DimensionReasoningScore

Specificity

Lists many concrete actions (calls `nlp(...)`, chains `.match()`/`.tag()`/`.people()`/`.verbs()`/`.nouns()`/`.numbers()`/`.normalize()`/`.replace()`, extracting entities/dates/numbers, changing verb tense, pluralizing, redacting, building a chatbot intent matcher) — comprehensive coverage, but the second-person voice ('Use this whenever you are writing', 'you are writing') triggers the -1 specificity penalty per the judging guidelines, capping this at 4 rather than 5.

4 / 5

Completeness

Explicitly answers both 'what' (write correct code with the compromise NLP library, the listed calls/methods/tasks) and 'when' ('Use this whenever you are writing or editing JS/TS that imports compromise... and also whenever doing rule-based natural-language tasks in JavaScript... where compromise is or could be the tool'), with concrete trigger phrases.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage including synonyms and library-specific tokens: 'compromise', 'nlp', 'JavaScript NLP library', method names, plus task phrases users would say ('extracting entities/dates/numbers', 'matching text patterns', 'changing verb tense', 'pluralizing', 'redacting/anonymizing', 'chatbot intent matcher').

5 / 5

Distinctiveness Conflict Risk

A clear niche (the specific `compromise` npm package) with distinct, library-specific triggers (imports `compromise`, `nlp(...)`, the chained method names); minimal conflict risk with other skills.

5 / 5

Total

19

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
spencermountain/compromise
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.