원클릭으로
workflow-orchestrator
工作流编排器。由各 planner 技能调用,接收工作流名称和参数,从模板生成 todo.md。不直接面向用户。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
工作流编排器。由各 planner 技能调用,接收工作流名称和参数,从模板生成 todo.md。不直接面向用户。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
多篇既有学习笔记的批量更新编排。用于用户想一次更新一个目录、文件列表、Obsidian vault 子目录或多篇旧笔记,例如“批量更新这些笔记”“多篇笔记过时了”“把一组笔记更新到新版本”“refresh multiple notes”。先生成更新清单和批量计划,经用户确认后逐篇调用 note-updater 局部 patch,避免全文重写和批量误覆盖。
旧笔记批量导入、盘点和规范化。用于用户已经有一堆 Markdown/Obsidian/零散学习笔记,想接入本项目工作区、按项目 Obsidian 规范补 frontmatter、标签、双链、Callout、MOC,并保留原始文件时使用。触发词:旧笔记导入、已有笔记、一堆笔记、批量整理、迁移到这个项目、按项目规范、import existing notes、normalize notes。
学习笔记需求澄清与引导。分析用户学习需求,引导明确学习目标和方向,调用 workflow-orchestrator 生成项目结构。触发词:想学、帮我整理、研究一下、了解一下、不知道从哪开始、research planning、explore topic。
业务工作流实例化器。由 planner 技能调用,接收 workflow_id、topic、project_slug 等参数,按 .claude/workflows/{workflow-id}/state-template.md 生成 workspace/workflow-runs/{run-id}.workflow.md。不直接面向用户;通用状态格式和状态流转由 workflow-todo-state 负责。
Create or retrofit reusable named workflow state machines for multi-step agent projects. Use when a project needs recoverable workflow state files, multiple workflow definitions, phase gates, restart-safe agent workflows, explicit skipped/blocked states, workflow routing rules, or reusable workflow templates across repositories.
自我学习阶段。回顾本次学习会话,记录学习心得和错误到 .claude/rules/learnings/,当文件超阈值时自动压缩去重,更新 RULES.md,促进系统持续改进。
| 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="${WORKSPACE_PATH}/${PROJECT_SLUG}"
mkdir -p "${PROJECT_DIR}"
# 5. 读取 todo 模板并替换占位符,生成 todo.md
sed -e "s/{topic}/${TOPIC}/g" \
-e "s/{project_slug}/${PROJECT_SLUG}/g" \
-e "s/{date}/$(date +%Y-%m-%d)/g" \
-e "s/{current_phase}/阶段 0/g" \
-e "s/{completed_chapters}/0/g" \
-e "s/{total_chapters}/待大纲确定/g" \
"${TODO_TEMPLATE}" > "${PROJECT_DIR}/todo.md"
# 注:{total_chapters} 和 {completed_chapters} 会在运行时由对应阶段更新:
# - 阶段 3 (outline-generator): 根据大纲统计章节数 → 替换 {total_chapters}
# - 阶段 4 (chapter-writer): 每完成一章 → 递增 {completed_chapters}
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 重跑