CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

xvcl

Extends Fastly VCL with loops, functions, constants, macros, conditionals, and includes via XVCL — a VCL transpiler that compiles .xvcl files into standard VCL. Use when writing VCL for Fastly, working with .xvcl files, generating repetitive VCL (multiple backends, routing rules, headers) with loops, defining reusable VCL functions with return values, using compile-time constants instead of magic numbers, or writing any Fastly VCL configuration. XVCL syntax is not in training data so this skill is required. Also applies when writing and testing VCL locally (compile with `uvx xvcl`, test with falco), reducing VCL code duplication, splitting large VCL into modular includes, or doing any VCL development task for Fastly — even without explicitly mentioning XVCL.

74

Quality

93%

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

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

Excellent actionability and reference structure: executable code throughout, a clear compile-lint-simulate workflow, and a well-organized one-level-deep reference bundle covering all cited topics. Weaknesses are minor — some repeated guidance (table-vs-if-chain stated three times, trigger scope duplicated from frontmatter) and the absence of an explicit error-recovery loop after lint or compile failures.

Suggestions

State the prefer-tables-over-if-chains guidance once (e.g., keep it in 'Tables with Loops' and reference it from 'Common Mistakes' with a single line) — it currently appears three times in close proximity.

Trim or compress the 'Trigger and scope' section, which duplicates the frontmatter description's trigger guidance and adds little for in-session execution.

Add an explicit feedback loop after the lint/compile steps, e.g. 'If falco lint reports errors, fix the .xvcl source and recompile — do not edit the generated .vcl', to close the workflow's only validation gap.

DimensionReasoningScore

Conciseness

The body is dense and code-heavy, and XVCL syntax is genuinely out-of-training-data so directive explanations earn their tokens. However, the prefer-tables-over-if-chains guidance is stated three times (in 'Tables with Loops' twice and again in 'Common Mistakes'), and the 'Trigger and scope' section restates frontmatter content. This matches the 4 anchor ('efficient; minor instances of over-explanation that could be trimmed') rather than 5 ('every token earns its place').

4 / 5

Actionability

Fully executable throughout: copy-paste compile/lint/simulate commands with a curl test, a complete minimal working example, per-directive syntax blocks, and a compilation options table. This matches the 5 anchor ('fully executable; copy-paste ready code or commands; specific examples cover the common cases') — no pseudocode and no missing key details.

5 / 5

Workflow Clarity

The write → compile (`uvx xvcl`) → lint (`falco lint`) → simulate (`falco simulate`) → curl sequence is clear with most checkpoints present, plus useful guardrails ('Linting alone does not execute the VCL', backend naming rules). It falls short of 5 because there is no explicit fix-and-retry loop when compilation or linting fails. No destructive/batch operations, so the workflow cap at 3 does not apply.

4 / 5

Progressive Disclosure

The body is a genuine overview: directive syntax is summarized inline with complete detail pushed to references/xvcl-directives.md, and a 10-row references table with a 'Use when...' column provides well-signaled, one-level-deep navigation (all files verified to exist, flat in references/). This matches the 5 anchor ('clear overview with well-signaled one-level-deep references; easy navigation').

5 / 5

Total

18

/

20

Passed

Description

96%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: concrete, comprehensive capability list in third person, explicit 'Use when' triggers with natural synonyms and file extensions, and a distinct niche. The only weakness is the intentionally broad 'any VCL development task for Fastly' catch-all, which slightly raises conflict risk with non-XVCL VCL work.

DimensionReasoningScore

Specificity

Lists multiple concrete capabilities — 'loops, functions, constants, macros, conditionals, and includes', 'compiles .xvcl files into standard VCL' — with comprehensive coverage of the transpiler's feature surface in third-person voice. This matches the 5 anchor ('lists multiple specific concrete actions; comprehensive coverage') rather than 4, since no significant capability area is missing.

5 / 5

Completeness

Explicitly answers both questions: what ('Extends Fastly VCL with... a VCL transpiler that compiles .xvcl files into standard VCL') and when ('Use when writing VCL for Fastly, working with .xvcl files, generating repetitive VCL...'). This matches the 5 anchor exactly — clear what AND when with concrete trigger phrases; not 4 since the 'when' clause leaves nothing implicit.

5 / 5

Trigger Term Quality

Covers natural user phrasing and synonyms comprehensively: 'writing VCL for Fastly', '.xvcl files', 'multiple backends, routing rules, headers', 'reusable VCL functions', 'compile with `uvx xvcl`, test with falco', 'reducing VCL code duplication', 'modular includes'. Includes the file extension and both natural and technical terms, matching the 5 anchor; no common variation a user would say is absent.

5 / 5

Distinctiveness Conflict Risk

The XVCL/Fastly-VCL transpiler niche is distinct with dedicated triggers, but 'doing any VCL development task for Fastly — even without explicitly mentioning XVCL' deliberately broadens the scope, creating minor overlap risk with a hypothetical plain-Fastly-VCL skill. This sits between the 4 anchor ('mostly distinct; minor overlap risk') and 5 ('clear niche... minimal conflict risk') — noticeably above midpoint but the catch-all phrasing keeps it from a clean 5.

4 / 5

Total

19

/

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/xvcl/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.