# MDTODO 工具可靠性

本文件跟踪 MDTODO CLI 的结构安全、并发写入、输入合同、渐进披露、任务恢复和跨平台可用性。单次工具故障及其修复作为 ITEM 进入本长期问题域。


## R1 [completed]

依据 [agent_skills #7](https://github.com/pikasTech/agent_skills/issues/7) 修复 MDTODO 标题多行污染并提供安全 stdin 输入，在保持任务 ID、报告、文件锁和层级合同下支持原 ID 恢复，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R1_Task_Report.md)。

### R1.1 [completed]

复现 positional title 含 CR/LF/NUL 与 shell command substitution stdout 的污染形态，定义 validation-failed、mutation=false、stdin 标题和原 ID 恢复合同，引用 [agent_skills #7](https://github.com/pikasTech/agent_skills/issues/7)，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R1.1_Task_Report.md)。

### R1.2 [completed]

实现 add/add-sub/batch/update 的单行校验、安全 stdin 输入与结构化 update 正规化，精确保留 children、相邻任务、报告路径和文件锁；补单元与回归测试，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R1.2_Task_Report.md)。

### R1.3 [completed]

在独立 worktree 提交 PR，完成 Python/skill 校验和临时 fixture 前向验收；合并后更新本机受控 skill 安装并用本 MDTODO 的真实 Markdown 标题复测，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R1.3_Task_Report.md)。

## R2 [completed]

解决 UniDesk #1913（https://github.com/pikasTech/unidesk/issues/1913）：复用 agent_skills #7 与 PR #8 的 MDTODO 安全 stdin 实现，让主代理、Artificer resource bundle 和受控 host skill 投影默认使用安全标题输入，并有界披露 source/target freshness、warning 与精确修复入口；不得复制第二套 MDTODO 工具、增加版本门禁或覆盖宿主并行脏改，由 Artificer 在独立 worktree 和分支实现、测试并提交 PR，不自行合并，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R2_Task_Report.md)。

## R3 [completed]

解决 [UniDesk #2170](https://github.com/pikasTech/unidesk/issues/2170)：为 unidesk-ymalops 增加配置引用问题的 skill + owning YAML 快速收敛与停止条件，证明同类问题减少不必要工具调用，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R3_Task_Report.md)。

## R4 [completed]

解决 [agent_skills #15](https://github.com/pikasTech/agent_skills/issues/15)：为 Playwright wrapper 增加不泄露凭据的 fill-file 表单填充，并证明 Secret 不进入 argv、输出或 JSONL 日志，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R4_Task_Report.md)。

## R5 [completed]

解决 [UniDesk #2516](https://github.com/pikasTech/unidesk/issues/2516)：固定主 worktree 同步时记录稳定 stash 对象 ID，并按该 ID 精确恢复，禁止并发仓库使用无参数 git stash apply；更新唯一长期出处与顶级损害预防摘要，完成任务后将详细报告写入[任务报告](./details/mdtodo-tooling-reliability/R5_Task_Report.md)。
