This skill should be used when the user says "cleanup", "infra cleanup", "arn infra cleanup", "clean up resources", "destroy expired resources", "check ttl", "check expired", "ttl cleanup", "remove old deployments", "destroy dev environment", "tear down", "teardown infra", "destroy resources", "cleanup ephemeral", "check for expired resources", "clean up infra", "resource cleanup", "destroy old resources", "prune resources", "delete expired deployments", "decommission", or wants to check for and destroy expired ephemeral infrastructure resources. This skill also supports periodic monitoring via `/loop 6h /arn-infra-cleanup` for session-duration TTL enforcement.
79
74%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/arn-infra/skills/arn-infra-cleanup/SKILL.mdQuality
Discovery
72%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description excels at providing trigger terms and establishing a distinct niche for infrastructure TTL cleanup, but it is heavily imbalanced toward 'when to use' at the expense of clearly explaining 'what it does'. The long list of trigger phrases reads more like a keyword dump than a well-structured skill description, and the actual capabilities (e.g., what resources it checks, how it determines expiration, what destruction steps it performs) are barely described.
Suggestions
Add a clear 'what it does' section before the trigger terms, e.g., 'Checks TTL tags on ephemeral infrastructure resources, identifies expired deployments, and destroys them using Terraform/CDK. Supports dev environments, preview deployments, and temporary stacks.'
Restructure to separate capabilities from triggers — lead with concrete actions, then follow with a 'Use when...' clause containing the trigger terms, rather than embedding everything in one long sentence.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description mentions some actions like 'destroy expired resources', 'check ttl', 'remove old deployments', and 'periodic monitoring', but these are mostly embedded within trigger phrases rather than clearly stated as concrete capabilities. It lacks a structured 'what it does' section listing specific actions. | 2 / 3 |
Completeness | The 'when' is extremely well-covered with explicit trigger phrases, but the 'what' is weak — the description never clearly explains what the skill actually does beyond vague references to destroying expired ephemeral infrastructure resources. The description is essentially all triggers with minimal capability explanation. | 2 / 3 |
Trigger Term Quality | The description provides extensive coverage of natural trigger terms users would say, including many variations like 'cleanup', 'infra cleanup', 'tear down', 'teardown infra', 'prune resources', 'decommission', 'destroy dev environment', etc. This is thorough and covers common phrasings. | 3 / 3 |
Distinctiveness Conflict Risk | The skill occupies a clear niche — ephemeral infrastructure TTL cleanup and resource destruction. The specific domain (infrastructure resources, TTL, ARN, ephemeral environments) and the highly specific trigger terms make it very unlikely to conflict with other skills. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured, highly actionable skill for a complex infrastructure cleanup workflow. Its greatest strengths are the clear 7-step workflow with explicit safety gates (never auto-destroy), comprehensive error handling, and concrete executable commands for every supported tool. The main weakness is that the skill is quite long and could benefit from offloading reference material (IaC destroy commands, error handling catalog) to separate files for better progressive disclosure.
Suggestions
Extract the IaC destroy commands table (Step 4) into a separate reference file like `references/destroy-commands.md` to reduce the main skill's length
Move the detailed error handling section to a separate `references/error-handling.md` file, keeping only a brief summary of key error behaviors inline
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly long (~250 lines) but most content is necessary for a complex multi-source, multi-tool workflow. However, there's some verbosity: the IaC destroy command table lists 12 tools when it could reference an external file, the /loop section repeats the 'never auto-destroy' point multiple times, and the error handling section is exhaustive but could be more concise. The prerequisites section explaining how to extract config fields is somewhat verbose but necessary for correctness. | 2 / 3 |
Actionability | The skill provides concrete, executable commands throughout: specific `gh issue list` commands with exact flags, `tofu destroy` with proper `-target` syntax, `gh issue close` commands, and clear table formats for resource presentation. The destroy commands table covers all supported IaC tools with exact CLI syntax. The TTL registry format is specified with a concrete markdown table example. | 3 / 3 |
Workflow Clarity | The 7-step workflow is clearly sequenced with explicit validation and safety checkpoints. Step 3 requires user confirmation before any destruction (with multiple options), Step 4 shows exact commands before execution, and Step 5 updates all tracking sources after success. Error handling covers partial failures, state locks, and already-destroyed resources with clear recovery paths. The feedback loop of 'destroy fails → report error → offer retry or skip → do NOT mark as destroyed' is explicitly stated. | 3 / 3 |
Progressive Disclosure | The skill is a monolithic document with all content inline. The IaC destroy commands table, the TTL registry format, and the error handling section could be split into reference files. It does reference external files (experience-derivation.md, rollback-patterns.md, providers.md, environments.md) appropriately, but the skill body itself is quite long and would benefit from offloading the destroy command reference and error handling to separate files. No bundle files are provided to support progressive disclosure. | 2 / 3 |
Total | 10 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
1fe948f
Table of Contents
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.