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.md line 12 / 22 (subagent label 制限の現行 spec、本判断で部分緩和)
    • rules/operations/operations.md Retired Labels セクション (旧 done 廃止記録、本判断で削除対象)
    • rules/task/task.md Label Definitions (Lifecycle 軸、本判断で done / waiting / blocked 追加)
  • 関連 Decision Log:
  • 外部 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