CtrlK
BlogDocsLog inGet started
Tessl Logo

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".

66

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

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.

A well-sequenced, highly actionable workflow with strong validation checkpoints and good reference signaling for the files that exist. The main weaknesses are repeated content (Angie guidance, skill-context emphasis) and a bundle integrity problem: all templates/ files the body instructs Claude to read are missing, which undermines both navigation and execution.

Suggestions

Add the templates/ files (dockerfile-<language>, compose-base.yml, compose-override-dev.yml, compose-production.yml, dockerignore, deploy scripts) to the bundle, or remove the 'Read templates/...' instructions and inline the essential template structure so Claude is never directed at non-existent files.

State the Angie-over-Nginx preference once (e.g., in Step 2.5) and reference it from Steps 1.3 and 4.2, and compress the skill-context precedence rules to 3-4 lines, to cut ~40 lines of repetition.

Normalize reference paths to a single consistent form (references/... rather than mixing 'skills/dockerize/references/...' prefixes) so every Read instruction resolves unambiguously.

DimensionReasoningScore

Conciseness

The body is dense with tables, globs, greps, and checklists and explains nothing Claude already knows, but it contains noticeable repetition: the Angie-over-Nginx preference (with URL) appears three times (Step 1.3, Step 2.5, Step 4.2), and the ~20-line skill-context section repeats its precedence rule four ways ('MANDATORY', 'CRITICAL', 'Enforcement'). This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than the 4 anchor's 'minor instances'.

3 / 5

Actionability

Guidance is highly concrete — exact Glob/Grep patterns, framework-to-port/dev-command tables, literal hardening values ('user: "1001:1001"', 'tmpfs ... noexec,nosuid,size=100m', '127.0.0.1:5432:5432') and per-checklist quality gates. It stops short of 5 because the Dockerfile and deploy-script generation leans on 'Read skills/dockerize/templates/...' files that are not present in the bundle, and Step 2.3 defers to an external skill ('Same detection as /aif-build-automation Step 2.2'), leaving minor execution gaps.

4 / 5

Workflow Clarity

The nine-step sequence is explicit with mode-selection logic (Path A/B/C, --audit override), pre-write quality checks, an over-engineering gate ('Remove anything that fails ... before writing'), a mandatory security checklist with a score, and feedback loops ('If any checks fail → offer to fix immediately'; 'If any rule is violated — fix the output before presenting it'). This matches the 5 anchor: clear sequence, explicit validation, error-recovery loops, and checklists.

5 / 5

Progressive Disclosure

The nine references/ files that exist are well signaled with when-to-read conditions, but roughly fourteen referenced paths ('templates/dockerfile-go', 'templates/compose-base.yml', 'templates/deploy.sh', etc.) do not exist anywhere in the bundle, and path prefixes are inconsistent ('skills/dockerize/references/...' vs 'references/...'). Broken navigation to a large portion of referenced content exceeds the 4 anchor's 'minor organization gaps' and fits 'some structure but could be better organized'.

3 / 5

Total

15

/

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 that comprehensively lists the generated artifacts with their variants, states the included security audit, and provides explicit natural-language trigger phrases in third-person imperative style. The only minor gap is that a few natural trigger variations (e.g., 'dockerfile', 'docker setup') are absent.

DimensionReasoningScore

Specificity

The description enumerates every concrete artifact with distinguishing detail — 'Dockerfile (multi-stage dev/prod)', 'compose.override.yml (dev)', 'compose.production.yml (hardened)', '.dockerignore' — plus 'Includes production security audit'. This matches the anchor 'lists multiple specific concrete actions; comprehensive coverage'; it is not score 4 because coverage of the skill's outputs is complete rather than having minor gaps.

5 / 5

Completeness

It explicitly answers both questions: the 'what' is a detailed artifact list and the 'when' is a concrete 'Use when user says...' clause with literal trigger phrases. This matches the 5 anchor exactly; the 4 anchor ('when could be more explicit') does not apply since trigger guidance is fully explicit.

5 / 5

Trigger Term Quality

Trigger phrases 'dockerize', 'add docker', 'docker compose', 'containerize', or 'setup docker' are natural terms users would actually say, giving good keyword coverage. It falls short of the 5 anchor ('comprehensive coverage of natural terms including synonyms and file extensions') because common variations like 'dockerfile', 'dockerization', or 'docker setup' phrasing are missing.

4 / 5

Distinctiveness Conflict Risk

Docker/containerization is a clear niche with distinct, unambiguous triggers ('dockerize', 'docker compose', 'containerize'), matching 'clear niche with distinct triggers; minimal conflict risk'. It is not a 4 because no closely related skill would plausibly claim these triggers.

5 / 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 (531 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
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.