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.

1.78x
Quality

95%

Does it follow best practices?

Impact

100%

1.78x

2 of 3 eval scenarios. Add 1 more for a full score.

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 highly actionable, well-sequenced audit procedure: executable commands with every required flag, explicit validation checkpoints (rule presence, uncovered endpoints, attack-vs-blocked traffic), error recovery, and a properly referenced bundled script. The only deductions are minor: hardcoded example dates and a few self-evident error-table rows cost conciseness, and the CLI gotchas are inlined rather than split into a reference file.

Suggestions

Replace the hardcoded dates in the time-series examples ('--from=2026-08-01T00:00:00Z --to=2026-08-08T00:00:00Z') with guidance on computing a recent range (e.g., last 7 days relative to run time), since copied commands will silently query stale windows.

Trim the Error Handling rows whose fixes Claude already knows ('jq is not installed' → install jq; 'curl is not installed') and keep only the non-obvious cases (token scope 403, FASTLY_API_KEY precedence).

Move the time-series 'get vs list' behavioral differences (output shape, bucket size, zero handling) into a references/ file (e.g., references/timeseries.md), keeping a one-line pointer in Step 5, to shorten the main SKILL.md.

DimensionReasoningScore

Conciseness

The body is dense and operational — it never explains what a WAF, jq, or curl is, and the time-series 'get vs list' gotchas (output shape, bucket size, zero handling) are exactly the non-obvious knowledge Claude lacks. Not 5: hardcoded time-sensitive example dates ('--from=2026-08-01T00:00:00Z') sit outside any old-patterns section, and a few Error Handling rows ('jq is not installed' → 'brew install jq') state fixes Claude already knows — minor over-explanation that could be trimmed. Not 3: nothing is concept over-explanation and nearly every sentence carries skill-specific information.

4 / 5

Actionability

Every step ships a complete, copy-paste-ready command with all required flags — 'fastly ngwaf workspace list --json | jq -r '.[].id'', the fully encoded curl URL for the requests API, and time-series invocations specifying '--metrics', '--granularity', and RFC 3339 timestamps — plus a bundled runnable script ('bash "$NGWAF_SKILL_DIR/scripts/assess_ngwaf_rules.sh"') covering the common case. Matches anchor 5: fully executable commands covering the common cases; no pseudocode or missing-key-detail gaps.

5 / 5

Workflow Clarity

A clearly sequenced 5-step workflow where steps 3–5 are themselves validation checkpoints, each with an interpretation rule ('If empty, NGWAF is not configured', 'When LOGINATTEMPT is missing or disabled, search recent request logs', 'Report it even when every rule checks out'), plus an Error Handling table for recovery and Expected Output healthy/unhealthy examples. The audit is read-only, so the destructive/batch validation cap does not apply. Not 4: checkpoints are explicit at every step, not merely present.

5 / 5

Progressive Disclosure

The single bundle file (scripts/assess_ngwaf_rules.sh) is real and clearly signaled in Quick Start with its exact invocation path, one level deep with no nesting, and the design is sound — run the bundled script as the primary path, manual steps inline as fallback. Not 5: all reference material lives inline in the ~175-line body (time-series get/list gotchas, expected-output examples) with no references/ split, so 'content appropriately split' is only partially met. Not 3: structure is good, the existing reference is clearly signaled rather than buried, and navigation via section headers 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.

A strong description: third-person, explicit 'Use when...' triggers with concrete phrases, comprehensive enumeration of the skill's audit actions, and a tightly scoped NGWAF niche that avoids conflicts. Its length reflects trigger enumeration for five distinct audit scenarios rather than padding, so no dimension is penalized.

DimensionReasoningScore

Specificity

Enumerates multiple concrete actions — 'audit that critical templated protection rules are configured and enabled', 'checking for missing or disabled login protection rules', 'identifying potential login endpoints not covered by NGWAF rules', 'comparing attack traffic against blocked traffic' — covering every capability of the skill. This matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage' rather than 4, since no capability gap exists (the triggers mirror the full audit workflow).

5 / 5

Completeness

Explicitly answers both: what ('Performs an internal audit of Fastly Next-Gen WAF (NGWAF) workspaces to audit that critical templated protection rules are configured and enabled') and when ('Use when auditing NGWAF workspace security posture, checking for missing or disabled login protection rules...'), with concrete trigger phrases for each scenario. Clear anchor-5 match; the 'Use when' clause is present and specific.

5 / 5

Trigger Term Quality

Natural phrases a user would say are comprehensively covered: 'auditing NGWAF workspace security posture', 'missing or disabled login protection rules', 'credit card validation rules', 'gift card protection rules', 'attack traffic against blocked traffic', with the abbreviation expansion 'Fastly Next-Gen WAF (NGWAF)' providing synonym coverage. Not 4: the enumerated triggers already cover the common variations ('audit my WAF rules', 'check disabled rules'); the signal names supplement rather than replace natural terms.

5 / 5

Distinctiveness Conflict Risk

Scoped to a clear niche — auditing Fastly Next-Gen WAF workspaces — with distinct triggers (NGWAF signal names, login/CC/GC rule auditing, attack-vs-blocked traffic) that no generic security or Fastly-adjacent skill would claim. Minimal conflict risk, matching the anchor-5 example's profile.

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.