Skip to content

UX3. インタビューの進捗・残り質問数を可視化し、ターン数上限の決め方を見直す #35

Description

@claude

課題(デモで確認された挙動)

「ターン20/20・完了」と表示されるが、なぜ20ターンなのか、いま残り何問なのかが会話中に分からない。ゴールが見えないまま枝葉に時間を使い切ってしまう一因になっている。

Before(現状)

  • 上限は MAX_TURNS = 20 固定。ヘッダーに「ターン N / 20」とだけ表示され、何がどこまで埋まったか(進捗)は見えない。
  • 終了判定 isFinished は「最低スロットが充足 かつ MIN_TURNS_BEFORE_FINISH = 4 以上」。上限20に達するとクロージング。20という数字の根拠が曖昧。
  • 職員視点では「あと何を答えれば終わるのか」が分からない。

After(あるべき姿)

  • 会話中に「何が埋まっていて、残りどのくらいで終わりそうか」が見える(スロット充足度やチェックリスト等の進捗可視化)。
  • ターン数上限の決め方を、固定20から「必要な情報が揃ったら早めに終える/足りなければ延ばす」方針に見直す(UX1 の本筋被覆と連動)。

技術的な着手ポイント

  • lib/server/interview/slots.ts
    • MAX_TURNS = 20 / MIN_TURNS_BEFORE_FINISH = 4 / isFinished / slotCompleteness(進捗表示の元データに使える)。
  • components/session/SessionView.tsx
    • ヘッダーの ターン {Math.min(session.currentQuestionIndex, MAX_TURNS)} / {MAX_TURNS} 表示。進捗バー/スロットチェックリストの追加候補箇所。
    • allQuestionsAsked = currentQuestionIndex >= MAX_TURNS が「完了」ボタン活性条件。
  • lib/server/interview/controller.ts
    • currentQuestionIndex の進め方、終了時に MAX_TURNS へジャンプさせる分岐。
  • 進捗指標を API レスポンスに含めるか、既存の extractedData からフロント側で算出するかは要検討。

受け入れ条件

  • 会話中に「必要項目のうちどこまで埋まったか」の進捗が確認できる
  • 残りの目安(残ターンまたは残り確認項目)が職員に分かる
  • ターン数上限の決め方が見直され、根拠が説明できる状態になっている(固定20の再検討)
  • 早期終了・延長の挙動が既存シナリオを壊さない

優先度

高(デモ前に効く順で 1 → 3 → 2 の 2 番目)。ターン数を有効活用させ、脱線対策(UX1)を補強する。

このIssueは Slack #gov_ai_agent での議論(Yuki Kawabe / sunagawa)に基づき起票されました。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions