CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

data-client-manager

Implement @data-client Managers for global/background side effects - websocket, SSE, polling, real-time updates, subscriptions, logging, analytics, metrics/timing, error reporting (Sentry), toast notifications, refetch on window focus or network reconnect, cross-tab sync (BroadcastChannel), offline persistence (localStorage/IndexedDB), auth logout on 401, middleware, intercepting Controller actions, DataProvider managers prop, redux-style action handling. Use when adding cross-cutting store behavior, reacting to dispatched actions, or handling external event streams.

74

Quality

93%

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

86%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 guide body: executable code examples covering the common patterns, a routing table that makes the reference bundle genuinely navigable, and appropriate deferral of detail to one-level-deep reference files. Weaknesses are minor: duplicated guidance (actionTypes advice and API listings repeated inline) and an implicit rather than explicit end-to-end workflow sequence.

Suggestions

Deduplicate the repeated "Always use `actionTypes` when comparing action.type" advice (appears in both References and Consuming actions) and replace the inline ctrl dispatcher/accessor and actionTypes member lists with a single pointer to Controller.md/Actions.md.

State the end-to-end sequence explicitly at the top (identify use case in table → read named section → implement Manager → register before `...getDefaultManagers()`), so the workflow doesn't depend on reading order.

DimensionReasoningScore

Conciseness

The body is directive-heavy and assumes Claude's competence ("Kind of like useEffect() for the central data store", no redux-middleware tutorial), and the use-case routing table is extremely token-efficient. However, guidance is duplicated — "Always use `actionTypes` when comparing action.type" appears twice (References and Consuming actions sections), the inline actionTypes member list and ctrl dispatcher/accessor listings duplicate Actions.md/Controller.md, and some table cells carry extra commentary. Fits anchor 4 ("efficient; minor instances that could be trimmed"), not 5.

4 / 5

Actionability

Three complete, copy-paste-ready TypeScript Manager classes (TimeManager, LoggingManager, CustomSubsManager) plus a full DataProvider wiring example, each with real imports. Specific prohibitions and gotchas are concrete: "Never loop `controller.set(Entity, args, row)` per row", "drop `optimistic` - not cloneable", "List custom managers before `...getDefaultManagers()`" with the NetworkManager-fetch-consumption rationale. Matches anchor 5.

5 / 5

Workflow Clarity

The path is navigable — identify the use case in the routing table, follow the named reference section, implement the middleware pattern, then wire the manager into the DataProvider array with the ordering warning made explicit. No validation checkpoints are needed since nothing is destructive or batch-risky, but the multi-step flow (choose pattern → implement → register) is never stated as an explicit sequence, and the Usage/wiring section only appears at the end with no forward pointer. Anchor 4 fits best; not 5 because the sequence, while clear, is implicit in the layout rather than explicit.

4 / 5

Progressive Disclosure

The body is a true overview: a use-case table routing to named sections that all verifiably exist in references/managers.md and Manager.md (e.g., "Middleware logging", "Offline persistence", "Batching high-frequency updates", "Dispatching Actions"), a References section with one-line descriptions of all six files (all present, including .vue variants addressed by the Vue note), and the bulk detail lives one level deep in references. Matches anchor 5 (clear overview, well-signaled one-level-deep references, easy navigation).

5 / 5

Total

18

/

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 excellent description: dense, concrete, and trigger-rich, explicitly answering both what the skill does and when to use it, with third-person voice throughout. The only weakness is that several bare generic trigger words (logging, analytics, metrics) are not qualified by the store context, creating minor overlap risk with unrelated skills.

Suggestions

Qualify the generic trigger words with their store context (e.g., "store-level logging", "action analytics") so they cannot collide with general logging/analytics/UX-toast skills in a large skill collection.

Trim mechanism-detail terms like "DataProvider managers prop" and "intercepting Controller actions" — they describe how the skill works rather than what a user would say when they need it.

DimensionReasoningScore

Specificity

The description lists many concrete actions: "websocket, SSE, polling, real-time updates, subscriptions, logging, analytics, metrics/timing, error reporting (Sentry), toast notifications, refetch on window focus or network reconnect, cross-tab sync (BroadcastChannel), offline persistence (localStorage/IndexedDB), auth logout on 401" — comprehensive, concrete coverage of the skill's capabilities. Not 4 because coverage leaves no meaningful gaps in what the body actually addresses.

5 / 5

Completeness

Both questions answered explicitly: "what" is "Implement @data-client Managers for global/background side effects" with a long concrete list, and "when" is an explicit "Use when adding cross-cutting store behavior, reacting to dispatched actions, or handling external event streams" clause with concrete triggers. Matches the anchor-5 example structure exactly.

5 / 5

Trigger Term Quality

Natural user phrasings are covered comprehensively with synonyms and specific technologies ("websocket", "SSE", "polling", "real-time updates", "refetch on window focus or network reconnect", "cross-tab sync", "offline persistence (localStorage/IndexedDB)", "auth logout on 401"), plus an explicit natural-language "Use when..." clause ("adding cross-cutting store behavior, reacting to dispatched actions, or handling external event streams"). Anchor 5 is the best fit; anchor 4's 'a few natural terms missing' doesn't apply.

5 / 5

Distinctiveness Conflict Risk

The "@data-client Managers" framing creates a clear niche with minimal conflict risk, but unqualified generic terms like "logging", "analytics", "toast notifications" could overlap with general frontend/logging/UX skills in a large collection; the scoped "Use when" clause mitigates but doesn't fully eliminate this. Best fits anchor 4 ("mostly distinct; minor overlap risk") rather than 5, whose example is anchored by a tight file-format niche.

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-manager/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.