Content
65%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 excellent non-obvious operational knowledge and executable code throughout. Main weaknesses are a ~20-line duplicated house-rules tail, no validation checkpoint around the destructive deleteAll/migration paths, and a monolithic single-file structure where a references/ split would ease navigation.
Suggestions
Remove or replace the appended "Netlify house rules (blobs)" section with cross-references to the sections above — it duplicates six points already stated in the body (~20 wasted lines).
Add a validation step before destructive/batch operations: e.g., list keys and confirm scope (site-wide vs deploy store) before `deleteAll()`, and verify the copy completed before deleting from the old region during a region migration.
Split detail-heavy sections (regions, file-based uploads, module version migration) into references/ files linked from a shorter overview body, shortening SKILL.md's inline API reference.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with genuinely non-obvious facts (region footguns, deploy-store scoping, build-plugin read/write asymmetry) and mostly earns its tokens, but the appended "Netlify house rules (blobs)" section restates six points already covered verbatim above ("Blobs is not a database", "Site-scoped stores are shared across ALL deploy contexts", CLI inspection, access control, build-plugin both halves, no read-modify-write) — roughly 20 lines of duplication that could be trimmed. This fits the level-3 anchor ("mostly efficient but includes some unnecessary explanation or could be tightened") better than level 4, whose "minor instances" wouldn't cover a fully duplicated section; level 2 would require pervasive padding, which is not the case. | 3 / 5 |
Actionability | Nearly every section is copy-paste-ready executable code: a complete upload Function (formData → uuid key → set with metadata), a reading Function with a 404 branch, conditional writes via onlyIfNew/onlyIfMatch with modified checks, list/paginate loops, TTL-by-metadata, consistency opts, region-scoped getStore calls, and a runnable migration command (`netlify recipes blobs-migrate YOUR_STORE_NAME`). Common cases are covered with concrete code and specific failure behaviors (null returns, `modified: false`, InvalidBlobsRegionError), matching the level-5 anchor exactly; level 4 would require minor gaps in coverage of common cases. | 5 / 5 |
Workflow Clarity | The destructive/batch cap applies: `deleteAll()` is shown as "deletes every object = deletes the store" with no verification step (e.g., list and review keys before wiping a store), and the region-migration workflow ("copy each entry to a store opened in the new region, then delete from the old") has clear ordering but no checkpoint that the copy succeeded before deleting. Per the rubric, missing validation in destructive/batch operations caps this at 3 even though other loops are good (`if (!modified)` responses, etag freshness checks, `entry === null` 404 handling, the TTL check-then-delete read loop); level 4 would require most destructive-path checkpoints present. | 3 / 5 |
Progressive Disclosure | There is no bundle (no references/, scripts/, or assets/) and the body is a single ~230-line file containing the full API surface inline — constraints tables, region lists, file-based upload layout, migration recipe — which matches the level-3 anchor ("content that should be separate is inline", e.g. "200 lines of API reference that could be in a separate file"). Headers are clear and external links (CLI reference, official docs) are well signaled, so it is above level 2's "minimal structure / buried references", but it falls short of level 4's "most content is appropriately placed" since no material is split out despite the length. | 3 / 5 |
Total | 14 / 20 Passed |