基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Treasoni/Study-Notes --skill workflow-orchestrator命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
Collect and curate technical research in two gated stages with compact source records. Use for systematic research, source gathering, research materials, or when a learning-note workflow is at collection phase P1 or P2.
发现当前运行时可用于资料收集的网页、浏览器、MCP 与研究技能,并刷新项目资料工具指南。用于询问可用工具、搜索工具、研究能力或资料收集方案时。
Obsidian 笔记智能美化与发布。用于将最终学习笔记处理成 Obsidian Markdown,补 frontmatter、标签、Callout、双链,并保存到用户指定位置。触发词:美化、Obsidian、优化格式、笔记美化、发布到 vault、beautify。
| name | workflow-orchestrator |
| description | 工作流编排器。由各 planner 技能调用,接收工作流名称和参数,从模板生成 todo.md。不直接面向用户。 |
接收 planner 传入的工作流参数,定位模板,生成 todo.md 执行检查清单。
各 planner 技能(research-planner / 未来 project-planner ...)
│
│ 传入参数: workflow, topic, depth, level, purpose ...
│
▼
workflow-orchestrator (本技能)
│
├── 根据 workflow 参数定位模板
│
├── sed 替换占位符
│
├── 生成 todo.md
│
└── 返回项目路径
本技能不直接面向用户,由 planner 技能调用:
research-planner 完成意图澄清后,调用本技能生成 todo.md/workflow-orchestrator模板存储位置: templates/ 目录
每个工作流由两个文件组成:
| 文件 | 命名 | 用途 | 谁来读 |
|---|---|---|---|
| 工作流说明书 | {workflow-name}.md | 定义阶段、检查点、错误处理、技能依赖 | agent / 人(理解流程) |
| todo 模板 | {workflow-name}-todo.md | 带 {topic} 等占位符的执行清单 | orchestrator(sed 替换生成 todo.md) |
当前可用工作流:
| 工作流 | 说明书 | todo 模板 | 用途 | 阶段数 |
|---|---|---|---|---|
| learning-note-flow | learning-note-flow.md | learning-note-todo.md | 完整学习笔记生产 + Obsidian 发布 + MOC 同步 | 8 (阶段 0-7) |
| legacy-note-import-flow | legacy-note-import-flow.md | legacy-note-import-todo.md | 已有旧笔记批量导入、规范化、可选更新与 MOC 同步 | 6 (阶段 0-5) |
| batch-note-update-flow | batch-note-update-flow.md | batch-note-update-todo.md | 多篇既有笔记批量更新、逐篇局部 patch 与 MOC 同步 | 6 (阶段 0-5) |
说明书格式要求:
todo 模板格式要求:
{topic} {project_slug} {date} {current_phase}⬜ 未开始orchestrator 不负责选择工作流——调用方 planner 会明确传入 workflow 参数。
planner 传入的参数结构:
必传:
workflow: "learning-note-flow" # 由 planner 指明要使用哪个工作流
topic: "React Server Components" # 主题
可选(各 planner 自行决定传哪些):
depth: "精通" # 学习深度
level: "有了解" # 用户基础
purpose: "实战" # 目的
output_target: "project-output" # project-output 或 obsidian
vault_path: "" # 用户指定 Obsidian vault 根目录,可后续补
note_folder: "" # vault 内相对目录,可后续补
moc_path: "" # MOC 文件路径,可后续补
orchestrator 的职责: 收到参数 → 定位 workflow 对应的模板 → 生成 todo.md。
根据 workflow 参数定位说明书和 todo 模板,用 sed 替换占位符生成定制化 todo.md。
生成逻辑:
路径约定:模板位于本 skill 目录下,项目产物位于
${WORKSPACE_PATH:-./workspace}下。不要写死/workspace。
# 0. planner 传入的参数
WORKFLOW="${1:-learning-note-flow}" # 工作流名称
TOPIC="${2}" # 主题
# 1. 生成项目 slug
PROJECT_SLUG=$(echo "$TOPIC" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
# 2. 定位模板文件(以 workflow 名称匹配)
FLOW_DOC=".claude/skills/workflow-orchestrator/templates/${WORKFLOW}.md"
case "$WORKFLOW" in
learning-note-flow) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/learning-note-todo.md" ;;
legacy-note-import-flow) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/legacy-note-import-todo.md" ;;
batch-note-update-flow) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/batch-note-update-todo.md" ;;
*) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/${WORKFLOW}-todo.md" ;;
esac
# 3. 验证模板存在
if [ ! -f "$TODO_TEMPLATE" ]; then
echo "错误: 工作流 '${WORKFLOW}' 的 todo 模板不存在"
echo "请确保 templates/ 下有 ${WORKFLOW}-todo.md"
exit 1
fi
# 4. 创建项目目录
WORKSPACE_PATH="${WORKSPACE_PATH:-./workspace}"
PROJECT_DIR=
-p
sed -e \
-e \
-e \
-e \
-e \
-e \
>
orchestrator 从调用方 planner 接收结构化参数:
必传:
workflow: "learning-note-flow" # 指明使用哪个工作流
强烈建议:
topic: "React Server Components" # 主题/标题
可选:
project_slug: "react-server-components" # 如不传,由 orchestrator 根据 topic 自动生成
depth: "精通" # 学习深度
level: "有了解" # 用户基础
purpose: "实战" # 目的/类型
output_target: "project-output" | "obsidian"
vault_path: "{用户指定 vault 路径,可后续补}"
note_folder: "{vault 内相对目录,可后续补}"
moc_path: "{MOC 路径,可后续补}"
根据 workflow 参数定位说明书和 todo 模板:
# 根据 workflow 参数定位模板
FLOW_DOC=".claude/skills/workflow-orchestrator/templates/${WORKFLOW}.md"
case "$WORKFLOW" in
learning-note-flow) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/learning-note-todo.md" ;;
legacy-note-import-flow) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/legacy-note-import-todo.md" ;;
batch-note-update-flow) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/batch-note-update-todo.md" ;;
*) TODO_TEMPLATE=".claude/skills/workflow-orchestrator/templates/${WORKFLOW}-todo.md" ;;
esac
# 验证存在
if [ ! -f "$TODO_TEMPLATE" ]; then
echo "错误: 工作流 '${WORKFLOW}' 未配置"
ls -1 .claude/skills/workflow-orchestrator/templates/*-todo.md | sed 's/.*\///;s/-todo.md//'
echo "以上为可用工作流"
exit 1
fi
sed 替换占位符,从 todo 模板生成项目特定的 todo.md(具体 sed 逻辑见"功能 3")。
WORKSPACE_PATH="${WORKSPACE_PATH:-./workspace}"
PROJECT_DIR="${WORKSPACE_PATH}/${PROJECT_SLUG}"
mkdir -p ${PROJECT_DIR}
返回信息:
输出格式:
## ✅ 项目已创建
### 项目信息
- 主题: {topic}
- 目录: ${WORKSPACE_PATH:-./workspace}/{project_slug}/
- 工作流: learning-note-flow
### todo.md 已生成
[预览 todo.md 内容]
### 后续步骤
1. 运行 `/research-planner` 进行意图澄清
2. 系统将自动调用 workflow-orchestrator 生成 todo.md
3. 按照 todo.md 执行各阶段任务
每个模板文件必须包含以下结构:
# {工作流名称}
## 工作流描述
{简要描述工作流的用途}
## 阶段定义
### 阶段 0: {阶段名称}
- **负责技能**: /skill-name 或 agent-name
- **前置条件**: {阶段 N 完成} (可选)
- **检查项**:
- [ ] 检查项 1
- [ ] 检查项 2
- **输出文件**: `filename.md`
- **状态**: ⬜ 未开始
### 阶段 1: {阶段名称}
...
## 目录结构
${WORKSPACE_PATH:-./workspace}/${PROJECT_SLUG}/ ├── file1.md ├── file2.md └── ...
## 状态流转
⬜ 未开始 → 🔲 进行中 → ✅ 已完成
各 planner(领域特异性)
│
│ research-planner ──→ workflow="learning-note-flow"
│ legacy-note-importer ──→ workflow="legacy-note-import-flow"
│ batch-note-updater ──→ workflow="batch-note-update-flow"
│ project-planner ──→ workflow="project-flow" (未来)
│
▼
workflow-orchestrator (本技能)
│
├── 读 templates/{workflow}.md (说明书)
├── 读 templates/{workflow}-todo.md (todo 模板)
├── sed 替换占位符
└── 生成 ${WORKSPACE_PATH:-./workspace}/{slug}/todo.md
│
▼
按 todo.md 各阶段执行:
research-collector → outline-generator → chapter-writer → note-assembler → note-beautifier
legacy-note-importer → note-beautifier → note-updater(可选) → moc-organizer
batch-note-updater → note-updater → moc-organizer(可选)
research-planner 完成意图澄清后:
调用 workflow-orchestrator:
参数:
workflow: learning-note-flow
topic: React Server Components
depth: 上手
level: 有了解
purpose: 实战
orchestrator:
1. 定位模板:
templates/learning-note-flow.md (说明书)
templates/learning-note-todo.md (todo 模板)
2. sed 替换生成 ./workspace/react-server-components/todo.md
3. 返回项目路径
查看 orchestrator templates/ 目录即可:
templates/
learning-note-flow.md ← 说明书
learning-note-todo.md ← todo 模板
legacy-note-import-flow.md ← 说明书
legacy-note-import-todo.md ← todo 模板
batch-note-update-flow.md ← 说明书
batch-note-update-todo.md ← todo 模板
每个工作流一对文件。规划添加新工作流时,同时创建这俩文件 + 对应的 planner 或入口 skill。
创建模板文件对:
WORKFLOW="project-flow"
touch .claude/skills/workflow-orchestrator/templates/${WORKFLOW}.md # 说明书
touch .claude/skills/workflow-orchestrator/templates/${WORKFLOW}-todo.md # todo 模板
写说明书: 定义阶段、检查项、技能依赖(格式见"模板格式规范")
写 todo 模板: 带 {topic} {project_slug} {date} {current_phase} 占位符
创建对应 planner 或入口 skill: 在 .claude/skills/ 下新建 skill,负责该领域的意图澄清,完成后调用 orchestrator 并传入 workflow="project-flow"
更新项目路由文档: 在 AGENTS.md 和 .claude/rules/common/skill-invocation.md 中添加触发规则
测试: 通过对应 planner 触发,验证 todo.md 生成正确
output/legacy-note-importerbatch-note-updaternote-updater,不要从阶段 0 重跑