feat(tools): 実測の自動化・優先度区分の整理・Claude PRレビューの試行導入 - #1898
Merged
Conversation
- fixtures.py にワークフロー activity の作成を追加。自分所有/他人所有の2件を作る。 no.601-636 は <activity_id> を要求するため、これが無いと probe が 未解決プレースホルダで skip していた。 - probe_ci.py が <activity_id>/<action_id>/<workflow_id>/<flow_id> を解決し、 activity は自分所有と他人所有の両方で測る(所有者チェックの検証のため)。 - apply_probe_results.py を新規追加。probe.json を台帳の dynamic_verified に 反映する。既定では空欄の行だけを埋め、★実証など人手で精査した既存値は残す。 - remeasure.sh を新規追加。フィクスチャ投入 → 実測 → 反映 → 再計算 を通しで行う。 --all-unmeasured / --nos / --read-only に対応。 - scripts/README.md にケース2c(実測の測り直し)と、測定できる範囲を追記。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
実測で skip していた行の原因を集計し、フィクスチャ側で解決できるようにした。 - 著者(authors)を1件作成。初期状態で0件のため <identifier> が解決できなかった。 - 既存の初期データのIDを参照して fixtures.json に載せる(作成はしない)。 item_type_id / property_id / mail_template_id / prefix_id / affiliation_id / facet_search_id / oauth_client_id / oauth_token_id。install.sh が投入する データなので、フィクスチャで作ると二重になる。 - probe_ci.py が上記と定数(<lang_code>/<current_language>=ja、<req>=1)を解決。 CI も同じ fixtures.py / probe_ci.py を呼ぶため、拡張はそのまま CI に反映される。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
旧 P0(至急) と P0(最優先) を P1 に統合し、以降を繰り上げてかっこを外した。 P0 が2種類あるのが分かりにくく、かっこ内の補足も区分名として冗長だったため。 P0(至急) + P0(最優先) → P1 P1(高) → P2 P2(中) → P3 P3(低) → P4 P4(低・実装済) → P5 整理対象 / 環境依存 / 対象外 は変更なし(優先度ではなく扱いの区分のため) テスト観点による引き上げの上限も P2 → P3 に追随させた(同じ層を指す)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
Anthropic API キーではなく Claude サブスクリプションの長期トークンで認証する。
通信はアウトバウンドのみで、公開エンドポイントや常駐プロセスは不要。
cloud-hosted の claude ultrareview は本アカウントで利用できなかった
("Ultrareview is currently unavailable")ため、ヘッドレス実行(claude -p)を使う。
差分を stdin で渡し、--allowed-tools "" --permission-mode plan により
ツール実行を一切許可しない。
public リポジトリ向けの配慮:
- fork からの PR では起動しない(Secret が渡らないため)
- レビュー結果は PR に投稿せず artifact 止まり(POST_TO_PR で切替)
- 差分 200KB 超はスキップ
観点は認可の欠落・後退、破壊的操作、入力検証、既存挙動の変更に絞り、
差分から読み取れる事実のみを書かせる。
動作確認のため一時的に pull_request トリガを有効化している。
確認後は workflow_dispatch のみに戻す。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
初回実行が3秒で exit 1 になり、stdout を raw.json にリダイレクトしていたため エラー内容が取れなかった。stdout/stderr を両方残して表示し、artifact にも 上げるようにした。診断目的のためジョブは落とさない。 --allowed-tools は可変長引数で空文字を渡すと解釈が不安定なため指定をやめた (--permission-mode plan により変更系は行われない)。環境変数名は CLAUDE_CODE_OAUTH_TOKEN で正しいことをバイナリ内の文字列で確認済み。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
API インベントリ差分(件数のみ)
ベースラインとの差分API インベントリ差分レポート
判定: ✅ PASS (FAIL 0 / WARN 1)サマリ
[WARN] W6 依存パッケージの版が変化した — 3件
台帳との突き合わせスナップショット ↔ インベントリ 突き合わせ
判定: ✅ 一致 (0件)
|
API インベントリ差分(件数のみ)
ベースラインとの差分API インベントリ差分レポート
判定: ✅ PASS (FAIL 0 / WARN 1)サマリ
[WARN] W6 依存パッケージの版が変化した — 3件
台帳との突き合わせスナップショット ↔ インベントリ 突き合わせ
判定: ✅ 一致 (0件)
|
初回試行で「fixtures.py の %% は SyntaxError」という誤指摘が出た。実際は
その文字列が PAYLOAD % {...} で展開される前提で %% が正しく、差分だけでは
文脈が見えないことが原因だった。
- --allowed-tools "Read,Grep,Glob" を許可し、リポジトリの実物を読ませる。
変更系のツールは許可せず --permission-mode plan も併用する。
- プロンプトの最重要規則を「指摘する前に必ず裏を取る」にし、確認せずに
指摘してはいけない例(未定義に見える変数、書式の誤り、呼び出し側の追随)を挙げた。
- 出力に verified 欄を追加し、どのファイルを読んで確認したかを書かせる。
埋まらない指摘は出力しないよう指示。
- 「指摘ゼロは正当な結論」と明記し、件数稼ぎを抑止。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXo9u6PoTf6VRKr3aiGvZ3
2 tasks
API インベントリ差分(件数のみ)
ベースラインとの差分API インベントリ差分レポート
判定: ✅ PASS (FAIL 0 / WARN 1)サマリ
[WARN] W6 依存パッケージの版が変化した — 3件
台帳との突き合わせスナップショット ↔ インベントリ 突き合わせ
判定: ✅ 一致 (0件)
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要 (Summary)
PR #1897 のマージ後に積んだ4コミットです。ツールとワークフローのみで、アプリケーションコードへの変更はありません。
apply_probe_results.py/remeasure.shを追加し、フィクスチャにワークフロー activity を追加P0(至急)とP0(最優先)をP1に統合し、以降を繰り上げてかっこを除去変更タイプ (Type of Change)
1. 実測の自動化
remeasure.shが「フィクスチャ投入 → 実測 → 台帳反映 → 再計算」を通しで実行します。fixtures.pyにワークフロー activity(自分所有 / 他人所有の2件)と著者、既存初期データのID参照を追加しました。probe_ci.pyは<activity_id>を両方に解決して測るため、所有者チェックの欠落を検証できます。未測定 407 → 26 件(94% 測定済み) になりました。
2. 優先度区分の整理
3. Claude による PR レビュー(試行)
Anthropic API キーを使わず、Claude サブスクリプションの長期トークンで認証します。通信はアウトバウンドのみで、公開エンドポイント・固定IP・常駐プロセスは不要です。
cloud-hosted の
claude ultrareviewは本アカウントで利用できなかった(Ultrareview is currently unavailable)ため、ヘッドレス実行(claude -p)を使います。public リポジトリ向けの配慮
POST_TO_PRで切替)--allowed-tools ""--permission-mode planでツール実行を一切許可しない観点
汎用のコードレビューではなく、この台帳作業の文脈に寄せています。
この PR 自体がレビューの動作確認を兼ねています。 確認後、
pull_requestトリガはworkflow_dispatchのみに戻します。補足
台帳は public な本リポジトリに含まれていません。スクリプトは
WEKO_API_INVENTORY_DIRが指す秘密の場所を読み書きします。台帳側の変更は別リポジトリに反映済みです。