inbox-triage

TRIGGER: inbox-triage, 查收inbox, inbox分拣, inbox triage, 处理inbox. 扫描 inbox/ 目录,AI 分类每个文件,展示分拣计划,询问是否创建新项目目录, 执行文件移动并验证结果。适用于定期清理 inbox 的完整分拣流程。

Inbox Triage

当此 skill 被触发时,依次执行以下四个阶段。每个阶段完成后方可进入下一阶段。


Phase 1 — Scan(扫描)

  1. 列出 inbox/ 目录下的所有文件(使用 Glob 工具)。
  2. 排除 README.md
  3. 若列表为空:输出 "✅ Inbox 已清空,无需分拣。" 并终止流程。
  4. 将文件列表记录在内存中,进入 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.mdbuild-cli-tool

输出

以 Markdown 表格展示分拣计划:

| 文件名 | 分类依据(一句话) | 目标路径 | 状态标签 |
|--------|-------------------|----------|----------|
| ...    | ...               | ...      | ...      |

Phase 3 — Confirm & Scaffold(确认 + 建目录)

  1. 展示 Phase 2 的分拣计划表,询问用户:

    • "以上分拣计划是否正确?如需修改,请指出文件名和期望目标路径。"
    • 等待用户确认或修正后,更新计划,再进入 Phase 4。
  2. 对目标为 projects/ 的条目,检查目录是否已存在:

    • 不存在 → 询问用户:"是否为 projects/{name}/ 使用 templates/project-scaffold/ 创建项目骨架?"
      • 用户同意 → Phase 4 中复制模板并创建 data/ 子目录。
      • 用户拒绝 → 改为归档:目标改为 archive/{name}/,状态标签改为 搁置
    • 已存在 → 直接移入,无需建骨架。
  3. 对目标为 projects/{project}/data/ 的资产文件,检查父项目目录是否存在:

    • 不存在 → 告知用户,询问是否建骨架(同上)或跳过该文件。
  4. 对目标为 sandbox/knowledge-base/ 的资产文件:仅 mkdir -p {目标路径} 确保目录存在,无需模板骨架,Phase 4 直接移动。


Phase 4 — Execute & Verify(执行 + 验证)

4.1 执行顺序

按以下顺序处理每个文件:

.md idea 文件:

  1. 若需建项目骨架:使用 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"
    
  2. 在文件头部(第一行之前)追加元数据块:
    ---
    Status: {状态标签}
    Triaged: {今日日期 YYYY-MM-DD}
    Destination: {目标路径}
    ---
    
    
  3. 将修改后的文件移动到目标路径:{目标路径}/{文件名}

对资产文件:

mkdir -p {目标路径} 确保目录存在(幂等安全),然后直接移动文件到目标路径。 适用于所有目标类型:projects/{name}/data/sandbox/{subdir}/knowledge-base/{domain}/archive/{name}/

4.2 验证

  1. 列出 inbox/ — 应仅剩 README.md(或空)。
  2. 逐一确认每个目标文件已存在。
  3. 输出摘要报告:
## 分拣完成 ✅

| 文件名 | 目标路径 | 状态 |
|--------|----------|------|
| ...    | ...      | ✅ 已移动 / ❌ 失败 |

Inbox 剩余文件数:0(仅 README.md)

若有失败项,列出原因并提示用户手动处理。


注意事项

  • 所有路径均基于 workspace 根目录:D:\Dev_Env\Claude_Code_Workspace\
  • 使用 Unix 风格路径调用 Bash(正斜杠)
  • 若 inbox/ 有子目录,当作资产文件夹处理(整体移动)
  • 不修改 inbox/README.md,永远保留在 inbox/