CtrlK
BlogDocsLog inGet started
Tessl Logo

agent-crdt-synchronizer

Agent skill for crdt-synchronizer - invoke with $agent-crdt-synchronizer

45

2.93x
Quality

16%

Does it follow best practices?

Impact

97%

2.93x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/agent-crdt-synchronizer/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a monolithic dump of reference implementations for well-known CRDT structures rather than a usable skill: it lacks any usage workflow or validation steps, depends on undefined helper classes and an unspecified MCP tool API, and buries everything in one oversized file with no progressive disclosure. Claude gains little beyond what it already knows about CRDTs.

Suggestions

Replace the from-scratch textbook implementations of standard CRDTs with usage guidance for an existing library (e.g. automerge or Yjs), keeping SKILL.md to what is genuinely non-obvious.

Add an explicit multi-step workflow (instantiate synchronizer -> register CRDTs -> synchronize -> verify convergence) with a validation checkpoint before treating replicas as converged.

Move the individual CRDT implementations and advanced sections (causal tracker, composition, consensus integration) into references/ files and link to them from a concise overview, and delete the stray second YAML frontmatter block.

DimensionReasoningScore

Conciseness

The ~970-line body re-implements textbook CRDTs (G-Counter, OR-Set, LWW-Register, RGA) that Claude already knows, padding the context window with standard CS material. It also carries a stray second YAML frontmatter block, decorative hook echoes, and admitted placeholders ('Simplified merge - real implementation would use topological sort'), matching anchor 1: 'Severely verbose; extensively explains concepts Claude already knows; heavily padded'.

1 / 5

Actionability

Substantial concrete JavaScript is provided (GCounter, ORSet, LWWRegister are largely complete), but it is not executable as written: it depends on undefined classes (VectorClock, SyncScheduler, SyncScheduler, PNCounter, ORMap, CausalTracker wiring) and on an unexplained 'this.mcpTools' API, and several methods are explicitly simplified placeholders. This matches anchor 3 ('concrete guidance but incomplete; pseudocode instead of executable code; missing key details') rather than anchor 4, whose code is copy-paste runnable with only minor gaps.

3 / 5

Workflow Clarity

There is no operational sequence for using the skill: 'Core Responsibilities' is a topical list, not steps, and no section tells Claude how to instantiate, synchronize, or verify anything. Anchor 2 fits best ('rough sequence present but many gaps; steps poorly defined; validation absent') — it is above anchor 1 only because the responsibilities list and synchronize() flow give a rough ordering of concerns.

2 / 5

Progressive Disclosure

No references/, scripts/, or assets/ exist; all six-plus class implementations and advanced topics are inlined in a single ~970-line file with a duplicate frontmatter block at the top. This matches anchor 2 ('content that clearly belongs in separate files is inlined'); it escapes anchor 1 only because section headers provide minimal navigability.

2 / 5

Total

8

/

20

Passed

Description

8%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 frontmatter description is a bare label plus invocation syntax: it states neither what the skill does nor when to use it, and offers no natural trigger terms. It reads as auto-generated boilerplate rather than a functional description, and would almost never cause the skill to be selected for a relevant user request.

Suggestions

State concrete capabilities in third person, e.g. 'Implements conflict-free replicated data types (G-Counters, OR-Sets, LWW-Registers, RGA) and delta synchronization for eventually consistent distributed state.'

Add an explicit 'Use when...' trigger clause covering natural phrasings such as 'distributed state sync', 'conflict-free merge', 'CRDT', 'replica convergence', or 'eventual consistency'.

Remove the invocation boilerplate ('invoke with $agent-crdt-synchronizer') from the description; it consumes the description budget without informing skill selection.

DimensionReasoningScore

Specificity

The description 'Agent skill for crdt-synchronizer - invoke with $agent-crdt-synchronizer' names the domain (crdt-synchronizer) but contains zero concrete capability actions — unlike the anchor-2 example 'Processes PDF files', which at least names one action verb. It is not anchor 1 ('entirely vague... pure abstract language') because it does identify a specific domain rather than being generic.

2 / 5

Completeness

Neither 'what' nor 'when' is present: the description never states what the skill does (what a crdt-synchronizer actually performs) and has no 'Use when...' clause or equivalent trigger guidance. Per the guidelines a missing 'Use when...' clause caps completeness at 3; here the 'what' is also missing, matching anchor 1 ('Missing both what and when').

1 / 5

Trigger Term Quality

The only terms are the technical artifact name 'crdt-synchronizer' and the invocation string '$agent-crdt-synchronizer'; there are no natural keywords a user would say (no mention of 'conflict', 'merge', 'replication', 'sync', 'distributed state', or any synonyms). This matches anchor 1: 'only technical jargon or entirely generic language'.

1 / 5

Distinctiveness Conflict Risk

The description is essentially just a skill name with an invocation token, giving it no distinguishing trigger phrases, so it cannot reliably differentiate itself from sibling skills; however it is not 'entirely generic' like anchor 1's 'Helps with code and documents', since it does name a specific niche (CRDT synchronization). This sits at anchor 2: very broad/uninformative with high overlap risk.

2 / 5

Total

6

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (1002 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
ruvnet/ruflo
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.