コンテンツにスキップ
検索語を入力してください

    レビューと影響分析

    dagaynのレビュー支援は「差分から構造を読む」ことに焦点を当てる。ファイル全文ではなく、変更ノードとそのグラフ近傍をエージェントに渡す。

    dagayn detect-changes とMCP review_tool(mode="changes") は同じ変更検出エンジンを使う。

    ソース内容
    base_diffgit diff 対 base ref
    stagedステージ済み変更
    unstagedワークツリー未ステージ
    untrackedGit 未追跡ファイル(全体を新規として扱う)

    untrackedファイルにはline hunkが無いため、ファイル全体が変更として扱われる。

    • change_file_sources — 上記バケット別のファイル一覧
    • changed_files — 互換用のフラットリスト
    • change_status — ノード / エッジごとに existing / added / unknown
    • change_entity_summary — 種別ごとの件数集計

    base refのdiffとローカルworktree変更を区別したいときは change_file_sources を見る。

    テスト不足 doc 更新 blast radius フロー影響 get_minimal_context_tool review_tool mode=changes detail=minimal guidance を読む query_graph tests_for query_graph docs_for review_tool mode=impact flow_tool / get_affected_flows architecture_analysis_tool
    1. get_minimal_context_tool — タスク向け最小コンテキスト
    2. review_tool(mode="changes", detail_level="minimal") — 差分と guidance リスト
    3. 必要なら detail_level="standard" でrawセクションを展開
    4. guidanceclaim / evidence / confidence / action に従って深掘り

    guidance は次のような推奨を構造化して返す:

    • 追加すべきテスト
    • 更新すべきドキュメント
    • アーキテクチャ上の注意
    • 影響を受ける実行フロー

    「このシンボルを変えたら、グラフ上で何に届くか」を調べる。

    方向典型用途
    outgoing変更が下流に波及する範囲
    incoming誰がこのシンボルに依存しているか
    双方向レビュー時の総合的な影響

    エッジkindでフィルタできる。依存分析では CALLS を除外し、impact分析では含める、といった使い分けが可能である。

    • Recursive CTE — 到達集合を一括取得(ストレージと SQLite 参照)
    • Frontier batching — kind重み付け、depth制限、token budget、応答整形が必要な場合

    MCPでは review_tool(mode="impact") または query_graph_tool のtraversal系が相当する。

    差分レビューでよく使う query_graph_tool パターン:

    pattern問い
    callers_of誰が呼んでいるか
    callees_of何を呼んでいるか
    tests_forテストはどこか
    docs_for関連ドキュメントはどこか
    implementations_ofこの doc が説明するコードはどこか
    imports_ofimport 関係

    変更ファイル内のシンボルから出発し、1〜2 hopだけたどるとトークン効率が良い。

    Markdownの CROSS_ARTIFACT エッジを使うと、設計書変更の影響をコード側へ、コード変更の影響をdoc側へ追える。

    設計書のコードスパン更新
    → CROSS_ARTIFACT 先シンボル
    → callers / tests_for / flows

    要件モデル(rdra-ish)と実装コードを同じリポジトリに置けば、上流から下流までグラフでたどれる。

    dagayn install が登録するhookは保存後に dagayn update --skip-flows を実行する。

    変数 / 挙動意味
    DAGAYN_HOOK_UPDATE=1hook 経由の更新中
    重複抑制並行 hook はスキップ
    300秒タイムアウト大きな doc 変更でも kill されにくい

    MCPレビューはhook更新後のグラフを読む。鮮度は dagayn status または list_graph_stats_tool で確認する。

    • グラフ鮮度status で最終更新とノード数
    • 差分網羅change_file_sources にuntrackedが含まれるか
    • テスト対応tests_for で変更シンボルをカバーしているか
    • doc 連携 — directiveと CROSS_ARTIFACT が意図どおりか
    • フロー影響 — 変更がエントリポイントフローに乗るか
    • アーキテクチャ — hub / bridge / ADP違反が増えていないか