CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

tf-best-practices

Best-practice authoring guidance AND a read-only policy gate for AWS Terraform generated by a migration skill. Load during any phase that writes a terraform/ directory — first as the "what to emit" posture rules + security-baseline spec, then after writing as the deterministic policy verdict. Read-only: it reports whether the generated Terraform passes; it never edits .tf files, never touches .phase-status.json, and never decides phase completion. Complements (does not replace) terraform fmt/init/validate.

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

73%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-structured, highly actionable skill body with explicit sequencing, validation checkpoints, and a fix-and-retry feedback loop, plus clean one-level-deep references. Its main weaknesses are repeated restatements of the read-only boundary contract and an inline rule catalog that duplicates reference-file content.

Suggestions

State the read-only boundary contract once in the 'Boundary' section and reference it from Part 2 and the migration-artifacts section instead of restating it four times.

Move the detailed 'Policy rules enforced today' catalog into references/security-posture-rules.md, keeping only a one-line-per-rule summary in SKILL.md since the full spec already lives in the reference.

Add a copy-paste invocation example for scripts/rds_windows.py (matching the style of the other two script commands) and either ship the fixtures/terraform-policy/ directory or drop/qualify the fixture references.

DimensionReasoningScore

Conciseness

Dense and free of known-concept padding, but the read-only/caller-ownership contract is restated at least four times ("Boundary (read this first)", "This unit does not read the caller's artifacts", "the caller owns the fmt/init/validate execution... this unit contributes only the read-only policy stage", "The caller applies the edit; this unit only reports"), and the exit-2 / never-synthesize caveats recur, so it could be meaningfully tightened.

3 / 5

Actionability

Mostly executable: copy-paste invocations for validate-terraform-policy.py and validate-migration-artifacts.py, an exit-code-to-action table, and a complete verdict JSON shape. Minor gaps: rds_windows.py has no invocation example ("Callers use its actual JSON values" with no command), and "$PLUGIN_ROOT/$TERRAFORM_DIR" placeholders must be resolved by the caller.

4 / 5

Workflow Clarity

The two-touchpoint flow is clearly sequenced via the routing table (author → Part 1; validate → Part 2), validation is explicit (exit-code table, "require exit 0" on the report checker, fail-safe exit-2 handling "do not treat as pass"), and the POLICY_FAIL row defines a concrete fix-and-retry feedback loop ("read violations[], edit the named .tf sites, re-run"), with a runnable verification test command.

5 / 5

Progressive Disclosure

Good structure: an overview with a routing table linking both references with a 'why' column, references verified one level deep (they point only to scripts), and all referenced scripts present. Minor gaps: the ~70-line inline policy-rule catalog duplicates the reference file's scope and belongs there, and the referenced fixtures/terraform-policy/ path has no counterpart in the bundle.

4 / 5

Total

16

/

20

Passed

Description

87%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 in third-person voice that clearly states both purpose and explicit load triggers, with concrete boundary statements (read-only, never edits .tf files) and good differentiation from related tooling. Its only weakness is mild genericness in "best-practice authoring guidance" and a few missing natural synonyms.

DimensionReasoningScore

Specificity

Lists several concrete functions — "read-only policy gate", "reports whether the generated Terraform passes", "never edits .tf files, never touches .phase-status.json" — but "best-practice authoring guidance" is a mildly generic action and the concrete policy checks are not enumerated, so coverage has minor gaps rather than being comprehensive.

4 / 5

Completeness

Explicitly answers both: what ("Best-practice authoring guidance AND a read-only policy gate for AWS Terraform") and when ("Load during any phase that writes a terraform/ directory"), with the before/after sequencing adding further trigger specificity. Not a 4 because the 'when' clause is already fully explicit, not merely implied or vague.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "AWS Terraform", "terraform/ directory", ".tf files", "migration skill", "terraform fmt/init/validate". A few natural variants users might say ("IaC", "infrastructure as code", "HCL") are missing, keeping it just below comprehensive.

4 / 5

Distinctiveness Conflict Risk

Clear niche (policy gate for migration-generated AWS Terraform) with a distinct trigger surface, and it explicitly differentiates itself from adjacent tooling ("Complements (does not replace) terraform fmt/init/validate"), minimizing wrong-skill triggering.

5 / 5

Total

18

/

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.

Repository

aws/agent-toolkit-for-aws

Path

plugins/aws-startup-advisor/skills/tf-best-practices/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.