Cloudflare D1 SQLite database with Workers, Drizzle ORM, migrations
38
37%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/cloudflare-d1/SKILL.mdQuality
Discovery
32%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description reads more like a tag list than a proper skill description—it names the technology stack but fails to describe concrete actions or specify when the skill should be selected. It lacks a 'Use when...' clause and doesn't articulate what the skill actually does beyond listing technologies.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Creates and manages Cloudflare D1 SQLite databases, defines Drizzle ORM schemas, generates and runs migrations, and configures Worker bindings.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when the user asks about Cloudflare D1 databases, Drizzle ORM setup, D1 migrations, wrangler database bindings, or serverless SQLite on Cloudflare Workers.'
Include common user-facing variations like 'wrangler', 'database schema', 'D1 binding', and 'serverless database' to improve trigger term coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Cloudflare D1 SQLite database) and some associated technologies (Workers, Drizzle ORM, migrations), but doesn't list concrete actions like 'create schemas', 'run migrations', 'query data', or 'configure bindings'. | 2 / 3 |
Completeness | Lists technologies (partial 'what') but provides no 'when' clause or explicit trigger guidance. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' is also weak—it's more of a keyword list than a description of what the skill does—so it scores 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Cloudflare D1', 'SQLite', 'Workers', 'Drizzle ORM', and 'migrations' that users might mention, but misses common variations like 'database queries', 'schema', 'wrangler', 'bindings', or 'serverless database'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of 'Cloudflare D1' and 'Drizzle ORM' is fairly niche, but without explicit actions or trigger guidance, it could overlap with general Cloudflare Workers skills or generic SQLite/database skills. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill is highly actionable with excellent, executable code examples covering the full D1 + Drizzle stack. However, it is far too verbose for a skill file—it reads more like comprehensive documentation than a concise skill, with extensive query catalogs and full application boilerplate that Claude can generate on its own. The content would benefit greatly from splitting into a lean overview with references to detailed sub-files.
Suggestions
Reduce the SKILL.md to ~100 lines covering setup, migration workflow, and key patterns, moving the full query catalog, Worker implementation, and testing examples into separate referenced files (e.g., QUERIES.md, WORKER_EXAMPLES.md, TESTING.md).
Remove content Claude already knows: full CRUD endpoint implementations, basic select/join/insert patterns, and Vitest test structure. Focus on D1-specific gotchas and configuration.
Add explicit validation checkpoints to the migration workflow: verify migration SQL before applying to production, check migration status after applying, and include error recovery steps if a migration fails.
Add a progressive disclosure structure with a quick-start section (under 30 lines) and clearly signaled links to detailed reference files for query patterns, multi-environment setup, and testing.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~400+ lines, including extensive CRUD examples, full Worker implementations, complete query pattern catalogs, and testing boilerplate that Claude already knows how to write. The component table, limits table, and anti-patterns list add some value, but the bulk of the content (full Hono app, raw D1 API, every query pattern) is reference material that doesn't need to be in a skill file. | 1 / 3 |
Actionability | Every section contains fully executable, copy-paste ready code with concrete commands. The setup flow from project creation through deployment is complete with real CLI commands and working TypeScript examples. | 3 / 3 |
Workflow Clarity | The migration workflow has clear steps (generate → apply local → apply remote) and includes a dry-run option, but lacks explicit validation checkpoints and error recovery loops. There's no 'if migration fails, do X' guidance, and the production deployment workflow doesn't include verification steps after applying migrations. | 2 / 3 |
Progressive Disclosure | Everything is inlined in a single monolithic file with no references to supporting files. The full query patterns catalog, complete Worker implementation, testing setup, and multi-environment configuration could all be split into separate reference files, keeping the SKILL.md as a concise overview. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (661 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
65efb33
Table of Contents
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.