From what-do-you-know
Migrate what-do-you-know data files from the old flat .things/ layout to the per-plugin directory structure. Moves sessions, study plans, and converts progress.md and knowledge-map.md to JSON.
How this skill is triggered — by the user, by Claude, or both
Slash command
/what-do-you-know:migrate-wdykThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<purpose>
This skill handles data file relocation only. Config migration (config.yml -> config.json + preferences.json) is handled by /things:setup-things. Run /things:setup-things first if config.json doesn't exist yet.
<output>
what-do-you-know migration plan:
Data moves:
- `learning/sessions/` (<n> files) -> `what-do-you-know/sessions/`
- `learning/study-plans/` (<n> files) -> `what-do-you-know/study-plans/`
Format conversions:
- `learning/progress.md` -> `what-do-you-know/progress.json`
- `learning/knowledge-map.md` -> `what-do-you-know/knowledge-map.json`
</output>
<if condition="dry-run-flag">
<action>Show the plan and stop. Do not move any files.</action>
<exit />
</if>
<ask-user-question>
<question>Proceed with what-do-you-know data migration?</question>
<option>Yes -- move files now</option>
<option>No -- cancel</option>
</ask-user-question>
Create Target Directories
mkdir -p /.things/what-do-you-know/sessions
mkdir -p /.things/what-do-you-know/study-plans
Move Data Files
Use `mv` (not `cp`) to avoid duplicates. Skip items that don't exist.
mv /.things/learning/sessions/* /.things/what-do-you-know/sessions/ 2>/dev/null || true
mv /.things/learning/study-plans/* /.things/what-do-you-know/study-plans/ 2>/dev/null || true
Convert progress.md to progress.json
Read `/.things/learning/progress.md`. Parse the markdown to extract dimension scores (Depth, Accuracy, Connections, Application, Articulation) and session history entries.
<write path="<home>/.things/what-do-you-know/progress.json">
<schema name="progress-json">
```json
{
"version": 1,
"last_updated": "<current_date>",
"dimensions": {
"depth": { "average": 0, "trend": "stable" },
"accuracy": { "average": 0, "trend": "stable" },
"connections": { "average": 0, "trend": "stable" },
"application": { "average": 0, "trend": "stable" },
"articulation": { "average": 0, "trend": "stable" }
},
"sessions": []
}
```
</schema>
<constraint>Populate actual values from the parsed markdown. Use the schema above as the structure, filling in real data.</constraint>
</write>
</if>
<if condition="no-progress-md">
<action>Skip this step.</action>
</if>
Convert knowledge-map.md to knowledge-map.json
Read `/.things/learning/knowledge-map.md`. Parse the markdown to extract topic classifications by category heading (Strong, Building, Gap, Blind Spot) and map each topic to its level.
<write path="<home>/.things/what-do-you-know/knowledge-map.json">
<schema name="knowledge-map-json">
```json
{
"version": 1,
"last_updated": "<current_date>",
"topics": {
"<topic>": {
"level": "strong|building|gap|blind_spot",
"last_assessed": "<date or null>",
"related_skills": []
}
}
}
```
</schema>
<constraint>Populate actual values from the parsed markdown. Use the schema above as the structure, filling in real data.</constraint>
</write>
</if>
<if condition="no-knowledge-map-md">
<action>Skip this step.</action>
</if>
Clean Up Empty Old Directories
rmdir /.things/learning/sessions 2>/dev/null || true
rmdir /.things/learning/study-plans 2>/dev/null || true
rmdir /.things/learning 2>/dev/null || true
Only `rmdir` (not `rm -rf`) -- this safely fails if directories aren't empty. If progress.md or knowledge-map.md are the only remaining files, leave them as backups until the user removes them manually.
Verify Migration
echo "sessions: $(ls /.things/what-do-you-know/sessions/*.md 2>/dev/null | wc -l | tr -d ' ') files"
echo "study-plans: $(ls /.things/what-do-you-know/study-plans/*.md 2>/dev/null | wc -l | tr -d ' ') files"
echo "progress.json: $([ -f /.things/what-do-you-know/progress.json ] && echo 'yes' || echo 'no')"
echo "knowledge-map.json: $([ -f /.things/what-do-you-know/knowledge-map.json ] && echo 'yes' || echo 'no')"
Handle Git
Read git workflow from `/.things/config.json`.
git -C /.things add -A && git -C /.things commit -m "migrate: what-do-you-know data to per-plugin directory" && git -C /.things push
Commit migrated files to .things repo?
Yes -- commit and push
Commit only -- commit without pushing
No -- I'll handle git myself
Tell the user their files have been moved and they can commit when ready.
Confirm
what-do-you-know data migration complete!
- <n> session files -> `~/.things/what-do-you-know/sessions/`
- <n> study plans -> `~/.things/what-do-you-know/study-plans/`
- progress.md converted to `~/.things/what-do-you-know/progress.json`
- knowledge-map.md converted to `~/.things/what-do-you-know/knowledge-map.json`
Your data is now in the per-plugin directory structure. Use `/explore-wdyk` to start learning.
</completion-message>
npx claudepluginhub brennacodes/brenna-plugs --plugin what-do-you-knowUpgrades existing Knowledge Base to latest Claude plugin practices: Obsidian graph-view links, structured 'When to Load' format, CLAUDE.md preamble, index schema, frontmatter health. Safe, preview-first, re-runnable.
Migrates an existing Obsidian vault to the obsidian-master-kit structure without destroying current layout. Detects vault state, backs up automatically, clusters notes via HDBSCAN embeddings, proposes adaptive folder-to-area mapping, and executes migration in human-approved batches with rollback.
Guides through configuring the aria-knowledge plugin: creates knowledge folder, checks dependencies, sets audit cadences, writes config. Use after install or plugin updates.