CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

aif-dockerize

Analyze project and generate Docker configuration: Dockerfile (multi-stage dev/prod), compose.yml, compose.override.yml (dev), compose.production.yml (hardened), and .dockerignore. Includes production security audit. Use when user says "dockerize", "add docker", "docker compose", "containerize", or "setup docker".

Quality

84%

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

SKILL.md
Quality
Evals
Security

Quality

Content

70%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 genuinely strong workflow: unambiguous mode routing, deeply concrete detection and hardening guidance, and multiple explicit validation checkpoints with fix-before-present enforcement. Its weaknesses are duplication (skill-context rules and the Angie preference each stated twice, framework tables restating known facts) and a progressive-disclosure structure undermined by references to a non-existent templates/ directory and inconsistent reference path prefixes.

Suggestions

Consolidate the duplicated skill-context instructions — the opening "Shared project skill-context" section and Step 0 cover the same loading and precedence rules; keep one, and state the Angie-over-Nginx preference (with its URL) a single time.

Ship the templates/ directory that Step 3 and Step 8 instruct Claude to read (dockerfile-<language>, compose-base.yml, compose-override-dev.yml, compose.production.yml, dockerignore, and the six deploy scripts), or replace the template reads with minimal inline base structures — as written, core Read steps point at files that do not exist.

Adopt one consistent, bundle-relative path convention for references (references/BEST-PRACTICES.md, not skills/dockerize/references/BEST-PRACTICES.md) and trim the Section 2.1/2.2 tables to only project-specific detection signals Claude could not infer, tightening token usage.

DimensionReasoningScore

Conciseness

The body is dense and imperative with detail properly delegated to references, but the skill-context loading/precedence rules are explained twice (the opening "Shared project skill-context" section and again in Step 0), the Angie-over-Nginx preference and its full documentation URL are repeated (Step 1.3 and Step 2.5), and the Section 2.1/2.2 tables restate facts Claude already knows (express → port 3000, django → gunicorn, golang alpine base images). This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' better than the score-4 anchor, whose over-explanation would be only minor.

3 / 5

Actionability

Guidance is largely executable: exact Glob/Grep patterns ("Glob: cmd/*/main.go", "Grep: postgres|postgresql|pg_|mysql"), concrete AskUserQuestion blocks with options, and precise hardening values (user: "1001:1001", tmpfs "noexec,nosuid,size=100m", "127.0.0.1:5432:5432", example tags like golang:1.24-alpine). The gaps that keep it from 5: Step 3 instructs reading template files (templates/dockerfile-<language>, templates/compose-base.yml, templates/deploy.sh, etc.) that do not exist in the bundle, reference paths use inconsistent prefixes, and Step 2.3 defers to an external skill ("Same detection as /aif-build-automation Step 2.2").

4 / 5

Workflow Clarity

A clear Step 0–9 sequence with a mode-routing table, three explicit decision paths (A/B/C) and an --audit override, and named per-step state (PROJECT_PROFILE, USER_INFRA_CHOICES, EXISTING_CONTENT). Validation is explicit and layered: the "Quality Checks (Before Writing)" correctness and over-engineering checklists with "Remove anything that fails... before writing", the always-run Step 7 security checklist with "If any checks fail → offer to fix immediately", and skill-context enforcement ("If any rule is violated — fix the output before presenting it to the user"), plus audit-mode feedback loops (fix all / fix critical only). This matches the score-5 anchor with checklists and error-recovery loops.

5 / 5

Progressive Disclosure

Against the actual bundle: all 9 files in references/ are real, one level deep, and well-signaled — two are explicitly conditionally gated (ANGIE-ACME.md "read when generating or auditing Angie HTTPS/ACME configuration", COMPOSE-LIFECYCLE-HOOKS.md "read when a production Compose service runs non-root but needs named-volume ownership fixes") and the rest are tied to specific steps. However, Step 3 and Step 8 reference a templates/ directory (dockerfile-go/node/python/php, compose-base.yml, compose-override-dev.yml, compose-production.yml, dockerignore, six deploy scripts) that does not exist in the bundle — a dangling reference the generation workflow depends on — and paths are inconsistent ("skills/dockerize/references/BEST-PRACTICES.md" vs "references/COMPOSE-PATTERNS.md" for the same directory). The broken template navigation plus mixed path conventions pull this below the score-4 'minor organization gaps' anchor.

3 / 5

Total

15

/

20

Passed

Description

96%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 explicitly states what is generated (all five artifacts with their characterizations), that a production security audit is included, and exactly when to invoke the skill via natural user phrases. The only weakness is that the "docker compose" trigger is broad enough to occasionally match runtime/debugging requests and slightly overlaps a sibling build-automation skill.

DimensionReasoningScore

Specificity

The description enumerates every concrete deliverable — "Dockerfile (multi-stage dev/prod), compose.yml, compose.override.yml (dev), compose.production.yml (hardened), and .dockerignore" — plus "Includes production security audit", giving comprehensive, specific coverage of actions in third-person voice. It clearly matches the 'multiple specific concrete actions; comprehensive coverage' anchor rather than the score-4 anchor, which allows coverage gaps.

5 / 5

Completeness

Both parts are explicit: the what ("Analyze project and generate Docker configuration: Dockerfile..., .dockerignore. Includes production security audit") and the when ("Use when user says 'dockerize', 'add docker', 'docker compose', 'containerize', or 'setup docker'"). This exactly matches the anchor requiring concrete trigger phrases for both what and when.

5 / 5

Trigger Term Quality

Triggers "dockerize", "add docker", "docker compose", "containerize", or "setup docker" cover the natural synonyms and verb phrases a user would actually say, with "Dockerfile" also appearing in the what-clause. Coverage is comprehensive for the domain rather than merely 'good with a few missing', fitting the score-5 anchor.

5 / 5

Distinctiveness Conflict Risk

The Docker-configuration-generation niche is clear and triggers are domain-specific, but "docker compose" alone could also fire on a user wanting to run or debug an existing stack rather than generate config, and the body references the closely related `/aif-build-automation` skill for Docker targets. This is 'mostly distinct; minor overlap risk with closely related skills' rather than the minimal-conflict score-5 anchor.

4 / 5

Total

19

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (543 lines); consider splitting into references/ and linking

Warning

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

13

/

16

Passed

Repository

lee-to/ai-factory

Path

skills/aif-dockerize/SKILL.md

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.