Content
71%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 with complete executable examples and Netlify-specific footguns (ordering, caching, limits) that Claude cannot know from general knowledge. Its weaknesses are redundancy — the appended house-rules section restates several footguns and body sections — a monolithic single-file layout with no reference-file split, and the absence of a consolidated validation-loop workflow.
Suggestions
De-duplicate the 'Netlify house rules' section: rules 2, 3, 5, 6, and 7 restate the '/*' footgun, the no-route silent no-op, the both-parts caching rule, the two-pass order loop, and the context.user guidance already present in the body; keep only net-new rules (adapter-first check, edge-vs-serverless workload choice).
Move the Context property table, declarations/order details, and limits into one-level-deep reference files (e.g., references/context.md, references/declarations.md, references/limits.md) linked from SKILL.md, keeping the body as an overview with the quick-start and footguns.
Add a consolidated dev-loop sequence — write handler + config → netlify dev → verify with --geo/--edge-inspect → deploy (CLI ≥ 12.2.8) → check Edge Functions logs — with explicit verification checkpoints between steps.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is mostly efficient — terse tables, footgun bullets, and no explanations of concepts Claude already knows — but the appended "Netlify house rules" section restates body content: "path: "/*" intercepts every request" repeats the footgun "path: "/*" runs on every request"; "Cache headers ... do nothing without cache: "manual"" repeats "Caching needs both parts"; rule 6's two-pass loop repeats the Order section; rule 7 repeats the user-gate section. Meta HTML comments ("Gaps:", "Undocumented:", the system marker) add further tokens. This is more than anchor 4's "minor instances of over-explanation" — several unnecessary duplicated passages that could be trimmed, fitting anchor 3. | 3 / 5 |
Actionability | Nine complete, executable examples cover the common cases: the middleware transform with "await context.next()", the caching example pairing "cache: "manual"" with "cache-control: public, s-maxage=3600", the body-read example "context.next(new Request(req, { body: JSON.stringify(body) }))", and the streaming SSR .tsx handler. Concrete commands are given ("npm install netlify-cli -g", "netlify dev", "--geo=mock --country=DE", "--edge-inspect"), matching anchor 5's copy-paste-ready coverage. | 5 / 5 |
Workflow Clarity | The dev/debug/deploy path is concrete with verification aids ("Debug with --edge-inspect or --edge-inspect-brk", "Mock location with --geo=mock", "context.user is undefined locally") and the onError table gives an explicit fail-closed/fail-open policy ("Fail closed for critical logic ... Fail open (bypass) for nice-to-haves"). However, there is no consolidated write → test → verify → deploy → check-logs sequence with explicit validation checkpoints; the workflow pieces are scattered across sections, so it sits above anchor 3 ("checkpoints missing or implicit") but below anchor 5 (no explicit validate-and-retry loop). | 4 / 5 |
Progressive Disclosure | No bundle files exist (no references/, scripts/, or assets/ directories), so the entire API reference — the Context property table, the declarations and two-pass order details, the limits table — is inlined in a ~315-line single file, far beyond the under-50-line simple-skill exemption. In-file structure is good (clear headers, tables) and official docs are linked at the end ("API · Declarations · Optional configuration · Limits"), but content that should be split into one-level-deep reference files is inline, matching anchor 3 ("content that should be separate is inline") rather than anchor 4, whose example has the bulk in a separate file. | 3 / 5 |
Total | 15 / 20 Passed |