Skip to content

v0.17.0 — レビュアーへの渡しもれと対話原則の呼び忘れを塞ぐ

Choose a tag to compare

@sei-newbear sei-newbear released this 21 Jul 10:11
· 21 commits to main since this release
Immutable release. Only release title and notes can be modified.

レビュアーへの渡しもれと対話原則の呼び忘れを、interface と動線の両方で塞いだ

ユーザー向け (= xp-harness を使う人)

Added

  • 要件定義・基本設計が、対話モードに入った時点で dialogue-principles を呼ぶようになった。これまでは対話原則の発火が「skill 自身の説明文が状況にマッチするか」だけに頼っており、要件対話の入口で呼ばれないことがあった (実測: 同一条件で発火 0/3)。対話モードに入る 3 つの経路 (モードを対話で合意したとき / 依頼者がいきなり議論を始めたとき / 基本設計フェーズを開始したとき) それぞれで呼ぶようになり、1 問ずつ・段階的に開示する・迎合しないといった対話の規律が、対話の最初から効く
  • レビュアー / 検証エージェント (code-reviewer / e2e-reviewer / pre-implementation-reviewer / done-verifier) を呼ぶとき、要件定義・基本設計のパスを渡すことが呼び出し規約として明示された。呼ぶ側はエージェントの説明文だけを見て委譲を判断するため、渡す前提が書かれていないとパスなしで呼んでエージェントが手探りで探すことになる。今後はレビュー・検証が対象文書に確実に接地する

Changed

  • 主要 skill の説明文が短くなった (git-workflow / define-requirements / dialogue-principles / story-slicing / slice-tdd / propose-options)。エージェントに読み込まれる skill 一覧には文字数の上限があり、skill が増えるほど末尾から削られる。責務と発火タイミング、発火しない条件を保ったまま各説明文を圧縮したので、skill が増えても発火判断に効く情報が残りやすくなる
  • git-workflow の説明文から特定コマンド名の言及がなくなった。Git 一般の概念 (branch / commit / push / rebase 等) での表現に統一。運用ルール自体は skill 本文に残っているので振る舞いは変わらない
  • skill の設定ブロックが厳密な YAML として読める形になった (define-requirements / slice-tdd)。説明文に含まれるコロンで解析が失敗する状態だったため、Claude Code 以外の配布先で読み込めない可能性があった

開発者向け (= xp-harness を改修する人)

Added

  • harness-verification: 検証セッションのモデルを指定できるようになった (claude-launcher.sh launch --model)。発火はモデル依存で、上位モデルは弱い説明文を推論で補ってしまうため、検証条件としてモデルを固定できる必要がある
  • 検証記録にモデル ID が必須項目になった (references/README.md + validate-verifications.sh)。記録にモデルがないと後から比較・再現ができない。既存 2 記録は「未記録」で backfill
  • description 純化の検証記録 (references/2026-07-20_description純化.md) — 新旧の前後比較・2 モデル・計 18 有効ランの条件と結果、および検証手順上の失敗 (実行中スクリプトの編集、質問ウィジェットの自動回答による無効化など) を再現レシピ付きで記録

Changed

  • かんばんに「対話の型の重複と矛盾の整理」を追加 (backlog)。dialogue-principles と要件定義・基本設計の「対話の型」で、クローズな選択肢の既定値が逆向きに矛盾している。今回の動線追加で両者が毎回同居するようになり顕在化した

Install (新規 consumer 向け)

apm install sei-newbear/xp-harness#v0.17.0 --target claude

Update (既存 consumer 向け、v0.16.0 → v0.17.0)

apm.yml の依存指定を新バージョンに書き換える:

 dependencies:
   apm:
-  - sei-newbear/xp-harness#v0.16.0
+  - sei-newbear/xp-harness#v0.17.0

そのあと:

apm install --target claude
# Content hash mismatch が出たら (= APM のサプライチェーン検出機構、想定挙動)
apm install --update --target claude

詳細は README "Update" セクション参照。

Note

後方互換あり。skill / エージェントの責務・発火条件は変わっておらず、説明文の圧縮と呼び出し動線の追加のみ。振る舞いに回帰がないことは、新旧の前後比較検証 (実装フェーズの自走・要件定義から実装までの通し・ゴール渡し自走を含む計 18 ラン、claude-opus-4-8 / claude-sonnet-5) で確認している。