Content
75%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 dense, highly actionable reference that teaches by executable example and correctly quarantines legacy material — its actionability is top-tier. The two real costs are the appended house-rules section that duplicates content already present in the body, and the absence of any explicit verification step in the local-test→deploy flow.
Suggestions
Remove or deduplicate the appended 'Netlify house rules' section: nearly every rule (geo mocking, memory/vcpu and region warnings, fs.readFile not bundled, ~4 KB env cap, headers-only-static, cron UTC conversion, context.user undefined handling) is already stated in the body above; keep only rules that add new guidance (e.g., the no-stub rule and the background-flag version-skew rule).
Add an explicit verification checkpoint to the local-testing flow, e.g. 'curl the local endpoint (http://localhost:8888/.netlify/functions/<name>) to confirm the response before deploying'.
Consider splitting detail-heavy tail sections (platform-event handler tables, region/memory configuration, and the legacy Lambda-compat example) into one-level-deep reference files so SKILL.md stays a lean overview.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The main body is extremely lean — every section is dense, high-signal Netlify-specific fact with no explanation of concepts Claude already knows — but the appended "Netlify house rules" section (~70 lines) restates rules already covered above it (geo mocking under netlify dev, memory/vcpu and region warnings, fs.readFile not bundled, the ~4 KB env-var cap, headers-only-static, cron UTC conversion, context.user undefined handling). That systematic duplication fits 'Mostly efficient but includes some unnecessary explanation or could be tightened' — below 4 because the redundancy is a whole padded section rather than minor instances, above 2 because the primary content explains nothing Claude already knows. | 3 / 5 |
Actionability | Every section ships copy-paste-ready executable code: the minimal default handler, path routing with `export const config`, a complete whoami function handling `context.user` being undefined, streaming, background, scheduled, and typed platform-event handlers, plus concrete commands (`netlify dev --geo=mock --country=DE`, `netlify functions:invoke <name>`, `npm install @netlify/functions`). This matches 'Fully executable; copy-paste ready code or commands; specific examples cover the common cases'; the only placeholder is the intentional comment in the generic background example. | 5 / 5 |
Workflow Clarity | The document progresses in a clear sequence (file locations → minimal function → routing → context/config → advanced modes → limits → local testing → deploy → legacy), and the ⚠️ callouts act as checkpoints (redeploy after env/region changes, verify geo on a deploy, keep functions outside the publish directory). It sits at 'Clear sequence with most checkpoints present; minor validation gaps' — not 5 because the local-test→deploy flow has no explicit verify step (e.g., curl the local endpoint before deploying), and not 3 because sequencing and warnings provide real checkpoints rather than implicit ones. | 4 / 5 |
Progressive Disclosure | No bundle files exist (no references/, scripts/, or assets/), and the single file is well organized with clear ## headers, ⚠️ callouts, and legacy/deprecated material quarantined in a closing section. This fits 'Good structure; most content is appropriately placed... minor organization gaps' — the gap being that at ~315 lines, detail-heavy sections (platform-event handler tables, region/memory specifics, the Lambda-compat example) could live in one-level-deep reference files. Not 3, since nothing is buried and navigation is easy; not 5, since the simple-skill exception (<50 lines, no need for references) does not apply to a file this long. | 4 / 5 |
Total | 16 / 20 Passed |