From e71ac1bf7d542618ee939a2f936eec7dbb8820d8 Mon Sep 17 00:00:00 2001 From: Widthdom Date: Sun, 26 Jul 2026 14:31:08 +0900 Subject: [PATCH] Simplify cdidx search policy --- AGENT_GUIDE.md | 432 +------------------------------------------------ CHANGELOG.md | 8 + 2 files changed, 14 insertions(+), 426 deletions(-) diff --git a/AGENT_GUIDE.md b/AGENT_GUIDE.md index e883c81d..49e940bb 100644 --- a/AGENT_GUIDE.md +++ b/AGENT_GUIDE.md @@ -86,219 +86,9 @@ Relevant documents: ### Code Search Policy -This repository uses `cdidx` for fast code search through the local SQLite index at `.cdidx/codeindex.db`. -Use the globally installed `cdidx` command on `PATH` for repository search. -Query this index instead of using shell search or discovery commands such as `find`, `grep`, `rg`, or `ls -R`. - -Prefer `cdidx` whenever you need repeated local-code search, symbol lookup, dependency traversal, impact analysis, or AI-oriented retrieval from this repository. - -#### Setup and Availability - -First check whether `cdidx` is available: - -```bash -cdidx --version -``` - -If `cdidx` is unavailable, install it with the self-contained installer: - -```bash -curl -fsSL https://raw.githubusercontent.com/Widthdom/CodeIndex/main/install.sh | bash -``` - -Or, when the .NET 8+ SDK is available, install or update the global tool: - -```bash -dotnet tool install -g cdidx -dotnet tool update -g cdidx -``` - -When `cdidx` runs as a distributed (non-development) install, it appends stderr and minimal lifecycle breadcrumbs to a per-user log file so silent hosts still leave traces. Default locations are `%LOCALAPPDATA%\cdidx\logs\` on Windows, `~/Library/Logs/cdidx/` on macOS, and `$XDG_STATE_HOME/cdidx/logs/` (or `~/.local/state/cdidx/logs/`) on Linux. Logs rotate daily and retain the newest 30 files. Set `CDIDX_DISABLE_PERSISTENT_LOG=1` to opt out. - -To reinstall or switch to a specific version, use the explicit-version installer form: - -```bash -curl -fsSL https://raw.githubusercontent.com/Widthdom/CodeIndex/vX.Y.Z/install.sh | bash -s -- vX.Y.Z -``` - -Re-running the no-argument one-liner still targets the latest release. The installer resolves the latest tag first, then skips the download only when the current healthy install already matches that latest version. Broken `v0.0.0` installs and same-version installs missing required adjacent assets are treated as reinstall targets. Use the explicit-version form when you need to force a specific version. - -If installation fails and `.cdidx/codeindex.db` already exists, `sqlite3` may be used only as a basic fallback for raw text or symbol inspection. -Prefer `cdidx` for call graph queries, freshness metadata, exact-name semantics, scoped snippets, `impact`, `unused`, and `hotspots`. -If neither `cdidx` nor `sqlite3` is available, use the Claude Code built-in `Grep` / `Glob` tools (or your harness's equivalent non-shell search tools). -Do not fall back to shell `rg`, `grep`, `find`, or recursive listing commands, or to a global `cdidx` invocation when the repository's deny list or local-build policy would otherwise block it — bypassing those checks can hide stale-binary bugs. - -Optional git hook support is available when commits should refresh the local index automatically: - -```bash -cdidx hooks install -cdidx hooks status -cdidx hooks uninstall -``` - -The installed hook runs `cdidx index . --quiet` before the commit completes. -`--quiet` suppresses normal progress and success output for hook contexts while still printing indexing errors to stderr and returning a non-zero exit code. -If `.git/hooks/pre-commit` already exists, `cdidx hooks install` moves it to `.git/hooks/pre-commit.cdidx-chain` and calls it after the cdidx refresh, preserving tools such as Husky, pre-commit, and lefthook. -Use `git commit --no-verify` only when you intentionally need to skip all pre-commit hooks. - -#### Freshness and Index Updates - -Before searching, check whether the index matches the workspace: - -```bash -cdidx status --check --json -``` - -If the command exits `0` and reports `index_matches_workspace: true`, skip reindexing. -Otherwise, update the index before trusting search results: - -```bash -cdidx . -``` - -**Rule: whenever source files are modified, run `cdidx status --check --json` before the next search; if it reports a mismatch, run one of the update commands below.** - -```bash -cdidx . --files path/to/changed_file.cs -cdidx . --commits HEAD -cdidx . --commits abc123 -cdidx . --changed-between old-ref new-ref -cdidx . -``` - -- Use `--files` for known in-place edits or new files. -- Include old rename/delete paths with `--files` if you need those entries purged. -- Prefer `--commits` after a normal commit because git history carries rename and delete paths. -- Use `--changed-between ` after branch switches when tooling knows both refs; rename old and new paths are both considered. -- After `git reset`, `git rebase`, `git commit --amend`, `git switch`, or `git merge`, prefer `cdidx .` or `cdidx . --json` so stale paths are purged against the current checkout. -- Use `cdidx index --dry-run` to preview indexing changes when needed. -- If a DB has stale folded-name metadata, run `cdidx backfill-fold` or check `status --json` for `fold_ready` before relying on exact-name queries. -- After ignore-rule changes, use a full `cdidx . --json` refresh unless a commit-scoped update can see the `.gitignore` or `.cdidxignore` change and promote itself to a full incremental scan. -- Long refreshes are transactional per file. Queries can continue during indexing, but may observe a live snapshot that mixes old and refreshed rows until the indexing command finishes; rerun `cdidx status --check --json` before trusting automation results. - -#### Query Strategy - -Start with freshness and orientation when context matters: - -```bash -cdidx status --check --json -cdidx map --path src/ --exclude-tests --json -``` - -Use the most specific `cdidx` command for the task: - -- `map` for language, module, hotspot, and likely-entrypoint orientation -- `inspect` for bundled definition, reference, caller, callee, file, and trust metadata around a candidate symbol -- `symbols` to resolve candidate names before `definition`, `references`, `callers`, `callees`, or `impact` -- `definition` for declaration text, with `--body` when implementation body matters -- `references`, `callers`, and `callees` for symbol-aware graph questions in graph-supported languages; add `--body` when inline graph excerpts are needed -- `impact` for pre-edit ripple checks on callable symbols -- `search` for raw text, comments, strings, punctuation-heavy literals, or languages without useful structured symbols -- `files` to discover candidate paths -- `find` to locate literal text inside known indexed files -- `excerpt` to reconstruct only the needed line range instead of opening a whole file -- `outline` to inspect one file's symbol structure -- `deps` and `deps --reverse` for file-level dependency analysis -- `unused` for bucketed dead-code triage in graph-supported languages -- `hotspots` for central or high-impact symbols -- `validate` for encoding checks -- `languages` for supported language and feature names - -Query precision rules: - -- Add `--exact` or `--exact-name` once the intended symbol is known, so names such as `Run` do not expand to `RunAsync` or `RunImpact`. -- Use `languages` as the source of truth for canonical `--lang` names and current symbol / graph support. Do not hard-code detailed language extraction assumptions in agent instructions; read `graph_supported`, `graph_support_reason`, and related trust metadata when precision matters. -- Use `--path`, repeatable `--exclude-path`, and `--exclude-tests` before broad searches. -- Use `--exact-substring` for case-sensitive literal text, punctuation-heavy strings, operators, or other text where FTS tokenization is a poor fit. -- Use `--fts` only when intentionally writing raw FTS5 syntax such as `NEAR` or `OR`. -- Use `--snippet-lines ` and `--max-line-width ` to keep search JSON compact for AI or scripted consumers. -- Use `--count` for preflight sizing before fetching full results. -- Use `files --since ` or `search --since ` to focus on recently modified code. -- Treat `unused` as an indexed-reference signal, not proof of deletion safety. C# `nameof(...)`, `typeof(...)`, direct reflection member-name literals such as `GetMethod("Foo")`, and literal concatenations such as `GetProperty("Display" + "Name")` are indexed, but dynamically constructed reflection names may still need manual review. - -Use `--json` whenever results will be consumed by scripts or AI tooling. - -Recommended CLI examples: - -```bash -cdidx inspect "Authenticate" --lang csharp --exact --exclude-tests -cdidx symbols --lang csharp --name Authenticate --exact-name -cdidx definition "Authenticate" --lang csharp --exact --body -cdidx search "keyword" --path src/ --exclude-tests --snippet-lines 6 --max-line-width 160 -cdidx search "Run();" --exact-substring --path src/ -cdidx callers "Authenticate" --lang csharp --exact --exclude-tests -cdidx impact "Authenticate" --lang csharp --exact --exclude-tests --json -cdidx deps --path src/Services/AuthService.cs --reverse --json -cdidx hotspots --lang csharp --limit 20 --json -cdidx unused --lang csharp --exclude-tests --json -cdidx find "guard" --path src/app.py --after 2 -cdidx excerpt src/app.py --start 10 --end 20 -cdidx outline src/app.py --json -cdidx languages --json -``` - -Markdown files index ATX and setext headings as `heading` symbols and local anchor references as `reference` symbols, so use `symbols` and `outline` to navigate documentation structure. -If `cdidx` itself behaves unexpectedly, file an issue at with what happened and what you expected. - -#### Direct SQL Fallback - -Use direct SQL only when `cdidx` is unavailable and `.cdidx/codeindex.db` already exists. -This requires `sqlite3` and is limited to basic raw text or symbol inspection. - -If `sqlite3` is not installed: - -- macOS: pre-installed -- Linux: `sudo apt install sqlite3` -- Windows: `winget install SQLite.SQLite` or `scoop install sqlite` - -```sql -SELECT f.path, c.start_line, c.content -FROM fts_chunks fc -JOIN chunks c ON c.id = fc.rowid -JOIN files f ON f.id = c.file_id -WHERE fts_chunks MATCH 'keyword' -LIMIT 20; -``` - -```sql -SELECT f.path, s.name, s.line -FROM symbols s -JOIN files f ON f.id = s.file_id -WHERE s.kind = 'function' AND s.name LIKE '%keyword%'; -``` - -#### Incremental Updates for CI and Hooks - -Instead of re-indexing the entire project, automation can update only changed files: - -```bash -cdidx . --commits abc123 def456 -cdidx . --changed-between main feature -cdidx . --files src/app.cs src/utils.cs -``` - -Prefer `--commits` for commit-driven automation because git history also carries rename and delete paths. -Use `--changed-between ` when a branch-switch workflow knows the previous and current refs. -Use `--files` for editor / save hooks that touch existing paths or add new files; old rename or delete paths are not purged unless they are listed explicitly. -After `git reset`, `git rebase`, `git commit --amend`, `git switch`, or `git merge`, prefer a full `cdidx . --json` refresh so repo-wide stale paths are purged against the current checkout. -Commit-scoped updates automatically promote to a full incremental scan when they detect `.gitignore` or `.cdidxignore` changes in the target commits. -Use a full `cdidx . --json` refresh after ignore-rule changes that are not visible to the scoped update. - -### Prohibited Shell Search and Discovery Commands - -Do not use these commands for repository search: - -- `grep` -- `rg` -- `find` -- `fd` -- `locate` -- `git grep` -- `ls -R` -- `Get-ChildItem -Recurse` -- `Select-String` - -Also avoid repository-local `cdidx.dll` invocations such as `dotnet ./src/CodeIndex/bin/Debug/net8.0/cdidx.dll`. +Use `cdidx` ([Widthdom/CodeIndex](https://github.com/Widthdom/CodeIndex)) for repository search. +Follow the MCP instructions and tool descriptions, or the CLI help and diagnostics, provided by `cdidx` itself. +Do not use shell search or discovery commands for repository search. ### Security and Privacy @@ -416,219 +206,9 @@ dotnet test FolderDiffIL4DotNet.Tests/FolderDiffIL4DotNet.Tests.csproj --configu ### コード検索ポリシー -このリポジトリでは `.cdidx/codeindex.db` のローカル SQLite インデックスを使い、`cdidx` で高速にコード検索します。 -リポジトリ検索には、`PATH` 上のグローバル `cdidx` を使ってください。 -`find`、`grep`、`rg`、`ls -R` のようなシェル検索・探索コマンドではなく、このインデックスを検索してください。 - -同じリポジトリを繰り返し検索する場合、シンボル解決、依存関係のたどり、影響分析、AI 向けの取得では `cdidx` を優先してください。 - -#### セットアップと利用可否 - -まず `cdidx` が利用可能か確認してください。 - -```bash -cdidx --version -``` - -`cdidx` が使えない場合は、self-contained installer でインストールしてください。 - -```bash -curl -fsSL https://raw.githubusercontent.com/Widthdom/CodeIndex/main/install.sh | bash -``` - -.NET 8+ SDK がある場合は、グローバルツールとしてインストールまたは更新してもかまいません。 - -```bash -dotnet tool install -g cdidx -dotnet tool update -g cdidx -``` - -`cdidx` を distributed(非開発)インストールで動かす場合、stderr とライフサイクル breadcrumb をユーザーごとのログファイルに追記します。サイレントなホストでも痕跡が残るようにするためです。デフォルト保存先は Windows が `%LOCALAPPDATA%\cdidx\logs\`、macOS が `~/Library/Logs/cdidx/`、Linux が `$XDG_STATE_HOME/cdidx/logs/`(または `~/.local/state/cdidx/logs/`)です。日次ローテーションで最新 30 ファイルを保持します。停止したい場合は `CDIDX_DISABLE_PERSISTENT_LOG=1` を設定してください。 - -特定バージョンへの再インストールや切り替えは、明示バージョン形式を使ってください。 - -```bash -curl -fsSL https://raw.githubusercontent.com/Widthdom/CodeIndex/vX.Y.Z/install.sh | bash -s -- vX.Y.Z -``` - -引数なしのワンライナーを再実行した場合も常に latest release を対象にします。インストーラーはまず最新タグを解決し、現在の健全な install がその最新版と一致しているときだけダウンロードを skip します。壊れた `v0.0.0` インストールや、同版でも必須隣接資産が欠けているインストールは再インストール対象です。特定の版を強制したいときは、上の明示バージョン形式を使ってください。 - -インストールに失敗し、`.cdidx/codeindex.db` が既にある場合に限り、`sqlite3` を raw text や symbol の最低限の確認用フォールバックとして使ってかまいません。 -call graph、freshness metadata、exact-name semantics、scoped snippet、`impact`、`unused`、`hotspots` には `cdidx` を優先してください。 -`cdidx` も `sqlite3` も利用できない場合は、Claude Code 組み込みの `Grep` / `Glob`(または使用ハーネスの同等の非シェル検索ツール)を使ってください。 -shell の `rg`、`grep`、`find`、再帰的な一覧コマンドにはフォールバックしないでください。リポジトリの deny list やローカルビルド方針でブロックされる場合に、グローバル `cdidx` で迂回するのも避けてください。古いバイナリ由来のバグを隠す原因になります。 - -コミット時にローカルインデックスを自動更新したい場合は、任意の git hook サポートを使えます。 - -```bash -cdidx hooks install -cdidx hooks status -cdidx hooks uninstall -``` - -インストールされた hook は commit 完了前に `cdidx index . --quiet` を実行します。 -`--quiet` は hook 向けに通常の進捗と成功出力を抑制しますが、indexing error は stderr に出し、失敗時は非ゼロ終了します。 -既存の `.git/hooks/pre-commit` がある場合、`cdidx hooks install` はそれを `.git/hooks/pre-commit.cdidx-chain` に退避し、cdidx の更新後に呼び出します。Husky、pre-commit、lefthook などの仕組みを維持できます。 -意図的にすべての pre-commit hook を飛ばしたいときだけ `git commit --no-verify` を使ってください。 - -#### 鮮度確認とインデックス更新 - -検索前に、インデックスが現在の workspace と一致しているか確認してください。 - -```bash -cdidx status --check --json -``` - -終了コード `0` かつ `index_matches_workspace: true` なら再インデックス不要です。 -それ以外の場合は、検索結果を信用する前にインデックスを更新してください。 - -```bash -cdidx . -``` - -**ルール: ソースファイルを修正したら、次の検索前に `cdidx status --check --json` を実行し、差分が報告された場合は下記のいずれかの更新コマンドを実行すること。** - -```bash -cdidx . --files path/to/changed_file.cs -cdidx . --commits HEAD -cdidx . --commits abc123 -cdidx . --changed-between old-ref new-ref -cdidx . -``` - -- `--files` は既知の in-place 編集や新規ファイルに使う。 -- rename/delete した古い path も purge したい場合は、`--files` にそれらも含める。 -- 通常のコミット後は、git 履歴に rename/delete path が含まれるため `--commits` を優先する。 -- ブランチ切り替え後などで前後の ref が分かる場合は `--changed-between ` を使う。rename の旧 path と新 path の両方を考慮する。 -- `git reset`、`git rebase`、`git commit --amend`、`git switch`、`git merge` の後は、現在の checkout に対して stale path を purge するため `cdidx .` または `cdidx . --json` を優先する。 -- 必要なら `cdidx index --dry-run` でインデックス変更を事前確認する。 -- folded-name metadata が古い DB では、exact-name 検索に頼る前に `cdidx backfill-fold` を実行するか、`status --json` の `fold_ready` を確認する。 -- ignore ルール変更後は、commit-scoped update が `.gitignore` または `.cdidxignore` の変更を検出して full incremental scan に昇格できる場合を除き、`cdidx . --json` のフル更新を使う。 -- 長い refresh 中も query は継続できるが、indexing command が完了するまでは古い行と更新済み行が混在した live snapshot を見る可能性がある。自動化で結果を信頼する前に、refresh 完了後 `cdidx status --check --json` を再実行する。 - -#### クエリ戦略 - -文脈が重要な場合は、鮮度確認と全体把握から始めてください。 - -```bash -cdidx status --check --json -cdidx map --path src/ --exclude-tests --json -``` - -用途に応じて最も具体的な `cdidx` コマンドを使ってください。 - -- `map` は言語、モジュール、hotspot、推定 entrypoint の把握 -- `inspect` は候補シンボル周辺の定義、参照、caller、callee、ファイル情報、信頼判断メタデータの一括取得 -- `symbols` は `definition`、`references`、`callers`、`callees`、`impact` の前に候補名を固める用途 -- `definition` は宣言テキストの取得、本体が必要なら `--body` を付ける -- `references` / `callers` / `callees` は graph-supported language のシンボル-aware なグラフ調査。インライン抜粋が必要なら `--body` を付ける。 -- `impact` は変更前の callable symbol の波及確認 -- `search` は raw text、コメント、文字列、記号を多く含む literal、構造化シンボル抽出が弱い言語の調査 -- `files` は候補 path の把握 -- `find` は既知のインデックス済みファイル内でのリテラル検索 -- `excerpt` はファイル全体ではなく必要な行範囲だけの再構成 -- `outline` は 1 ファイルのシンボル構造確認 -- `deps` / `deps --reverse` はファイル間依存の分析 -- `unused` は graph-supported language の bucket 化されたデッドコード候補調査 -- `hotspots` は中心的または影響の大きいシンボル調査 -- `validate` はエンコーディング確認 -- `languages` は対応言語と機能名の確認 - -スクリプトや AI ツールに渡す結果では `--json` を使ってください。 - -検索精度のルール: - -- 対象シンボルが分かったら `--exact` または `--exact-name` を付けて、`Run` が `RunAsync` や `RunImpact` に広がらないようにする。 -- `--lang` に渡す正式なフィルター名と現在の symbol / graph 対応状況は `languages` を正とする。エージェント向け手順に言語別抽出仕様を細かく固定せず、精度が重要な場合は `graph_supported`、`graph_support_reason`、関連する trust metadata を読む。 -- 広い検索の前に `--path`、繰り返し指定できる `--exclude-path`、`--exclude-tests` で範囲を絞る。 -- 大文字小文字を区別したリテラル、記号を多く含む文字列、演算子、FTS tokenization と相性の悪い文字列には `--exact-substring` を使う。 -- `NEAR` や `OR` のような raw FTS5 構文を意図して書く場合だけ `--fts` を使う。 -- AI やスクリプト向けに検索 JSON を小さく保つには `--snippet-lines ` と `--max-line-width ` を使う。 -- 全件取得前の件数確認には `--count` を使う。 -- 最近変更されたコードに絞るには `files --since ` や `search --since ` を使う。 -- `unused` はインデックス済み参照に基づくシグナルとして扱い、削除して安全という証明とは見なさない。C# の `nameof(...)`、`typeof(...)`、`GetMethod("Foo")` のような直接の reflection member-name literal、`GetProperty("Display" + "Name")` のような literal 連結は index されるが、動的に組み立てられる reflection 名は手動確認が必要になることがある。 - -推奨 CLI 例: - -```bash -cdidx inspect "Authenticate" --lang csharp --exact --exclude-tests -cdidx symbols --lang csharp --name Authenticate --exact-name -cdidx definition "Authenticate" --lang csharp --exact --body -cdidx search "keyword" --path src/ --exclude-tests --snippet-lines 6 --max-line-width 160 -cdidx search "Run();" --exact-substring --path src/ -cdidx callers "Authenticate" --lang csharp --exact --exclude-tests -cdidx impact "Authenticate" --lang csharp --exact --exclude-tests --json -cdidx deps --path src/Services/AuthService.cs --reverse --json -cdidx hotspots --lang csharp --limit 20 --json -cdidx unused --lang csharp --exclude-tests --json -cdidx find "guard" --path src/app.py --after 2 -cdidx excerpt src/app.py --start 10 --end 20 -cdidx outline src/app.py --json -cdidx languages --json -``` - -Markdown ファイルは ATX / setext 見出しを `heading` シンボルとして索引し、local anchor 参照も `reference` シンボルとして表面化するため、`symbols` と `outline` でドキュメント構造をたどってください。 -cdidx 自体の予期しない挙動を見つけた場合は、発生した事象と期待する動作を に報告してください。 - -#### 直接 SQL フォールバック - -直接 SQL は、`cdidx` が使えず `.cdidx/codeindex.db` が既に存在する場合だけ使ってください。 -`sqlite3` が必要で、raw text や symbol の最低限の確認に限定します。 - -`sqlite3` が未インストールの場合の導入手順: - -- macOS: プリインストール済み -- Linux: `sudo apt install sqlite3` -- Windows: `winget install SQLite.SQLite` または `scoop install sqlite` - -```sql -SELECT f.path, c.start_line, c.content -FROM fts_chunks fc -JOIN chunks c ON c.id = fc.rowid -JOIN files f ON f.id = c.file_id -WHERE fts_chunks MATCH 'キーワード' -LIMIT 20; -``` - -```sql -SELECT f.path, s.name, s.line -FROM symbols s -JOIN files f ON f.id = s.file_id -WHERE s.kind = 'function' AND s.name LIKE '%キーワード%'; -``` - -#### CI / フック向けインクリメンタル更新 - -プロジェクト全体を再インデックスする代わりに、自動化では変更のあったファイルだけを更新してください。 - -```bash -cdidx . --commits abc123 def456 -cdidx . --changed-between main feature -cdidx . --files src/app.cs src/utils.cs -``` - -通常のコミット直後の自動化では、git 履歴に rename / delete path も含まれるため `--commits` を優先してください。 -ブランチ切り替え workflow が前後の ref を持っている場合は `--changed-between ` を使えます。 -`--files` は editor / save hook など、既存 path の編集や新規ファイル追加だけを前提とするケース向けです。明示しない限り旧 rename / delete path は purge されません。 -`git reset`、`git rebase`、`git commit --amend`、`git switch`、`git merge` の後は、リポジトリ全体の stale path を掃除するため `cdidx . --json` のフル更新を優先してください。 -commit-scoped update は、対象コミット内の `.gitignore` または `.cdidxignore` 変更を検出すると、自動的に full incremental scan へ昇格します。 -scoped update から見えない ignore ルール変更後は、`cdidx . --json` のフル更新を使ってください。 - -### 禁止するシェル検索・探索コマンド - -リポジトリ検索には次のコマンドを使わないでください。 - -- `grep` -- `rg` -- `find` -- `fd` -- `locate` -- `git grep` -- `ls -R` -- `Get-ChildItem -Recurse` -- `Select-String` - -`dotnet ./src/CodeIndex/bin/Debug/net8.0/cdidx.dll` のようなリポジトリローカル実行も避けてください。 +リポジトリ検索には `cdidx`([Widthdom/CodeIndex](https://github.com/Widthdom/CodeIndex))を使ってください。 +具体的な使い方は、`cdidx` 自身が提供する MCP の instructions と tool descriptions、または CLI の help と diagnostics に従ってください。 +リポジトリ検索にはシェルの検索・探索コマンドを使わないでください。 ### セキュリティとプライバシー diff --git a/CHANGELOG.md b/CHANGELOG.md index c14b1908..0afa4241 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ### [Unreleased] +#### Documentation + +- **Simplified the cdidx code-search policy** — Replaced duplicated version-specific setup, freshness, query, fallback, and command examples in `AGENT_GUIDE.md` with a concise requirement to use `cdidx`, identify [Widthdom/CodeIndex](https://github.com/Widthdom/CodeIndex) as its official source, and follow the MCP instructions and tool descriptions or CLI help and diagnostics provided by `cdidx` itself. + ### [1.22.0] - 2026-07-26 #### Added @@ -1698,6 +1702,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ### [Unreleased] +#### ドキュメント + +- **cdidx コード検索ポリシーを簡素化** — `AGENT_GUIDE.md` に重複していたバージョン依存のセットアップ、鮮度確認、クエリ、フォールバック、コマンド例を削除し、[Widthdom/CodeIndex](https://github.com/Widthdom/CodeIndex) を公式配布元として明示したうえで `cdidx` を使い、`cdidx` 自身が提供する MCP の instructions と tool descriptions、または CLI の help と diagnostics に従うという簡潔な要件へ置き換えました。 + ### [1.22.0] - 2026-07-26 #### 追加