概要
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:127 で stream: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後に判断
[brand] Phase 1: Replace remaining user-visible Anvil branding (banner art, REPL prompt, planner persona, docs) #15
[ux] Modernize REPL input: slash-command completion, hints, multi-line input, Ctrl+C conventions #10
[ux] Extend terminal markdown renderer: tables, nested lists, links, code highlighting #11
[ux] Stream assistant output token-by-token in the REPL #12
[ux] Handle terminal resize for the fixed footer during long runs #13
[brand] Phase 2: Migrate ANVIL_* env vars and .anvil config paths to COMMANDAGENT_* with compatibility shims #16
[ux] Accept and queue user input while a command is running #14
[brand] Phase 3 (decision): internal protocol identifiers still named anvil (data-anvil-*, .anvil metadata, anvil_tool_call, anvil_app) #17
全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/)の旧名は書き換えない。
概要
developブランチの機能改善として、(1) インタラクティブモード(REPL)のUXを最先端のコーディングエージェントCLI水準へ引き上げる、(2) Anvil由来のブランディング残存をCommandAgentへ完全移行する — の2テーマを調査し、実装単位ごとにIssue化した。本Issueは全体の進行管理用。
調査サマリー
インタラクティブモードの現状
DefaultEditorによる行指向REPL(src/tui/repl.rs)。フルスクリーンTUIではない。src/tui/spinner.rs)、DECSTBMによる固定フッター(src/tui/footer.rs)、実行中のみのrawモード割り込み監視(src/tui/interrupt.rs)。src/providers/ollama.rs:127でstream:false)。補完・ヒント・複数行入力なし。リサイズ非追従。実行中のキー入力は割り込み以外破棄。tests/tui_integration.rs(フェイククライアント統合)、tests/tui_pty.rs(PTYスモーク、ANVIL_PTY_TESTS=1)。ブランディングの現状
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共通の実装ルール
docs/dev-guardrails.md遵守: 新しいサブシステムは新モジュールに置き、src/planner/runner.rs/src/minimal_loop/loop_run.rs等の成長トリップワイヤ(baseline +2%でCI失敗)対象ファイルへの追加は配線の最小限に留める。docs/mechanism-ledger.mdの互換凍結(イベント名・JSONキー・スキーマ不変)に抵触する変更は、ledgerへの方針改訂記録なしに行わない。cargo build && cargo test --quiet全通過。TUI関連はANVIL_PTY_TESTS=1 cargo test --test tui_ptyも実施。docs/migration/、ledger過去エントリ、workspace/management/runs/)の旧名は書き換えない。