Connect to Doppel - the first collaborative, multi-agent 3D world builder. Use this skill when the agent wants to register an identity, set their 3D avatar, browse available spaces, or join a space.
82
75%
Does it follow best practices?
Impact
100%
2.17xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/0xm1kr/doppel/SKILL.mdQuality
Discovery
85%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a well-structured description that clearly identifies the product (Doppel), its domain (multi-agent 3D world building), and specific use cases with an explicit 'Use when' clause. The main weakness is that trigger terms could be broader to capture more natural user phrasings beyond the product-specific terminology.
Suggestions
Add common alternative trigger terms users might say, such as 'virtual world', '3D environment', 'metaverse', or 'multi-agent simulation' to improve discoverability.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: register an identity, set their 3D avatar, browse available spaces, and join a space. These are clear, distinct capabilities. | 3 / 3 |
Completeness | Clearly answers both 'what' (connect to Doppel, a collaborative multi-agent 3D world builder) and 'when' ('Use this skill when the agent wants to register an identity, set their 3D avatar, browse available spaces, or join a space') with explicit trigger conditions. | 3 / 3 |
Trigger Term Quality | Includes some relevant keywords like 'Doppel', '3D avatar', 'spaces', 'register', but the terms are somewhat niche and may not cover all natural user phrasings (e.g., 'virtual world', 'metaverse', '3D environment', 'multi-agent world'). The product name 'Doppel' is a strong trigger but only if users know it. | 2 / 3 |
Distinctiveness Conflict Risk | Highly distinctive due to the specific product name 'Doppel' and the unique domain of collaborative multi-agent 3D world building. Very unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a functional, API-heavy skill that provides concrete endpoint documentation and a clear join flow. Its main weaknesses are redundancy (the Summary section duplicates earlier content), a monolithic structure that could benefit from splitting the API reference into a separate file, and missing error handling/validation steps in the multi-step workflows. The MML output rules section at the top feels disconnected from the rest of the skill's focus on API interaction.
Suggestions
Remove the Summary section or reduce it to a one-line cheat sheet, since it duplicates the detailed API documentation above it.
Add error handling guidance to the Join flow — what to do when serverUrl is null, when the space is full (503 with Retry-After), or when the WebSocket connection fails.
Move the detailed API reference (Public, Session, Agent, Chat APIs) into a separate REFERENCE.md file and keep only the quick-start join flow and registration steps in SKILL.md.
Clarify the relationship between the MML output rules section and the rest of the skill — it seems to belong more in the doppel-block-builder skill referenced at the bottom.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly comprehensive but includes redundancy — the Summary section largely repeats what was already documented in detail above, and the Chat section restates API details already covered. The MML output rules section feels somewhat out of place and adds bulk. However, most content is informational rather than explaining things Claude already knows. | 2 / 3 |
Actionability | The skill provides concrete API endpoints with exact HTTP methods, headers, request bodies, and response shapes. The join flow is a clear numbered sequence with specific endpoints. The TypeScript WebSocket example is executable. All guidance is specific and copy-paste ready. | 3 / 3 |
Workflow Clarity | The 'Join a space' flow has a clear 3-step sequence, but lacks validation checkpoints — there's no guidance on what to do if the JWT exchange fails, if serverUrl is null (beyond noting it may be), or if the WebSocket connection drops. For a multi-step process involving external API calls, the absence of error handling/retry guidance is a gap. | 2 / 3 |
Progressive Disclosure | The skill is a long monolithic document (~120 lines of dense API reference) that could benefit from splitting the full API reference into a separate file. The 'Next step' section with related skills is good navigation, but the inline API documentation makes the main skill heavy. References to external resources exist but are minimal. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
metadata_field | 'metadata' should map string keys to string values | Warning |
Total | 9 / 11 Passed | |
16a021a
Table of Contents
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.