CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

fastly-ngwaf

Performs an internal audit of Fastly Next-Gen WAF (NGWAF) workspaces to audit that critical templated protection rules are configured and enabled. Use when auditing NGWAF workspace security posture, checking for missing or disabled login protection rules (LOGINDISCOVERY, LOGINATTEMPT, LOGINSUCCESS, LOGINFAILURE), auditing credit card validation rules (CC-VAL-ATTEMPT, CC-VAL-FAILURE, CC-VAL-SUCCESS), auditing gift card protection rules (GC-VAL-ATTEMPT, GC-VAL-FAILURE, GC-VAL-SUCCESS), identifying potential login endpoints not covered by NGWAF rules, or comparing attack traffic against blocked traffic to confirm enabled rules are actually blocking.

95

1.58x
Quality

95%

Does it follow best practices?

Impact

95%

1.58x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 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.

DimensionReasoningScore

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

Description

100%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.

The description excels across all dimensions: it names concrete actions with specific rule identifiers, provides explicit 'Use when' trigger scenarios in natural language, answers both what and when clearly, and occupies a distinct niche with minimal conflict risk. The only nit is the slightly redundant phrasing 'Performs an internal audit... to audit that', which does not affect scoring.

DimensionReasoningScore

Specificity

Quotes: "audit that critical templated protection rules are configured and enabled", "checking for missing or disabled login protection rules (LOGINDISCOVERY, LOGINATTEMPT, LOGINSUCCESS, LOGINFAILURE)", "auditing credit card validation rules (CC-VAL-ATTEMPT, CC-VAL-FAILURE, CC-VAL-SUCCESS)", "identifying potential login endpoints not covered by NGWAF rules", "comparing attack traffic against blocked traffic to confirm enabled rules are actually blocking". Multiple specific concrete actions with named signal identifiers across three rule categories plus endpoint discovery and traffic analysis — comprehensive coverage matching the anchor 5 example. Not 4: there are no gaps in action coverage; every capability of the skill is enumerated concretely.

5 / 5

Completeness

Quotes: "Performs an internal audit of Fastly Next-Gen WAF (NGWAF) workspaces to audit that critical templated protection rules are configured and enabled" (explicit what) and "Use when auditing NGWAF workspace security posture, checking for missing or disabled login protection rules..., or comparing attack traffic against blocked traffic to confirm enabled rules are actually blocking" (explicit when with concrete trigger phrases). Both what and when are explicit and concrete, matching anchor 5. Not 4: the when clause is fully explicit with enumerated scenarios rather than merely present or generic.

5 / 5

Trigger Term Quality

Quotes: "Use when auditing NGWAF workspace security posture", "checking for missing or disabled login protection rules", "auditing credit card validation rules", "gift card protection rules", "attack traffic against blocked traffic", and the name/abbreviation pair "Fastly Next-Gen WAF (NGWAF)". These are the natural phrases a user auditing a WAF would say, with synonyms covered (full product name and abbreviation, security posture, blocked vs attack traffic). Not 4: no common natural variation is missing.

5 / 5

Distinctiveness Conflict Risk

Quotes: "Fastly Next-Gen WAF (NGWAF) workspaces", "NGWAF workspace security posture", "LOGINDISCOVERY", "CC-VAL-ATTEMPT", "GC-VAL-ATTEMPT". A clear niche (auditing Fastly NGWAF workspace configuration) with product-specific signal names as triggers; virtually no overlap risk with other skills. Not 4: the triggers are uniquely tied to this product and audit task, not merely mostly distinct.

5 / 5

Total

20

/

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

fastly/fastly-agent-toolkit

Path

skills/fastly-ngwaf/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.