Skip to content

Phase 1: Markdown全文検索CLI機能一式#24

Merged
Kewton merged 25 commits into
mainfrom
develop
Mar 20, 2026
Merged

Phase 1: Markdown全文検索CLI機能一式#24
Kewton merged 25 commits into
mainfrom
develop

Conversation

@Kewton
Copy link
Copy Markdown
Owner

@Kewton Kewton commented Mar 20, 2026

Summary

  • Phase 1の全機能を実装し、UAT全パスを確認した統合リリース
  • Markdownパーサー、.cmindexignore、tantivy全文検索インデックス基盤、インデックス状態管理
  • index, search, status, clean の4コマンド実装
  • 検索結果出力フォーマッター(human/json/path)
  • Phase 1 E2E統合テスト(8シナリオ、128テスト全パス)

含まれるIssue/PR

品質チェック

  • cargo build: Pass
  • cargo clippy --all-targets -- -D warnings: Pass (0 warnings)
  • cargo test --all: Pass (128 tests)
  • cargo fmt --all -- --check: Pass

UAT結果

Test plan

  • 全Issue UAT合格済み
  • 統合ビルド・テスト全パス
  • mainブランチでの最終確認

🤖 Generated with Claude Code

Kewton and others added 25 commits March 19, 2026 17:14
All 55 tasks completed:
- Rust project initialized with CLI skeleton
- CI/CD pipeline verified (4 jobs all PASS)
- GitHub templates, branch protection rules configured
- Claude Code integration (11 commands, 5 agents, 4 prompts)
- E2E merge flow confirmed (PR #1, #2)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- heading単位のセクション分割(#〜######対応)
- YAML frontmatter/tag抽出
- WikiLink/MarkdownLink抽出
- ディレクトリ再帰走査(walkdir)

Closes #3

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: Markdownパーサー(ファイル走査・heading分割・frontmatter/tag抽出)
- globパターンによるファイル除外判定
- デフォルト除外ルール(node_modules, target, .git等)
- コメント行・空行の無視
- 不正パターンの警告スキップ

Closes #5

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: .cmindexignore パーサー & ファイルフィルタリング
- スキーマ定義(path, heading, body, tags, heading_level, line_start)
- lindera日本語トークナイザー統合(IPADICエンベデッド辞書)
- Index Writer/Reader実装
- 日本語・英語テキスト検索対応

Closes #4

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: tantivy インデックス基盤(スキーマ・lindera日本語トークナイザー・Writer/Reader)
- state.json読み書きとスキーマバージョン管理
- manifest.jsonによるファイル一覧・ハッシュ管理
- SHA-256ファイルハッシュ計算
- 整合性チェック機能

Closes #6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: インデックス状態管理(manifest.json / state.json)
- .claude/commands/ にスラッシュコマンド定義を追加
- CLAUDE.md のスラッシュコマンドセクションを拡充
- sandbox/ にUAT結果を追加
- workspace/orchestration/ にオーケストレーション計画を追加

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: 検索結果出力フォーマッター(human/json/path)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: indexコマンド実装(Markdown解析→tantivy格納→状態保存)
- 11個のスラッシュコマンドをAnvilリポジトリから移植・調整
- Issue #7, #8 のUATテスト結果・HTMLレポートを追加

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CleanError enum による構造化エラー処理
- .commandindex/ ディレクトリの存在確認と削除
- インデックス未作成時の案内メッセージ
- E2Eテスト追加

Closes #11

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- state.json からインデックス情報を読み取り表示
- ファイル数、セクション数、インデックスサイズ表示
- インデックス未作成時の案内メッセージ
- --path オプションで対象ディレクトリ指定
- E2Eテスト追加

Closes #10

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- tantivy BM25スコアリングによる全文検索
- --tag, --path, --type, --heading フィルタ(AND条件結合)
- --format (human/json/path) 出力形式切り替え
- --limit 結果件数制限(デフォルト20)
- インデックス未作成時のエラーメッセージ
- search_with_options API追加
- E2E・統合テスト追加(7テスト新規)

Closes #9

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: searchコマンド実装(全文検索・フィルタ)
- フルフロー(index → search → status → clean)テスト
- 日本語検索テスト
- フィルタ組み合わせテスト(tag, path, type, heading)
- 出力形式テスト(human, json, path)
- エラーケーステスト(インデックス未作成時)
- .cmindexignore動作テスト
- status表示テスト

Closes #12

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Issue #9, #10, #11, #12 のUATレポート・ログ追加
- オーケストレーション実行計画・完了サマリー追加
- uat-summary.html 更新

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Kewton Kewton merged commit 6d30677 into main Mar 20, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant