CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ov-memory-doctor

Diagnose and fix the OpenViking memory plugin on this machine: the plugin install (enablement, hooks, MCP server), the client configuration (ovcli.conf / ov.conf / OPENVIKING_* env) and the connection to the OpenViking server (reachability, 401/403, /mcp). Use whenever memory "isn't working": no <openviking-context> block, empty recall, captures not landing, missing or failing MCP memory tools, 401/403, an offline statusline, right after installing/updating the plugin or switching servers/keys, or when the user asks for the plugin's status. Triggers: "memory not working", "check OpenViking", "plugin status", "记忆没生效", "插件状态", "连不上 OpenViking", "recall 为空", "401".

76

Quality

95%

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

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

An exceptionally dense and executable troubleshooting playbook: a doctor-first workflow with a finding→cause→action mapping table, exact commands for every probe and fix, safety rules (never print keys, ask before touching the user's server), and explicit rerun/confirm validation loops. The only structural gap is that its sole progressive-disclosure reference (reference.md) is not present in the reviewed bundle, so the link cannot be verified and detail depth is unverifiable.

Suggestions

Ship reference.md alongside SKILL.md (or correct the link target) — the body's only detail offload, "More symptoms, exact error strings and log stage names: [reference.md](reference.md)", currently resolves to no file in the skill bundle.

Include the scripts/ the workflow depends on (ov-memory-doctor.mjs) or note in SKILL.md that it ships with the plugin install, so the primary Step 1 command is verifiable from the skill itself.

DimensionReasoningScore

Conciseness

Nearly every line carries non-obvious, plugin-specific knowledge Claude cannot be assumed to have ("claude plugin update is a no-op when the version string did not change", "One 4xx mentioning 'mode' pins recall for 6h", "/health answers 200 even with a bad key"). There is no padding and no explanation of concepts Claude already knows — it assumes competence and every token earns its place, matching the level-5 anchor; level 4 would require over-explanations that could be trimmed, and none are evident.

5 / 5

Actionability

Everything is copy-paste executable: the doctor invocation with flags (`node ${CLAUDE_PLUGIN_ROOT}/scripts/ov-memory-doctor.mjs --json --offline`), exact curl probes with headers and payloads, exact CLI remediations (`claude plugin marketplace update openviking && claude plugin uninstall ... && claude plugin install ...`), exact file paths, and a finding→meaning→action table. This matches the level-5 anchor (fully executable commands covering the common cases) rather than level 4, since no significant execution details are missing.

5 / 5

Workflow Clarity

The sequence is explicit and ordered: run the doctor, read the whole report before acting, then "Work top-down; fix the first ✗ and rerun before chasing the next", then targeted checks "only when the report is not conclusive", and finally "Confirm the fix by rerunning the doctor, then by observing an <openviking-context> block on the next prompt" — a complete feedback loop with validation checkpoints. This matches the level-5 anchor; the level-3 destructive/batch cap does not apply since the workflow is read-only and validated.

5 / 5

Progressive Disclosure

Sections are well organized and the single external pointer — "More symptoms, exact error strings and log stage names: [reference.md](reference.md)" — is one level deep and clearly signaled. However, no bundle directory exists in this skill (no references/, scripts/, or assets/), so the referenced reference.md (and the ov-memory-doctor.mjs the workflow depends on) cannot be verified to exist, leaving a dangling reference; this fits the level-4 anchor (good structure, references mostly clear, minor organization gaps) rather than level 5's easy, fully-resolvable navigation.

4 / 5

Total

19

/

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.

A strong description: precise diagnostic scope with named config files and failure signatures, an explicit "Use whenever" clause with concrete symptom-based triggers in two languages, and third-person voice. The only weakness is that a couple of very broad triggers ("memory not working", bare "401") create minor overlap risk with other memory or auth troubleshooting skills.

DimensionReasoningScore

Specificity

The description enumerates concrete, specific scope rather than generic action: "the plugin install (enablement, hooks, MCP server), the client configuration (ovcli.conf / ov.conf / OPENVIKING_* env) and the connection to the OpenViking server (reachability, 401/403, /mcp)". It matches the level-5 anchor (multiple specific concrete actions, comprehensive coverage) and exceeds level 4 because the sub-systems, config artifacts, and failure signatures are all named explicitly rather than with minor gaps.

5 / 5

Completeness

Both questions are answered explicitly: what — "Diagnose and fix the OpenViking memory plugin... the plugin install... the client configuration... and the connection"; when — "Use whenever memory 'isn't working': no <openviking-context> block, empty recall... right after installing/updating the plugin or switching servers/keys, or when the user asks for the plugin's status". This is the level-5 anchor verbatim in structure (clear what AND explicit when with concrete trigger phrases), and the voice is third person, so no penalty applies.

5 / 5

Trigger Term Quality

Trigger coverage is comprehensive with natural phrasings users would actually say: "memory not working", "check OpenViking", "plugin status", "recall 为空", "401", plus symptom descriptions ("empty recall", "captures not landing", "an offline statusline") and both English and Chinese synonyms. This fits the level-5 anchor (comprehensive natural terms including synonyms); level 4 would leave common variations missing, which is not the case.

5 / 5

Distinctiveness Conflict Risk

The niche is clear ("the OpenViking memory plugin on this machine") and mostly distinct, but a few listed triggers — "memory not working" and the bare "401" — are generic enough to fire for other memory-related skills or unrelated auth failures. This fits the level-4 anchor (mostly distinct, minor overlap risk with closely related skills) better than level 5, whose minimal-conflict bar the broad triggers slightly miss.

4 / 5

Total

19

/

20

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 — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

relative_links

Relative link issues: 1 missing

Warning

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

13

/

16

Passed

Repository

volcengine/OpenViking

Path

examples/claude-code-memory-plugin/skills/ov-memory-doctor/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.