skill-test is a skill from the Summer skill library: a guide your AI agent reads when the task matches, so it builds the good version on the first try. Lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion — static structural rules plus behavioral specs.
When your agent uses it
- A contributor wants to lint a Summer skill before commit, audit the whole library, or check a behavioral spec assertion
- Running the structural lint and behavioral spec assertions for one skill or the whole library
Install
summer setup installs every skill for your agent. To add only this one:
claude-code for your agent, such as codex or cursor. See Skills for every option.
The skill
Three modes. Pick by the user’s intent.Mode: static — Structural lint (default for “test this skill”)
For a single skill at library/skills/<slug>/, run these checks:
- Frontmatter completeness.
name,description,license,compatibility,categorypresent.namematches the directory name. - SKILL.md length. ≤ 500 lines (progressive disclosure: push detail into references).
- MCP-preferred + file-edit-fallback. If the skill mutates scenes or resources, body must show both:
- At least one
summer_*MCP tool example. - At least one file-edit fallback block (e.g., raw
.tscnsnippet) OR an explicit “no fallback for this — Summer MCP required” note.
- At least one
- Collaborative protocol. If the skill triggers user-visible writes, body must contain at least one of:
May I,I'm about to,Continue?,OK?,Proceed?. Skills that only inspect/read are exempt. - Template-id resolved. If the skill’s frontmatter declares
template-id: <id>, that id must exist in the template registry:library/templates/<id>/resource.yaml(seelibrary/templates/README.md). - Behavioral spec. If the skill has a spec (
evals/skills/specs/<slug>.mdortests/spec.mdin the skill folder), it has at least one## Caseheading. A missing spec is a WARN, not a FAIL. - Links stay inside the skill folder. Every relative link (
](./references/...),](./examples/...)) must point at an existing file in the skill’s own folder (FAIL if broken).summer setupcopies each skill folder alone, so a path that climbs out of it (../) breaks after install: name a shared reference by its library id (summer_docs_readidreference/<slug>) and another skill by its bare slug (design-mechanic).
Mode: spec — Behavioral spec runner
For a single skill, read both library/skills/<slug>/SKILL.md and evals/skills/specs/<slug>.md. For each ## Case in the spec:
- Lay out the Fixture (starting state, available tools).
- Read the Input (user prompt).
- Reason: given the skill’s instructions and this fixture, would the agent follow the Expected MCP tool sequence?
- For each assertion under
**Assertions:**, mark[x]if the skill’s instructions would satisfy it,[ ]if not, with a one-line reason.
Mode: audit — Whole library report
List library/skills/*/SKILL.md. For each skill:
- Run
staticmode on the skill. - Note any
last-tested:field in the SKILL.md frontmatter (optional). - Flag skills failing static checks.
When to use which mode
Collaborative protocol
This skill is read-only. It never writes. No “May I” needed.See also
summer_docs_readidreference/collaborative-protocol- the template registry:
library/templates/<id>/resource.yaml(seelibrary/templates/README.md) tests/runner.mdevals/skills/specs/— per-skill behavioral specs
From a shell
No Summer MCP tools in this session? Run each one as a command; whensummer --version is missing or below 4.0, use npx -y summer-engine@latest in place of summer. Fields are flags in kebab-case (--scene-path res://main.tscn) or one --input '<json>', and summer ops describe <op> prints the exact input. The summer-cli skill has the rest.
Related skills
skill-create: Bootstrap a new Summer library skill (library/skills/<slug>/ with resource.yaml and SKILL.md), frontmatter, and stub sections.skill-improve: Upgrade an underperforming Summer skill — run it against a behavioral spec with and without changes via a parallel-eval harness; ship the winner.
Source:
library/skills/skill-test/SKILL.md, rendered from summer-engine@4.3.0 on npm.
