asrch 0.1.1

Agent-safe bounded code search CLI
# 目的と制約

[English](goals_and_condition.en.md)

## 目的

`asrch` は、コーディングエージェント向けの安全な検索 CLI と、それを使うための Skills を提供するプロジェクトである。

エージェントが未知のコードベースを探索するとき、広い `grep` / `ripgrep` の結果を大量にコンテキストへ投入すると、重要でない出力が token と rate-limit 予算を消費する。`asrch` は、この問題を避けるために、検索結果を段階的かつ制限付きで提示する。

## 中核となる考え方

CLI は `ripgrep` または同等のバックエンドを使ってよい。ただし、生の検索結果を無制限に表示してはならない。

探索は次のような bounded workflow として行う。

1. `survey` で候補語と候補パスを比較する。
2. `scout` で単一クエリの分布を確認する。
3. ファイルを絞った後に `sample` で近接一致クラスタの範囲だけを見る。
4. 必要な場合だけ `show` で小さな snippet を読む。

## 制約

- 最初のバージョンは小さく、堅牢で、検証しやすく保つ。
- 初期実装では、完全な検索エンジン、LSP server、embedding index、MCP server を作らない。
- 行数・バイト数の hard cap ではなく、構造的に bounded な薄い Rust CLI around `ripgrep` を優先する。
- `.git``target`、ログ、JSONL/XML、生成物、scratch 領域などのノイズを既定で除外する。
- 全コマンドはコーディングエージェントにとって安全でなければならない。出力は bounded、挙動は決定的、破壊的操作はなく、検索が広すぎる場合は明確に絞り込みを促す。
- Skills / `SKILL.md` を含め、エージェントが広い raw `rg` ではなく `survey``scout``sample``show` の workflow を使えるようにする。
- 意図した workflow を検証できる基本的なテストと例を含める。

## 非目標

- 人間向けの汎用検索 UI を作ること。
- `ripgrep` の全機能を再実装すること。
- 既定除外や出力上限を簡単に無効化できるようにすること。
- 任意の正規表現 OR を完全に解析し、検索計画へ自動変換すること。