Skip to content

detectRuleIndex を最後のマッチに変更する #25

@nrslib

Description

@nrslib

概要

detectRuleIndex() のステータスタグ検出を、最初のマッチから最後のマッチに変更する。

背景

エージェントの出力中に [STEP_NAME:N] パターンが複数出現する場合がある。例えばレビュアーが前回のイテレーション結果を引用して [AI_REVIEW:1] と書き、末尾で実際の判定として [AI_REVIEW:2] を出力するケース。

現在の detectRuleIndex() は最初のマッチを採用するため、引用中のタグ([AI_REVIEW:1])が本来の判定([AI_REVIEW:2])より先にヒットし、意図しない遷移が発生する。

再現例

[ai-antipattern-reviewer]:
# AI生成コードレビュー — Iteration 2

前回の [AI_REVIEW:1] では問題なしだったが...   ← これが先にヒット

## 結果: REJECT

[AI_REVIEW:2]                                     ← 本来の判定

期待: rule index 2 → ai_fix へ遷移
実際: rule index 1 → 次のレビューステップへ遷移

修正方針

src/claude/client.tsdetectRuleIndex() で、正規表現マッチの最後の出現を採用する。

// before: 最初のマッチ
const match = content.match(pattern);

// after: 最後のマッチ(全マッチから末尾を取得)
const matches = [...content.matchAll(patternGlobal)];
const match = matches.at(-1);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions