{ "version": "s10", "decisions": [ { "id": "tasks-as-files", "title": "Tasks Are Durable JSON Files", "description": "Each task is persisted under .tasks/ with id, subject, description, status, owner, and blockedBy. The task board survives context compaction and process restarts.", "alternatives": "In-memory tasks are easier to code, but vanish exactly when long-running coordination needs them most.", "zh": { "title": "任务是持久 JSON 文件", "description": "每个任务都持久化在 .tasks/ 下,包含 id、subject、description、status、owner、blockedBy。任务板能跨上下文压缩和进程重启保留。" }, "ja": { "title": "タスクは永続 JSON ファイル", "description": "各タスクは .tasks/ に id、subject、description、status、owner、blockedBy を持って保存されます。タスクボードはコンテキスト圧縮や再起動を越えて残ります。" } }, { "id": "blockedby-dependencies", "title": "blockedBy Encodes Ordering", "description": "A task can only be claimed when all blockedBy dependencies are completed. Missing dependencies are treated as blocked to fail closed.", "alternatives": "Letting the model remember ordering is fragile and hard for teammates to share.", "zh": { "title": "blockedBy 编码任务顺序", "description": "只有所有 blockedBy 依赖都完成时,任务才能被 claim。缺失依赖也被视为阻塞,采用 fail closed。" }, "ja": { "title": "blockedBy が順序を表現する", "description": "blockedBy の依存がすべて完了した時だけタスクを claim できます。存在しない依存もブロック扱いにして fail closed にします。" } }, { "id": "claim-complete-lifecycle", "title": "Claim and Complete Make Work Observable", "description": "claim_task records an owner and in_progress state; complete_task marks completion and reports downstream tasks that became unblocked.", "alternatives": "A simple checklist can say done, but it cannot safely coordinate ownership or dependencies.", "zh": { "title": "Claim 和 Complete 让工作可观察", "description": "claim_task 记录 owner 和 in_progress 状态;complete_task 标记完成,并报告被解锁的下游任务。" }, "ja": { "title": "claim と complete が作業を観測可能にする", "description": "claim_task は owner と in_progress を記録し、complete_task は完了を記録して解放された下流タスクを報告します。" } } ] }