Skip to content

[Story]: AI exit interview (guided topic blocks) #309

Description

@adoLime

User Story

As a Leaver, I want a guided AI interview about my topic blocks (open tasks, decisions, stakeholders, systems, unwritten rules), so that I can leave implicit knowledge behind without any writing effort.

Context & Motivation

  • Type: Functional
  • Parent epic: 10 EPIC - Quality Radar & Technical Debt Management #60 (10 EPIC – Quality Radar & Technical Debt Management / Knowledge Retention & Handover)
  • Teams: team:ai, team:backend, team:frontend
  • Dev guide: docs/handover-dev-guide-phase1-en.md § 4 (Story C) · Concept: docs/handover-feature-konzept.md § 7
  • Reusable: Buddy agent pattern (buddy_persona.py, routes/buddy.py), ScriptedLLMClient, redaction.py, chatbot SSE UI (features/chatbot/, services/sse.ts)

Acceptance Criteria

  • Persona with a topic-block agenda in priority order (open tasks → decisions → stakeholders → systems/access → unwritten rules); one question per turn
  • Per block: Markdown summary, confirmed/corrected by the leaver
  • Session can be interrupted/resumed; memory fold for long sessions (compact pattern)
  • Corpus evidence stored as citations; "I don't know" is allowed and logged
  • Transcript persisted in the backend (AI stateless); PII redaction before any further use
  • Multi-turn deterministically testable (ScriptedLLMClient)

Sub-Tasks (by team)

AI

  • persona.py (mirror of buddy_persona.py: topic-block agenda, one question per turn, German)
  • interview_agent.py (stateless multi-turn: message list + prior_summary, block progress in the request)
  • Routes POST /handover/interview/turn, POST /handover/interview/compact
  • ScriptedLLMClient scenarios + guardrails (stateless, projectId fail-closed, query fence, citation validation)

Backend

  • HandoverInterviewSession/Message entities (BuddySession pattern) + persistence
  • SSE endpoints for interview turns
  • PII-redacted transcript storage; raw transcript visible to leaver + PM only

Frontend

  • Interview chat UI with block progress (reuse MessageRow, MessageCitations, ChatComposer, SSE parser — same token/citation/done/error contract)

Dependencies

A → B → C → D (B/C can overlap after A, D needs C). Interview transcript is the input for the dossier (Story D).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststoryteam:aiAI / Retrieval team (sprintstart-ai, Python)team:backendBackend team (sprintstart-backend, Kotlin/Spring Boot)team:frontendFrontend team (sprintstart-frontend, React)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions