

## R1 [in_progress]

打通 selfmedia WebTerm 在 NC01 的纯自动生产交付：以 config/selfmedia.yaml 与 platform-infra owning YAML 为唯一真相，修复 GitHub→Gitea mirror→PaC/Tekton→GitOps/Argo 的自动触发与可见性，使合并 pikainc/selfmedia/master 后无需人工触发即可构建并发布；保留零 RBAC runtime、双 PVC、YAML-first Secret、NetworkPolicy、公网 IP 152.53.229.148:4317，禁止用手工 PipelineRun、Argo sync/refresh、rollout 或 cutover 代替自动链路，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R1_Task_Report.md)。

### R1.1 [in_progress]

以 YAML-first 为 selfmedia-nc01 增加仓库级 GitHub authority：使用独立 sourceRef 提供 pikainc/selfmedia 私有仓库 Contents Read 与 Webhooks Read/Write 权限，校验权限/Secret presence 与脱敏 fingerprint；不扩大全局 gh_token.txt、不向 Codex 下发、不手工触发 PaC，待凭据到位后仅观察 hook reconciler 与自动交付收敛，并将详细报告写入任务报告，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R1.1_Task_Report.md)。

### R1.2 [completed]

有界恢复 NC01 AgentRun manager 受控代理可见性：定位连续 agentrun-proxy-exec-failed，只允许检查并恢复既有 manager.baseUrl、lane service proxy 与授权 presence，不打印凭据，不修改 Artificer 主线源码，不新增安全围栏；恢复后用原始 agentrun events/logs 入口验证并写任务报告，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R1.2_Task_Report.md)。

### R1.3 [completed]

重新分发用户更新后的 SelfMedia 管理员凭据，并将 owning YAML、Secret sync/status、自动交付与公网鉴权验收最短路径沉淀到 `unidesk-selfmedia` skill；不得读取或输出凭据值，不得影响其他仓库 token 选择，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R1.3_Task_Report.md)。

## R2 [completed]

