作成日: 2026-03-06
ステータス: Draft
本書は ButlerLayer_アーキテクチャ定義書_v0.3.md を前提に、データ保存・観測性・導入フェーズ・DoRを定義する。
「どう育てるか・どう計測するか」を定義する文書であり、運用者が主な読者。
タスク契約の主テーブル。
CREATE TABLE tasks (
task_id TEXT PRIMARY KEY,
intent TEXT NOT NULL,
target_json TEXT NOT NULL, -- JSON
status TEXT NOT NULL, -- RECEIVED / EXECUTING / DONE / FAILED / BLOCKED 等
session_id TEXT, -- 協調セッション紐付け(任意)
requested_by TEXT NOT NULL,
requested_at TEXT NOT NULL, -- ISO8601
finished_at TEXT -- ISO8601
);
状態遷移・ステップ完了の証跡テーブル。冪等性キーもここで管理する。
CREATE TABLE task_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_id TEXT NOT NULL REFERENCES tasks(task_id),
state TEXT NOT NULL, -- 遷移先状態
step_index INTEGER, -- 実行済みステップ番号(冪等性管理用)
idempotency_key TEXT, -- task_id || ':' || step_index
message TEXT,
ts TEXT NOT NULL -- ISO8601
);
CREATE UNIQUE INDEX idx_idempotency ON task_events(idempotency_key)
WHERE idempotency_key IS NOT NULL;
冪等性キーの使い方:
idempotency_key で「このステップは済み」を判定するSOPのメタデータテーブル。
CREATE TABLE sops (
sop_id TEXT PRIMARY KEY,
intent TEXT NOT NULL,
target_signature TEXT NOT NULL, -- intent+targetの正規化シグネチャ
active_version INTEGER DEFAULT 0
);
CREATE UNIQUE INDEX idx_sop_key ON sops(intent, target_signature);
SOPの手順バージョンテーブル。
CREATE TABLE sop_versions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sop_id TEXT NOT NULL REFERENCES sops(sop_id),
version INTEGER NOT NULL,
status TEXT NOT NULL DEFAULT 'candidate', -- candidate / active / deprecated
body_json TEXT NOT NULL, -- steps配列のJSON
created_at TEXT NOT NULL, -- ISO8601
created_by TEXT NOT NULL, -- "brain" / "orchestrator"
deprecated_at TEXT, -- ISO8601(deprecatedになった時刻)
deprecated_reason TEXT
);
実行証跡・監査データテーブル。
CREATE TABLE artifacts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_id TEXT NOT NULL REFERENCES tasks(task_id),
type TEXT NOT NULL, -- "executed_commands" / "key_outputs" / "error_head_tail"
body TEXT NOT NULL,
ts TEXT NOT NULL -- ISO8601
);
協調セッション管理テーブル。
CREATE TABLE sessions (
session_id TEXT PRIMARY KEY,
status TEXT NOT NULL DEFAULT 'active', -- active / paused / closed
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
task_id を必ず含めるtask_events に trilium_sync_pending を記録してリトライ対象にする各タスク実行で以下を記録する:
task_id| KPI | 説明 | 目標方向 |
|---|---|---|
| 自動完了率 | status=ok / 全タスク数 |
上昇 |
| 差し戻し率 | need_input / 全タスク数 |
低下 |
| SOP再利用率 | SOP一致実行 / 全実行数 | 上昇 |
| Brain介入率 | Brainを起こした回数 / 全タスク数 | 低下 |
Phase 1 開始前に満たすべき条件:
butler__submit_task が呼べるcollect_logs / triage Intent の承認ポリシーが確定しているcollect_logs または triage の最初のSOP候補が手動で登録されているButlerLayer_アーキテクチャ定義書_v0.3.mdButlerLayer_契約通信仕様書_v0.3.mdButlerLayer_実行SOP仕様書_v0.3.md以上を Butler Layer データ・運用仕様書 v0.3 とする。