CtrlK
BlogDocsLog inGet started
Tessl Logo

eleventy-nunjucks

Build, debug, and review Eleventy v3 sites and Nunjucks templates, including the Build Awesome v4 prerelease migration. Use when asked to "create an 11ty page", "add a Nunjucks filter", "fix my layout chain", "review my .njk template", "set up Eleventy", "migrate to Build Awesome", or "audit my static site"; when `package.json` includes `@11ty/eleventy` or `@awesome.me/buildawesome`; when paths include `.eleventy.js`, `eleventy.config.js`, `.njk`, `.11tydata.js`, `.data.js`, `.11ty.js`, or `.server.js`; or when debugging Nunjucks rendering or Eleventy data cascades, filters, shortcodes, and security. Generic static-site/security topics and `.data.js`/`.server.js` names require confirmed Eleventy or Build Awesome context; standalone Nunjucks work is also in scope.

72

Quality

90%

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

78%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 operational skill body: terse mental-model tables, a non-negotiable rules section, and best-in-class progressive disclosure through a load-condition reference table and a completion gate with validation checks. The main weaknesses are repetition of version-gated guidance across three sections, how-to details that are always deferred to references, and a completion gate without an explicit fix-and-retry loop.

Suggestions

Consolidate version-sensitive claims (3.1.6 baseline, 4.0.0-alpha.10, Node floors) into the single version-boundary blockquote and reference it from the operating procedure and mental-model table instead of restating them, reducing drift-prone repetition.

Add one-line fix-and-revalidate guidance to the Completion gate (e.g., 'if a check fails, fix and re-run before proceeding') or signpost references/troubleshooting.md as the recovery path.

Inline a minimal normalize_path / jsonScript usage example next to the rules that mandate them, so the most common cases are executable without opening references/filters.md.

Tighten the Behavioral evaluations paragraph — it currently spends ~6 lines on meta-commentary that could be reduced to two sentences plus the scenarios.json pointer.

DimensionReasoningScore

Conciseness

The body is dense and operational (tables, priority lists, terse rules) and assumes Claude knows what Nunjucks/static sites are, but version-gated information ("Eleventy `3.1.6` is the stable production baseline", "Build Awesome `4.0.0-alpha.10`", "Node `>=22.15`") recurs across the version-boundary blockquote, operating procedure step 2, and the mental-model table instead of living in one place. The 'Behavioral evaluations' paragraph is also trimmable. Not score 3 — the padding is minor and localized; not score 5 — the repetition is real and the dated version claims add maintenance burden.

4 / 5

Actionability

Concrete guidance dominates: config search order (".eleventy.js, eleventy.config.js, eleventy.config.mjs, eleventy.config.cjs"), the data-cascade priority list, the autoescape truth table, named filters ("use `jsonScript` or `jsonCompact`", "Ship `normalize_path`"), and copy-paste layout snippets. Not score 5 because several in-body rules defer their how-to entirely to references (e.g., normalize_path and jsonScript usage, CSP header examples) without a minimal inline example, leaving minor gaps for the most common cases.

4 / 5

Workflow Clarity

The three-step "Operating procedure" plus the five-item "Completion gate" checklist give a clear sequence with explicit validation checkpoints ("The relevant Eleventy build, dev-server smoke check, or project test command passes", "Rendered output or generated HTML was inspected"). Not score 5 because there is no explicit fix-and-revalidate feedback loop — the gate says what to verify but not what to do when a check fails (error-recovery guidance lives in references/troubleshooting.md rather than being signposted from the gate).

4 / 5

Progressive Disclosure

A clear overview with a "Reference files" table giving per-file load conditions for all 11 references — all of which exist on disk, one level deep — plus an intentional pointer to assets/evals/scenarios.json for evaluation-only use. Core defaults stay inline, details are split out, and the operating procedure explicitly says "Avoid loading every reference unless the change is large." This matches the anchor-5 example's structure exactly.

5 / 5

Total

17

/

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.

An exemplary description: concrete capabilities, an explicit Use-when clause with quoted natural trigger phrases, package identifiers and file extensions, and explicit boundary guidance that prevents over-triggering on generic static-site topics. Voice is third-person imperative throughout and no part is padding.

DimensionReasoningScore

Specificity

"Build, debug, and review Eleventy v3 sites and Nunjucks templates, including the Build Awesome v4 prerelease migration" plus "debugging Nunjucks rendering or Eleventy data cascades, filters, shortcodes, and security" lists multiple concrete actions with comprehensive coverage of the niche. Score 4's 'minor gaps in coverage' does not apply — build, debug, review, migrate, and the enumerated subsystems span the domain.

5 / 5

Completeness

Both halves are explicit: the first sentence states what the skill does, and "Use when asked to... when `package.json` includes `@11ty/eleventy`... or when debugging Nunjucks rendering..." gives concrete trigger phrases. This is a direct match for the anchor-5 example; score 4's 'when could be more explicit' is not the case here.

5 / 5

Trigger Term Quality

Quoted natural phrases users would actually say ("create an 11ty page", "add a Nunjucks filter", "fix my layout chain", "set up Eleventy", "audit my static site") plus synonyms (11ty/Eleventy) and file extensions (.njk, .eleventy.js, .11tydata.js, .server.js). This matches the anchor-5 example's coverage of natural terms, synonyms, and extensions.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Eleventy v3 / Nunjucks / Build Awesome) with distinct triggers, and it proactively disambiguates overlap risk: "Generic static-site/security topics and `.data.js`/`.server.js` names require confirmed Eleventy or Build Awesome context; standalone Nunjucks work is also in scope." Minimal conflict risk.

5 / 5

Total

20

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 deeper-than-1-level

Warning

referenced_paths_exist

Referenced path issues: 1 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository
t4sh/skills4sh
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.