Content
88%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A strong, highly actionable skill body: every step is an executable command, the workflow has explicit validation checkpoints and error-recovery guidance, and it documents non-obvious Fastly CLI/API gotchas Claude would otherwise rediscover by failure. Weaknesses are minor — hard-coded example dates in the time-series commands and a longer-than-necessary inline manual workflow that could be split into a reference file.
Suggestions
Replace the hard-coded dates in the Step 5 time-series commands (2026-08-01 to 2026-08-08) with a parameterized example (e.g., compute the last 7 days from the current date) so the commands stay correct over time.
Move the detailed get-vs-list time-series behavioral differences (output shape, bucket size, zero handling) into a references/timeseries.md file and keep a short summary in the body, shortening the SKILL.md overview.
Show how $WORKSPACE_ID is set from the Step 1 output (e.g., iterate over the listed IDs) so the per-workspace commands in Steps 2-5 run verbatim.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with genuinely non-obvious, skill-specific API lore ("The CLI ignores FASTLY_API_KEY. Its precedence is --token > FASTLY_API_TOKEN > fastly.toml profile"; the 100-item cap with fallback; the get-vs-list output shape, bucket, and zero-handling differences) with no concept explanations Claude already knows. However, the time-series commands hard-code specific dates ("--from=2026-08-01T00:00:00Z --to=2026-08-08T00:00:00Z") without guidance to substitute current dates — time-sensitive values that penalize conciseness per the guidelines. That is a minor instance of content that could be trimmed or genericized, matching anchor 4. Not 5: the fixed dates are unnecessary tokens that will go stale; not 3: the rest of the body is lean with every token earning its place. | 4 / 5 |
Actionability | Every step is a complete, executable command: "fastly ngwaf workspace list --json | jq -r '.data[].id'", "fastly ngwaf workspace rule list --workspace-id \"$WORKSPACE_ID\" --json", a URL-encoded curl query for request logs, the credential-reuse export, and the bundled "bash \"$NGWAF_SKILL_DIR/scripts/assess_ngwaf_rules.sh\"" (verified to exist with matching error handling). Copy-paste ready commands cover the common cases per workspace, matching anchor 5. Not 4: there are no missing key details beyond standard variable substitution. | 5 / 5 |
Workflow Clarity | Five clearly sequenced steps, each with its command and explicit validation checkpoints: "If empty, NGWAF is not configured for this account" (step 1), the per-signal enabled check (step 3), conditional branching "When LOGINATTEMPT is missing or disabled, search recent request logs" (step 4), and the false-positive catch "Attacks above zero with nothing blocked means the workspace is in log or off mode. Report it even when every rule checks out" (step 5). The Error Handling table maps failures to fixes (feedback loop), and Expected Output shows healthy vs unhealthy results. Not 4: validation and error recovery are explicit, not merely implied. The skill is read-only, so the destructive/batch cap on workflow clarity does not apply. | 5 / 5 |
Progressive Disclosure | Good structure: Quick Start, a stepped Audit Workflow, Expected Output, Error Handling, and API References sections; the full audit is correctly delegated to the bundled scripts/assess_ngwaf_rules.sh (verified present), and external links are one level deep with no nested references. However, the ~180-line body inlines the full manual workflow plus the detailed get-vs-list time-series behavioral differences, content that could live in a references/ file; the bundle has only the script and no reference files. Matches anchor 4 ('good structure; most content appropriately placed; minor organization gaps'). Not 5: the body is longer than an overview and buries API behavioral details inline; not 3: sections are clearly signaled and navigation is easy. | 4 / 5 |
Total | 18 / 20 Passed |