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.

80

Quality

100%

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

100%Weight 40%Scale 1-3

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

A lean, highly actionable reference: executable verified patterns, a match-syntax cheat sheet, explicit sharp-edge warnings, a debugging feedback loop, and well-signaled pointers to deeper package docs. It adds only what Claude would not already know about compromise's non-obvious behavior.

DimensionReasoningScore

Conciseness

Dense, high-signal content — a match-syntax cheat-sheet table, verified code patterns, and sharp-edge warnings — with no generic concept padding; the brief opening framing ('rule-based… no network, no model, no deps… jQuery-like chained API') is library-specific and earned. It assumes Claude's competence rather than re-explaining basics, matching the lean score-3 anchor.

3 / 3

Actionability

Code is fully executable with expected outputs and inline ✅/❌ annotations — e.g. 'doc.verbs().toPastTense(); doc.text() // I walked' and 'nlp("five hundred").numbers().toNumber().text() // 500'. Copy-paste ready, clearing the score-3 bar over the pseudocode of score 2.

3 / 3

Workflow Clarity

The 'Debugging a wrong result' section gives a clear sequenced feedback loop (doc.debug() → doc.json() → nlp.verbose(true), then check tag validity / sentence boundaries / {root} conjugations). There is no destructive or batch operation requiring validation, so the well-organized sequence scores 3.

3 / 3

Progressive Disclosure

SKILL.md is a well-organized overview (rules, common tasks, sharp edges, debugging) and the 'Going deeper' section cleanly signals one-level-deep pointers to the version-matched package docs (node_modules/compromise/docs/*.md) with no nested references. Navigation is easy and content is appropriately split.

3 / 3

Total

12

/

12

Passed

Description

100%Weight 40%Scale 1-3

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 names concrete actions, gives explicit 'Use this whenever…' triggers, and stakes out a narrow niche unlikely to conflict. It stays in third-person imperative voice with no fluff.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'writing or editing JS/TS that imports compromise, calls nlp(…), or chains methods like .match(), .tag(), .people()…' plus 'extracting entities/dates/numbers… changing verb tense, pluralizing, redacting/anonymizing text, building a simple chatbot intent matcher'. This matches the score-3 anchor of multiple specific concrete actions, not the partial coverage of score 2.

3 / 3

Completeness

Explicitly answers both 'what' ('Write correct code with the compromise JavaScript NLP library') and 'when' ('Use this whenever you are writing or editing JS/TS that imports compromise…'). The explicit 'Use this whenever…' trigger clears the cap that a missing 'Use when' clause would impose at 2.

3 / 3

Trigger Term Quality

Covers natural user phrasing — 'imports compromise', 'calls nlp(…)', '.match()/.verbs()/.nouns()/.numbers()/.normalize()/.replace()', 'extracting entities', 'changing verb tense', 'pluralizing', 'redacting/anonymizing'. Good coverage of terms users would actually say, clearing the score-3 bar rather than the partial score-2.

3 / 3

Distinctiveness Conflict Risk

A clear niche — the compromise library with specific method-chain triggers (nlp(…), .match(), .tag(), .people()) — makes it unlikely to fire for unrelated skills. Distinct enough to avoid the overlap risk of score 2.

3 / 3

Total

12

/

12

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.

Validation16 / 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.