live2d-expressions · git:20261019.52c20df · 2026-10-19 · sha256 bf0c4b0002809d57

live2d-expressions git:20261019.52c20dfA

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

---
name: live2d-expressions
description: 执行 SVG 边界关键形 agent 工作流:模型设计12轴基本面部参数极值与二维/三维组合形,程序保持原路径拓扑并连续插值,独立审查真实边界和中间态,不制作表情预设。
---

# SVG 参数边界工作流

执行入口为 [workflow.yaml](workflow.yaml),调度语义见 [DSL 文档](docs/workflow-dsl.md)。只有显式 `tasks`、`needs` 和产物引用决定执行;编号目录标明步骤归属,不靠扫描目录调度。角色形变使用 0.3 `boundary_recipe` / `boundary_rig`,不再用 0.2 自动闭眼/张嘴公式作为主创作方式。

标准工作流固定采用 [basic-face-v1](docs/basic-face-v1.md):双眼开合/弧形、双眉高度/角度/弧形和嘴开合/形状,共12轴,不能由规格作者省略后仍宣称完成。通用0.3格式仍可加载未声明profile的旧局部试验,它们不满足本工作流。

本阶段目标是让每个公开参数拥有合理、足够宽、可验证的可达范围。模型先像 rig 作者一样调整有限的极值关键形,程序计算它们之间的连续变化。**不生成情绪预设、离散五官替换、附件或语义表情组合。** 修改工作流的任务不自动启动角色生产。

本技能遵守上游工具归属:跨步骤共用工具放在 [tools](tools/readme.md),盘点、编译、扫描工具分别放在对应编号步骤的 `tools/`;提示词与步骤同目录。所有资源从本技能根目录解析,不引用技能外或另一技能的工具。交接使用解析后的绝对路径,输入与技能只读,输出写入本轮工作根目录。

## 本地工具依赖

在本技能目录执行一次 `npm ci --prefix tools`,并在所用 Python 环境安装 `tools/requirements.txt`。扫描需要 Chrome/Chromium:可执行 `npx --prefix tools playwright install chromium`,也可用 `ASTRA_BROWSER` 指定已有浏览器;`ASTRA_PYTHON` 可指定已安装 jsonschema 的 Python。便携预览直接打开 `tools/preview/boundary-preview.html`,无需安装依赖。

## 开始与调度

绑定用户给定的只读 `base_svg`、新的绝对输出目录及可选参考、需求。用户不需要填写最大张口、闭眼接触线或控制点;这些都是作者职责。先执行公共 [workflow_plan.py](tools/workflow_plan.py) 的 `validate` 和 `plan`。

计划器只解析 DAG、路径、签名和状态,不调用模型或执行命令。调度 agent 使用真实任务 prompt、模型配置和解析后的 `argv`;不得用脚本填入成功状态模拟完整 agent 工作流。工具的实现、schema 和 runtime 都参与输入签名。

输入原稿与公共工具只读;每个任务只写自己声明的输出。控制器独占 `run-state.json`。互不依赖且输出隔离的 ready 任务可以并行;reviewer 必须与作者使用独立会话。同一作者的定向返修续用原会话,保留实际问题和轮数。

`models` 声明作者/reviewer 的配置。使用执行环境可用的对应模型;若不可用,记录实际模型与差异,按已有授权选择可用替代,不能伪称用了原配置,也不能为工具不存在而虚构运行结果。每次交接给出任务 id、模型、prompt、完整输入/输出路径、用户约束和本轮失败证据。

## 模型与程序的分工

1. `inspect` / `scope` 从真实渲染和节点建立眼、口、眉的完整运动区域。除了主要轮廓,还要明确邻近眼皮、眼眶阴影、唇周阴影、高光、眼白/口腔裁剪、虹膜/牙舌的归属。每个未跟随的邻层必须有固定理由,不能自动忽略。
2. `prepare` 恒等复制原稿并核对 SHA-256。不得改 SVG 字节、层级、id、颜色、路径命令拓扑或补隐藏素材。
3. `author_boundaries` 由模型在 JSON 中手工设计控制点/路径关键形。先保留原中性,再为每轴设计最小/最大边界;眼睛必须联合设计每侧 `open × curve`(默认2×3),真实闭合时curve仍可改变眼睑弧形,并保持原睫毛尖。每侧眉毛联合设计 `height × angle × curve`(默认3×3×3),三轴分别控制抬降、两端倾斜和曲率。嘴必须联合设计 `open × form` 的完整组合。嘴部模型默认只创作 open=[0,1] × form=[-1,0,1] 的六个边界组合;程序插值半开,审查闭口/半开/全开 × 负/中/正九宫格,不能把两个独立一维位移简单相加。
4. 关键形可以同时改同一区域的原路径坐标以及既有裁剪/显隐;原设计的睫毛束数、尖端、唇峰、器官结构保持。周边部件共享同一关键形坐标或明确的邻域跟随/固定外边界。在一次程序规范化后,各关键形拓扑保持相同;原中性到极值的中间值由程序计算,禁止让模型逐帧重画、增删路径或开新洞。
5. `build_rig` 编译成固定拓扑的数值关键形;`scan_boundaries` 自动生成端点、组合角点、原中性与内插中间值的真实 PNG。运行时只求插值,不调用模型、不重新创作几何。
6. `review_boundaries` 逐一看扫描列出的 `visual_cases`,并在共用预览中连续拖动参数。数值连续、路径有限、源文件不变均不能证明视觉可用。审查报告必须记录实际图像和逐项观察;不允许用总览图或工具报告代替所有边界审查。

用户拿到的是连续参数和清楚的 min/default/max 范围。张嘴上限、嘴型宽度、闭眼接触与邻域权重由作者完成校准,不把修 rig 的工作留给用户。不得缩小到几乎看不见的变化来“通过”。如现有结构确实不足,应报告具体路径与可达限制。

## 记录、审查与有限返修

工具真实成功退出后才 `record --status succeeded`;失败保存错误并记录 failed。agent 输出同样经过 schema/哈希校验。review 的 succeeded 只表示提交报告,记录器按 verdict 转为成功、revise 或 blocked。

每个 gate 的返修目标是 `author_boundaries`,最多两轮。issue 必须含参数组合、SVG id、实际图像、明确缺陷与建议。调用 `repair` 仅使该作者及后继失效;原稿盘点与恒等准备继续复用,不重跑整个角色。reviewer 的所有 target 必须覆盖,不可改任务 id 或清空 state 绕过上限。工具/内核缺陷交给实际所有者修复,不指使角色作者重画素材掩盖它。

续跑用 `plan --state`,校验输入签名、产物哈希与上游成功状态。真正恢复环境或修正输出后,才按显式 retry 策略重开失败节点;不能用 retry 绕过视觉 revise。超限如实说明尚未通过的部位和参数范围,不能宣称完成。

## 交付

scope、recipe、compiled和final controls均通过basic-face-v1门禁;扫描必须有12轴实际几何变化及双眼闭合curve变化的计算证据,逐一审查实际联合网格与中间态。未完成基础轴不能以limitations替代通过。

只从通过独立审查的那一份编译结果复制交付,不再增加预设,不重新运行无变化的第二遍构建。保留原 SVG、模型作者配方、数值 controls、共用离线预览、逐 case PNG、审查和真实哈希。交付副本只检查加载、边界调节和复位未被打包破坏。

最终说明区分工作流夹具测试、真实角色工具检查、独立视觉审查与实际预览体验。没有跑过角色、没有看过图片、没有实际拖过滑条,都不能写为通过。工作台本地试调数据不随游戏存档导出或同步。