yoi/tickets/tui-greeting-card.md
2026-04-15 05:21:43 +09:00

51 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TUI: 空 Pod で起動したときの Greeting カード
## 背景
新しい Pod を作って TUI で起動した直後、ユーザーは**ほぼ空の画面**を見ることになる。Pod がどういう設定で動いているかcwd、scope、利用可能なツール、model、何を打てばよいか入力フォーカスはどこか、最初のメッセージを送ればよいだけなのかが画面から読み取れない。
最初のターンが始まる前に、Pod の自己紹介と使い方ヒントを1枚のカードとして見せることで、**空画面の困惑と Pod 設定の不透明さを同時に解消**したい。
## 要件
### 表示タイミング
- セッションが空(まだ turn が1つも無いの状態で TUI を開いた直後に表示する。
- ユーザーが最初のメッセージを送信した時点で消えるか、履歴の頭に flatten して残るかは設計時に判断。
### カードに載せる情報
最低限:
- **Pod 名**manifest の `pod.name`
- **cwd**(絶対パス)
- **model / provider**
- **scope の要約**readable / writable パス。既に `Scope::summary()` が存在する)
- **登録ツール一覧**(ツール名のみ)
任意で:
- システムプロンプトの冒頭数行、または AGENTS.md が取り込まれているかどうかの表示
- 基本キーバインドのヒント(終了・通知ペインなど、別チケットで足される機能も想定)
### 再開時の扱い
- 既存セッションturn がある状態)を再開したときは表示しない。履歴冒頭に残すかどうかは設計時に判断(残すなら flatten 済みカードとして)。
## 設計で決めること
- **flatten するか、消すか**: 初回メッセージ送信で消える一時カード vs 履歴の一部として残るカード
- **カード内のレイアウト**: 単一 widget か、ブロック構成か
- **AGENTS.md 取り込み済みかどうかの可視化**を入れるかAGENTS.md 取り込みチケット完了後に追加検討でも可)
## 完了条件
- `test_pod.local.toml` のような空セッション Pod を TUI で開くと、Pod 名・cwd・scope・ツール一覧がカード状に表示される。
- ユーザーが最初のメッセージを送った後、カードは規定の挙動(消える or 残る)に従う。
- 既存セッションを再開したときは Greeting が出ない。
## 範囲外
- テーマ・配色のカスタマイズ。
- Pod ごとにカスタムの Greeting 本文を持たせる仕組み。