CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/docker-compose-tests

Authors a `compose.test.yaml` for tests - declares the SUT plus its real backing services as one declarative topology, wires healthcheck-driven `depends_on: condition: service_healthy` start ordering, isolates parallel CI jobs via per-job `--project-name`, gates the test step on `--wait` / `--wait-timeout` / `--exit-code-from`, and tears the stack down deterministically with `down --volumes --remove-orphans`. Use when the test environment is multi-service (app + db + cache + queue) and the topology is best expressed in YAML rather than imperative test code.

72

Quality

91%

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 high-quality, execution-ready skill: complete Compose YAML, CI workflow, and teardown commands organized into a clear seven-step sequence with real reference files correctly offloading the flag tables and anti-pattern catalog. The remaining gaps are minor: some body/reference duplication and the absence of an explicit failure-recovery path when a healthcheck or wait timeout fails.

Suggestions

Trim the overlap between body and references — Steps 5/6 restate flag semantics that compose-flags.md already tabulates; keeping one-line summaries with the link would tighten the body.

Add a short failure-recovery note after Step 5: on --wait timeout or a failing healthcheck, run `docker compose -f compose.test.yaml logs <service>` to diagnose before retrying.

The closing References section duplicates the inline link definitions; folding it into a single link table or removing it would save tokens without losing navigation.

DimensionReasoningScore

Conciseness

The body assumes competence (no "what is Docker" padding) and every step carries load: tuned healthcheck intervals, the project-name resolution order, both CI shapes, and the teardown rationale. However, there is duplication — the up/down flag semantics and the anti-patterns are summarized in the body prose AND fully tabulated in the references files, and the closing References section re-lists links already defined inline. Anchor 5 ("every token earns its place") is just missed due to this repeated content.

4 / 5

Actionability

Fully executable throughout: a complete copy-paste compose.test.yaml (with real healthchecks, env interpolation, and gating), a complete GitHub Actions workflow with matrix isolation and `if: always()` teardown, exact bash invocations for both CI shapes, and a working migrations pattern. The examples cover the common cases (db + cache + app + e2e, CI sharding, profiles).

5 / 5

Workflow Clarity

Seven clearly sequenced steps with real checkpoints: healthcheck gating, --wait/--wait-timeout budgets, --exit-code-from exit-code propagation, and deterministic teardown in an `if: always()` step. What is missing is an explicit error-recovery loop — what to do when --wait times out or a healthcheck never passes (e.g. inspect logs, retry) — leaving it one checkpoint short of the top anchor.

4 / 5

Progressive Disclosure

Measured against the actual bundle: the body is a well-sequenced overview that links to two real, one-level-deep reference files (references/compose-flags.md and references/anti-patterns.md), both of which contain substantive tables rather than nested placeholders, plus the anti-patterns are summarized in the body with the catalog offloaded. Flag tables and the failure-mode catalog are correctly split out; navigation is easy and every reference resolves.

5 / 5

Total

18

/

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: it lists concrete, comprehensive actions across the full author-to-teardown workflow and pairs them with an explicit, concrete "Use when" trigger clause. The only gap is natural-language phrasing — the plain phrases users would say ("docker compose", "integration tests") are implicit in the technical vocabulary rather than stated.

Suggestions

Add one or two natural trigger phrases users would actually type, such as "docker compose" or "integration tests with real backing services", to complement the flag-level specificity.

Mention testcontainers as the boundary case in the description itself (as the body does) so near-miss queries about single-container test tooling can also route correctly.

DimensionReasoningScore

Specificity

The description enumerates six concrete, distinct actions: "Authors a compose.test.yaml", "declares the SUT plus its real backing services as one declarative topology", "wires healthcheck-driven depends_on: condition: service_healthy", "isolates parallel CI jobs via per-job --project-name", "gates the test step on --wait / --wait-timeout / --exit-code-from", and "tears the stack down deterministically with down --volumes --remove-orphans". Coverage spans author, gate, isolate, and teardown with no gaps in the workflow, matching the top anchor; it is dense with specifics rather than padded.

5 / 5

Completeness

The "what" is explicit (author, wire, isolate, gate, tear down) and the "when" is an explicit clause with concrete trigger conditions: "Use when the test environment is multi-service (app + db + cache + queue) and the topology is best expressed in YAML rather than imperative test code." Both halves are present and concrete, matching the top anchor.

5 / 5

Trigger Term Quality

Good keyword coverage: "compose.test.yaml", "CI jobs", "multi-service (app + db + cache + queue)", "YAML", "SUT", plus the flag names. However, plain natural phrases a user would actually say are missing — e.g. "docker compose", "integration tests", "testcontainers" (the named alternative), or ".yaml" file extensions. Anchor 5 requires comprehensive synonyms/extensions, which this falls just short of.

4 / 5

Distinctiveness Conflict Risk

A clear niche — declarative multi-service test topology with Compose — with highly specific triggers (compose.test.yaml, healthcheck-driven depends_on, per-job --project-name, multi-service test environment). The "when" clause explicitly scopes it against imperative test code, and the body further distinguishes it from testcontainers; minimal risk of firing for an unrelated skill.

5 / 5

Total

19

/

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

On this page