subagent state machine label mechanism - Liplus-Project/liplus-language GitHub Wiki
subagent state-machine label 機構導入 — Anthropic Agent View 同型 surface の repo 永続化判断
判断
2026-05-12 セッションで Anthropic Claude Code が /goal および Agent View を build-2026-05 リリースで追加したことを契機に、Li+ 側で subagent state-machine label 機構 (in-progress / done / waiting / blocked) を導入する判断を確定。subagent への label 編集権限 (state-machine label に限定) を partial 緩和する spec 変更を伴う。main 側 label 適用は best-effort / 観察モードで開始、enforcement 強化は段階的に判断する。
背景
Anthropic 側が CLI session-local の Agent View で agent state 観測 surface を提供したのに対し、Li+ は同型な state machine を repo 永続 surface (issue label + comment) として獲得する設計判断。動機は Sheepdog Engineering の initiator 軸を AI 側に渡す方向と整合する cross-session 観測 infra の必要性。
特に以下の scenarios で価値が出る:
- CHANGES_REQUESTED 後の re-delegation (新規 subagent への handoff context)
- pause / blocked からの別 session 再開
- human review 待ち状態の cross-session 観測
旧 done label の retirement 根拠「Redundant with issue closed state」は old done (漠然と「終わった」) を前提にしたもの。新 done (役目完了、orchestration 待ち) は closed state と別軸 (closed = issue 全体決着、done = 実装フェーズ終了) なので、retirement そのものを撤回する。
制約
- subagent label 権限緩和は state-machine lifecycle label 4 種 (
in-progress/done/waiting/blocked) に限定。type / maturity / marker / non-state lifecycle (backlog/deferred) は parent retain。 - close 操作は parent retain (変更なし)。
waiting/blocked遷移時は subagent が issue comment に reason を書き込む義務を負う (cross-session handoff context)。- main 側 label 適用は mandate しない (best-effort / 観察モード)。
- 旧
doneの retirement 根拠は新 semantic で解消され、Retired Labels セクション (該当 1 行) をrules/operations/operations.mdから削除する。
結論
採用案: 単一 done label を executor-agnostic に運用し、subagent 側のみ mandate、main 側は best-effort / 観察モード。
却下案 1 (executor-agnostic 単一 done、両者 mandate): main 側で done の fire タイミングが transient (PR open + CI green + 自レビュー → 即 merge へ continuous flow) で滑り、旧 done 廃止理由「使われなかった」の再発リスクが高い。
却下案 2 (executor 別 2 label = subagent 用 done + main 用 awaiting-merge): label vocabulary 数の増加による冗長性。Master の判断で「label の数を増やすより観察フェーズで main 適用頻度を測る」方針を採用。
却下案 3 (subagent 用のみ追加、main 側完全省略): main flow の cross-session 観測価値 (session 境界中断時の handoff) が失われる。best-effort で残すことで観察 surface を確保。
関連
- 起票 issue: Liplus-Project/liplus-language#1276
- 関連 spec literal:
skills/task-subagent-delegation/SKILL.mdline 12 / 22 (subagent label 制限の現行 spec、本判断で部分緩和)rules/operations/operations.mdRetired Labels セクション (旧done廃止記録、本判断で削除対象)rules/task/task.mdLabel Definitions (Lifecycle 軸、本判断でdone/waiting/blocked追加)
- 関連 Decision Log:
sheepdog-engineering-concept(本判断の上位 concept = initiator 軸を AI 側に渡す方向)
- 外部 references:
- Anthropic Claude Code /goal: code.claude.com/docs/en/goal.md
- Anthropic Claude Code Agent View: code.claude.com/docs/en/agent-view.md