# ReadAppDoc

MAESTRO のプロジェクト内ドキュメント（`docs/` / `pieces/`）を **symbolic name** で読み込むメタツール（常時利用可能）。主に Help アシスタントが、概念や操作手順をユーザーに答える前のリファレンス参照に使う。

ワークスペース外の固定パスを読むため、通常の `Read` ツールでは到達できない。

## 引数

| 引数 | 必須 | 説明 |
|------|------|------|
| `name` | はい | 読みたい doc の symbolic name（下記形式） |

## name の形式

| 形式 | 解決先 | 例 |
|------|--------|-----|
| `docs/<path>` | `docs/<path>.md`（`.md` は省略可） | `docs/mcp`, `docs/architecture` |
| `piece/<name>` | `pieces/<name>.yaml` | `piece/chat`, `piece/research` |
| `tool/<name>` | `docs/tools/<name>.md`（`ReadToolDoc` と同等） | `tool/browseweb` |

利用可能な doc が分からないときは、先に `ListAppDocs()` で一覧を取得する。

```js
ListAppDocs()                              // まず一覧を見る
ReadAppDoc({ name: "docs/mcp" })           // 該当 doc を読む
ReadAppDoc({ name: "tool/browse-sessions" })
```

## 読めないもの（allow-list / block）

セキュリティのため、開けるのは `docs/` `pieces/` `docs/tools/` 配下に限られ、以下は拒否される:

- 内部向けトップレベル doc: `CLAUDE.md` / `AGENTS.md` / `README.md` / `architecture`
- パストラバーサル（`..` を含む name）や allow-list 外の絶対パス

## 制約

- 1 doc あたり **32KB** で打ち切り（超過分は末尾に omitted バイト数を注記）。
- 存在しない name や不正な形式はエラーを返す。エラー時は `ListAppDocs()` で正しい名前を確認すること。

## 関連

- 一覧取得は [ListAppDocs](./listappdocs.md)。
- ツール単体の詳細は `ReadToolDoc({ name: "..." })`（`ReadAppDoc({ name: "tool/..." })` と同じ docs/tools を読む）。
