CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/negative-test-generator

Covers the refusal paths a handler already implements but nothing tests - a batch endpoint that must apply all rows or none, optimistic-concurrency version conflicts between two editors, or a delete that deliberately separates who you are from what you may do from the state the record is in. For each happy-path test, produces companions exercising input validation rejection, missing required fields, type mismatches, authorization failures, rate-limit errors, and adversarial payloads from the malicious-payload-bank, emitted as parameterized tests in the project's runner format. Use when code has deliberate error paths and the suite only proves the success case.

69

Quality

87%

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

Overview
Quality
Evals
Security
Files

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.

A well-crafted, highly actionable skill body: executable parameterized examples with exact expected statuses, a concrete output contract, a genuine feedback loop for interpreting failures, and an appropriately delegated one-level-deep reference catalog verified to cover all seven categories. The only trimmable fat is the conceptual Overview framing and the length of the worked example.

DimensionReasoningScore

Conciseness

The body is mostly efficient - a compact category list with inline expected status codes, a dense anti-patterns table, and brief Limitations - but the Overview re-explains the happy-path vs. rejection-path concept Claude already knows ('A typical test suite has a happy-path test for every endpoint... What's missing is the rejection path'), and the ~60-line worked example demonstrates four categories where two or three would carry the pattern. Minor instances of over-explanation that could be trimmed fits anchor 4; not 5 because those tokens are not all earning their place, not 3 because there is no padded or unnecessary library-style explanation.

4 / 5

Actionability

Fully executable guidance: a complete pytest worked example with parameterized tables carrying exact expected statuses and fields, per-category expected status codes spelled out (401, 403/404, 429, 409/412/422, 502/503/504), a concrete output-format template with a per-category count table, and a verified reference catalog (references/negative-path-catalog.md) containing per-pattern test tables and copy-ready CWE-tagged starter payloads for all seven categories. Specific examples cover the common cases, matching anchor 5; fixture imports (tests.fixtures, tests.payloads) are project context, not a gap.

5 / 5

Workflow Clarity

The process is well structured - a category checklist, a worked example, an output contract with per-category counts and skipped-category rationale, and an explicit validation feedback loop ('Run the new negative tests; expect all to pass... Any failure indicates a real gap - either the validator is missing the case OR the assertion is wrong'). Score 4 rather than 5 because the top-level sequence (identify happy-path tests, declare input domain, generate, emit, run) is implicit rather than numbered, and the prerequisite input-domain declaration step is only surfaced in Limitations; score above 3 because verification and error-recovery checkpoints are explicitly present, and the batch/destructive cap does not apply since the skill generates test code rather than performing batch mutations.

4 / 5

Progressive Disclosure

Verified against the actual bundle: exactly one reference file (references/negative-path-catalog.md), it exists, is one level deep, and is clearly signaled in the body with a descriptive link stating precisely what it holds ('Per-pattern test tables and the starter adversarial-payload catalog (with CWE / OWASP references)'). The split is appropriate - per-pattern tables and payload starters live in the reference while the body keeps the overview, one worked example, and the output contract - and body sections are clearly headed, matching anchor 5.

5 / 5

Total

18

/

20

Passed

Description

83%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 description with a concrete, enumerated capability statement, vivid scenario framing, and an explicit, specific 'Use when' clause. Its main weaknesses are the omission of the skill's own most natural trigger phrase ('negative tests' / 'edge cases') and minor coverage gaps in the enumerated failure modes (authentication, conflict, server errors).

DimensionReasoningScore

Specificity

Enumerates several concrete actions - 'input validation rejection, missing required fields, type mismatches, authorization failures, rate-limit errors, and adversarial payloads from the malicious-payload-bank, emitted as parameterized tests in the project's runner format' - plus concrete scenarios like 'a batch endpoint that must apply all rows or none, optimistic-concurrency version conflicts'. Score 4 rather than 5 because the enumeration skips authentication (401) failures, conflict/state errors, and server errors that the skill itself covers, a minor coverage gap matching the anchor-4 example.

4 / 5

Completeness

Explicitly answers both questions: the 'what' is 'produces companions exercising input validation rejection, missing required fields, type mismatches, authorization failures, rate-limit errors, and adversarial payloads... emitted as parameterized tests in the project's runner format', and the 'when' is a concrete explicit clause: 'Use when code has deliberate error paths and the suite only proves the success case.' Both are present, explicit, and concrete, matching anchor 5 rather than the vaguer 'when' of anchor 4.

5 / 5

Trigger Term Quality

Contains good natural keywords users would say - 'happy-path test', 'error paths', 'success case', 'input validation', 'rate-limit' - but the single most natural phrase for this skill ('negative tests') never appears, nor do common synonyms like 'edge cases', 'failure cases', or 'error handling'. Good coverage with a few natural terms missing fits anchor 4; not 3 because far more than 'some' relevant keywords are present, not 5 because key synonyms are absent.

4 / 5

Distinctiveness Conflict Risk

The niche is clearly carved - generating rejection-path companions for existing happy-path tests, with triggers like 'the suite only proves the success case' - making it mostly distinct. Score 4 rather than 5 because it overlaps with closely related testing skills the ecosystem provides (boundary-value-generator, general test writing, gherkin-from-stories), and the description does not state its boundary against them.

4 / 5

Total

17

/

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.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents