CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

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.

70

Quality

88%

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

75%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 strong, dense reference-style skill body: library-specific guidance throughout, executable snippets for the trickiest patterns, and a clean one-level-deep reference bundle. Its weaknesses are mild duplication between the inline Collection section and its reference file, and the absence of inline examples for the most common Entity-definition cases.

Suggestions

Trim section 5 (pk routing, nonFilterArgumentKeys) to the referential-equality insight plus one short example and defer the option-by-option detail to references/Collection.md, which already contains it verbatim.

Add a single compact Entity example in section 2 showing defaults + a pk() override, since that is the most common task and is currently directive-only.

Convert the normalize/denormalize ordering in section 3 into short numbered lists or a table so the sequence is checkable rather than embedded in prose.

DimensionReasoningScore

Conciseness

The body is dense and library-specific with terse bullets that assume competence ('Override pk() only when the primary key ≠ id', 'pk() return type is number | string | undefined'), with no generic-library filler. However, section 5 inlines ~50 lines of pk-routing/nonFilterArgumentKeys detail — including an example duplicated verbatim in references/Collection.md (lines 266–267) — that could be trimmed to the key insight plus a link.

4 / 5

Actionability

Mostly concrete and executable: copy-paste snippets for Query, Union, and Collection's argsKey/nestKey trick, a full extenders table (push/unshift/assign/remove/move/addWith/moveWith), and named API options ('static indexes', 'nonFilterArgumentKeys: /orderBy|sortDir/'). Minor gaps: the most common cases (Entity with defaults, pk override, static schema) get directive-only bullets with no inline example, and the 'define Query in src/resources/, not in hooks' guidance lacks a counter-example.

4 / 5

Workflow Clarity

This is a reference/decision-guide rather than a sequential workflow, and its topic order is coherent (define → entity rules → lifecycle → patterns → pitfalls), with explicit decision rules ('use the same Entity as the schema — don't create a wrapper entity') and a 'Common Mistakes to Avoid' section acting as error avoidance. No validation checkpoints are needed since it covers no destructive or batch operations, but the lifecycle and normalize/denormalize orders read as prose rather than a checkable sequence, keeping it below a 5.

4 / 5

Progressive Disclosure

Good structure: a well-annotated References section, all 20 referenced files verified to exist, references exactly one level deep (no reference file chains onward), a clear Vue '<name>.vue.md' convention, and one justifiable external link. The gap is that section 5's Collection routing detail duplicates content in references/Collection.md, so some content that belongs in the reference is inlined in the overview.

4 / 5

Total

16

/

20

Passed

Description

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

An exemplary description: third-person, concrete capability list, dense with natural trigger synonyms, and both 'Use when' and 'Apply proactively when' clauses present. The only residual risk is minor overlap with generic state-management skills via broad terms like 'caching' and 'data models'.

DimensionReasoningScore

Specificity

It names the concrete toolkit (Entity, EntityMixin, Collection, Union, Query, Values, All, Invalidate, Lazy, Scalar) and concrete operations (defining or editing pk, static schema, resource()/RestEndpoint schema, push/unshift/assign/remove/move, cache invalidation) — comprehensive and specific, not a 4 since coverage spans the full schema surface. It is not a 5-tier over-claim; every listed action is a real capability of the skill.

5 / 5

Completeness

Explicitly answers both halves: what ('Model data with @data-client schemas... via normalization, identity-based caching, and a single source of truth') and when, with two concrete trigger clauses ('Use when defining or editing...' and 'Apply proactively when discussing...'). This matches the 5 anchor's pattern of concrete what + explicit trigger phrases.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage with explicit synonyms: 'relational/nested/joined data', 'mutable lists/maps' and 'mutable collections', 'memoized selectors / derived data', 'polymorphic/discriminated types', 'partial/supplementary entities', plus 'data models, remote data shape, caching, normalization, identity, joins, polymorphism, store consistency'. These are the phrases a developer would naturally say; not a 4 because no common synonym family is missing.

5 / 5

Distinctiveness Conflict Risk

The description is anchored to the @data-client package family (@data-client/rest, /endpoint, /graphql, /normalizr) with library-specific vocabulary (pk, referentially-equal, resource()), giving it a clear niche. Not a 5: the proactive-trigger tail ('data models, caching, normalization, store consistency') is broad enough to overlap with generic state-management or caching skills in a large skill collection.

4 / 5

Total

19

/

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.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

reactive/data-client

Path

.agents/skills/data-client-schema/SKILL.md

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.