CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migrate-memory

Migrate legacy NanoClaw and Claude-native memory into the shared memory tree and provider-neutral standing instructions. Run after an update reports the shared-memory breaking change, or when a group still has .seed.md, legacy CLAUDE.md/CLAUDE.local.md, Claude auto-memory, or an unindexed imported-agent-memory.md. Triggers on "migrate memory", "legacy memory", "the agent forgot everything after the switch".

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

77%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 well-engineered, highly actionable migration runbook with excellent sequencing, approval gates, verification, and rollback — exemplary for a destructive batch operation. Its weaknesses are structural: ~240 lines of fine-grained rules all inline in SKILL.md with no reference files, plus verbatim repetition of collision and stop-for-review rules that inflates token cost without adding guidance.

Suggestions

Move the per-source rename/collision rules (the four subsections under 'Move legacy files') and the quarantined-symlink operator script into a references/ file (e.g. references/move-rules.md), keeping SKILL.md as a sequenced overview that links to it — this is the main progressive-disclosure gap.

State the collision rule ('add a numeric suffix on collision, never overwrite') and the stop-for-review rule ('leave it untouched and stop this group for operator review') once as global rules instead of repeating each verbatim 4-6 times across subsections.

Cut or compress the symlink explainer ('A symlink is a pointer to another path...') to the one non-obvious point (NanoClaw cannot tell whether the target is intentional shared memory), and give one literal example command for the rename staging step (e.g. an mv command with the suffix pattern) to lift actionability to fully executable.

DimensionReasoningScore

Conciseness

The body is almost entirely procedural and non-padded — every section issues concrete instructions with no tutorial prose about concepts Claude already knows. Minor trimmable fat keeps it below anchor 5: the symlink explainer ('A symlink is a pointer to another path, not the memory content itself') re-teaches a known concept, and phrases like 'add a numeric suffix on collision' and 'stop this group for operator review' repeat verbatim across four subsections and could be stated once. It is well above anchor 3, which requires genuinely unnecessary explanation rather than repetition.

4 / 5

Actionability

Concrete, copy-paste-ready commands are given for the risky operations ('ncl groups list', 'ncl tasks list --group <group-id> --status pending', 'ncl tasks pause <series-id> --group <group-id>', 'ncl groups restart --id <group-id>', 'ncl tasks resume <series-id> --group <group-id>') plus exact template source paths and a literal operator message template. It falls just short of anchor 5 because the rename/staging mechanics — the bulk of the work — are described procedurally ('rename it to .memory-migration-staging/imported-claude-local.md, using -2, -3...') rather than as literal executable commands, leaving the harness to construct them.

4 / 5

Workflow Clarity

Five numbered sections give a clear sequence (inventory/window → prepare tree → move → organize → verify/rollback) with explicit checkpoints: operator approval before any move ('Ask for approval before moving anything'), stop-for-review gates on every abnormal path type, a full verification checklist in step 5 ('a test message can recall a migrated fact', 'staging absent or empty', 'task series resumed'), and a rollback procedure with reversal of recorded renames. For a destructive batch migration this is the anchor-5 pattern of explicit validation steps, feedback loops, and checklists; a 4 would require a missing checkpoint, and none is missing.

5 / 5

Progressive Disclosure

There are no bundle files at all, and the skill is a single 240-line SKILL.md. Section headers are well-organized, but content that naturally belongs in a separate reference is inlined: the per-source-file rename/collision rules of section 3 (four near-identical subsections) and the quarantined-symlink operator script and three-choice flow. This matches anchor 3 ('some structure ... content that should be separate is inline'); it is above anchor 2 because the structure that is present is genuinely clear, and below anchor 4 because the file is a monolithic full procedure rather than an overview with one-level-deep references.

3 / 5

Total

16

/

20

Passed

Description

95%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: third-person, dense, concrete, with an explicit 'what', an explicit multi-condition 'when', and natural trigger phrases including a user-symptom phrasing. The only mild limitation is that the 'what' summarizes at the migration level without hinting at the staging, quarantine, indexing, and verification stages inside the skill.

DimensionReasoningScore

Specificity

The description names a concrete action pair ('Migrate legacy NanoClaw and Claude-native memory into the shared memory tree and provider-neutral standing instructions') and enumerates concrete source artifacts ('.seed.md', 'legacy CLAUDE.md/CLAUDE.local.md', 'Claude auto-memory', 'unindexed imported-agent-memory.md'). It sits above anchor 3 (only 1-2 generic actions) but below anchor 5 because it stays at the migration level and does not enumerate the staging, indexing, or verification work the skill actually performs.

4 / 5

Completeness

It explicitly answers 'what' ('Migrate legacy ... memory into the shared memory tree and provider-neutral standing instructions') and 'when' ('Run after an update reports the shared-memory breaking change, or when a group still has .seed.md, ...' plus 'Triggers on ...'), which is the anchor-5 pattern of both what and when with concrete trigger phrases. A 4 would require the 'when' to be less explicit, which it is not.

5 / 5

Trigger Term Quality

It supplies natural phrases a user would actually say ('migrate memory', 'legacy memory', 'the agent forgot everything after the switch') alongside file names and extensions ('.seed.md', 'CLAUDE.md', 'CLAUDE.local.md') and a condition clause ('after an update reports the shared-memory breaking change'). This matches the anchor-5 pattern of comprehensive natural terms including synonyms and concrete file identifiers; anchor 4 ('a few natural terms missing') does not fit since both symptom-based and artifact-based triggers are covered.

5 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — legacy 'NanoClaw' and 'Claude-native' memory, the 'shared memory tree', and 'provider-neutral standing instructions' — and the triggers reference scenarios no other skill would claim. This matches anchor 5 (clear niche, minimal conflict risk); anchor 4 would imply overlap with closely related skills, which the named legacy artifacts preclude.

5 / 5

Total

19

/

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

nanocoai/nanoclaw

Path

.claude/skills/migrate-memory/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.