CtrlK
BlogDocsLog inGet started
Tessl Logo

outlines

Outlines: structured JSON/regex/Pydantic LLM generation.

57

Quality

68%

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 ./optional-skills/mlops/inference/outlines/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.

The body is a highly actionable, executable reference with comprehensive coverage of output types, backends, and patterns, supported by clearly signaled one-level-deep reference files. Its main weakness is conciseness: repeated model-loading boilerplate and promotional sections add tokens that do not earn their place, and references are not contextually linked inline. Workflow and disclosure are solid but could be tightened with explicit checkpoints and inline reference pointers.

Suggestions

Reduce repeated boilerplate by defining the model load once and noting 'assume `model` is loaded as above' in subsequent examples, or move per-backend setup into references/backends.md.

Trim the promotional "Performance Characteristics" and "Benefits" bullets (e.g. "100% valid outputs", "1.2-2x faster") to factual, testable statements or remove them.

Contextually link the reference files at the relevant sections (e.g., 'see references/backends.md' under Backend Configuration, 'see references/examples.md' under Common Patterns) instead of only in the final See Also list.

DimensionReasoningScore

Conciseness

The body is mostly actionable code with little explanation of basic concepts Claude already knows, but it repeats the same four-line model-loading boilerplate (`from_transformers(AutoModelForCausalLM.from_pretrained(...), AutoTokenizer.from_pretrained(...))`) across roughly seven examples, and the "Benefits" / "Performance Characteristics" sections ("Zero overhead", "1.2-2x faster", "100% valid outputs") read as marketing padding. It is above 2 because the bulk is genuinely useful executable code rather than conceptual fluff, but below 4 because the repeated boilerplate and promotional sections could be trimmed.

3 / 5

Actionability

The body provides extensive copy-paste-ready, executable code covering classification, Pydantic, regex, numeric types, four backends (Transformers, llama.cpp, vLLM, OpenAI), nested models, enums, batch processing, and code generation, each with real imports and real model identifiers. It matches the anchor "Fully executable; copy-paste ready code; specific examples cover the common cases"; the only minor convention is that later snippets reuse an already-loaded `model`, which earlier examples establish.

5 / 5

Workflow Clarity

The core load → generate → validate sequence is clear and validation is consistently shown via `model_validate_json`, including in the batch-processing pattern (`[Person.model_validate_json(o) for o in outputs]`), and Best Practice #6 explicitly states "Always Validate JSON Output". It is not 5 because there is no explicit validate→fix→retry feedback loop or framed checklist, and the sequence is distributed across examples rather than stated as one explicit workflow; it clears 3 because validation checkpoints are present in most examples.

4 / 5

Progressive Disclosure

A "See Also" section clearly signals three real, one-level-deep reference files with one-line descriptions (references/json_generation.md, backends.md, examples.md — all verified to exist), and the body is well-organized with clear section headers. It is not 5 because the references are only linked in a final list rather than contextually at the relevant sections (e.g., the Backend Configuration section does not point to backends.md), and the 650-line body inlines substantial detail that the references likely also cover.

4 / 5

Total

16

/

20

Passed

Description

61%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 terse, specific, and in correct third-person voice, naming the tool and its core output modalities, but it omits any "Use when..." trigger guidance, which caps completeness. Distinctiveness is strong thanks to the named tool and distinctive format combination. It would benefit from explicit trigger phrasing and a few synonym keywords.

Suggestions

Add an explicit 'when' clause, e.g. 'Use when you need guaranteed-valid JSON, regex-constrained, or Pydantic-typed outputs from local or API LLMs.'

Include high-frequency synonym trigger terms such as 'schema', 'constrained/grammar-based generation', and 'structured output' to improve trigger-term coverage.

Name one or two additional concrete actions (e.g. 'compiles output types into token-level automata') to lift specificity above a single generic verb.

DimensionReasoningScore

Specificity

Quotes "structured JSON/regex/Pydantic LLM generation" — names the domain (LLM structured generation) and three concrete output types, but the only action verb is the generic "generation", so it lists 1-2 concrete actions rather than several. It is above 2 ("names the domain but actions are minimal") because JSON/regex/Pydantic are concrete targets, but below 4 ("several specific actions") since there is a single action with type variants.

3 / 5

Completeness

The description gives a clear "what" ("structured JSON/regex/Pydantic LLM generation") but contains no "Use when..." clause or equivalent trigger guidance, so per the rubric guideline a missing explicit trigger caps completeness at 3. It is not 2 because the "what" is specific, not vague; it cannot reach 4 without an explicit "when".

3 / 5

Trigger Term Quality

Terms present — "JSON", "regex", "Pydantic", "LLM", "structured generation" — are the natural vocabulary a developer would say when needing this skill, giving good keyword coverage. It is not 5 because common synonyms are absent: "schema", "constrained/grammar-based generation", "structured output". It clears 3 because the terms are natural and on-point rather than generic.

4 / 5

Distinctiveness Conflict Risk

Naming the specific tool "Outlines" plus the distinctive JSON/regex/Pydantic combination carves a mostly-distinct niche with only minor overlap risk against generic structured-output or "Instructor"-style skills. It is not 5 because there are no explicit trigger phrases making it unmistakable, and some overlap with general JSON/Pydantic output skills remains.

4 / 5

Total

14

/

20

Passed

Validation

75%

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

Validation12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (663 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

12

/

16

Passed

Repository
NousResearch/hermes-agent
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.