CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

data-client-manager

Write @data-client Managers for app-wide side effects and real-time data such as websockets, SSE and polling: code that reacts to every request or to events from outside the app and updates the store. Use one instead of useEffect for behavior that belongs to the whole app, such as error toasts and reporting, logging and analytics, auth failures, refetching on focus or reconnect, and cross-tab sync.

Quality

94%

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

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 high-quality reference-style skill body: complete executable examples, a verified use-case index with deep links into the reference bundle, and disciplined progressive disclosure. The only flaws are minor — a duplicated actionTypes instruction and inline method lists that restate Controller.md content.

Suggestions

State the "Always use actionTypes when comparing action.type" rule once (keep it next to the LoggingManager example) and remove the duplicate in the References section.

Drop the inline dispatcher and accessor method lists (ctrl.fetch(), ctrl.getResponse(), etc.) and keep only the Controller.md links, since the reference file already enumerates them.

DimensionReasoningScore

Conciseness

The body is dense and efficient — tables, terse rules, and minimal complete code — but "Always use actionTypes when comparing action.type" is repeated (in References and again in Reading and Consuming Actions), and the dispatcher/accessor method lists duplicate content already in Controller.md. This fits 'efficient; minor instances of over-explanation that could be trimmed' rather than the every-token-earns-its-place level at 5.

4 / 5

Actionability

Three complete, executable TypeScript examples (TimeManager with full init/cleanup, LoggingManager, CustomSubsManager) plus DataProvider wiring cover the common cases and are copy-paste ready, matching the top anchor; the stubbed subscribe/unsubscribe methods are clearly illustrative rather than pseudocode.

5 / 5

Workflow Clarity

Building a Manager follows a clear, well-sequenced path (responsibility → lifetimes → cleanup rules → use-case selection → dispatch/consume → usage) with lifecycle checkpoints like "Don't reset state about the store... in cleanup()" and the manager-ordering rule. It lacks explicit validation feedback loops, so it does not reach 5, but as a code-authoring guide it involves no destructive or batch operations that would cap it at 3.

4 / 5

Progressive Disclosure

The body is a genuine overview: every detailed API doc lives one level deep in references/ (all six linked files verified to exist), and each named section in the use-case table ("Middleware logging", "Error reporting", "Cross-tab synchronization", etc.) was verified to exist in managers.md. This matches the clear-overview, well-signaled, one-level-deep anchor.

5 / 5

Total

18

/

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: concrete, comprehensive, and in third-person imperative voice, with an explicit use-when clause listing natural trigger phrases covering the full range of use cases. It is clearly distinguishable from adjacent skills and contains no vague filler or over-claims.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete capabilities — "reacts to every request or to events from outside the app and updates the store", "websockets, SSE and polling", "error toasts and reporting, logging and analytics, auth failures, refetching on focus or reconnect, and cross-tab sync" — with no coverage gaps in the domain, matching the comprehensive-coverage anchor rather than the minor-gaps anchor at 4.

5 / 5

Completeness

It explicitly answers both what ("Write @data-client Managers for app-wide side effects and real-time data... updates the store") and when ("Use one instead of useEffect for behavior that belongs to the whole app, such as...") with concrete trigger phrases, exactly matching the top anchor.

5 / 5

Trigger Term Quality

It includes natural phrases users would say when needing this skill ("websockets", "polling", "error toasts", "analytics", "auth failures", "refetching on focus or reconnect", "cross-tab sync", "useEffect") with synonyms woven in, which is comprehensive coverage rather than the 'a few natural terms missing' level at 4.

5 / 5

Distinctiveness Conflict Risk

It is anchored to the specific "@data-client Managers" concept with a distinct trigger ("instead of useEffect"), giving it a clear niche with minimal conflict risk against generic React or state-management skills.

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.

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.