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.

72

Quality

90%

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

86%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.

The body is a lean, fully executable reference for the keyword/language/embedding surface with genuine tool-specific knowledge (feature gating, score normalization, config-only vs CLI flags). Its one real weakness is bundle structure: every promised deep-dive file is missing from this bundle, so the progressive-disclosure pointers dead-end.

Suggestions

Ship references/advanced-features.md and references/cli-reference.md in this bundle (or drop the references and inline the minimal needed detail), since neither file exists in the current bundle.

Replace the cross-bundle pointer to the sibling skill's references/python-api.md and references/configuration.md with a concrete path (e.g., ../xberg/references/python-api.md) so the location is unambiguous.

Add a one-line check for the feature-gated silent-ignore case (e.g., how to confirm the CLI was built with keywords-yake/keywords-rake) to close the workflow validation gap.

DimensionReasoningScore

Conciseness

The body is dense with tool-specific facts — real flags, defaults, config keys, feature-gating behavior, and pitfalls — with no filler or explanation of concepts Claude already knows. Algorithm descriptions are one line each and serve selection, not education. Every section earns its tokens.

5 / 5

Actionability

All guidance is copy-paste ready: complete CLI invocations with jq pipelines ("xberg extract paper.pdf --format json --config-json '{\"keywords\"...}'"), a full TOML config block, executable Python with imports, a provider/flag table, and a pitfalls section that gives exact workarounds ("--config-json '{\"keywords\"...}}'" for the missing flag, "xberg cache warm --all-embeddings" for cold models).

5 / 5

Workflow Clarity

Each feature workflow (enable keywords, detect language, embed text, warm cache, programmatic access) is unambiguous with exact commands, and cross-feature piping is shown ("xberg extract report.pdf | xberg embed --preset quality"). Checkpoints exist for the risky cases — the silent feature-gate behavior and cold-model pitfall are explicitly diagnosed — but there is no hint of how to verify the CLI was built with the keywords features, leaving a minor validation gap.

4 / 5

Progressive Disclosure

Section structure and inline reference signaling are good (each See-reference is one level deep and contextually placed), but the bundle contains no references/ directory at all — "references/advanced-features.md" and "references/cli-reference.md" are dead paths in this bundle, and the other two references point to a sibling skill. Four of four referenced paths cannot be resolved locally, so navigation breaks exactly where deeper detail is promised.

3 / 5

Total

17

/

20

Passed

Description

92%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.

The description is specific, action-oriented, and uses an explicit "Use when..." trigger with both primary and secondary use cases. It covers what the skill does and when to use it with concrete, tool-specific terms. Only minor synonym coverage is missing.

DimensionReasoningScore

Specificity

Multiple concrete actions are named — "extracting keywords (YAKE/RAKE)", "detecting document language", "generating embeddings for RAG and search" — plus specific mechanisms ("--detect-language", "the standalone embed command", "keyword config (and its feature gating)"). Coverage is comprehensive for the skill's scope.

5 / 5

Completeness

Explicitly opens with "Use when extracting keywords (YAKE/RAKE) from documents — and, secondarily, when detecting document language or generating embeddings", giving concrete trigger phrases for both primary and secondary uses, and the second sentence answers "what" (covers the keyword config, --detect-language, the embed command).

5 / 5

Trigger Term Quality

Natural terms include "extracting keywords", "detecting document language", "generating embeddings", "RAG and search", and algorithm names YAKE/RAKE that users would say. A few natural synonyms are missing (e.g., "key phrases", "semantic search", "embed"), so it falls just short of comprehensive.

4 / 5

Distinctiveness Conflict Risk

The niche is clear (keyword/language/embedding enrichment around extraction) and the "secondarily" phrasing explicitly de-prioritizes the broader RAG/search overlap, minimizing risk of triggering for general document-extraction skills.

5 / 5

Total

19

/

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/plugins/xberg/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.