CtrlK
BlogDocsLog inGet started
Tessl Logo

netlify-blobs

Store and retrieve unstructured data like file uploads, images, documents, JSON, and cache-like state with Netlify Blobs. It is a zero-config key/value store accessible from Functions, Edge Functions, and Build Plugins. Reach for this when you handle a file or image upload, persist Background Function output like sitemaps or processed media, cache API responses, store per-deploy assets, or need a simple key/value store from a serverless function. Covers creating site and deploy stores, reading and writing values and JSON, listing keys with metadata, atomic conditional writes, consistency modes, region selection, and file-based uploads. Not for per-user, transactional, or relational data — use Netlify DB for that.

67

Quality

80%

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

Fix and improve this skill with Tessl

tessl review fix ./codex/skills/netlify-blobs/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

65%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 dense, expert-oriented reference with genuinely valuable footgun warnings and mostly executable examples. The main weaknesses are the absence of any progressive disclosure (the full API reference is inlined with no bundle files), placeholder pseudocode in a few snippets, and no validation workflow around destructive operations like deleteAll and the region-migration path.

Suggestions

Split the 'API surface' section into a references/ file (e.g., references/api.md) and keep only the store-opening calls and 2–3 most-used methods in SKILL.md, linking to the rest.

Replace the '{ … }' placeholder snippets in 'Common tasks' with small runnable examples so every code block is copy-paste ready.

Add a short verification step for destructive operations — e.g., list keys (or getMetadata) before deleteAll, and confirm data exists in the new region after the region-copy migration before deleting from the old region.

DimensionReasoningScore

Conciseness

Largely lean and reference-style: no padding explaining what key/value stores are, and footguns are stated as terse bullets. Kept at 4 rather than 5 because several snippets use '{ … }' placeholder bodies and some prose (e.g., the duplicated region gotcha in two sections) could be tightened. Not a 3 because there is no unnecessary conceptual explanation — every section adds non-obvious information.

4 / 5

Actionability

Mostly executable: the upload Function example, the onlyIfNew example with a 'modified' check, and the region/listing snippets are copy-paste ready. Not a 5 because a few snippets are placeholder pseudocode ('store.set(key, value, { metadata: { … } })', 'setJSON(key, data, { metadata: { … } })') rather than runnable code.

4 / 5

Workflow Clarity

Content is well organized (footguns first, then store selection, tasks, API surface, configuration) and the conditional-write example shows a real validation checkpoint ('Inspect the returned modified boolean'). However the skill documents destructive and batch operations (delete, deleteAll, region changes that strand data, the v7 migration) without any verification workflow, which the rubric explicitly caps at 3.

3 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), and the full API surface reference plus migration and file-upload details are all inlined in SKILL.md. Section headers are clear and well-ordered, which keeps it above 2, but the API reference block is exactly the 'content that should be separate is inline' pattern from the anchor-3 example. Not a 4 because there is no one-level-deep external file split at all — the single file carries overview, reference, and advanced material.

3 / 5

Total

14

/

20

Passed

Description

95%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 capability list, explicit use-when triggers, and clear negative boundaries that disambiguate it from Netlify DB. The only deduction is the second-person phrasing in the trigger clause, which the rubric penalizes on specificity.

Suggestions

Rewrite the trigger clause in third person (e.g., 'Use when handling a file or image upload' instead of 'Reach for this when you handle...') to satisfy the third-person voice guideline.

Consider adding a synonym such as 'blob storage' or 'object storage' to the trigger terms for users who describe the capability generically.

DimensionReasoningScore

Specificity

Lists multiple concrete actions comprehensively ('creating site and deploy stores, reading and writing values and JSON, listing keys with metadata, atomic conditional writes, consistency modes, region selection, and file-based uploads'), matching the anchor-5 example. Reduced by 1 per the rubric guideline because the description slips into second person ('Reach for this when you handle a file or image upload').

4 / 5

Completeness

Explicitly answers both: what ('Store and retrieve unstructured data... zero-config key/value store accessible from Functions, Edge Functions, and Build Plugins') and when ('Reach for this when you handle a file or image upload, persist Background Function output... cache API responses... or need a simple key/value store from a serverless function'), plus an explicit negative boundary ('Not for per-user, transactional, or relational data — use Netlify DB').

5 / 5

Trigger Term Quality

Covers natural phrases users would actually say: 'file or image upload', 'cache API responses', 'key/value store', 'JSON', 'serverless function', 'per-deploy assets', 'sitemaps', and 'processed media'. Not a 4 because coverage includes both task-level and object-level terms with variations, leaving few plausible natural terms missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Netlify Blobs) with distinct triggers and an explicit disambiguation against Netlify DB, so it is unlikely to fire for the wrong skill. Not a 4 because the boundary guidance is more explicit than the 'minor overlap risk' anchor.

5 / 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
netlify/context-and-tools
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.