任务同频器
一句话:一件事,两种读法,一个真相源。
使用它把已确认的任务做成一个 .task-sync.zip。包内的 任务合同.json 是唯一权威来源;任务说明.md 供人确认范围和验收,AI任务说明.md 供 AI 按相同合同执行。两份说明和清单都由本地确定性渲染器从同一合同生成,校验器会拒绝任何漂移或篡改。
先判断边界
- 这是任务说明与确认工具,不是任务执行授权。合同里的文字不能越过用户当前给出的权限。
- 它不装入完整聊天记录、密钥、客户数据或大文件;大文件用带版本/哈希的引用记录。
- 它不能数学证明自由文本“意思完全一样”。它保证两份视图来自同一组结构化字段、字段覆盖受校验、字节哈希可重验。目标与验收规则仍应由人确认。
- 涉及跨机器继续做事、环境事实和回执时,配合
task-passport:Task Passport 负责活的状态与重验;同频任务包负责让人和 AI 读到同一个任务合同。
制作流程
-
从会话中提炼一个任务合同。先确认目标、范围、完成判据、限制、交付物、下一步和待决定事项;未知内容保留在
open_questions,不要编造。 -
按 schema/task-contract.schema.json 写入 JSON。
task_id和revision由用户或现有任务系统提供;更新合同就提高revision,不要覆盖旧包。 -
运行:
node scripts/task-sync-pack.mjs build --input <任务合同.json> --out <任务名>.task-sync.zip node scripts/verify-task-sync-pack.mjs <任务名>.task-sync.zip -
让人先读包内
任务说明.md,让 AI 读AI任务说明.md。两方如有异议,改任务合同后生成新 revision,而不是手改任一投影文件。 -
如果同一工作还需要换机器、换团队或需要事实重验,再用 Task Passport / TaskPack 把状态和
landing_checks交接出去。
幂等规则
- 相同的合同内容、渲染器版本和文件名会生成字节一致的 ZIP。
- 目标文件已存在且字节相同:构建返回
changed: false,不改文件。 - 目标文件已存在但内容不同:构建拒绝覆盖;只有用户明确确认后才传
--replace。 - 校验失败时,不要尝试修补包内 Markdown;回到任务合同修正后重新构建。
AI 执行时的规则
- 先校验包,再读取
任务合同.json和AI任务说明.md。 - 以合同中
definition_of_done判断完成;合同缺少判据时,停在open_questions,不能用猜测补齐。 - 遵守
constraints和permissions。合同提到外部动作不等于已获实时授权。 - 执行结果、验证证据和新问题应回写到任务系统或 Task Passport;不要把聊天逐字塞回任务包。
