CtrlK
BlogDocsLog inGet started
Tessl Logo

sentencepiece

Language-independent tokenizer treating text as raw Unicode. Supports BPE and Unigram algorithms. Fast (50k sentences/sec), lightweight (6MB memory), deterministic vocabulary. Used by T5, ALBERT, XLNet, mBART. Train on raw text without pre-tokenization. Use when you need multilingual support, CJK languages, or reproducible tokenization.

60

Quality

72%

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

Fix and improve this skill with Tessl

tessl review fix ./backend/cli/skills/llm-tools/sentencepiece/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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 highly actionable skill file whose code examples are executable, complete, and cover the common training and encoding cases, with a clear install-to-usage sequence and genuinely useful one-level-deep references. The main weakness is repetition: performance statistics appear in three separate sections and algorithm/benchmark detail overlaps the reference files, so consolidating those would tighten the overview without losing anything.

Suggestions

Merge the 'Performance' block, the 6MB/50k figures in 'When to use', and 'Performance benchmarks' into a single performance section (or move benchmarks into references/training.md) — the same stats currently appear three times.

Collapse the inline BPE/Unigram subsections to one-line pointers to references/algorithms.md since both are already fully covered there.

Add a short post-training validation step (e.g., confirm m.model exists and print vocab size) to close the workflow-clarity gap.

DimensionReasoningScore

Conciseness

The body is dominated by executable code and config tables with no concept over-explanation, but the same performance stats are repeated across three sections ('Require lightweight deployment (6MB memory, 50k sentences/sec)', the 'Performance' block, and 'Performance benchmarks' with 50,000 sentences/sec appearing three times), and 'Training time: ~1-2 minutes' is restated in the benchmarks table. Fits 'mostly efficient but could be tightened'; not anchor 2 because there is no padding or explanation of things Claude already knows, and not anchor 4 because the repetition is systematic rather than a minor trim.

3 / 5

Actionability

Every section is copy-paste ready and complete: pip and C++ build commands, spm_train CLI flags, SentencePieceTrainer.train kwargs, encode/decode with expected outputs shown in comments, subword sampling with alpha, and transformers integration. Specific examples cover the common cases (BPE, Unigram, T5-style training, CJK character coverage).

5 / 5

Workflow Clarity

Quick start gives a clear install → train → encode/decode sequence, and code comments showing expected outputs ('[284, 47, 11, 1243]', 'This is a test') act as implicit checkpoints. Not anchor 5: there are no explicit validation steps or error-recovery guidance (e.g., what to check after training, common failure modes). Not anchor 3: the sequence is coherent and outputs are verified against expected results rather than merely listed.

4 / 5

Progressive Disclosure

Two real, clearly signaled one-level-deep references ('[Training Guide](references/training.md)', '[Algorithms](references/algorithms.md)') hold the deep material, and the quick-start/essential-parameter content inline is appropriately overview-level. Not anchor 5: the inline 'Tokenization algorithms' and 'Performance benchmarks' sections partially duplicate what the reference files cover and the body runs ~245 lines where a leaner overview with more pushed to references would navigate better.

4 / 5

Total

16

/

20

Passed

Description

70%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, information-dense description that answers both what the skill does and when to use it with concrete algorithm and model-name triggers. Its main deductions are the second-person voice in the trigger clause (explicit rubric penalty) and missing synonyms like 'subword' that would round out trigger coverage.

Suggestions

Rewrite the trigger clause in third person, e.g. 'Use when the user needs multilingual support, works with CJK languages, or asks for reproducible/subword tokenization' — this also adds the missing 'subword' synonym.

Add encode/decode as a concrete capability (the primary runtime use case) to round out the action list toward comprehensive coverage.

DimensionReasoningScore

Specificity

The description lists several concrete capabilities ('Supports BPE and Unigram algorithms', 'Train on raw text without pre-tokenization', 'deterministic vocabulary'), which would fit anchor 4, but the second-person phrasing 'Use when you need multilingual support' triggers the rubric's explicit 1-point voice penalty, lowering it to anchor 3. Not anchor 2: the actions named are specific and domain-grounded, not generic.

3 / 5

Completeness

Both 'what' (language-independent tokenizer supporting BPE/Unigram, raw-text training, deterministic vocab) and 'when' ('Use when you need multilingual support, CJK languages, or reproducible tokenization') are present. Not anchor 5: the trigger clause covers a fairly narrow set of scenarios and lacks the broader phrasing pattern ('or when the user mentions...') of the top anchor.

4 / 5

Trigger Term Quality

Good natural keyword coverage: 'multilingual support', 'CJK languages', 'reproducible tokenization', 'BPE', 'Unigram', plus model names (T5, ALBERT, XLNet, mBART) users would naturally mention. Not anchor 5: common synonyms and variations like 'subword', 'subword segmentation', 'tokenizer training', or file extensions are missing.

4 / 5

Distinctiveness Conflict Risk

The combination of BPE/Unigram algorithms, T5/ALBERT/XLNet/mBART model names, and CJK/multilingual triggers carves a clear SentencePiece niche that is unlikely to fire for tiktoken or WordPiece skills. Not anchor 5: it never names SentencePiece itself and shares generic tokenization terms with other tokenizer skills, leaving minor overlap risk.

4 / 5

Total

15

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository
synthetic-sciences/openscience
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.