CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-generation-persistence

AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation

57

Quality

67%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./plugins/vercel/skills/ai-generation-persistence/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

76%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.

The body is a lean, highly actionable set of persistence patterns with concrete code and a useful anti-patterns section. Its main weaknesses are the absence of validation/error-recovery checkpoints around the database writes and code snippets that depend on undefined surrounding context.

Suggestions

Add validation and error-recovery steps to the persistence workflow — e.g. handle insert failures, mark status 'error' on generation exceptions, and retry or surface failures rather than leaving records stuck in 'pending'.

Make code snippets self-contained: define or annotate where generationId, model, prompt, and estimateCost come from so the examples are copy-paste ready.

Consider moving the full Drizzle schema and the Redis caching pattern into a one-level-deep reference file, keeping SKILL.md as the overview.

DimensionReasoningScore

Conciseness

The body is lean and pattern-driven — Core Rules, code, a storage table, and anti-patterns with no explanation of concepts Claude already knows. Not 4 because the apparent duplication between Core Rules and Anti-Patterns is inverted framing that adds distinct guidance (e.g. 'Client-only state — storing generations only in React state or localStorage'), not trimmable padding.

5 / 5

Actionability

Concrete, mostly executable TypeScript for the redirect pattern, Drizzle schema, image persistence, cost tracking, and Redis caching. Not 5 because several snippets reference undefined identifiers (generationId, estimateCost, model, prompt) and are illustrative rather than fully copy-paste ready.

4 / 5

Workflow Clarity

Core Rules (1-5) and the Generate-Then-Redirect section provide a clear sequence, but there are no validation checkpoints or error-recovery loops for the database operations (insert-then-stream, update-on-complete, status transitions have no failure handling), and the rubric caps database-operation workflows at 3 without feedback loops. Not 4 because checkpoints are absent entirely, not merely minor.

3 / 5

Progressive Disclosure

Well-organized single-file skill with clear sections, a storage-decision table, and consistent file-path comments; no bundle files exist, and most content is appropriately placed inline. Not 5 because the persistence schema and caching detail are self-contained chunks that could live in one-level-deep reference files, and the skill exceeds the under-50-lines simple-skill exception.

4 / 5

Total

16

/

20

Passed

Description

58%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.

The description clearly states what the skill does with a good list of concrete capabilities, but it omits any 'Use when...' trigger guidance and relies on technical phrasing rather than the natural terms users would say when they need this skill. It is distinctive within a clear niche with only minor overlap risk.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user asks to save or persist AI generations, build chat history, or make generations shareable/retrievable by URL.'

Include natural user phrasings and synonyms — 'save generations', 'chat history', 'image generation', 'persist prompts' — so the description matches how users actually express the need.

Mention image/file persistence (Vercel Blob) to close the coverage gap between the description and the skill body's capabilities.

DimensionReasoningScore

Specificity

Names the domain ('AI generation persistence patterns') and lists several concrete capabilities ('unique IDs, addressable URLs, database storage, and cost tracking'), matching the several-specific-actions anchor. Not 5 because 'database storage' is generic and image/file persistence covered by the skill body is absent.

4 / 5

Completeness

The 'what' is clearly stated (IDs, URLs, database storage, cost tracking) but there is no 'Use when...' or equivalent explicit trigger clause, which caps completeness at 3 per the rubric guideline. Not 4 because 'when' is entirely absent rather than merely weakly implied.

3 / 5

Trigger Term Quality

Relevant technical keywords are present ('LLM generation', 'cost tracking', 'database storage') but the natural phrases users would say — 'save chat history', 'persist generations', 'image generation', 'chatbot' — are missing. Not 4 because keyword coverage lacks common synonyms and user-facing phrasings.

3 / 5

Distinctiveness Conflict Risk

A clear niche (persisting LLM generations) with distinct triggers such as 'unique IDs', 'addressable URLs', and 'cost tracking' that few other skills would claim. Not 5 because 'database storage' and 'cost tracking' overlap with generic database and billing/telemetry skills.

4 / 5

Total

14

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository
openai/plugins
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.