live2d-clothing · git:20261019.7a3a2ce · 2026-10-19 · sha256 02cd7d4c1df8e567

live2d-clothing git:20261019.7a3a2ceA

Immutable. This exact content never changes and is served at /api/v1/blob/02cd7d4c1df8e567.

---
name: live2d-clothing
description: 根据穿衣参考图,在已有分层素体 SVG 上还原或制作可替换衣装。用于执行或续跑本目录的衣装工作流。
---

# 工作流调度规则

本文件只规定通用执行与交接方式。编号目录决定顺序,各级 `流程.yaml` 声明输入、分支、执行者和产物;具体制作要求写在节点提示词中。遇到具体语法时查阅本技能的 [Workflow DSL](docs/workflow-dsl.md),以实际配置为准。

## 调用与输入

读取[根配置](流程.yaml),按 `inputs` 声明绑定外部素材,并单独绑定本轮绝对工作根目录;仅询问必要绑定中的缺项,不从旧任务或其它技能猜测隐含输入。输入文件与技能资料只读,产物和临时文件写入工作根目录。用户仅要求规划或修改流程时,不启动制作任务。

根配置若声明运行选项,按本技能 DSL 读取和核对工作根目录中的实际值;用户本轮明确选择优先,负责判断的 worker 写入或修正。

`SKILL.md` 所在目录是任务资料根。通用工具放在本技能的 [tools](tools/readme.md),单步骤工具放在对应步骤的 `tools/`;跨技能共用时各自保存一份。所有 `流程.yaml` 中的 `run`、`asset`、`prompt` 都从本技能根目录解析,不得越过该目录;交接时使用绝对路径。

## 读取与绑定

- 按目录编号逐级展开、按数字排序;同编号声明为 `parallel` 的兄弟节点在依赖就绪后并行,全部完成再继续。纯容器只组织子任务,不额外执行父任务。
- 每个节点先读取自己的 `流程.yaml`。语言或生图任务必须显式声明 `run`,再读取执行目录的提示词与 `.model`;条件任务把 `run` 放在选中分支,单任务循环使用 `foreach.run`,不重新进入自身循环。无 `run` 的别名分支只发布已有路径,不能按模型文件隐式派发。
- `inputs.*` 绑定根输入或当前循环输入,`nodes.*` 绑定已成功交付的节点产物;`asset` 指向技能内资源,普通输出路径相对工作根目录。`required: false` 缺项明确记为“未提供”,文件损坏或上游失败不算缺省。
- `if / then / else` 按已绑定数据选择分支;条件字段缺失或类型错误时交负责生成它的 worker 补正。分支继承节点输入并加入自身输入;输出引用已有路径时直接发布,不另行复制或派发。
- `writes_options` 由声明的 worker 核对根配置中的选项名和类型,使用节点绑定的工具写入;总控读取结果后继续。派发资料限节点声明的输入、上游产物、素材和工具,不追加教程原文、其它技能或整套规划文档。

## worker 与循环

派发每个语言任务前,按选中分支 `worker` → 节点 `worker` → 节点 `id` 确定会话身份;独立 review 使用 `review.worker`,否则使用 `<节点 id>:review`,与绘制者隔离。按身份查找本轮记录的 worker_id(实际 agent ID):已有可续做会话就用 `followup_task`,没有才用 `spawn_agent`,并立即记录对应关系。新会话从 `.model` 文件名读取模型和推理强度,显式指定两者及 `fork_turns: "none"`;不同身份不共用会话。

并行分支共用已有 worker 时,从共同前序完成点分别 fork;由原 worker 发起并返回分支 agent ID。分支内续做和返修回到各自会话,汇合后继续原会话并显式交接分支产物。复用与 fork 的模型和推理强度保持一致。

`foreach` 先绑定节点输入,再按声明取当前项、序号、总数与 `is_last`;占位符按当前项替换。串行 `carry` 从节点初始输入开始,每项使用上一成功项最新产物,任务及其 review 通过后才推进;没有同名输出时保留已有 carry。循环项的 `nodes.*` 和进度各自隔离,全部完成才发布循环结果;`when: last_item` 只交给末项。

最小交接格式:

```text
工作根目录:<绝对输出目录>
提示词:<节点提示词绝对路径>
输入:<绑定名=实际路径或当前项数据;可选缺项写“未提供”>
循环上下文:<仅循环任务:当前项、序号/总数、is_last>
输出:<本次声明的产物路径,或写入的选项名>
读取提示词并执行,命令工作目录设为工作根目录。
```

同一 worker 恢复工作时仍显式传入最新产物;返修基于当前候选修具体问题,不用早期整图覆盖后续成果。

## 生图与审查

- `imagegen.model` 由总控直接调用生图工具,不派语言 worker。读取 `imagegen.prompt`;有 `imagegen.inputs` 时只传列出的图片与文本,其余输入仅用于调度。生成要求只包含节点声明的自然语言,不混入路径、运行变量或结构文件;按 `imagegen.when` 决定是否生成,保存声明产物并确认可读。失败如实报告,不自动切换分支或额外重绘。
- 只执行节点明确声明的独立 review,并使用独立于绘制者的会话。`pass` 后发布输出;`revise` 交原绘制者修具体问题,再由同一 reviewer 复验;`blocked` 报告实际缺项。总控核对声明交付与审查状态,不追加截图、哈希链、组装或成稿审查。

## 完成与续跑

在工作根目录的 `运行记录.md` 简记输入绑定、选项和分支(若有)、节点与循环状态、worker_id、分支 agent ID、产物路径及必要审查结论。续跑核对实际文件和当前配置,恢复最新成功产物与会话;会话失效时交接当前稿和未完成范围。

最终汇报实际完成范围和未解决项,不把静态素材交付表述为动画绑定已完成。