CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

extracting-keywords

Use when extracting keywords (YAKE/RAKE) from documents — and, secondarily, when detecting document language or generating embeddings for RAG and search. Covers the keyword config (and its feature gating), `--detect-language`, and the standalone `embed` command with real flags.

69

Quality

87%

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

The canonical home for this skill is extracting-keywords in xberg-io/xberg

SKILL.md
Quality
Evals
Security

Quality

Content

82%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 well-crafted, highly actionable reference skill: complete executable commands for CLI, config-file, and Python access, a clear provider table, and a pitfalls section that doubles as a troubleshooting guide. Verbosity is well controlled with only minor duplication. The main weakness is navigation: the cited references/*.md files are not present in the skill's bundle, and two pointers rely on a sibling skill's files, so progressive disclosure cannot be fully verified.

DimensionReasoningScore

Conciseness

The body is dense with tool-specific facts Claude could not know ("silently ignored", preset names, "ngram_range ... Config-file only", "cache warm --all-embeddings"), and explanations of general concepts are absent or minimal (one-line YAKE/RAKE characterizations used to guide algorithm choice). It is not a 5 because of minor trimmable redundancy — e.g. the min_score normalization rule is explained in full in Field notes ("Both YAKE and RAKE normalize their scores to the 0.0-1.0 range with higher-is-better") and then repeated almost verbatim in Common pitfalls.

4 / 5

Actionability

Every section gives copy-paste-ready, complete commands and code: the inline-JSON CLI invocation ("xberg extract paper.pdf --format json --config-json '{...}' | jq '.extracted_keywords'"), a full TOML config block with defaults, "xberg embed --text ... --preset balanced", the provider matrix with the llm example including --model/--api-key, cache pre-warm commands, and a complete runnable Python snippet. This matches the 5 anchor: fully executable, covering the common CLI, config-file, and programmatic cases.

5 / 5

Workflow Clarity

Each task path is unambiguous (enable keywords via config, "--detect-language true", embed via the standalone command), the one real multi-step flow is shown concretely ("xberg extract report.pdf | xberg embed --preset quality"), and the pitfalls section supplies error-avoidance diagnostics (silent feature-gate ignore leaves "result.extracted_keywords ... empty rather than erroring"; cold models fixed by "xberg cache warm"). It stops short of the 5 anchor because there are no explicit validation checkpoints (e.g. how to confirm the keywords feature was actually built in), though no destructive or batch operation triggers the workflow-clarity cap.

4 / 5

Progressive Disclosure

Structure is good: five well-scoped sections, detail appropriately deferred ("See references/advanced-features.md for the embeddings pipeline and references/cli-reference.md for the embed and cache warm flag sets"), matching the 4 anchor. It is not a 5 because navigation has gaps: no references/ directory (or any bundle files) actually exists alongside this SKILL.md, so the two cited reference paths cannot be verified, and two more references ("references/python-api.md and references/configuration.md in the sibling xberg skill") depend on files in a different skill, a fragile cross-skill pointer.

4 / 5

Total

17

/

20

Passed

Description

88%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 description: it opens with an explicit 'Use when...' trigger covering all three capabilities, enumerates concrete surfaces (config block, --detect-language, embed command), and names specific algorithms (YAKE/RAKE). Third-person imperative voice is used correctly and there is no padding or over-claiming. The only gaps are a few missing natural synonyms and minor overlap risk with a sibling extraction skill.

DimensionReasoningScore

Specificity

The description lists multiple concrete capabilities — "extracting keywords (YAKE/RAKE)", "detecting document language", "generating embeddings for RAG and search" — and even specifies the surfaces it covers ("the keyword config (and its feature gating)", "--detect-language", "the standalone `embed` command"). This matches the anchor for multiple specific concrete actions with comprehensive coverage; there is no vague filler, so it is not the 4 anchor with 'minor gaps'.

5 / 5

Completeness

Both halves are explicit: the trigger is stated directly ("Use when extracting keywords (YAKE/RAKE) from documents — and, secondarily, when detecting document language or generating embeddings"), and the 'what' is concretely enumerated ("Covers the keyword config (and its feature gating), `--detect-language`, and the standalone `embed` command"). This clearly matches the 5 anchor (explicit what AND when with concrete trigger phrases); it is well above the 4 anchor where the 'when' is only serviceable.

5 / 5

Trigger Term Quality

Good natural-term coverage: users would plausibly say "extracting keywords", "YAKE", "RAKE", "document language", "embeddings", "RAG", "search". A few natural synonyms are missing (e.g. "key phrases", "vector embeddings", "semantic search", "language detection"), which fits the 4 anchor ('good keyword coverage; a few natural terms missing') rather than the 5 anchor's comprehensive synonym list.

4 / 5

Distinctiveness Conflict Risk

The niche is clear and distinctive (statistical keyword extraction, language detection, and embeddings for the xberg CLI, with named algorithms YAKE/RAKE), so it is well above the 'somewhat specific' 3 anchor. However, it sits inside a broader document-extraction domain — the body itself references a sibling `xberg` extraction skill — so there is minor overlap risk with a closely related general-extraction skill, fitting the 4 anchor rather than the 5 anchor's minimal conflict risk.

4 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 4 missing

Warning

Total

15

/

16

Passed

Repository

xberg-io/xberg

Path

plugin/.hermes/package/src/xberg_hermes_plugin/skills/extracting-keywords/SKILL.md

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.