CtrlK
BlogDocsLog inGet started
Tessl Logo

ai-persistence

Durability and state persistence for TanStack AI chats with @tanstack/ai-persistence. Routes to server chat persistence (withPersistence), client persistence (localStorage/IndexedDB), the store contracts, and adapter recipes. Distinguishes delivery durability (resumable streams) from conversation state. Use when conversations must survive reloads, multi-device, approvals, or server restarts — NOT for stream reconnect alone.

68

Quality

83%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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 well-structured, information-dense overview that navigates effectively to sub-skills and provides executable scaffolding for the common case. The main opportunities are trimming a few redundant restatements and folding the conformance-testkit checkpoint explicitly into the production workflow sequence.

Suggestions

Remove or condense the 'A replayable stream is not a saved conversation. A saved conversation is not a live stream. Production apps often use both.' restatement, since the delivery-durability vs state-persistence table already makes the distinction.

Integrate the conformance-testkit verification as an explicit step in the 'Recommended production stack' (e.g. step 5: 'Run runPersistenceConformance against your adapter before shipping') rather than only listing it in Critical rules.

Add a one-line inline adapter skeleton or a direct pointer to the smallest recipe inline so the end-to-end sketch is fully executable without jumping to a sub-skill.

DimensionReasoningScore

Conciseness

Dense and assumes Claude's competence throughout (no explanations of SSE, localStorage, or React basics), but a few restatements — e.g. 'A replayable stream is not a saved conversation. A saved conversation is not a live stream.' — re-state what the preceding table already conveyed and could be trimmed.

4 / 5

Actionability

The 'Minimal end-to-end sketch' provides copy-paste-ready server and client TypeScript with concrete imports, and recipe tables route to specific adapter sub-skills; the main gap is that full adapter implementation is delegated rather than shown inline.

4 / 5

Workflow Clarity

The 'Recommended production stack' is a clear 4-step sequence and 'Critical rules' include a verification gate ('Run the conformance testkit'), but the validation checkpoint is not integrated into the numbered workflow and the destructive overwrite semantics lack an inline validate-then-proceed loop.

4 / 5

Progressive Disclosure

A clear overview with well-signaled one-level-deep references: 'Need to... | Read' tables route to specific sub-skill SKILL.md files, bulk detail lives in those sub-skills, and a Cross-references section closes the navigation.

5 / 5

Total

17

/

20

Passed

Description

87%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, specific description that clearly states capabilities and gives concrete, well-bounded trigger guidance including a negative trigger. It is held back only by routing phrasing and minor capability gaps versus full comprehensiveness.

DimensionReasoningScore

Specificity

Lists several concrete capabilities — 'server chat persistence (withPersistence)', 'client persistence (localStorage/IndexedDB)', 'the store contracts, and adapter recipes' — but uses routing language and omits generation persistence, leaving minor coverage gaps rather than comprehensive enumeration.

4 / 5

Completeness

Explicitly answers both 'what' (routes to server/client persistence, store contracts, adapter recipes; distinguishes delivery durability from conversation state) and 'when' ('Use when conversations must survive reloads, multi-device, approvals, or server restarts — NOT for stream reconnect alone').

5 / 5

Trigger Term Quality

Good natural trigger coverage with 'survive reloads, multi-device, approvals, or server restarts' plus 'persistence' and 'stream reconnect', though a few common synonyms a user might say are absent.

4 / 5

Distinctiveness Conflict Risk

Clear niche scoped to @tanstack/ai-persistence with an explicit disambiguator ('NOT for stream reconnect alone'), making conflict with adjacent skills minimal.

5 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
TanStack/ai
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.