CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/serverless-integration-test-builder

Use when a serverless project (SAM, serverless.yml, Wrangler, Vercel or Netlify functions) has no integration tests yet. Inventories functions and event sources, picks a local emulator per function, generates test events, asserts cold-start and timeout budgets, and emits the tests and CI config.

Quality

81%

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

63%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 delivers a well-sequenced, concrete, multi-platform workflow with genuinely executable examples, and the bundle references are real and well-organized. Its main weaknesses are redundancy — Step 5 reproduces two large data tables that the reference files already contain — and a missing local verification step plus an unspecified staging-smoke assertion mechanism.

Suggestions

Remove the per-runtime cold-start and integration-timeout tables from Step 5 and link directly to references/cold-start-budget.md and references/timeout-budgets.md instead; keep only one or two illustrative rows (e.g., the API Gateway 29s ceiling) inline.

Add an explicit validation step after Step 4 (e.g., run `npx jest tests/integration/` locally and fix failures before writing the CI config and matrix), and show a short staging-smoke test example that asserts the Step 5 budgets (cold_start_p99_ms / warm_p99_ms) against deployed functions.

Link references/timeout-budgets.md directly from SKILL.md's References section rather than only via cold-start-budget.md, keeping the reference graph one level deep; include a Python/jest-setup counterpart for the `conftest.py` entry in the scaffold layout.

DimensionReasoningScore

Conciseness

The body is mostly lean and table-driven (yq one-liners, command mappings, anti-pattern tables), but Step 5 says "derive a budget from references/cold-start-budget.md" and then inlines ~35 lines of data that duplicate the reference files almost verbatim — the per-runtime cold-start table ("AWS Lambda Java 11 (512MB, no SnapStart) | 1.5-6s") repeats cold-start-budget.md's table, and the integration timeout table ("API Gateway ... 29s hard") repeats timeout-budgets.md's cascade. This is more than the minor trimmable instances of the score-4 anchor, fitting the score-3 anchor for content that could be tightened.

3 / 5

Actionability

Mostly executable and copy-paste ready: the full jest test file (import, fixtures, timeout-budget assertion), yq inventory commands, `sam local generate-event apigateway aws-proxy` event commands, directory layout, and a complete GitHub Actions workflow. Not 5 because of minor gaps: no Python test example despite `conftest.py` appearing in the layout, and the Step 5 budgets yaml "become assertion thresholds in staging-smoke tests" with no scaffold or code showing how (the staging-smoke job runs `npx jest tests/staging-smoke/` against a directory the skill never populates).

4 / 5

Workflow Clarity

A clearly sequenced 7-step process (inventory IaC → pick emulator → generate events → scaffold tests → set budgets → CI → coverage matrix) with most checkpoints present: the two-tier CI ("local-fast tests on every PR; deploy + smoke on main") and the Step 7 coverage matrix with a Gaps section act as verification. Not 5 because there is no explicit local validation loop (e.g., run the generated tests and fix failures before emitting the matrix) — verification is only embedded in the emitted CI config, leaving a minor gap between generation and confirmation.

4 / 5

Progressive Disclosure

References are clearly signaled (Step 5 link and a References section) and both referenced files exist, but two structural problems remain: content that already lives in the reference files is duplicated inline in Step 5 (the cold-start and integration-timeout tables), and references reach two levels deep — SKILL.md → references/cold-start-budget.md → references/timeout-budgets.md, which SKILL.md itself points to only indirectly ("timeout budgets in its references/timeout-budgets.md") rather than linking directly. This fits the score-3 anchor: structure present and references signaled, but content that should stay separate is inlined and organization could improve.

3 / 5

Total

14

/

20

Passed

Description

92%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: third-person, concrete, and explicit about both capability and trigger conditions, with platform config names serving as natural trigger terms. The only improvement space is broadening trigger vocabulary to cover Lambda and Cloudflare Workers, which the skill handles but the description never names.

DimensionReasoningScore

Specificity

Lists five concrete, third-person actions spanning the whole workflow: "Inventories functions and event sources", "picks a local emulator per function", "generates test events", "asserts cold-start and timeout budgets", "emits the tests and CI config". This matches the anchor for multiple specific concrete actions with comprehensive coverage; it is not score 4 because the actions leave no noticeable gaps in the skill's scope.

5 / 5

Completeness

Explicitly answers both questions: "Use when a serverless project (SAM, serverless.yml, Wrangler, Vercel or Netlify functions) has no integration tests yet" gives a concrete trigger condition, and the enumerated verbs state exactly what the skill does. This is the anchor for clearly and explicitly answering both what and when with concrete trigger phrases.

5 / 5

Trigger Term Quality

Includes natural terms users would say when needing this skill: "SAM", "serverless.yml", "Wrangler", "Vercel", "Netlify functions", "integration tests" — config filenames work like file extensions in the top anchor. Not 5 because common variations users naturally say are missing, notably "Lambda", "Cloudflare Workers", "AWS", and synonyms like "test coverage"; not 3 because coverage goes well beyond a couple of generic keywords.

4 / 5

Distinctiveness Conflict Risk

Clear niche (bootstrap integration-test scaffolding for serverless projects that lack it) with distinct platform-specific triggers (SAM, serverless.yml, Wrangler, Vercel, Netlify) plus the qualifying condition "has no integration tests yet", which keeps it from firing for general test-writing requests. Minimal conflict risk with neighboring skills.

5 / 5

Total

19

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 2 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page