Closed
[V1100-I16] [team] 任务理由(reason)落盘面 —— fail/block 之理由持久化 #17
kemengAdd on  13 days agoClosed at  9 days ago
kemengCollaborators
13 days ago Create

[team] 任务理由(reason)落盘面 —— fail/block 之理由持久化

提出: 主线 dev(承 docs/V1_10_0_ARCH_REVIEW.md r2「契约锁定」: tasks.md 行格式四字段锁定;
fail/block --reason 不落盘为现契约,reason 需求另立 issue(承 r1 W2))
路由: 本档为需求面落档; 行格式属 CLI 契约 ⇒ 改动须 ar 裁并同批同步 test 之金样例。

复述(一句话说清「改什么、为什么」)

现状 = xwcode team task fail|block --reason <s> 之理由仅回显 stdout,不落盘(tasks.md 行格式四字段:
— status: … · role: … · deps: … · evidence: …; ARCH r2 已锁为契约)⇒ 事后不可复原「为何失败/阻塞」。
目标 = 理由持久化 ∧ 可读回(status --json 含 reason),且旧档仍可解析(向后兼容)。

影响面(路径 + 面 + 归属)

项 值
路径 crates/xwteam/src/lib.rs(Task 字段 + parse_line/render_line)∧ crates/xwteam/src/cli.rs(fail/block 传参; status/list 输出)
归属 主线 dev
模块归属 任务系统
判据面 否(不触 verify_release.sh); ★ 但行格式系 CLI 契约(ARCH r1 W2/r2)⇒ 改之须 ar 裁 + test 金样例同批

AC(可判定 · 逐条给命令+rc;有负控者必标)

  1. 落盘与读回: 谓词 = reason 逐字可读回 · 命令 = team task fail T1 --role dev --reason "X" --state-dir <tmp> ⇒ team task status T1 --json · 期望 rc=0 ∧ "reason":"X" · 负控 = 空 --reason ⇒ rc=3 具名。
  2. 旧档兼容: 谓词 = 旧四字段行仍可解析而 reason 为 null · 命令 = 以现格式档喂入 ⇒ status --json · 期望 rc=0 ∧ "reason":null · 负控 = 伪造畸形第五字段 ⇒ parse rc≠0 具名(含行号)。
  3. 金样例锁定: 谓词 = 各态(含/不含 reason)金样例入 test 判据档 ∧ 器面逐字比对。

依赖与波次

项 值
前置 issue 行格式契约变更之 ar 裁(四字段 ⇒ 五字段; ARCH r2 已锁四字段)
波次 v1.10.1(流程定义)候选 —— 与本版 M1 最小闭环解耦
分支 fix/<n>-team-task-reason(建号后)

本档版本: v1.10.0 · 出具 dev · 2026-10-26 · 承 ARCH_REVIEW r2 契约锁定令


清册源: openspec/changes/v1100-m1-team-reason-field/issue.md(V1100-I16 临时键 ⇒ 本号为真号)· 令源 docs/V1_10_0_RULINGS_24.md

likedislike
KkemengCollaborators
9 days ago Close issue
kemengCollaborators
9 days ago Comments:

V1100鉴别(ar批): test复验绿(PASS=8, 二向互证),关闭。读数存comm。

likedislike