| name | inbox-triage |
| description | TRIGGER: inbox-triage, 查收inbox, inbox分拣, inbox triage, 处理inbox. 扫描 inbox/ 目录,AI 分类每个文件,展示分拣计划,询问是否创建新项目目录, 执行文件移动并验证结果。适用于定期清理 inbox 的完整分拣流程。 |
Inbox Triage
当此 skill 被触发时,依次执行以下四个阶段。每个阶段完成后方可进入下一阶段。
Phase 1 — Scan(扫描)
- 列出
inbox/ 目录下的所有文件(使用 Glob 工具)。
- 排除
README.md。
- 若列表为空:输出 "✅ Inbox 已清空,无需分拣。" 并终止流程。
- 将文件列表记录在内存中,进入 Phase 2。
Phase 2 — Classify(AI 分类)
对 Phase 1 中每个文件,按以下逻辑判断分类:
分类规则
| 文件类型 | 判断依据 | 目标路径 |
|---|
.md idea 文件 | 读取文件内容,判断意图 | 见下方意图矩阵 |
| 资产文件(图片/代码/文档等) | 按优先级路由(见下方资产路由规则) | 见资产路由规则 |
资产路由规则(优先级顺序)
| 优先级 | 判断条件 | 目标路径 |
|---|
| P1 | 文件名/内容匹配现有 sandbox/{subdir} 子目录关键词 | sandbox/{subdir}/ |
| P2 | 文件属于 KB 领域(可视化 .html、规格 .yaml 等) | knowledge-base/{domain}/ |
| P3 | 文件名匹配现有 projects/{name} | projects/{name}/data/ |
| P4 | .skill 文件且对应 skill 已安装在 ~/.claude/skills/ | sandbox/{name}-examine/(若存在)或 archive/{name}/ |
| P5 | 无明确匹配 | archive/{filename-no-ext}/ |
.md 文件意图矩阵
| 内容特征 | 目标目录 | 状态标签 |
|---|
| 明确目标 + 可立项(有背景、目标、产出) | projects/{idea名称}/ | 立项 |
| 学习 / 教程 / 研究 / 阅读笔记 | learning/{idea名称}/ | 学习 |
| 快速实验 / 原型 / 脚本验证 | sandbox/{idea名称}/ | 实验 |
| 想法模糊 / 仅一行描述 / 搁置 | archive/{idea名称}/ | 搁置 |
| 已蒸馏至 KB / 已安装 / 明确的原始来源材料 | archive/{idea名称}/ | 已归档 |
对于 .md 文件,"idea名称"取文件名去除日期前缀和扩展名,例如 2026-03-17-build-cli-tool.md → build-cli-tool。
输出
以 Markdown 表格展示分拣计划:
| 文件名 | 分类依据(一句话) | 目标路径 | 状态标签 |
|--------|-------------------|----------|----------|
| ... | ... | ... | ... |
Phase 3 — Confirm & Scaffold(确认 + 建目录)
-
展示 Phase 2 的分拣计划表,询问用户:
- "以上分拣计划是否正确?如需修改,请指出文件名和期望目标路径。"
- 等待用户确认或修正后,更新计划,再进入 Phase 4。
-
对目标为 projects/ 的条目,检查目录是否已存在:
- 不存在 → 询问用户:"是否为
projects/{name}/ 使用 templates/project-scaffold/ 创建项目骨架?"
- 用户同意 → Phase 4 中复制模板并创建
data/ 子目录。
- 用户拒绝 → 改为归档:目标改为
archive/{name}/,状态标签改为 搁置。
- 已存在 → 直接移入,无需建骨架。
-
对目标为 projects/{project}/data/ 的资产文件,检查父项目目录是否存在:
- 不存在 → 告知用户,询问是否建骨架(同上)或跳过该文件。
-
对目标为 sandbox/ 或 knowledge-base/ 的资产文件:仅 mkdir -p {目标路径} 确保目录存在,无需模板骨架,Phase 4 直接移动。
Phase 4 — Execute & Verify(执行 + 验证)
4.1 执行顺序
按以下顺序处理每个文件:
对 .md idea 文件:
- 若需建项目骨架:使用 Bash 将
templates/project-scaffold/ 复制到目标目录,再创建 data/ 子目录。
cp -r "D:/Dev_Env/Claude_Code_Workspace/templates/project-scaffold/." "D:/Dev_Env/Claude_Code_Workspace/projects/{name}/"
mkdir -p "D:/Dev_Env/Claude_Code_Workspace/projects/{name}/data"
- 在文件头部(第一行之前)追加元数据块:
---
Status: {状态标签}
Triaged: {今日日期 YYYY-MM-DD}
Destination: {目标路径}
---
- 将修改后的文件移动到目标路径:
{目标路径}/{文件名}。
对资产文件:
mkdir -p {目标路径} 确保目录存在(幂等安全),然后直接移动文件到目标路径。
适用于所有目标类型:projects/{name}/data/、sandbox/{subdir}/、knowledge-base/{domain}/、archive/{name}/。
4.2 验证
- 列出
inbox/ — 应仅剩 README.md(或空)。
- 逐一确认每个目标文件已存在。
- 输出摘要报告:
## 分拣完成 ✅
| 文件名 | 目标路径 | 状态 |
|--------|----------|------|
| ... | ... | ✅ 已移动 / ❌ 失败 |
Inbox 剩余文件数:0(仅 README.md)
若有失败项,列出原因并提示用户手动处理。
注意事项
- 所有路径均基于 workspace 根目录:
D:\Dev_Env\Claude_Code_Workspace\
- 使用 Unix 风格路径调用 Bash(正斜杠)
- 若 inbox/ 有子目录,当作资产文件夹处理(整体移动)
- 不修改
inbox/README.md,永远保留在 inbox/