履歴と判断依頼
操作や進捗を残す履歴、人の判断を待つPendingと回答、受入条件に基づく自動完了の仕組みを説明します。
判断依頼と回答
エージェントは人の判断が必要になると、質問と選択肢を付けてタスクをPendingにします。
- CLIは、質問(1〜2,000文字)と2〜10件の選択肢を
--request-jsonで受け取ります。各選択肢は依頼内で一意のID([A-Za-z0-9_-]の1〜64文字)と1〜200文字のラベルを持ちます。選択肢が1件以下や11件以上の依頼は拒否するため、どの判断依頼にも選べる選択肢があります。自由記述での回答は引き続きできます。 - 新しい
pendingRequestIdを作り、pendingRequestに{question, choices}を保存します。履歴には依頼を説明する項目を追加します。 - 回答は現在の依頼IDを指定しなければならず、違えば
request_changedで失敗します。choiceId・textのどちらか、または両方を受け付け、どちらもないものは拒否します。未知の選択肢はrequest_choice_unknownです。回答は選択時のラベルとともにrequestAnswersに保存し、依頼を解除し、タスクを同じレーンのIdleに戻し、履歴を追加します。Runningへ戻すのは別の変更です。 - 質問と回答の文は前後の空白を除き、CRLFと単独のCRをLFに正規化します。
ワークフロー情報を履歴の文章から推測することはありません。現在の質問はpendingRequestから、回答はrequestAnswersから読むので、履歴を編集してもこれらは変わりません。
履歴
履歴には、作業の進捗とタスクの操作を時系列で記録します。各項目は、保存・API・CLIのどこでも、次の二つのフィールドだけを持ちます。
at: 厳密にYYYY-MM-DDTHH:MM:SSZの形のUTCの日時。reason: 1〜10,000文字で、空白だけではない内容。
ID・種別・actor・遷移・依頼IDなどの追加の項目は拒否します。
- 作成・列移動・稼働状態の変更・判断依頼・回答・下書きの切り替え・エピックの変更・アーカイブ・復元・自動Doneは、履歴を自動で追加します。移動やPending以外の状態の変更で理由を省くと、操作と現在の状態から生成します。
- エージェントは
agboard --project NAME history add ID [--reason TEXT | --reason-file PATH]で作業の進捗を追加します。日時はAgent Boardが自動で付け、下書き・アーカイブ済み・DoneのタスクへのAIの追加は拒否します。空白の理由は、現在のレーンと稼働状態から生成します。 - エージェントは、開始・意味のある進捗・判断・検証・中断・再開のときに、記録ごとの承認を求めずに簡潔な項目を記録し、操作時に自動で記録された履歴は重複して追加しません。
- 画面は日時と内容だけを新しい順に表示します。CLIの
showとスナップショットは全履歴を返します。
ブラウザー操作で自動生成する履歴は、そのリクエストで送られた画面の言語設定(enまたはja)を使います。有効な設定がない操作、CLI操作、自動Doneでは、最新のタスク本文に日本語の文字があれば日本語、それ以外は英語を使います。本文が空か標準テンプレートのままならタイトルを使います。frontmatterと過去の履歴は判定に含めません。明示された空でない理由はそのまま保存し、既存の履歴を翻訳し直すことはありません。
AIが書く履歴は本文と同じ言語にし、理由を明示します。手順はエージェント連携で定めています。
受入条件と自動Done
管理対象の受入条件を持つのはTASK.mdだけで、履歴と一緒にfrontmatterに置きます。
---
acceptance:
- id: AC-1
text: List tasks as JSON.
done: false
history: []
---
(Task plan, verification results, references to artifacts)acceptanceはリストで、省略・null・空はどれも0件です。各項目はちょうどid(先頭に0を付けないAC-<正の整数>、ファイル内で一意)、text(前後の空白を除いて1〜2,000文字)、done(真偽値)を持ちます。番号は振り直しません。- ほかのトップレベルのキーは保存時に保ちます(YAMLの書式は正規化されることがあります)。frontmatterのないファイルや、見出しと
- [ ] AC-n.の行による旧形式は条件0件として読み、移行しません。 - 本文には計画・簡潔な検証結果・成果物への参照を書き、時系列の進捗は
historyだけに書きます。
自動Done: AI担当・下書きでない・未アーカイブのTodoかDoingのタスクで、有効な条件が1件以上あり、すべてdone: trueになると、タスクは自動でDoneに移ります。履歴に一件記録し、taskStatusChangedAtを更新します。Pendingのタスクは回答されるまで待ち、回答後に評価し直します。条件がない・不正なタスク、人間担当、下書きは対象外です。serveは起動時にも既存のタスクを評価します。
DoneのタスクはAIの変更(編集・状態・エピック・履歴・画像)を拒否し、自動で再開することはありません。人は編集も再開もできます。未達成の条件が残る、またはfrontmatterが不正なとき、AIの列移動によるDoneへの移動はacceptance_unmetで拒否します。条件0件のタスクと人の移動は止めません。評価の仕組みはエージェント連携にあります。

