CtrlK
BlogDocsLog inGet started
Tessl Logo

input-validation-skill

Validates, sanitizes, normalizes user inputs before processing. Prevents injection attacks, data corruption, runtime errors in production. Enforces schema-driven validation at entry points with explicit rejection policies for malformed payloads.

57

Quality

65%

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 ./crates/skill-auditor/testdata/fixtures/skill-full/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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-structured, actionable body with executable code and clear sequencing, held back by one non-existent script command and a referenced file that is an empty stub contradicting the body's promise of schema details. Fixing the reference content and the placeholder bash command would move this to a strong skill.

Suggestions

Populate references/deep-reference.md with the promised schema-design content, or remove the two links to it (intro line and References section) so the body doesn't point at an empty file.

Replace the non-existent `bun run validate --input ./data/input.json` command in Procedure 3 with an executable step, e.g., calling `validateInput` in the request handler or a real script shipped in the bundle.

Make the error contract consistent: step 2 throws `new Error(...)` while step 4 and Core rule 4 require a structured error object — pick one shape and show it in both places.

DimensionReasoningScore

Conciseness

The body is efficient: tight imperative rules ("Validate at entry points, not deep in business logic"), focused code blocks, and compact BAD/GOOD anti-pattern pairs with one-line WHY explanations that carry real information. Not a 5: the schema example teaches basic zod usage Claude already knows, and the Procedures section could be trimmed slightly. No padding sections.

4 / 5

Actionability

Three of four procedures give complete, copy-paste-ready TypeScript (zod schema definition, safeParse entry-point validator, try/catch with a 400 response), and the anti-patterns show concrete BAD/GOOD code. Not a 5: Procedure 3's `bun run validate --input ./data/input.json` references a script that does not exist anywhere in the bundle, making that step non-executable as written.

4 / 5

Workflow Clarity

The four numbered procedures form a clear sequence (define schema → validate at entry → run before processing → handle errors explicitly), and step 4's catch-and-return-400 provides an explicit error checkpoint. Not a 5: there is no fix-and-retry feedback loop, and step 2 throws a raw Error while step 4 assumes a structured error response — a minor inconsistency between the checkpoint as defined and as consumed. The destructive/batch cap does not apply since this is not a destructive or batch operation.

4 / 5

Progressive Disclosure

Structure is good — the body stays lean and `references/deep-reference.md` is a real, clearly signaled, one-level-deep file (linked both in the intro and the References section). However, the actual bundle file is a 4-line stub containing no schema details, while the body promises "schema details" and "Schema design and progressive disclosure patterns" — the split is nominally correct but substantively broken, matching the "some structure but could be better organized" anchor rather than a 4.

3 / 5

Total

15

/

20

Passed

Description

58%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, specific description of what the skill does, weakened by the complete absence of when-to-use trigger guidance and a technical register that omits the natural phrases users would say. Adding a "Use when..." clause covering forms, API/webhook payloads, and untrusted config would lift both completeness and trigger term quality.

Suggestions

Add an explicit trigger clause, e.g., "Use when processing user input from forms, API requests, CLI arguments, webhooks, or untrusted configuration files."

Include natural synonyms users would say — "user input", "form data", "payload validation", "sanitize/escape input" — alongside the existing technical terms like "schema-driven validation".

Trim jargon-heavy phrasing ("explicit rejection policies for malformed payloads") in favor of concrete action + context pairs that read the way a user would describe their problem.

DimensionReasoningScore

Specificity

Lists several concrete actions — "Validates, sanitizes, normalizes user inputs", "Enforces schema-driven validation at entry points", "explicit rejection policies for malformed payloads" — plus named threats (injection attacks, data corruption, runtime errors). Not a 5: coverage has minor gaps, e.g., no mention of the input sources it handles (forms, API payloads, config files) beyond generic "user inputs".

4 / 5

Completeness

The "what" is clear and concrete (validate, sanitize, normalize inputs; prevent injection and corruption), but there is no "Use when..." clause or equivalent trigger guidance — "before processing" and "at entry points" describe where validation happens in code, not when to invoke the skill. Per the judging guideline, a missing explicit trigger clause caps completeness at 3.

3 / 5

Trigger Term Quality

Contains some natural keywords users would say ("validates... user inputs", "sanitize", "injection attacks", "schema") but leans technical ("schema-driven validation", "explicit rejection policies", "malformed payloads") and misses common variations like "form data", "API payloads", or "clean/escape input". Falls between the "some relevant keywords" (3) and "good coverage" (4) anchors, closer to 3 because the natural phrases a user would actually say are sparse.

3 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (entry-point input validation with schema enforcement) that is mostly distinct from sibling skills, though it could overlap with general security or API-handling skills. "Enforces schema-driven validation at entry points with explicit rejection policies" is specific enough to avoid most wrong-skill triggers, matching the "mostly distinct; minor overlap risk" anchor.

4 / 5

Total

14

/

20

Passed

Validation

100%

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

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
pantheon-org/tekhne
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.