CtrlK
BlogDocsLog inGet started
Tessl Logo

storing-data

How to store application data in agent-native apps. All data lives in SQL. Use when adding data models, deciding where to store data, or reading/writing application data.

63

Quality

79%

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 ./.agents/skills/storing-data/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.

A highly actionable, information-dense skill that gives concrete commands, code, and decision tables for every storage scenario, with only minor verbosity. Its principal gap is the absence of explicit validation/verification checkpoints in the database-mutation workflows (migrations, db-patch, db-exec), which the rubric caps at 3 for workflow clarity.

Suggestions

Add an explicit verification step after database mutations, e.g. re-read the row with `pnpm action db-query` after `db-patch`/`db-exec` to confirm the edit landed, and run `pnpm action db-schema` after `pnpm db:migrate` to confirm the new tables/columns exist.

Frame migration and batch-edit workflows as numbered sequences with an inline checkpoint (generate → review the generated SQL → migrate → verify), so the existing `guard:additive-migrations` enforcement becomes a visible step rather than a passing mention.

Tighten the migration 'Why:' paragraph and the binary-payload enumeration into one or two lines each; both restate context the surrounding rules already imply.

DimensionReasoningScore

Conciseness

The body is dense with project-specific knowledge Claude cannot infer (core stores table, migration naming policy, db-exec vs db-patch decision matrix, identity-column registration), so nearly every section earns its tokens. It is not a 5 because a few passages over-explain — e.g., the multi-sentence 'Why: version numbers alone are not a safe identity' paragraph and the enumerated list of binary payload types that could be tightened — and not a 3 because padding is minor rather than a pattern.

4 / 5

Actionability

Guidance is fully executable throughout: copy-paste Drizzle schema code, `registerIdentityColumns` examples with realistic argument shapes, exact commands (`pnpm db:generate`, `pnpm db:migrate`, `pnpm action db-patch --table <t> ... --find "<old>" --replace "<new>"`), React Query hook snippets, and a scenario table covering the common db-exec/db-patch cases. It is not a 4 because even edge cases (batched statements, attachment refs, local file mode) carry concrete commands and typed error handling rather than hints.

5 / 5

Workflow Clarity

Sequences exist (managed-scaffold flow: define in drizzle/schema.ts → `pnpm db:generate` → `pnpm db:migrate`; deploy: set `DATABASE_URL` → keep Postgres-compatible), but validation/verification checkpoints are implicit or absent for database operations — there is no 'verify the row/schema after db-patch or db-migrate' step, only a passing mention of `guard:additive-migrations`. Per the rubric cap, missing feedback loops for database operations holds this at 3; it is not a 2 because sequences themselves are clearly defined and partially gated (fail-closed storage errors, typed attachment-ref errors).

3 / 5

Progressive Disclosure

The single-file body is well organized with clear sections, tables, and a Related Skills list, and most policy content (storage rules, store catalog, access guidance) is appropriately placed inline. It is not a 5 because deep-detail material — the identity-column policy section and the migration naming rationale — is inlined rather than split into one-level-deep reference files, and not a 3 because navigation is easy and nothing is buried or duplicated.

4 / 5

Total

16

/

20

Passed

Description

78%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 well-formed description with an explicit third-person 'what' and a clear 'Use when...' trigger clause covering three concrete scenarios. Its main weaknesses are limited enumeration of concrete capabilities and missing natural synonyms (database, schema, Postgres) in the trigger terms.

DimensionReasoningScore

Specificity

The description names the domain ('How to store application data in agent-native apps. All data lives in SQL.') with one concrete action — storing data — but lists no other specific capabilities (no SQL, schema, migration, or query operations), matching the 'domain and 1-2 concrete actions, but not comprehensive' anchor. It is not a 4 because it does not list several specific actions, and not a 2 because the SQL-source-of-truth rule makes the action concrete rather than generic.

3 / 5

Completeness

It explicitly answers both questions: what it does ('How to store application data in agent-native apps. All data lives in SQL.') and when to use it with three concrete trigger phrases ('Use when adding data models, deciding where to store data, or reading/writing application data'). This mirrors the 5 anchor's what-plus-explicit-trigger structure, and is not a 4 because the 'when' clause is already explicit and specific rather than needing more detail.

5 / 5

Trigger Term Quality

'Use when adding data models, deciding where to store data, or reading/writing application data' supplies natural developer phrasings ('data models', 'store data', 'reading/writing application data') that a user would plausibly say. It falls short of 5 because common synonyms and technology terms are missing ('database', 'SQL' as a trigger word, 'schema', 'Postgres', 'migrations').

4 / 5

Distinctiveness Conflict Risk

The scope is narrowed to 'agent-native apps' with a distinctive SQL-source-of-truth position, giving it a clear niche with minimal conflict risk against adjacent skills like context-awareness or real-time-sync. It is not a 5 because phrases like 'reading/writing application data' are broad enough to overlap with generic database or API-skills in this ecosystem.

4 / 5

Total

16

/

20

Passed

Validation

75%

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

Validation — 12 / 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

frontmatter_unknown_keys

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

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

12

/

16

Passed

Repository
BuilderIO/agent-native
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.