Files
ai-workflow-skill/docs/tests/orch/council-wait/council-wait-wakes-when-all-reviewers-complete.md
T

2.3 KiB

Case: council-wait-wakes-when-all-reviewers-complete

用例意义

验证 council wait 在三位 reviewer 都完成后会被唤醒,并返回完整 reviewer 状态集合。

前置条件

  • 使用隔离的临时目录 TMPDIR
  • 已通过 council start 创建 run council_blog_wait_001
  • 本地可使用 sqlite3task_attempts 中读取 reviewer thread ID,用于构造 inbox 完成态

输入

orch --db TMPDIR/coord.db --json council start \
  --run council_blog_wait_001 \
  --target "Review the current blog architecture."

THREAD_ID_CR1=$(sqlite3 TMPDIR/coord.db "SELECT thread_id FROM task_attempts WHERE run_id = 'council_blog_wait_001' AND task_id = 'CR1' AND attempt_no = 1;")
THREAD_ID_CR2=$(sqlite3 TMPDIR/coord.db "SELECT thread_id FROM task_attempts WHERE run_id = 'council_blog_wait_001' AND task_id = 'CR2' AND attempt_no = 1;")
THREAD_ID_CR3=$(sqlite3 TMPDIR/coord.db "SELECT thread_id FROM task_attempts WHERE run_id = 'council_blog_wait_001' AND task_id = 'CR3' AND attempt_no = 1;")

inbox --db TMPDIR/coord.db --json claim --agent architecture-reviewer --thread "$THREAD_ID_CR1"
inbox --db TMPDIR/coord.db --json done --agent architecture-reviewer --thread "$THREAD_ID_CR1" --summary "Review complete"

inbox --db TMPDIR/coord.db --json claim --agent implementation-reviewer --thread "$THREAD_ID_CR2"
inbox --db TMPDIR/coord.db --json done --agent implementation-reviewer --thread "$THREAD_ID_CR2" --summary "Review complete"

inbox --db TMPDIR/coord.db --json claim --agent risk-reviewer --thread "$THREAD_ID_CR3"
inbox --db TMPDIR/coord.db --json done --agent risk-reviewer --thread "$THREAD_ID_CR3" --summary "Review complete"

orch --db TMPDIR/coord.db --json council wait \
  --run council_blog_wait_001 \
  --timeout-seconds 2

预期输出

  • council wait 退出码为 0
  • wait.data.woke == true
  • wait.data.all_complete == true
  • wait.data.reviewers 长度为 3
  • 三个 reviewer 的 status 都是 done

断言结论

  • council wait 的唤醒条件是“三位 reviewer 全部达到终态成功”
  • 返回结果不仅告知已唤醒,还会携带完整 reviewer 状态快照,便于 leader 继续执行 tally/report

补充约束

  • 当前手工复现实例需要通过 task_attempts 提取 reviewer thread_id,因为 orch CLI 还不直接暴露 attempt-thread mapping