概要
インデックスのメタ情報(`state.json`)とファイル一覧・ハッシュ情報(`manifest.json`)の管理機能を実装する。
背景・動機
インデックスの整合性チェック、`status` コマンドの情報源、将来の差分更新(Phase 2)の基盤として必要。
提案する解決策
state.json
インデックス全体のメタ情報を保持する。
{
"version": "0.1.0",
"schema_version": 1,
"created_at": "2026-03-19T12:00:00Z",
"last_updated_at": "2026-03-19T12:00:00Z",
"total_files": 42,
"total_sections": 185,
"index_root": "/path/to/repo"
}
manifest.json
インデックス対象ファイルの一覧とハッシュを保持する。
{
"files": [
{
"path": "docs/auth.md",
"hash": "sha256:abc123...",
"last_modified": "2026-03-19T10:00:00Z",
"sections": 5
}
]
}
主要な機能
- state.json 読み書き: インデックス状態の保存・読み込み
- manifest.json 読み書き: ファイル一覧の保存・読み込み
- 整合性チェック: スキーマバージョンの照合
- ファイルハッシュ計算: SHA-256 によるファイル内容のハッシュ
受け入れ基準
影響範囲
新規ファイル
- `src/indexer/state.rs`
- `src/indexer/manifest.rs`
- `tests/indexer_state.rs`
依存クレート(追加候補)
- `sha2` — SHA-256 ハッシュ計算
- `chrono` or `time` — タイムスタンプ管理
概要
インデックスのメタ情報(`state.json`)とファイル一覧・ハッシュ情報(`manifest.json`)の管理機能を実装する。
背景・動機
インデックスの整合性チェック、`status` コマンドの情報源、将来の差分更新(Phase 2)の基盤として必要。
提案する解決策
state.json
インデックス全体のメタ情報を保持する。
{ "version": "0.1.0", "schema_version": 1, "created_at": "2026-03-19T12:00:00Z", "last_updated_at": "2026-03-19T12:00:00Z", "total_files": 42, "total_sections": 185, "index_root": "/path/to/repo" }manifest.json
インデックス対象ファイルの一覧とハッシュを保持する。
{ "files": [ { "path": "docs/auth.md", "hash": "sha256:abc123...", "last_modified": "2026-03-19T10:00:00Z", "sections": 5 } ] }主要な機能
受け入れ基準
影響範囲
新規ファイル
依存クレート(追加候補)