Status: v1 Owner: Engineering / Governance Issue: #194 PBI-HI-000 Related: docs/ai/harness-improvement-roadmap.md, docs/ai/eval-runner.md
Harness Improvement Roadmap (EPIC #193) の後続改善 (Metrics v1 / Eval expansion / Model Profile v2 / Keep Rate / Dynamic Context Engine) を 比較で判断 できるよう、改善前の PlanGate 状態を baseline として固定する。
以後の eval / hook / profile / workflow 変更は本 baseline と差分を取って評価する。
| 項目 | 値 |
|---|---|
| 計測日 | 2026-05-04 |
| Release | v8.5.0(Hook enforcement 10/10 完成直後) |
| eval-runner version | 1.2.0 (scripts/eval-runner.py) |
bin/plangate version |
0.2.0 |
| 計測 host | macOS Darwin 25.4.0 |
| profile 指定 | なし(default、--profile 未指定) |
| session log | なし(--session-log 未指定、latency / cost は n/a) |
直近で完走した代表 PBI 5 件を選定。light〜standard mode を含み、文書系・実装系の両方をカバー。
| TASK | 概要 | mode | 完了日(main マージ) |
|---|---|---|---|
| TASK-0050 | (直近の代表 task) | - | v8.0 系列 |
| TASK-0054 | 直近 hook 系統 | light | v8.4〜v8.5 期間 |
| TASK-0055 | retrospective Try T-5 baseline 自動測定 | light | v8.4 期間 |
| TASK-0056 | EH-1 / EH-3 実装関連 | standard | v8.5 期間 |
| TASK-0057 | EH-4 / EH-5 / EH-6 実装関連 | standard | v8.5 期間 |
note: 各 TASK のフル context は
docs/working/TASK-XXXX/handoff.mdを参照。
| TASK | AC coverage | approval_discipline (C-3) | format_adherence | scope_discipline | verification_honesty | stop_behavior | tool_overuse | latency_cost | release_blocker |
|---|---|---|---|---|---|---|---|---|---|
| TASK-0050 | 100% | FAIL (c3 absent) | PASS | PASS | PASS | PASS | n/a | n/a | 1 (approval) |
| TASK-0054 | 100% | FAIL (c3 absent) | PASS | PASS | PASS | PASS | n/a | n/a | 1 (approval) |
| TASK-0055 | 100% | FAIL (c3 absent) | PASS | PASS | PASS | PASS | n/a | n/a | 1 (approval) |
| TASK-0056 | 100% | FAIL (c3 absent) | PASS | PASS | PASS | PASS | n/a | n/a | 1 (approval) |
| TASK-0057 | 100% | FAIL (c3 absent) | PASS | PASS | PASS | PASS | n/a | n/a | 1 (approval) |
approvals/c3.json ファイルが TASK 配下に存在しない)n/a(session log 未供給、PBI-HI-001 で metrics v1 実装後に取得可能)approvals/c3.json ファイルとして残していない。light mode では human review = PR レビューに集約しているため、TASK 配下に c3.json が存在しないのは想定通りv8.5.0 で 10/10 hooks が実装済み(docs/ai/hook-enforcement.md v5)。本 baseline 期間中の代表 TASK では、Hook violation の決定論的記録は docs/ai/hook-events.log 等に集約されつつあるが、TASK 単位の hook violation count は metrics v1 実装後に取得可能。
approvals/c3.json を作らず PR レビュー (C-4) に集約 → eval では FAILapprovals/c3.json を作る運用が望ましい(今後 #195 + #201 連携で標準化)全 5 TASK で handoff.md §1 に AC 突合結果あり。AC FAIL=0 開示済み(verification_honesty PASS)。
PR ベースで実施。本 baseline 期間中、PR #186〜#207 範囲で全件 admin merge or 通常 merge。レビューはローカルで Copilot / gemini が補助。
全 5 TASK で handoff.md 存在 + 必須 6 要素(要件適合 / 既知課題 / V2 候補 / 妥協点 / 引き継ぎ / テスト結果)を満たす。format_adherence PASS と整合。
以後の改善で本 baseline と比較すべき指標:
| 改善項目 | 比較対象 | 期待される変化 |
|---|---|---|
| PBI-HI-001 Metrics v1 (#195) | latency_cost / tool_overuse の n/a → 数値 |
計測可能化 |
| PBI-HI-002 Eval expansion (#196) | release blocker 判定の精度 | C-3 absent を light mode では allowed に分類 |
| PBI-HI-003 Model Profile v2 (#197) | profile 指定時の各観点 PASS 率 | profile 別の傾向把握 |
| PBI-HI-004 Keep Rate v1 (#198) | code/plan/acceptance/handoff の残存率 | 新規取得(baseline 時点では未取得) |
| PBI-HI-005 Dynamic Context (#199) | context manifest 採用後の AC coverage | 維持 or 向上 |
本 baseline を再現するには以下を満たすこと:
bin/plangate eval <TASK> を --no-write 付けずに実行(result を該当 TASK 配下に保存)scripts/baseline-snapshot.py で代表 TASK 集合に対して baseline を自動再生成できる:
python3 scripts/baseline-snapshot.py \
--baseline-id 2026-XX-XX \
--release v8.X.0 \
--tasks TASK-NNNN TASK-NNNN ... \
[--profile <profile-key>] \
[--note "remark line"] \
[--out docs/ai/eval-baselines/<baseline-id>-baseline.json] \
[--dry-run]
出力は schemas/eval-baseline.schema.json に準拠(D-2 test で検証)。privacy: §3 Allowed のみ、ファイルパス / コマンド出力 / プロンプト等の §4 Forbidden は schema レベルで物理的に阻止。
機械可読 baseline は同梱の 2026-05-04-baseline.json に格納。schema は schemas/eval-baseline.schema.json を参照(v8.6.0 PR4 で正式化、D-2 test で毎回検証)。schema の概要:
{
"baseline_id": "2026-05-04",
"release": "v8.5.0",
"evaluator_version": "1.2.0",
"tasks": [
{
"task_id": "TASK-XXXX",
"ac_coverage_pct": 100.0,
"approval_discipline": "FAIL|PASS",
"format_adherence": "PASS|FAIL",
"scope_discipline": "PASS|FAIL",
"verification_honesty": "PASS|FAIL",
"stop_behavior": "PASS|FAIL",
"tool_overuse": "n/a|...",
"latency_cost": "n/a|...",
"release_blocker_count": 1
}
]
}