Skip to content

Tracking: interactive-mode UX modernization & Anvil to CommandAgent rebranding #18

Description

@Kewton

概要

developブランチの機能改善として、(1) インタラクティブモード(REPL)のUXを最先端のコーディングエージェントCLI水準へ引き上げる、(2) Anvil由来のブランディング残存をCommandAgentへ完全移行する — の2テーマを調査し、実装単位ごとにIssue化した。本Issueは全体の進行管理用。

調査サマリー

インタラクティブモードの現状

  • rustyline DefaultEditor による行指向REPL(src/tui/repl.rs)。フルスクリーンTUIではない。
  • 装飾は3系統: stderrスピナー(src/tui/spinner.rs)、DECSTBMによる固定フッター(src/tui/footer.rs)、実行中のみのrawモード割り込み監視(src/tui/interrupt.rs)。
  • 応答は非ストリーミング一括表示(src/providers/ollama.rs:127stream:false)。補完・ヒント・複数行入力なし。リサイズ非追従。実行中のキー入力は割り込み以外破棄。
  • テスト資産は良好: tests/tui_integration.rs(フェイククライアント統合)、tests/tui_pty.rs(PTYスモーク、ANVIL_PTY_TESTS=1)。

ブランディングの現状

  • crate/binary名等のリネームは完了済み(d05a410, 835c04f)。互換方針「イベント名・JSONキー・スキーマは不変」が docs/mechanism-ledger.md に記録済み(5dba264)。
  • それでも anvil は約1,055箇所残存。分類: (A) ユーザー可視(バナーASCIIアートが "ANVIL"、プロンプト anvil> 等)、(B) 機能的識別子(ANVIL_* 環境変数約40種、.anvil/config.toml)、(C) LLM動作プロトコル(data-anvil-* 属性、.anvil/ メタデータ、<anvil_tool_call>anvil_app)。

子Issue一覧と推奨着手順

Issue 内容 依存
1 #15 [brand] Phase 1: ユーザー可視ブランディング(バナー/プロンプト/docs) なし(即着手可・低リスク)
2 #10 [ux] REPL入力の近代化(補完/ヒント/複数行/Ctrl+C) なし
3 #11 [ux] Markdownレンダラー拡張(表/ネスト/リンク/ハイライト) なし(#12と並行可)
4 #12 [ux] アシスタント出力のトークンストリーミング #11と協調(逐次描画前提を共有)
5 #13 [ux] 実行中の端末リサイズ追従(フッター) なし(並行可)
6 #16 [brand] Phase 2: ANVIL_* 環境変数と .anvil 設定パスの互換移行 #15後推奨
7 #14 [ux] 実行中の入力受付とキュー #12後推奨
8 #17 [brand] Phase 3(判断): 内部プロトコル識別子の扱い #15/#16後に判断

全Issue共通の実装ルール

  • docs/dev-guardrails.md 遵守: 新しいサブシステムは新モジュールに置き、src/planner/runner.rs / src/minimal_loop/loop_run.rs 等の成長トリップワイヤ(baseline +2%でCI失敗)対象ファイルへの追加は配線の最小限に留める。
  • docs/mechanism-ledger.md の互換凍結(イベント名・JSONキー・スキーマ不変)に抵触する変更は、ledgerへの方針改訂記録なしに行わない。
  • 各PRで cargo build && cargo test --quiet 全通過。TUI関連は ANVIL_PTY_TESTS=1 cargo test --test tui_pty も実施。
  • 歴史的記録(docs/migration/、ledger過去エントリ、workspace/management/runs/)の旧名は書き換えない。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions