# 微调流程优化验证

72 项离线测试通过；真实 Blender MCP 的合成场景与 test3 坐姿副本回归通过。模型调用为 0。
原人物、家具和 test3 文件均做了未变化哈希断言。没有生成新的 AI 自主坐姿结论。

## 新流程

整体阶段由 AI 自由编写 Blender Python 协调多个控制器。进入微调后，AI 声明目标与保持条件，
选择一个骨骼/rig 对象、一个动作和一个轴，提供 3/5 个数值。程序每次计算一个候选，
保存模型、全景/局部三视图和几何结果，然后恢复并核验基线。AI 取完整批次，比较图片与测量后选择。
保持条件违规或未知时拒绝应用。无响应、无进展与反复会提示恢复/重新规划。
AI 选择的最佳姿态独立保存；恢复和返回整体阶段不重置预算。最终仍需当前网格与三视图验收。

## 真实坐姿高度比较

| 输入 mm | 实际控制器位移 mm | 新增自交 | 最大接触见证间隙 mm | 采样皮肤最大位移 mm |
| --- | --- | --- | --- | --- |
| -5.0 | -4.999995 | 6 | 8.085 | 5.112 |
| +0.0 | +0.000000 | 6 | 8.325 | 0.000 |
| +5.0 | +5.000055 | 4 | 12.860 | 5.113 |

这些数据展示自交、支撑间隙和皮肤响应的取舍。回归脚本固定选择 +5 mm，仅验证接口；不是 AI 决策。
仍有 4 处新增自交，最终保存 draft，不声明零穿模或自然度认证。
两批候选、新预览后的旧候选复用、应用、最佳姿态恢复以及阶段变化拒绝旧候选均通过断言。

## 保持条件与显示验证

最终合成回归中，2° 旋转造成约 37.45 mm 接触间隙，超过声明的 30 mm，正确拒绝；
1° 候选约 28.73 mm，允许应用。旧回归脚本强制选择 2° 而失败的日志保留，随后修正测试选择。
最终人物候选视图在臀部支撑见证点周围取景，标注输入、实际控制器位移与采样皮肤位移。
文字使用独立信息栏；去除文字投影产生的重复数字。渲染前后场景指纹和候选文件哈希相同。

## 证据

- 合成最终回归：`D:\poserebuid\mcptest\refinement_workflow_validation\synthetic\interaction_20261014_112714_f83bbbe6`。控制器代码 21 个模块与最终项目字节哈希一致，使用运行源码包启动。
- 人物长回归：`D:\poserebuid\mcptest\refinement_workflow_validation\seated\interaction_20261014_105906_e26aca3b`。
- 最终人物信息栏/局部视图：`D:\poserebuid\mcptest\refinement_workflow_validation\visual_review\interaction_20261014_112239_9bdd19ef`。
- 离线结果：`unit_tests_final.log`；机器摘要：`summary.json`。
- 初始人物长回归代码：`source_snapshot_initial_blender_runs`；最终代码：`source_snapshot_final`。

每个 run 的 `parameter_trace.json`、`logs/*.tool.json`、`parameter_previews/*/batch.json`、
`candidate_*.json/.blend` 和图片保存了每一步输入、实际结果、失败或恢复情况。
新增工具日志提供 sequence、UTC 起止时间和 duration_s；新运行的源码包与哈希在 source_snapshot。

人物长回归启动于本轮早期版本；保持条件、缓存、源码包固定等后续增量在最终合成 MCP 与离线测试验证。
人物最终图片由最终渲染代码读取已测量的候选模型生成，没有重新造姿态或更改原检测数据。
当前是静态 PNG 比较，没有视频或自动数值选姿器。单个昂贵测量仍可能超时；未知执行会冻结。
尚未进行 Luna 使用新接口的付费决策实验，也未验证任意骨架/动作必然收敛。

代码已提交并推送至 [优化分支](https://github.com/zui-mu/human-furniture-mcp/tree/codex/refinement-workflow)，提交 `4d1f21a`。main 与原始基线标签保持原版本。
