Skip to content

feat(takt): Bundle Y2 - analyze facets を haiku 化#98

Merged
aloekun merged 2 commits into
masterfrom
feat/takt-bundle-y2-haiku
May 1, 2026
Merged

feat(takt): Bundle Y2 - analyze facets を haiku 化#98
aloekun merged 2 commits into
masterfrom
feat/takt-bundle-y2-haiku

Conversation

@aloekun
Copy link
Copy Markdown
Owner

@aloekun aloekun commented May 1, 2026

Summary

  • post-merge-feedback の 3 analyze facets (analyze-pr / analyze-session / analyze-prepush-reports) を sonnet → haiku
  • post-pr-review の analyze step に model: haiku を明示追加 (default sonnet → haiku)
  • aggregate / fix / supervise は sonnet 維持で品質担保 (Bundle Y2 のスコープ)
  • token 効率改善計画書 docs/pipeline-token-efficiency.md を初出公開
  • 進捗管理表で #A-1 / #C-1 を「採用済 (Bundle Y2)」マーキング

Context

  • Why: PR feat(cli-pr-monitor): rate-limit 自動検出 + 再トリガー (Phase 4 / 順位 13) #97 セッション (2026-04-30 〜 2026-05-01 JST) で Claude Code Max 5x rate-limit を 3 時間で 90% 消費した観測を踏まえ、analyze 系 step の deep reasoning 不要箇所を軽量モデル化する。
  • Trigger: docs/pipeline-token-efficiency.md で策定した Bundle Y2 (#A-1 + #C-1)。共通テーマは「情報源から finding を抽出する分類タスクは haiku で十分」。
  • Scope decision: Bundle Y2 は yaml 4 行の最小実装。Bundle Z (#B-* What/How comment 防止 3 層) と Bundle Z2 (#D-* gh CLI 規則 + 応答スタイル) は別 PR で実装予定 (rate-limit 不安定期の検証コスト分散方針)。

Validation

  • pre-push-review: verdict=APPROVE (1 iteration / 3m 19s, 2026-05-01 17:10 JST)
    • simplicity-review: APPROVE (no findings)
    • security-review: APPROVE (no concerns)
  • haiku alias 解決: node_modules/takt/dist/core/models/schema-base.js の AgentModelSchema は z.enum(['opus', 'sonnet', 'haiku']) で accept 確認
  • workflow parse: npx takt prompt post-pr-review / npx takt prompt post-merge-feedback 共に正常 parse
  • dogfood E2E: 本 PR の merge 後セッションで post-merge-feedback / post-pr-review の avg time + token 削減を実測 (docs/pipeline-token-efficiency.md の検証方法 ① ② を実行)

References

進捗表の (本 PR) placeholder は PR 番号確定後に追加コミットで埋める。

Summary by CodeRabbit

リリースノート

  • Documentation

    • パイプラインのトークン効率計画に関する包括的ドキュメントを追加しました。複数のパイプラインタイプ全体にわたるベースライン測定値と改善提案を含みます。
  • Chores

    • ワークフロー設定を更新しました。

post-merge-feedback の 3 facets (analyze-pr / analyze-session /
analyze-prepush-reports) と post-pr-review の analyze step を
sonnet → haiku に変更。aggregate / fix / supervise は sonnet 維持で
品質担保。

analyze 系は「情報源から finding を抽出する分類タスク」で deep reasoning
不要。期待効果: PR #97 ベースラインから session あたり 15-20 分削減 + 該当
step の token cost 1/3。

token 効率改善計画書 (docs/pipeline-token-efficiency.md) も同コミットで
初出公開。進捗管理表で #A-1 / #C-1 を「採用済 (Bundle Y2)」マーキング。
Bundle Z (#B-*) / Bundle Z2 (#D-*) は別 PR で実装予定。

検証: AgentModelSchema (node_modules/takt/dist/core/models/schema-base.js)
は ['opus', 'sonnet', 'haiku'] enum で haiku alias を accept。
npx takt prompt で両 workflow が parse 通ることを確認済み。
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

Warning

Rate limit exceeded

@aloekun has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 46 minutes and 17 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ec2d5992-7bbe-4dfa-9a57-d11416beed21

📥 Commits

Reviewing files that changed from the base of the PR and between 2c64637 and 9664be4.

📒 Files selected for processing (1)
  • docs/pipeline-token-efficiency.md
📝 Walkthrough

ウォークスルー

3つの並列解析タスク(analyze-pranalyze-sessionanalyze-prepush-reports)で使用されるClaudeモデルをsonnetからhaikuに変更し、post-pr-reviewワークフローに明示的なモデル指定を追加しました。トークン効率に関する計画ドキュメントを新規作成しました。

変更内容

コホート / ファイル(s) 概要
ワークフロー設定の更新
.takt/workflows/post-merge-feedback.yaml, .takt/workflows/post-pr-review.yaml
3つの分析タスクおよびレビュー手順で使用されるClaudeモデルをsonnetからhaikuに変更、または明示的に指定しました。ポリシー、手順、出力契約に変更はありません。
トークン効率計画ドキュメント
docs/pipeline-token-efficiency.md
パイプライン全体のトークン/時間効率性を分析し、4つの改善グループ(#A~#D)、改善提案(ワークフロー/モデル変更、スキップ条件、トランスクリプトフィルタリング)、リスク評価、実装タスクテンプレート、進捗追跡表を含む包括的な計画ドキュメント。

推定コードレビュー労力

🎯 2 (Simple) | ⏱️ ~10 minutes

関連する可能性のあるPR

  • PR #79: 同じワークフロー(post-merge-feedback.yaml)の同じ分析ステップ(analyze-pranalyze-sessionanalyze-prepush-reports)のClaudeモデル設定を変更しており、直接関連しています。

  • PR #75: post-merge-feedbackワークフローの同じファセット(分析ステップ)に対して、モデル設定の変更とワークフロー定義の両方で関連しています。

  • PR #32: post-merge-feedbackフローを修正し、このPRで変更される分析ステップが動作するスキル/ADRを導入しており、直接関連しています。

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed プルリクエストのタイトルは、主な変更内容(3つの分析タスクをsonnetからhaikuに変換し、post-pr-reviewで明示的にhaikuを指定、token効率化計画ドキュメントを追加)をBundleY2という具体的なスコープで簡潔に要約している。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 46 minutes and 17 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (4)
.takt/workflows/post-merge-feedback.yaml (1)

31-94: ⚡ Quick win

LGTM(ただし haiku の見落としは要 dogfood 比較)

analyze-pr / analyze-session / analyze-prepush-reports を model: haiku に切り替えつつ、aggregate-feedbackmodel: sonnet のままにしている点は、意図(抽出/分類のみを haiku に寄せる)と整合しています。

一方で、haiku による finding 抽出の精度低下(見落とし)リスクは残るので、docs で想定している gate(dogfood での品質変化比較)が確実に運用されるよう、次回の実測指標(例: facets の report 差分、最終 feedback-report.md の Critical/Major 変化有無)をどこかに明示しておくのが安全です。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.takt/workflows/post-merge-feedback.yaml around lines 31 - 94, The workflow
switches analyze-pr, analyze-session, and analyze-prepush-reports to model:
haiku while leaving aggregate-feedback as model: sonnet, so add an explicit
dogfood-quality gate and measurement outputs to guard against haiku regressions:
update the workflow to emit comparison metrics (e.g., facets diffs and a summary
of Critical/Major counts) and a deterministic artifact (feedback-report.md)
after both haiku and sonnet runs; ensure the steps tied to analyze-pr,
analyze-session, analyze-prepush-reports produce those artifacts (names:
pr-analysis.md, session-analysis.md, prepush-analysis.md) and add a final
compare step that consumes them and writes a dogfood comparison report
indicating whether Critical/Major changed so the gate is enforceable.
docs/pipeline-token-efficiency.md (2)

717-725: ⚡ Quick win

ローカル Windows パス(C:\Users\HIROKI\...)は匿名化/非表示推奨(PII混入リスク)

関連 セクションで C:\Users\HIROKI\... のように個人名を含むローカルパスが公開されています。ドキュメント用途として不要なら、ユーザー名部分を C:\Users\<REDACTED>\... などに置き換えるか、相対パス/ハッシュ付きセッションIDのみにしてください。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pipeline-token-efficiency.md` around lines 717 - 725, The document
exposes a local Windows path containing a real username in the "関連" section (the
string
"C:\Users\HIROKI\.claude\projects\...6cbc5021-e5f4-420d-853b-e1b467d45ae4.jsonl");
replace the hardcoded user-specific path with an anonymized form such as
"C:\Users\<REDACTED>\.claude\projects\...<SESSION_ID>.jsonl" or a
relative/hashed session ID only, and update the literal line that currently
lists
"C:\Users\HIROKI\.claude\projects\e--work-claude-code-hook-test\6cbc5021-e5f4-420d-853b-e1b467d45ae4.jsonl"
to the redacted version to remove PII.

1-726: ⚡ Quick win

MD040(fenced code block の言語指定なし)を解消してください

static analysis(markdownlint-cli2)で MD040 警告が出ているため、fenced code block をすべて ```bash / ```yaml / ```json 等のように言語指定付きにしてください(該当: Line 122, 231, 262, 456)。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/pipeline-token-efficiency.md` around lines 1 - 726, The markdown has
multiple fenced code blocks missing language specifiers (examples include the
gh/POST bash examples for replying to PR threads, the YAML snippets showing
model: haiku for analyze steps, the Python3 session-metrics snippet under
"検証方法", and other shell/JSON examples); update each triple-backtick fence to
include an appropriate language token such as bash, yaml, python, json, or rust
to satisfy MD040. Locate the unlabeled fences by searching for the shown
snippets (e.g., the gh api / dev/null example, the YAML blocks that show
".takt/workflows" changes like "model: haiku", and the Python3 block that reads
session jsonl) and add the corresponding language tag to the opening ``` line
for each block.
.takt/workflows/post-pr-review.yaml (1)

39-64: ⚡ Quick win

analyze を haiku にするのは妥当(分岐結果の差分監視だけ推奨)

post-pr-review の analyze step に model: haiku を明示し、fix/supervise 系を sonnet のまま維持しているのは、意図通りの “分類/抽出寄せ” になっています。

ただし haiku で classification が僅かにズレると、approved / needs_fix / user_decision の分岐結果(=ループ回数や fix 実行可否)に波及し得ます。dogfood では coderabbit-analysis.md と次ステップ遷移(needs_fix が出た/出ない等)の差分が追える形で計測するのがおすすめです(ワークフロー側の差分ログでもOK)。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.takt/workflows/post-pr-review.yaml around lines 39 - 64, analyze ステップで
model: haiku を使うと分類の微差が分岐(rules の
approved/needs_fix/user_decision)に影響するため、`analyze` 定義に出力差分追跡を追加して
`coderabbit-analysis.md` の内容と次ステップ遷移の差分を記録するようにして下さい;具体的には
`.takt/workflows/post-pr-review.yaml` の `analyze` ブロック(model: haiku)に「前回の
coderabbit-analysis.md と今回の差分を保存/アーティファクト化」または「ワークフロー実行時に次ステップ(rules
の判定結果)をログに出力」する処理を入れ、結果を出力先(output_contracts の
coderabbit-analysis.md)とワークフロー差分ログの両方に残すように実装して分類ズレの影響を可視化してください。
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.takt/workflows/post-merge-feedback.yaml:
- Around line 31-94: The workflow switches analyze-pr, analyze-session, and
analyze-prepush-reports to model: haiku while leaving aggregate-feedback as
model: sonnet, so add an explicit dogfood-quality gate and measurement outputs
to guard against haiku regressions: update the workflow to emit comparison
metrics (e.g., facets diffs and a summary of Critical/Major counts) and a
deterministic artifact (feedback-report.md) after both haiku and sonnet runs;
ensure the steps tied to analyze-pr, analyze-session, analyze-prepush-reports
produce those artifacts (names: pr-analysis.md, session-analysis.md,
prepush-analysis.md) and add a final compare step that consumes them and writes
a dogfood comparison report indicating whether Critical/Major changed so the
gate is enforceable.

In @.takt/workflows/post-pr-review.yaml:
- Around line 39-64: analyze ステップで model: haiku を使うと分類の微差が分岐(rules の
approved/needs_fix/user_decision)に影響するため、`analyze` 定義に出力差分追跡を追加して
`coderabbit-analysis.md` の内容と次ステップ遷移の差分を記録するようにして下さい;具体的には
`.takt/workflows/post-pr-review.yaml` の `analyze` ブロック(model: haiku)に「前回の
coderabbit-analysis.md と今回の差分を保存/アーティファクト化」または「ワークフロー実行時に次ステップ(rules
の判定結果)をログに出力」する処理を入れ、結果を出力先(output_contracts の
coderabbit-analysis.md)とワークフロー差分ログの両方に残すように実装して分類ズレの影響を可視化してください。

In `@docs/pipeline-token-efficiency.md`:
- Around line 717-725: The document exposes a local Windows path containing a
real username in the "関連" section (the string
"C:\Users\HIROKI\.claude\projects\...6cbc5021-e5f4-420d-853b-e1b467d45ae4.jsonl");
replace the hardcoded user-specific path with an anonymized form such as
"C:\Users\<REDACTED>\.claude\projects\...<SESSION_ID>.jsonl" or a
relative/hashed session ID only, and update the literal line that currently
lists
"C:\Users\HIROKI\.claude\projects\e--work-claude-code-hook-test\6cbc5021-e5f4-420d-853b-e1b467d45ae4.jsonl"
to the redacted version to remove PII.
- Around line 1-726: The markdown has multiple fenced code blocks missing
language specifiers (examples include the gh/POST bash examples for replying to
PR threads, the YAML snippets showing model: haiku for analyze steps, the
Python3 session-metrics snippet under "検証方法", and other shell/JSON examples);
update each triple-backtick fence to include an appropriate language token such
as bash, yaml, python, json, or rust to satisfy MD040. Locate the unlabeled
fences by searching for the shown snippets (e.g., the gh api / dev/null example,
the YAML blocks that show ".takt/workflows" changes like "model: haiku", and the
Python3 block that reads session jsonl) and add the corresponding language tag
to the opening ``` line for each block.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c0155ede-e4d0-46ae-b046-1ddf3d944fe4

📥 Commits

Reviewing files that changed from the base of the PR and between 83396c7 and 2c64637.

📒 Files selected for processing (3)
  • .takt/workflows/post-merge-feedback.yaml
  • .takt/workflows/post-pr-review.yaml
  • docs/pipeline-token-efficiency.md

Bundle Y2 (#A-1 / #C-1) の進捗表エントリを「採用済 (Bundle Y2) | 2026-05-01 |
(本 PR)」から実 PR 番号 #98 に書き換え。advisor 指摘の埋め忘れ防止のため、
親 commit (Bundle Y2 実装) と同 PR 内で完結させる。

PR #98 の post-pr-review takt 初回 run は 1 iteration / 1m 13s で APPROVED。
旧 baseline (1.5-2.5 min/iter) から早速 Bundle Y2 効果が反映された観測値。
@aloekun aloekun merged commit 6cf2641 into master May 1, 2026
1 check passed
@aloekun aloekun deleted the feat/takt-bundle-y2-haiku branch May 1, 2026 08:45
aloekun added a commit that referenced this pull request May 1, 2026
PR #99 round 3 CodeRabbit Minor 指摘 2 件を反映。

#1 (Inline Minor / id 3173967127, L719 周辺): outlier 率の数値矛盾
- L718 の「6 runs 中 6-iter outlier 1 件」と L719 の「outlier 率 33%」が同段
  落内で矛盾 (1/6 = 16.7%) との指摘
- 私の Round 2 self-introduced bug で 33% を 4 箇所 (L302 / L335 / L611 /
  L719) に書いていた
- 全箇所を「1/6 (16.7%)」表記に統一。観測データ table (L28 の `{1×3, 3×2,
  6×1}`) を single source of truth として一貫させる
- L335 (post-pr-review との比較) は文脈に合わせて文を整理 (旧「33% と比べて
  健全」→ 新「同水準だが 3-iter 中央値は post-pr-review の方が低い」)

#2 (Inline Minor / id 3173967148, L763): 進捗管理テーブルの #B-α 状態
- 旧: `計画 (Bundle Z Phase 1) | 2026-05-01 | -`
- 新: `採用済 (Bundle Z Phase 1) | 2026-05-02 | #99`
- 本 PR で実装済の実態に追従。Bundle Y2 PR #98 の `(本 PR)` placeholder +
  後置換 commit パターンを省略し、PR 番号確定済のため直接 `#99` を記載
- ADR-033 運用 (table が absolute number の source of truth) に従う

CR の指摘は 3 箇所 (L302 / L633) と書いていたが、grep で実際には 4 箇所
存在 (L633 は前 commit で「outlier 0% + 1-iter ALL APPROVE」表記に変更済の
ためヒットなし、代わりに L335 が新たに発見)。CR は L302 を base に他箇所も
同期と要請しており、4 箇所すべて修正することで整合確保。
aloekun added a commit that referenced this pull request May 1, 2026
* docs(pipeline): PR #98 post-merge-feedback 反映 + Bundle Z 全面再編

pipeline-token-efficiency.md:
- Bundle Z 当初提案 (旧 #B-1〜#B-4) を完全削除し「再評価」ブロックで批判を記録
- 新案 #B-α / #B-β / #B-γ (アーキテクチャ 3 層: 決定論 lint / 制約付き fix /
  異常検知 reviewer) を追加
- 採用判定 + Bundle Z 3 Phase 構造 (Phase 1: Rust 限定 PoC / Phase 2: metrics
  diff / Phase 3: reviewer 役割変更)
- Bundle 編成 / 期待効果 / 進捗管理表を新案に整合 update

todo.md / todo4.md:
- PR #98 post-merge-feedback で採用された 3 件を follow-up として登録
  (順位 39/40/41、ADR-033 template 準拠で詳細を todo4.md に記述)
  - 順位 39: takt workflow `model` 必須化 lint rule (Bundle Y2 完全性)
  - 順位 40: prepare-pr skill Step 1 bookmark 存在チェック強化
  - 順位 41: Bundle Y2 効果の定量計測

ユーザーフィードバック (PR #98 セッション末) の本質: 既存 #B-1〜#B-4 は
LLM 検証器の追加 (ask-based) で、6 iter = worst path は構造的必然のため
収束しない。「iter を減らす」ではなく「iter を不要にする」= LLM 通過前に
決定論層で止める方針へ転換。

参照: .claude/feedback-reports/98.md

* feat(hooks): Bundle Z Phase 1 - 決定論 comment lint hook (Rust)

#B-α 実装: tree-sitter-rust ベースの AST 層で line/block comment を抽出し、
例外マーカー (rustdoc /// /*! および // TODO: / FIXME: / SAFETY: / NOTE: /
HACK: / XXX:) 以外を REJECT する PostToolUse hook を追加。

設計の核心 (ユーザーフィードバック反映):
- regex で「Why/What の意味区別」を試みず、コメントの存在自体を制約
- AST 層 (tree-sitter) で文字列リテラル内 // の誤検知を構造的に排除
- 既存 PreToolUse / PostToolUse hooks と独立した binary として配置
  (ユーザー指示: 言語別 plugin の独立性確保、将来 ts/python 用 plugin の
  並列追加を想定)

実装:
- 新 crate src/hooks-post-tool-comment-lint-rust/ を Cargo workspace に追加
- 既存 hooks-post-tool-linter の LintViolation フォーマットを踏襲
- 24 unit tests (allowlist / 違反検出 / 文字列内コメント無視 / 上限 /
  JSON 構造) すべて pass
- package.json: build:hooks-post-tool-comment-lint-rust + build:all 統合
- scripts/deploy-hooks.ts: EXE_FILES に追加
- .claude/settings.local.json.template: PostToolUse に独立 matcher block で登録

dogfood smoke test:
- 自身の main.rs (rustdoc + // NOTE のみ): クリーン (no violation)
- 違反コメント含む test.rs: line 1 に RUST_COMMENT_FORBIDDEN を JSON で報告

参照:
- docs/pipeline-token-efficiency.md Bundle Z #B-α 設計 (前 commit)
- ADR-001 (Rust hooks) / ADR-007 (AST 層) / ADR-026 (Cargo workspace)

* fix(docs): CR Minor 反映 - 計画書の AST 解析方式を tree-sitter で統一

PR #99 round 1 CodeRabbit Minor 指摘 (`docs/pipeline-token-efficiency.md` の
L202 / L291 が `syn` / rustc lexer 前提の説明だが、実装側は tree-sitter +
tree-sitter-rust を採用しており不整合) を反映。

変更:
- L202: 「`syn` crate or `proc_macro2::TokenStream` の lexer level」→
  「`tree-sitter` / `tree-sitter-rust` で `(line_comment)` / `(block_comment)`
  ノードを query で抽出」
- L291: 「`syn` / rustc lexer level で comment 抽出」→
  「`tree-sitter` / `tree-sitter-rust` で `(line_comment)` / `(block_comment)`
  ノードを抽出」

次フェーズ (Phase 2 / Phase 3) の実装方針誤誘導を防止する。

* fix(docs): CR Round 2 反映 - 例外マーカー一覧 + iter 分布目標を整合

PR #99 round 2 CodeRabbit Minor 指摘 2 件を反映 (Nitpick / Low value 1 件は
Bundle Z 設計に逆行のため却下)。

#1 (Inline Minor / L189-194): 例外マーカー一覧と実装の同期
- 旧: `///` / `// TODO:` / `// FIXME:` / `// SAFETY:` / `// NOTE:` のみ列挙
- 新: 実装 `ALLOWED_LINE_PREFIXES` / `ALLOWED_BLOCK_PREFIXES` を single source of
  truth と明示し、現時点の全マーカー (line: `///` / `//!` / `// TODO:` /
  `// FIXME:` / `// SAFETY:` / `// NOTE:` / `// HACK:` / `// XXX:`、
  block: `/**` / `/*!`) を列挙。マーカー追加時の同期義務も併記。

#2 (Outside diff range Minor / L716-720): 検証目標を Bundle Z 再編後の
ターゲットに統一
- 旧: `{1×N, 2×N}` で 6-iter outlier 消失、avg iter 2.5 → 1.5
- 新: `{1×N}` (1-iter 固定) で outlier 率 33% → 0%、avg iter 2.5 → 1.0、
  1-iter ALL APPROVE 率 90% 超 (L302 / L633 と統一)
- これは Bundle Z 再編 (前 commit) で意図的に格上げしたターゲットの未追従
  漏れ。dogfood 判定の基準を文書内で 1 系統に揃える。

却下 (#3 / Low value Nitpick / main.rs L78-87): スペース要件 (`// TODO:` のみ
許可、`//TODO:` 拒否) は Rust 慣用表記 (rustfmt / clippy / VSCode TODO
highlighter デファクト) と整合しており、`//TODO:` 許容は Bundle Z #B-α の
「コメント存在自体を制約」設計に逆行。CR thread に却下根拠を resolved reply
として投稿予定。

* fix(docs): CR Round 3 反映 - outlier 率の数値整合 + 進捗管理 #B-α 状態更新

PR #99 round 3 CodeRabbit Minor 指摘 2 件を反映。

#1 (Inline Minor / id 3173967127, L719 周辺): outlier 率の数値矛盾
- L718 の「6 runs 中 6-iter outlier 1 件」と L719 の「outlier 率 33%」が同段
  落内で矛盾 (1/6 = 16.7%) との指摘
- 私の Round 2 self-introduced bug で 33% を 4 箇所 (L302 / L335 / L611 /
  L719) に書いていた
- 全箇所を「1/6 (16.7%)」表記に統一。観測データ table (L28 の `{1×3, 3×2,
  6×1}`) を single source of truth として一貫させる
- L335 (post-pr-review との比較) は文脈に合わせて文を整理 (旧「33% と比べて
  健全」→ 新「同水準だが 3-iter 中央値は post-pr-review の方が低い」)

#2 (Inline Minor / id 3173967148, L763): 進捗管理テーブルの #B-α 状態
- 旧: `計画 (Bundle Z Phase 1) | 2026-05-01 | -`
- 新: `採用済 (Bundle Z Phase 1) | 2026-05-02 | #99`
- 本 PR で実装済の実態に追従。Bundle Y2 PR #98 の `(本 PR)` placeholder +
  後置換 commit パターンを省略し、PR 番号確定済のため直接 `#99` を記載
- ADR-033 運用 (table が absolute number の source of truth) に従う

CR の指摘は 3 箇所 (L302 / L633) と書いていたが、grep で実際には 4 箇所
存在 (L633 は前 commit で「outlier 0% + 1-iter ALL APPROVE」表記に変更済の
ためヒットなし、代わりに L335 が新たに発見)。CR は L302 を base に他箇所も
同期と要請しており、4 箇所すべて修正することで整合確保。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant