/reset
按 scope 重置 wiki 到干净 scaffold。设计目的是开发迭代和 setup 失败恢复 — 不是日常操作。
Trigger
手动:/reset --scope wiki / --scope raw / --scope log / --scope checkpoints / --scope all。可用逗号组合多个 scope:--scope wiki,log。
Inputs
--scope(必填):取值wiki— 删除wiki/<entity>/与wiki/outputs/下所有*.md,同时删除wiki/index.md、wiki/log.md和wiki/graph/下的文件。保留.gitkeep和wiki/CLAUDE.md。raw— 删除raw/papers/、raw/discovered/、raw/tmp/、raw/notes/、raw/web/下所有条目(保留.gitkeep)。log— 重置wiki/log.md为空模板。checkpoints— 通过research_wiki.py checkpoint-clear清除批处理状态。all— 以上全部。
Outputs
- 磁盘上清空 / 重置后的文件。
- 控制台摘要:已删除文件数、已重置文件数。
Wiki Interaction
读取
- 所有
wiki/<entity>/*.md(用于枚举删除清单)。 raw/<sub>/*(用于枚举 raw 删除清单)。
写入
- 删除
wiki/<entity>/*.md(保留.gitkeep)。 - 重写
wiki/index.md、wiki/graph/*,可选地重写wiki/log.md。 - 删除
raw/<sub>/*(保留.gitkeep)。
Workflow
前置条件:当前目录包含 wiki/、tools/。WIKI_ROOT=wiki/。
Step 1: 构造删除计划(dry-run)
python3 tools/reset_wiki.py --scope <scope>
该命令打印 JSON 计划,列出将要删除或重置的全部文件,不修改任何东西。按 scope 分组展示给用户(wiki entity 目录、raw 子目录、log、checkpoints)。
Step 2: 与用户确认
打印计划摘要并请求显式确认:
About to delete N files and reset M files. Continue? [y/N]
用户拒绝则退出。未经明确许可不得执行 — /reset 是破坏性操作,raw/ 的删除不可恢复。
Step 3: 执行
python3 tools/reset_wiki.py --scope <scope> --yes
工具打印 JSON 状态报告({deleted_files, reset_files})。
Step 4: 记录日志(除非已重置 log)
若执行的 scope 不包含 log,追加一条日志:
python3 tools/research_wiki.py log wiki/ "reset | scope: <scope>"
Step 5: 报告
打印结果并建议下一步:
## Reset complete — scope: <scope>
Deleted: N files
Reset: M files
Next steps:
- /init — 从 raw/ 引导 wiki
- /prefill — 沉淀基础背景知识
- /ingest — 手动添加单个来源
Constraints
- 破坏性操作前必须确认:禁止在未展示计划并征得用户同意前调用
--yes。 - 保留:
.gitkeep占位、wiki/CLAUDE.md、.claude/(skill 永不被触碰)。 raw/删除不可逆:PDF 不在 git 中。执行raw或allscope 前必须警告用户。/reset不触碰tools/、mcp-servers/、i18n/、.env或 git 状态。- scope 必填:无默认行为(
/reset不带参数时提示用户选择 scope,而非猜测)。
Error Handling
- 未知 scope:列出有效 scope 并以非零退出码退出。
- wiki 目录缺失:报错并建议运行
/init。 checkpoint-clear失败:记录警告但不影响其他 scope。
Dependencies
工具(通过 Bash)
python3 tools/reset_wiki.py --scope <scope> [--yes] [--project-root .]— 确定性破坏性辅助工具python3 tools/research_wiki.py log wiki/ "<message>"— 追加日志reset_wiki.py在checkpointsscope 下直接删除wiki/.checkpoints/*.json(不走 CLI —checkpoint-clear子命令需指定具体的task_id,而/reset --scope checkpoints的语义是"全部清除")