CtrlK
BlogDocsLog inGet started
Tessl Logo

data-client-schema

Model data with @data-client schemas (Entity, EntityMixin, Collection, Union, Query, Values, All, Invalidate, Lazy, Scalar) for atomic, consistent, referentially-equal async data via normalization, identity-based caching, and a single source of truth. Use when defining or editing pk, static schema, resource()/RestEndpoint schema, mutable lists/maps (push/unshift/assign/remove/move), polymorphic/discriminated types, memoized selectors / derived data, partial/supplementary entities, relational/nested/joined data, optimistic updates, or cache invalidation across @data-client/rest, /endpoint, /graphql, or /normalizr. Apply proactively when discussing data models, remote data shape, caching, normalization, identity, joins, polymorphism, mutable collections, or store consistency.

73

Quality

90%

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

SKILL.md
Quality
Evals
Security

Quality

Content

80%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, token-efficient reference skill with concrete code and excellent progressive disclosure into the references bundle. Its main gap is workflow clarity: it is catalog-oriented and lacks explicit validation/feedback-loop checkpoints, and a few code examples rely on placeholders rather than being fully runnable.

Suggestions

Make the Union example runnable by defining 'EventType' (or noting it is user-defined) and replacing '/* ... */' placeholders with minimal concrete fields.

For the schema-definition workflow, add a short explicit validation checkpoint (e.g. 'run validate() / ts-check after editing static schema') so the lifecycle sequence has a verify-before-proceeding step.

Tighten the lifecycle section by rendering the normalize/denormalize orders as numbered steps with the validation() call flagged as a checkpoint, turning implicit sequence into an explicit workflow.

DimensionReasoningScore

Conciseness

The body is dense and reference-style, assuming Claude's domain competence — it never explains what normalization or caching is, and every section earns its tokens with concrete schema types, method tables, and code. Minor parentheticals like '(denormalized)' are helpful, not padded.

5 / 5

Actionability

Mostly executable TypeScript examples (Query, Collection argsKey/nestKey, nonFilterArgumentKeys) and a concrete extenders table, but the Union example uses '/* ... */' placeholders and references an undefined 'EventType', so it is not fully copy-paste ready.

4 / 5

Workflow Clarity

This is a reference/catalog skill rather than a procedural one; the lifecycle section does give an explicit normalize/denormalize ordering ('process() -> pk() -> validate() -> visit nested schemas -> ...'), but there are no validation checkpoints or fix-and-retry feedback loops, matching the score-3 anchor.

3 / 5

Progressive Disclosure

SKILL.md is a clear overview with well-signaled, one-level-deep markdown links into the references/ directory (e.g. '[Entity](references/Entity.md)'), all 20 referenced files exist, and a consolidated References section aids navigation — matching the score-5 anchor.

5 / 5

Total

17

/

20

Passed

Description

100%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 is exemplary: it states concrete capabilities, gives explicit 'Use when' and 'Apply proactively when' triggers, and is tightly scoped to the @data-client niche. Third-person voice is maintained throughout.

DimensionReasoningScore

Specificity

Lists many concrete actions — 'defining or editing pk, static schema, resource()/RestEndpoint schema, mutable lists/maps (push/unshift/assign/remove/move), polymorphic/discriminated types, memoized selectors / derived data, partial/supplementary entities, relational/nested/joined data, optimistic updates, or cache invalidation' — with comprehensive coverage matching the score-5 anchor.

5 / 5

Completeness

Explicitly answers both 'what' ('Model data with @data-client schemas ... for atomic, consistent, referentially-equal async data via normalization, identity-based caching, and a single source of truth') and 'when' ('Use when ...', 'Apply proactively when ...') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Includes natural user-facing phrases ('data models', 'remote data shape', 'caching', 'normalization', 'identity', 'joins', 'polymorphism', 'mutable collections', 'store consistency') alongside technical triggers, giving comprehensive keyword coverage.

5 / 5

Distinctiveness Conflict Risk

Scoped tightly to the @data-client library with specific schema type names and package paths (@data-client/rest, /endpoint, /graphql, /normalizr), giving a clear niche with minimal conflict risk.

5 / 5

Total

20

/

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
reactive/data-client
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.