JoeVault
Archive old state without breaking live state.
Quick start
- 1. Run
scripts/audit_paths.py with the current root, stale root, and candidate relative paths. - Classify each stale path as
quarantine now, leave for inventory, or keep active. - Quarantine only small, clearly inactive state first.
- Inventory large stale workspaces before moving them.
- When moving anything, use
scripts/quarantine_path.py so the archive gets a manifest entry.
Workflow
1. Audit first
Run the audit script before any move:
CODEBLOCK0
What to look for:
- - stale paths that still exist
- live configs that still reference stale paths
- symlinks that still point at old homes
- large directories that should not be moved blindly
- recent activity inside stale paths
2. Classify the stale paths
Use references/classification.md when deciding what to do.
Default rules:
- - small old state directories like
.openclaw or .claude are usually safe to quarantine first - large workspaces, model folders, training outputs, or media trees must be inventoried before moving
- anything still referenced by live config is not ready for quarantine
3. Quarantine conservatively
Use quarantine for paths that are clearly inactive:
CODEBLOCK1
The script:
- - creates the archive root if needed
- refuses to overwrite an existing target
- moves the source into the archive
- appends a manifest entry to INLINECODE8
4. Inventory large trees before touching them
For large stale workspaces, get a top-level size view first:
CODEBLOCK2
Do not move a massive stale workspace until you know whether it contains:
- - model weights
- voice assets
- training outputs
- media renders
- reference repos
- recent work
5. Verify the live system after every move
After any quarantine step, check:
- - current symlinks still resolve correctly
- active configs no longer reference old paths
- the live service still starts
- the archive manifest records what moved and why
Notes
- - Prefer rename-and-quarantine over deletion.
- Prefer one small safe move over one giant risky move.
- If the user asks to “clean it all up,” still audit first.
- If a stale workspace had recent activity, treat it as a reference archive candidate, not trash.
JoeVault
在不破坏活跃状态的前提下归档旧状态。
快速开始
- 1. 使用当前根目录、旧状态根目录和候选相对路径运行 scripts/auditpaths.py。
- 将每个旧状态路径分类为立即隔离、留待盘点或保持活跃。
- 首先仅隔离小型、明显不活跃的状态。
- 在移动大型旧工作区之前先进行盘点。
- 移动任何内容时,使用 scripts/quarantinepath.py,以便归档获得清单条目。
工作流程
1. 先审计
在进行任何移动之前运行审计脚本:
bash
python3 scripts/audit_paths.py \
--current-root /mnt/c/Users/Joseph \
--stale-root /mnt/c/Users/Joe \
--candidate .openclaw \
--candidate openclaw-workspace \
--search-root /mnt/c/Users/Joseph/.openclaw \
--search-root /mnt/c/Users/Joseph/openclaw-workspace
需要关注的内容:
- - 仍然存在的旧状态路径
- 仍引用旧状态的活跃配置
- 仍指向旧主目录的符号链接
- 不应盲目移动的大型目录
- 旧状态路径内的近期活动
2. 分类旧状态路径
在决定如何处理时,参考 references/classification.md。
默认规则:
- - 小型旧状态目录(如 .openclaw 或 .claude)通常可以首先安全隔离
- 大型工作区、模型文件夹、训练输出或媒体树在移动前必须进行盘点
- 任何仍被活跃配置引用的内容都不适合隔离
3. 保守隔离
对明显不活跃的路径使用隔离:
bash
python3 scripts/quarantine_path.py \
--source /mnt/c/Users/Joe/.openclaw \
--archive-root /mnt/c/Users/Joseph/Archives/profile-switch-2026-03-31 \
--label old-joe-openclaw
该脚本会:
- - 在需要时创建归档根目录
- 拒绝覆盖现有目标
- 将源目录移动到归档中
- 将清单条目追加到 MANIFEST.md
4. 在接触大型目录前先进行盘点
对于大型旧工作区,首先获取顶层大小视图:
bash
du -sh /path/to/stale-workspace/* 2>/dev/null | sort -h | tail -n 30
在了解以下内容之前,不要移动大型旧工作区:
- - 模型权重
- 语音资产
- 训练输出
- 媒体渲染
- 参考仓库
- 近期工作
5. 每次移动后验证活跃系统
在任何隔离步骤之后,检查:
- - 当前符号链接仍能正确解析
- 活跃配置不再引用旧路径
- 活跃服务仍能启动
- 归档清单记录了移动的内容及原因
注意事项
- - 优先使用重命名并隔离,而非删除。
- 优先进行一次小型安全移动,而非一次大型风险移动。
- 如果用户要求全部清理,仍需先进行审计。
- 如果旧工作区有近期活动,将其视为参考归档候选,而非垃圾。