CtrlK
BlogDocsLog inGet started
Tessl Logo

instructor

Extract structured data from LLM responses with Pydantic validation, retry failed extractions automatically, parse complex JSON with type safety, and stream partial results with Instructor - battle-tested structured output library

55

Quality

64%

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/instructor/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

47%

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

The skill is highly actionable with abundant executable code and well-signaled reference files, but it is far too long and verbose, explaining basic Pydantic concepts and duplicating content already present in the references. Trimming it into a lean overview that defers detail to the bundle files would markedly improve conciseness and progressive disclosure.

Suggestions

Cut the conceptual explanations of what response models, validation, and Pydantic Field/validators are; assume Claude's knowledge and keep only Instructor-specific usage and gotchas.

Replace the duplicated provider and example code in the body with brief pointers to references/providers.md and references/examples.md, keeping the body a concise overview.

Add an explicit validation checkpoint to the batch-processing workflow (e.g. wrap each extraction in try/except ValidationError and decide retry vs. skip) to raise workflow clarity.

Drop time-sensitive model IDs (claude-sonnet-4-5-20250929, gpt-4o-mini) from the examples or move them to a config note, since they date the skill and pad token use.

DimensionReasoningScore

Conciseness

The body is ~730 lines explaining concepts Claude already knows — what response models are, what validation is, basic Pydantic Field/validator usage, and an alternatives comparison table — padded with redundant, near-identical examples repeated across the body and references, matching the score-1 anchor for verbosity and unnecessary explanation.

1 / 3

Actionability

Provides fully executable, copy-paste-ready code throughout — `instructor.from_anthropic(Anthropic())`, `client.messages.create(..., response_model=User)`, streaming via `create_partial`/`create_iterable` — with specific provider configs and runnable examples, matching the score-3 anchor.

3 / 3

Workflow Clarity

The retry workflow is sequenced (LLM generates -> Pydantic validates -> error fed back -> retry up to max_retries) and batch processing is shown, but there are no explicit validation checkpoints for batch operations and the error-handling section is descriptive rather than a validated feedback loop, so it sits at the score-2 level.

2 / 3

Progressive Disclosure

There is a 'See Also' section pointing to real one-level-deep references (validation.md, providers.md, examples.md, all confirmed present), but the body itself is a monolithic wall that largely duplicates the reference files rather than being a concise overview pointing outward, so it does not reach the score-3 'clear overview with appropriately split content' anchor.

2 / 3

Total

8

/

12

Passed

Description

82%

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 strong on specificity, trigger terms, and distinctiveness, using clean third-person voice and concrete actions. Its main weakness is the absence of an explicit 'when to use this' clause, which caps completeness at 2.

Suggestions

Append an explicit 'Use when...' clause, e.g. 'Use when extracting structured data from LLM responses, validating LLM output against schemas, or needing automatic retries on extraction failures.'

Drop the marketing framing 'battle-tested structured output library' and the implicit star-count framing from the description; keep it factual and trigger-oriented.

Add common natural phrasings users would say (e.g. 'JSON extraction', 'typed LLM output', 'force LLM to return JSON') to broaden trigger coverage.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Extract structured data from LLM responses with Pydantic validation', 'retry failed extractions automatically', 'parse complex JSON', 'stream partial results' — matching the score-3 anchor that lists multiple specific actions.

3 / 3

Completeness

It clearly answers 'what' (extract, validate, retry, parse, stream) but provides no 'when' — there is no 'Use when...' clause or equivalent explicit trigger guidance, which per the judging guidelines caps completeness at 2.

2 / 3

Trigger Term Quality

Covers natural developer-facing terms — 'structured data', 'LLM responses', 'Pydantic', 'JSON', 'validation', 'streaming' — that a user would naturally say; the trailing 'battle-tested structured output library' is mild fluff but does not detract from the keyword coverage.

3 / 3

Distinctiveness Conflict Risk

The Instructor + Pydantic structured-output niche is clearly distinct from other skills, with specific triggers unlikely to fire for the wrong skill.

3 / 3

Total

11

/

12

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 (745 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.