依据 [UniDesk #2006](https://github.com/pikasTech/unidesk/issues/2006) 优化 selfmedia-nc01 PaC 流水线的 env reuse 与依赖缓存：由 owning YAML、lockfile 和 source artifact 生成环境身份，依赖不变时复用并披露 hit/miss 与阶段耗时，依赖变化时正确失效；通过正常 SELFMEDIA PR merge 自动交付验收，保持 commit-pinned artifact、GitOps/Argo、runtime health 和单一 source authority，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R2_Task_Report.md)。

## R3 [in_progress]

依据 [UniDesk #2007](https://github.com/pikasTech/unidesk/issues/2007) 为 pikainc/selfmedia release 分支建立独立生产 PaC/GitOps 流水线：master 保持开发 consumer，release 精确驱动独立生产 namespace、Pipeline、GitOps branch/Application、runtime/PVC/Secret 与 YAML-first 公网端口；禁止 branch follower、手工同步和共享可写状态，以正常 release PR merge 验收生产公网入口、登录、digest 与 health，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R3_Task_Report.md)。

### R3.1 [completed]

按用户最新要求将非选中 consumer 的全局配置一致性错误降级为结构化 non-blocking warning，避免开发 source-artifact/状态/交付被生产配置阻塞；当前选中 target/consumer 的字段、权限、ownership 与安全校验仍 fail-closed，并由定向测试证明两类边界，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R3.1_Task_Report.md)。

### R3.2 [completed]

依据 [UniDesk #2052](https://github.com/pikasTech/unidesk/issues/2052) 修复 PaC 在 expectedRevision 与 observedRevision 完全相同时仍因 owning Git fetch 失败误判 `relation=unknown`：相同 revision 直接判定 exact，额外 fetch 失败仅输出 `blocking=false` warning，保持真实不一致和 mutation target 安全边界；用独立 worktree/PR 和定向 evaluator/source-artifact/CLI 验证收口，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R3.2_Task_Report.md)。

### R3.3 [completed]

依据 [SELFMEDIA #36](https://github.com/pikainc/selfmedia/issues/36) 修复生产期次 prod-webterm-20260714174507 在 voice 阶段因 utterance-story-04-07 含 Kokoro/Misaki 无法发音字符而失败：读取真实文本与 phoneme 定位字符，在既有 TTS 归一化职责内做最小修复并增加定向测试；先用 step run voice 单步验证，release PR 正常自动交付后从 voice 续跑至 inspect，不重跑已成功阶段，再将同一修复回补 master 并完成公网产物验收，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R3.3_Task_Report.md)。

## R4 [in_progress]

依据用户最新要求为 SELFMEDIA 自动交付增加 120 秒端到端预算可见性并继续优化 env reuse：超过 owning YAML 阈值只输出 blocking=false、mutation=false 的结构化 warning 与 env reuse hint，不能阻断 PipelineRun、GitOps/Argo、runtime 或 health；针对当前 ENV_REUSE=hit 但 imageBuild 仍为 181-184 秒、端到端为 203-210 秒的事实，定位真实耗时并通过正常 master/release PR 自动交付将流水线优先压到 120 秒预算内，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R4_Task_Report.md)。

### R4.1 [completed]

依据 [UniDesk #2064](https://github.com/pikasTech/unidesk/issues/2064) 在 owning YAML 声明 120 秒自动端到端预算；交付超过阈值时在 delivery-timing 与适用状态投影中输出 blocking=false、mutation=false 的 typed warning 和 env reuse 优化 hint，120 秒内不报警、时间证据不完整保持 partial，任何 warning 不得阻断业务滚动，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R4.1_Task_Report.md)。

### R4.2 [completed]

依据 [UniDesk #2065](https://github.com/pikasTech/unidesk/issues/2065) 对 SELFMEDIA 已 ENV_REUSE=hit 但 imageBuild 181-184 秒的问题做目标侧阶段定位，优化依赖、模型/工具层和 BuildKit/cache 复用且保持身份变化正确失效；通过正常 master/release PR merge 验收端到端预算、digest、Argo/runtime health 与 exact verifier，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R4.2_Task_Report.md)。

## R5 [completed]

依据用户最新要求改进 SELFMEDIA 开发集群 Web 工厂：所有用户可见页面全量中文化；每一期和资源提供可刷新恢复的 RESTful 深链，切期时 URL、数据和加载状态严格同步并防止乱序响应覆盖；尽可能提供期次、文稿、来源、时间轴、文章、场景、图片、TTS、视频参数和单步重跑的手动编辑能力，与 WebTerm/CLI 共享同一 edition/resource 真相。全部只合并 master 并在测试集群验收，禁止发布 release、生产 namespace 或公网 4319，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5_Task_Report.md)。

### R5.1 [completed]

依据 [SELFMEDIA #41](https://github.com/pikainc/selfmedia/issues/41) 将所有用户可见页面、按钮、状态、空态、错误、确认框、终端工具栏和辅助文本统一为中文；技术字段、命令和品牌名保留时补中文语义，建立可审计文案结构和静态/浏览器验证，保持紧凑工业风，只上线 master 测试集群，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5.1_Task_Report.md)。

### R5.2 [completed]

依据 [SELFMEDIA #40](https://github.com/pikainc/selfmedia/issues/40) 为每一期和资源建立可复制、刷新恢复、前进后退一致的 RESTful 深链；切期/切资源时显示目标期次中文加载态，使用请求 identity/abort 防止乱序覆盖，无效深链显示中文 not-found，并在 master 测试集群完成快速切期和慢请求验证，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5.2_Task_Report.md)。

### R5.3 [completed]

依据 [SELFMEDIA #39](https://github.com/pikainc/selfmedia/issues/39) 增强 Web 手动编辑工作台，首批覆盖期次元数据、选题、文稿、来源、时间轴、微信公众号文章、场景文本/图片/缩放、TTS 与视频参数；保存和冲突状态中文可见，复用同一 API/CLI source of truth，卡片独立运行按钮与确认框不变，只上线 master 测试集群，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5.3_Task_Report.md)。

#### R5.3.1 [completed]

依据 [SELFMEDIA #45](https://github.com/pikainc/selfmedia/issues/45) 建立期次资源编辑 REST API 与同路径 CLI：从同一期既有文件读取并通过 revision/If-Match、结构校验和原子写入保存，首批覆盖元数据、来源、文稿、微信 Markdown 与分镜；WebTerm CLI 复用同一 API，禁止任意路径写入、跨期次覆盖、第二状态库和 release/生产发布，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5.3.1_Task_Report.md)。

#### R5.3.2 [completed]

依据 [SELFMEDIA #47](https://github.com/pikainc/selfmedia/issues/47) 在 RESTful 期次/资源深链中加入紧凑工业风手动编辑工作台：消费 #45 的 revision/ETag API，覆盖元数据、来源、文稿、微信 Markdown、场景/分镜以及只读资源说明，中文显示 dirty/saving/saved/conflict/error，切期取消旧草稿并禁止跨期保存；保留卡片独立运行按钮与确认框，只上线 master 测试集群，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5.3.2_Task_Report.md)。

#### R5.3.3 [completed]

依据 [SELFMEDIA #49](https://github.com/pikainc/selfmedia/issues/49) 在现有 edition.yaml 权威资源中加入受结构校验的期次级配音、字幕和视频参数覆盖，由 REST API、CLI、Web 与 voice/subtitles/render 单步共享同一真相；缺省继承 config/tools.yaml，只允许 master 开发集群与公网 4317 验收，禁止 release、生产 namespace 和 4319，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R5.3.3_Task_Report.md)。

## R6 [completed]

依据 [SELFMEDIA #52](https://github.com/pikainc/selfmedia/issues/52) 重构 Web 导航加载与全局刷新：同一期切换资源仅加载目标资源，不让当前期次和生产信号链进入重新加载；切期继续显示大范围目标期加载并防乱序；增加 YAML-first 的全局手动刷新和默认 5 秒可选自动刷新，保留旧内容、避免重叠请求并保护 dirty/saving/conflict 草稿。先合并 master 并在 4317 验收，再通过 master 到 release 的正常 PR 自动滚动生产 4319，禁止手工 PipelineRun、Argo sync 或运行面 patch，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R6_Task_Report.md)。

### R6.1 [completed]

修复 SELFMEDIA #56：生产首次缓存未命中时 BuildKit 已推送镜像但收尾 context deadline exceeded；实现仅对该特定错误的一次有界重试，覆盖脚本测试，先走 master/4317 自动 PaC 验收，再走 release/4319，禁止手工补跑，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R6.1_Task_Report.md)。

## R7 [completed]

依据 [SelfMedia #59](https://github.com/pikainc/selfmedia/issues/59) 修复全局手动/周期增量刷新清空内嵌 WebTerm：终端配置、xterm 与 WebSocket 生命周期独立于业务投影刷新，只有 WebTerm 自身“刷新终端”按钮按 ../webterm 的临时行数 resize→真实行数 resize→本地 refresh 语义无损重绘；先在开发入口 4317 验证终端连接/历史不变，再通过 release PR 自动发布并在生产入口 4319 复测，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R7_Task_Report.md)。

## R8 [completed]

依据 [SELFMEDIA #62](https://github.com/pikainc/selfmedia/issues/62) 增加仓库自带的单命令 Web 验证入口：自动按锁文件准备根目录与 web 依赖，依次运行 Web 测试、生产构建和 git diff --check，输出紧凑阶段摘要、耗时、依赖复用状态与失败原因；在全新 worktree 首次调用和同 worktree 第二次调用中证明原有多步探测、安装和重复验证收敛为一次调用，不修改运行配置、不部署开发或生产环境，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R8_Task_Report.md)。

### R8.1 [completed]

依据 [UniDesk #2113](https://github.com/pikasTech/unidesk/issues/2113) 在 unidesk-selfmedia skill 固化 SelfMedia Web 源码验证最短路径：通过 trans 在 NC01 目标 worktree 单次运行 bun run verify:web，替代依赖探测、安装、Web 测试、生产构建和差异格式检查的手工多步调用；明确该入口不替代浏览器、公网、鉴权、WebTerm 与 PaC/Argo 运行面验收，通过 skill quick_validate 并证明同类源码验证只需一次受控调用，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R8.1_Task_Report.md)。

## R9 [in_progress]

依据 [UniDesk #2132](https://github.com/pikasTech/unidesk/issues/2132) 在 D518 部署先进中文语音推理服务并接入 SELFMEDIA 开发集群：先在 D518 临时目录以 Docker GPU smoke 验证 Qwen3-TTS 0.6B CustomVoice，成功后由 owning YAML 和受控 CLI 固化 D518 推理容器、NC01 FRPS、D518 FRPC、Secret sourceRef 与公网直连端口，再扩展 SelfMedia 远程 TTS 引擎并通过正常 master 自动交付在 4317 完成 voice 单步 smoke；禁止修改 release、生产 namespace/4319、手工长期运维或引入 Caddy，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9_Task_Report.md)。

### R9.1 [completed]

依据 [UniDesk #2133](https://github.com/pikasTech/unidesk/issues/2133) 由 Artificer 经 trans 在 D518 /tmp 完成 Qwen3-TTS 0.6B CustomVoice Docker GPU smoke：锁定官方上游 ref、镜像/构建、低显存参数和 health/speech API，以固定中文技术资讯文本验证首次与热调用、WAV 解码、实时率和峰值显存；成功后清理临时容器并留下可接力证据，失败则在一次官方低显存参数尝试后停止且不无界更换模型，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.1_Task_Report.md)。

#### R9.1.1 [completed]

依据 [UniDesk #2148](https://github.com/pikasTech/unidesk/issues/2148) 在 Qwen3-TTS 因 Torch/TorchAudio ABI 不兼容停止后，由 Artificer 经 trans 在 D518 /tmp 验证下一候选 CosyVoice3 0.5B：锁定官方 source/model ref 和 Apache-2.0 许可，使用稳定匹配的 Torch/TorchAudio Docker GPU 组合与本地自有或开源生成的中文参考 WAV，提供 health/speech API并以固定技术资讯文本完成 WAV、实时率和峰值显存 smoke；成功后为 R9.4 提供正式模型身份，失败则记录首个确定阻塞并停止无界试错，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.1.1_Task_Report.md)。
### R9.2 [in_progress]

依据 [SELFMEDIA #65](https://github.com/pikainc/selfmedia/issues/65) 由 Artificer 为 voice 单步增加 YAML 显式选择的 remote-openai-speech 自托管引擎：基础地址只从 YAML 声明的环境变量读取，模型、音色、指令、语速和引擎进入缓存身份，cache miss 调用 /v1/audio/speech 并原子写入 WAV，保留现有分段、edition 覆盖、FFmpeg 语速/响度和 timeline，禁止硬编码公网端口或静默回退 Kokoro，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.2_Task_Report.md)。

### R9.3 [in_progress]

依据 [SELFMEDIA #66](https://github.com/pikainc/selfmedia/issues/66) 由 Artificer 为 SelfMediaDeployment renderer 增加通用 runtime.environment 与 networkPolicy.allowedTcpEndpoints：严格校验并把普通业务环境变量投影到 backend，按 CIDR 和 TCP ports 为被 blockedCidrs 排除的地址生成精确 egress 例外，默认空配置保持现有语义；禁止删除网络隔离、放开全端口、硬编码 D518/语音服务或修改生产配置，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.3_Task_Report.md)。

#### R9.3.1 [in_progress]

依据 [SELFMEDIA #69](https://github.com/pikainc/selfmedia/issues/69) 将部署校验从全仓唯一 PipelineRun 断言改为按 owning target/环境独立验证：参数化解析开发与生产 PaC 制品，保留缺失、重复、错误归属的真实失败，但不得让合法多环境配置互相阻塞；用一个多环境 smoke 证明通用合同后完成本改进，且不得触碰或阻塞 R9 语音运行面，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.3.1_Task_Report.md)。

### R9.4 [completed]

依据 [UniDesk #2139](https://github.com/pikasTech/unidesk/issues/2139) 将 D518 先进语音推理与 NC01 直连 FRP 固化为 YAML-first 受控服务：owning YAML 声明 Docker GPU 服务、模型/source ref、持久缓存、NC01 FRPS、D518 FRPC、Secret sourceRef、端口和 health/speech smoke，CLI 提供 plan、secret init、apply、status、logs、validate；可在 R9.1 下载期间完成代码和渲染，但必须等 GPU HTTP/WAV smoke 成功后才允许正式 apply，且不触碰 release、生产 namespace、4319 或 Caddy，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.4_Task_Report.md)。

### R9.5 [completed]

将 D518 CosyVoice3 公网端点以 YAML-first 接入 SELFMEDIA 开发集群，吸收远程语音适配、精确 egress 与 PaC target 分组改动，只滚动 master/4317，并实际执行一期 voice step 完成 WAV 与时间轴 smoke，生产 release/4319 保持不变，完成任务后将详细报告写入任务报告，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.5_Task_Report.md)。

#### R9.5.2 [completed]

依据 [UniDesk #2216](https://github.com/pikasTech/unidesk/issues/2216) 为 SelfMedia 开发 Pod 建立 NC01 host-native 语音 bridge：

- `config/platform-infra/selfmedia-voice.yaml` 声明 Pod 可达监听地址、独立端口、loopback upstream、systemd unit 和 probe；
- 受控 CLI 提供 bridge plan、apply、status、validate 单步；
- 开发 `SELFMEDIA_TTS_BASE_URL` 与精确 NetworkPolicy egress 切到 bridge，生产 endpoint 保持空；
- 不 patch Deployment/Pod，不人工触发 PipelineRun、mirror 或 Argo；
- 完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.5.2_Task_Report.md)。

#### R9.5.3 [completed]

依据 [UniDesk #2236](https://github.com/pikasTech/unidesk/issues/2236) 恢复开发 public-edge 的集群内 Service 上游，写回 owning YAML 并刷新 SelfMedia 开发 source artifact，生产 release/4319 与 CI/CD 基础设施保持不变，完成公网/API/voice 原入口验收，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.5.3_Task_Report.md)。

#### R9.5.4 [completed]

依据 [UniDesk #2239](https://github.com/pikasTech/unidesk/issues/2239) 修复 D518 CosyVoice3 对 OpenAI speech 自然语言 instructions 的模型 prompt 适配，通过 YAML-first 受控部署验收后重跑正式开发 Pod 的 voice 作业，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.5.4_Task_Report.md)。

### R9.6 [in_progress]

依据 [SELFMEDIA #83](https://github.com/pikainc/selfmedia/issues/83) 将语音配置改为 YAML-first 的默认算法与可选算法列表，让 Web 按 /api/v1/system 非敏感摘要选择并保存当前期次 spec.production.tts.algorithm，由 voice 单步解析实际 profile 并在请求工件记录 algorithm/engine/model；合并后只在开发环境选择既有期次使用 D518 CosyVoice3 重生成语音，从 Web 原入口验收作业、WAV、时间轴和工件，生产 release/4319 保持不变，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.6_Task_Report.md)。
#### R9.6.1 [in_progress]

依据 [UniDesk #2276](https://github.com/pikasTech/unidesk/issues/2276) 增加 YAML 驱动的 SelfMedia 开发环境 Web 语音算法选择验收入口，受控读取凭据并固定脱敏，完成登录、期次深链、算法选择、保存和截图 smoke，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.6.1_Task_Report.md)。
#### R9.6.2 [completed]

依据 [SelfMedia #86](https://github.com/pikainc/selfmedia/issues/86) 将先进语音 voice 阶段的一次 FFmpeg loudnorm 改为先测量再按 YAML 目标精确标准化，使 CosyVoice3 等动态语音稳定通过既有响度与 true peak 质量检查，不放宽 inspect 阈值；提交独立 master PR 并完成定向验证，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.6.2_Task_Report.md)。
#### R9.6.3 [completed]

依据 [SelfMedia #88](https://github.com/pikainc/selfmedia/issues/88) 将跨语音模型的用户语速统一为 YAML-first `charactersPerMinute`，默认目标 300 字/分钟；voice 按有效字符数、raw 音频时长和停顿预算计算全局校正 tempo，Web 只编辑目标字速，工件记录目标/实际字速与校正证据；合并后仅在开发环境用 `embedded-ai-chipmakers-20260714` 重新生成 WAV/MP4 并验证质量，生产 release 保持不变，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R9.6.3_Task_Report.md)。
## R10 [completed]

依据 [SELFMEDIA #81](https://github.com/pikainc/selfmedia/issues/81) 增加通用单命令源码定向验证入口：自动按锁文件安装或复用根依赖，参数化接收测试文件，依次执行所选 Bun tests、CLI help 和 git diff-check，并输出紧凑阶段、耗时、依赖复用状态与失败原因；在全新 worktree 中以一次调用完成 smoke，不修改 CI/CD、部署配置或运行面，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R10_Task_Report.md)。

## R11 [completed]

依据 [SELFMEDIA #90](https://github.com/pikainc/selfmedia/issues/90) 将 `humanizer-zh` 复制为 SelfMedia 内置 Codex skill，并由 `config/editorial.yaml` 声明后在口播与微信公众号原有单次 LLM 请求中强制注入完整规则，工件记录 skill 身份与 SHA 且模板模式不伪造执行；合并后只在 master 开发环境重跑 `embedded-ai-chipmakers-20260714` 的 script、article、visuals、slides、voice、subtitles、render、inspect，验收新文案、公众号与视频，禁止修改 release 和生产环境，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R11_Task_Report.md)。

### R11.1 [completed]

依据 [SELFMEDIA #92](https://github.com/pikainc/selfmedia/issues/92) 修正微信公众号文章对 `humanizer-zh` 的真实遵循：消除机械三项式、粗体模板句和“仍需验证/不能替代/不是评测”等保留意见，以具体功能、用途、发布进展或实际价值收束；保留来源、归因、状态边界、单次 LLM、token/费用与 provenance 合同，只交付 master 开发环境，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R11.1_Task_Report.md)。

### R11.2 [completed]

依据 [SELFMEDIA #94](https://github.com/pikainc/selfmedia/issues/94) 对公众号 LLM 完整且唯一的分节集合按期次故事顺序做确定性归一化，避免仅因 `storyId` 顺序变化退回未执行 humanizer 的模板；缺失、重复、未知 ID、来源越权和长度错误继续拒绝，保留单次 LLM、token/费用与 provenance 合同，只交付 master 开发环境，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R11.2_Task_Report.md)。

## R12 [completed]

依据 [SELFMEDIA #96](https://github.com/pikainc/selfmedia/issues/96) 修复先进语音短句多次推理导致一句一个语气和局部语速：由 `config/tools.yaml` 声明 `utterance | scene | episode` 合成范围，CosyVoice3 默认按 `sceneId` 将同一 PPT 页面一次合成，超出 YAML 页级上限才安全分段；保留原 narration unit 的字幕与时间轴映射，工件记录 scope、scene、unit IDs、请求数和降级原因；合并后只在 master 开发环境用 `embedded-ai-chipmakers-20260714` 从 voice 续跑到 inspect 并提供新视频，禁止修改 release、生产环境、D518 服务或公共 CI/CD，完成任务后将详细报告写入[任务报告](./details/selfmedia-production-delivery/R12_Task_Report.md)。
