CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

molykit

CRITICAL: Use for MolyKit AI chat toolkit. Triggers on: BotClient, OpenAI, SSE streaming, AI chat, molykit, PlatformSend, spawn(), ThreadToken, cross-platform async, Chat widget, Messages, PromptInput, Avatar, LLM

Quality

63%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/molykit/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 well-organized, mostly concrete API pattern reference with realistic Rust snippets, and it commendably avoids explaining concepts Claude already knows. Its weaknesses are structural: it inlines ~350 lines of API detail that belongs in the reference file, never assembles its pieces into a guided integration workflow with validation checkpoints, and points to a 'llms.txt' that does not exist in the bundle.

Suggestions

Ship the referenced file with a clear path (e.g., references/llms.txt linked as 'See [llms.txt](references/llms.txt)'), then trim the inlined widget/protocol API signatures and the Avatar draw_walk internals out of SKILL.md, keeping the usage patterns and best practices.

Delete the '## Triggers' section — it duplicates the frontmatter description and spends tokens without adding guidance.

Add a short end-to-end integration workflow (implement BotClient, wrap in BotContext and spawn load with an explicit error-handling checkpoint on ClientResult, stream SSE into Messages with scroll_to_bottom) so the topical pieces have a sequence with validation.

DimensionReasoningScore

Conciseness

The body is dense and toolkit-specific (it does not explain general concepts like SSE or OpenAI), but there is tightening to do: the '## Triggers' section duplicates the frontmatter description, and roughly 350 lines of API signatures (full 'PromptInput'/'Messages' method lists, the 30-line 'Avatar' draw_walk implementation, protocol structs) are inlined even though the skill claims 'llms.txt - Complete MolyKit API reference' holds that material. Mostly efficient with some unnecessary content — anchor 3, below anchor 4 ('minor instances of over-explanation') because the duplication is structural, not minor.

3 / 5

Actionability

Nearly every section gives concrete, realistic Rust usage — 'spawn(async move { ... Cx::post_action(DataReady(result)); })', 'abort_on_drop(async move { ... })', 'ThreadToken::new(non_send_value)' with peek, 'slot.replace(custom)', and a full SSE send-loop template. It falls short of anchor 5 ('fully executable, copy-paste ready') because 'parse_sse' is elided pseudocode ('// Split on "\n\n", extract "data:" content') and several snippets carry '...' placeholders (e.g., 'client.content_widget(cx, ...)', 'fn draw_walk(&mut self, cx: &mut Cx2d, ...)').

4 / 5

Workflow Clarity

The content is organized by topic, not as an end-to-end workflow: the pieces (implement BotClient, wrap in BotContext, spawn load, stream into Messages) are never assembled into a sequence. Error handling appears only incidentally ('if let Err(errors) = context.load().await.into_result()') and as best practice #8 ('Handle ClientResult partial success: May have value AND errors'), with no explicit validation checkpoints. This matches anchor 3 ('steps listed but validation gaps; checkpoints missing or implicit') rather than 4 ('clear sequence with most checkpoints present'). No destructive or batch operations exist, so the workflow-clarity cap of 3 does not apply.

3 / 5

Progressive Disclosure

Section structure is good (clear topical headers), but the body inlines the bulk of the API reference that belongs in a separate file, and the single bundle reference — 'llms.txt - Complete MolyKit API reference' — dangles: no references/ directory or llms.txt file exists in the bundle, and the reference carries no path. This matches anchor 3 ('content that should be separate is inline; references present but not clearly signaled'), above anchor 2 only because the section headers keep the ~350 lines navigable, and below anchor 4 because the one reference is unusable as written.

3 / 5

Total

13

/

20

Passed

Description

52%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's explicit 'Triggers on:' list provides strong 'when' guidance and decent keyword coverage, but it never states what the skill actually provides — it reads as a trigger table rather than a capability description. Additionally, several overly generic trigger terms (LLM, OpenAI, Messages, Avatar, spawn()) create overlap risk with other AI/LLM-related skills, and 'Makepad' is a notable missing term.

Suggestions

Open with a concrete capability statement, e.g., 'Best practices and API patterns for building AI chat interfaces with MolyKit: BotClient integration, SSE streaming, chat widgets, and cross-platform async for native and WASM' — this supplies the missing 'what'.

Remove the generic trigger terms 'Messages', 'Avatar', 'LLM', 'OpenAI', and 'spawn()' — they fire on unrelated chat and async-Rust work; retain the distinctive ones (molykit, PlatformSend, ThreadToken, BotClient, PromptInput).

Add 'Makepad' as a trigger term — the skill targets Makepad apps and users of this toolkit would naturally mention the framework by name.

DimensionReasoningScore

Specificity

The description's only directive is 'Use for MolyKit AI chat toolkit' — a domain name with no concrete actions (no build/integrate/stream verbs describing what the skill provides). The trigger list names specific technologies ('BotClient, OpenAI, SSE streaming, PlatformSend, spawn(), ThreadToken'), which names the domain richly, but the skill's actual function is never stated. It sits at anchor 2 ('names the domain but actions are minimal or generic'), not 3, because no concrete actions are described at all.

2 / 5

Completeness

The 'when' is explicitly and strongly answered ('Triggers on: BotClient, OpenAI, SSE streaming, AI chat, molykit...'), but the 'what' is limited to the noun phrase 'MolyKit AI chat toolkit' — it never states the skill's function (best practices? API reference? building guidance?). This inverts anchor 3's structure ('clear what, weak when'): the when is 5-level while the what is vague, placing it between anchors 2 and 3, lifted above 2 by the explicit when and the enumerated subdomains.

3 / 5

Trigger Term Quality

The 'Triggers on:' list includes natural phrases users would say — 'AI chat', 'SSE streaming', 'Chat widget', 'OpenAI', 'molykit' — plus synonyms like 'bot client'. It falls short of anchor 5 because 'Makepad', the framework this toolkit is built on and the term its users would naturally say, is absent, while anchor 3 ('some relevant keywords but missing common variations') undersells the breadth present.

4 / 5

Distinctiveness Conflict Risk

Distinctive terms ('molykit', 'PlatformSend', 'ThreadToken', 'BotClient', 'PromptInput') do establish a clear niche, keeping it above anchor 2 ('very broad'). But highly generic triggers — 'Messages', 'Avatar', 'LLM', 'OpenAI', 'AI chat', 'spawn()' — would fire on a wide range of unrelated LLM/chat/async-Rust work, creating real overlap risk with the many AI-chat skills. 'Somewhat specific but could still overlap with similar skills' (anchor 3) is the best fit.

3 / 5

Total

12

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

skills/molykit/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.