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

    アーキテクチャ

    dagaynはリポジトリ内容をローカル知識グラフに変換し、CLIとMCPから同じデータセットをクエリする。中核は Tree-sitter + SQLite で、ホットパスは Rust(dagayn_core が担う。

    取り込み 永続化 クエリ ファイル発見 言語検出 Tree-sitter パース ノード / エッジ抽出 graph.db 後処理 nodes_fts / flows / communities embeddings.db 任意 CLI / MCP AI エージェント

    拡張子、shebang、設定ファイルに基づいてパーサを割り当てる。拡張子なしスクリプトはshebangからBash / Python等を推定する。

    対応はポリグロット:アプリコード、Markdown、Terraform、Notebookを同一リポジトリ内で混在可能。

    Tree-sitterを基本とし、fork固有grammarは commit pin で取得する。

    形式備考
    Terraformfork tree-sitter-terraform.tf / .tfvars
    Markdownfork tree-sitter-markdown。directive コメント対応
    Notebookセル単位。span overlap で行番号ずれに耐性
    Rust / Python / JS・TS 系Rust 所有パスが既定

    パーサ出力は常に ファイル単位 のノード・エッジ列。qualified nameはリポジトリ内で一意。

    .dagayn/graph.db に書き込む。パスはリポジトリルート相対で正規化し、symlink経由の一時パス差を吸収する。

    詳細は ストレージと SQLite を参照。

    処理出力スキップ
    FTS5 索引nodes_fts常に実行(build 後)
    コミュニティLeiden 分割 + cohesion
    Centralityhub_scores, bridge_scores
    フローエントリ→葉の経路hook では --skip-flows
    埋め込みembeddings.db--local-embedding 時のみ

    派生データはmaterializeして保持する。リクエスト時に毎回NetworkXを組み立てない。

    レビュー、semantic search、refactor提案はすべて同一GraphStoreを読む。変更検出はGit worktree状態とグラフを突き合わせる。

    ┌─────────────────────────────────────┐
    │ CLI / MCP / tests │
    ├─────────────────────────────────────┤
    │ Python GraphStore(安定 API) │
    │ ・スキーマ・トランザクション │
    │ ・パス正規化・キャッシュ無効化 │
    ├─────────────────────────────────────┤
    │ Rust dagayn_core(PyO3) │
    │ ・バッチ store / parse │
    │ ・Markdown artifact 解決 │
    │ ・centrality / フロー JSON 永続化 │
    └─────────────────────────────────────┘

    移行方針:Rustは加速実装としてGraphStore APIの背後に置く。dagayn._core が無いsource checkoutは明確に失敗し、旧Pythonパーサにはフォールバックしない。

    semantic_search_nodes はFTS5とベクトル検索をRRF(k=10)で融合する。詳細は セマンティック検索 を参照。

    レジストリに複数リポジトリを登録し、cross_repo_search_tool で横断検索できる。daemon設定はupstream docs/DAEMON-CONFIG.md を参照。

    GraphML、Mermaid C4、SVG、Cypher、Obsidian形式などへエクスポート可能。dagayn visualize / generate_wiki_tool が相当する。

    判断理由
    qualified name でエッジ結合パーサ単純化、クロスアーティファクト、人間可読レスポンス
    保存時に DAG 制約なし循環を観測可能にする。ADP は後処理
    ファイル単位 replace 更新incremental diff より単純で速い
    edge kind を分離探索時の index selector 兼意味分類
    派生テーブル materializeMCP レイテンシを抑える

    探索・集計のホットパスは段階的にRustへ移行中。Python層はCLI・MCP・オーケストレーションを担う。upstream docs/RUST-CORE-MIGRATION-WIP.md に最新の移行表がある。