Skip to content

feat(reference): unity-csharp-reference Phase 4 - 内部実装の改善 (umbrella) #191

@akiojin

Description

@akiojin

目的

SPEC #185 (Phase 1) / #187 (Phase 2) / #188 (Phase 3) で構築した UnityCsReference 参照キャッシュの内部実装を底上げするための umbrella SPEC。Phase 1-3 で "Out of Scope" として明示した 5 件の改善 (Phase 4-A / B / C / D / E) を 1 つの SPEC で集約し、サブタスク単位で commit / PR を進める。子 SPEC は新設せず、本 SPEC を Refs する commit / PR で改善を land させる方針を採る。

スコープ

Phase 4 として扱う 5 サブタスク:

  • A: Member-level シンボル抽出 (method / property / field を find-symbol の対象に追加)
  • B: compute_line_diff の LCS / Myers 化 (Phase 3 の all-or-nothing MVP を細粒度 hunk に置換)
  • C: extract_token_at_cursor の C# lexer 化 (line comment / string literal 内の cursor を正しく除外)
  • D: reference fetchzip fallback (git バイナリ不在環境向け、Phase 1.5 保留分)
  • E: Vector embedding 検索 (semantic / natural-language なシンボル検索)

各サブタスクは autonomous で 1 PR ずつ land し、umbrella の Tasks セクションでチェックボックス進捗を管理する。

Out of Scope(umbrella でも扱わない)

  • csharp-lsp の workspaceFolders に reference cache を混入させる方向 (SPEC feat(reference): UnityCsReference のローカルキャッシュ参照機構(Phase 1) #185 で却下済みの原則を維持)
  • AST レベルの semantic diff (Roslyn を本格的にホストする方向)
  • Phase 4 内の各 MVP に対する精度の本格 polish (regex で取り切れない多行シグネチャ / block comment / interpolated string 等は umbrella の継続改善余地として残置)

採用方針(gwt-discussion で確定)

  • 子 SPEC は新設しない (2026-05-12 ルール、tasks/lessons.md)
  • 各サブタスクの commit / PR は Refs #191 で umbrella に紐付ける
  • サブタスク完了時に本 SPEC の Tasks をチェックボックス更新する
  • サブタスクごとに gwt-discussion を別途行う場合は本 SPEC 本文を起点に進める
  • 正式な gwt-spec は close せず OPEN 維持 (living documentation 運用、2026-05-12 ルール、tasks/lessons.md)

Related

Phase 4 サブタスク進捗

受け入れ基準の充足状況

  • 各サブタスク PR が cargo fmt --check / cargo clippy --all-targets -- -D warnings / cargo test --bin unity-cli を Pass
  • 各サブタスク PR が cargo llvm-cov --all-targets >= 90% を Pass
  • 各サブタスク PR が unity-cli skills lint --severity error を 0 violations で Pass
  • docs/tools.md の Reference Cache tools 数を Phase 4-E 完了時点で 11 tools に更新
  • unity-csharp-reference/SKILL.md の Preferred Flow が新 CLI を反映
  • Phase 4-E 用 references/embed-search-playbook.md を追加

運用方針

  • 本 umbrella SPEC は正式な gwt-spec として OPEN 維持 (living documentation 運用、close しない)
  • Out of Scope に挙げた継続改善 (多言語 model / HNSW / block comment / interpolated string / 多行シグネチャ等) は、必要に応じて本 SPEC を Refs する PR で land する
  • 重複起票として残る SPEC feat(reference): Phase 4-B - compute_line_diff の LCS / Myers 化 #192 も同様に OPEN のまま運用 (gwt-spec 一律 OPEN ルール)

Metadata

Metadata

Assignees

No one assigned

    Labels

    gwt-specGWT spec management

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions