Skip to content

[Story]: Offboarding checklist with AI aggregation (refines #119) #308

Description

@adoLime

User Story

As a Leaver, I want a personalized offboarding checklist that aggregates what I need to handle (owned runbooks, stale docs, open tickets), so that nothing critical gets lost.

Context & Motivation

Acceptance Criteria

  • DepartureStep/DepartureStepState (ArrivalStep pattern): stable key, company/project scope, settledBy, selfConfirmable, derivable steps
  • Default set = trimmed core set, 15 items with owner tags (concept appendix B; handover-checklist.md remains the full reference)
  • Authoring: PM/Admin edit, deactivate, add items (Admin system-wide incl. templates, PM per project)
  • PM may deactivate company-wide steps project-locally (override, global set untouched)
  • enabled instead of delete (process history kept); step visibility filtered server-side via audience
  • Role add-ons as ProjectRole-bound step templates (Developer/Project Lead/Scrum Master)
  • AI aggregation: "hands-on" items with artifact links (owned artifacts, stale docs, knowledge gaps, open tickets) — heuristic first, the LLM phrases it
  • Each role checks off its own items (owner tag, enforced server-side via settledBy; doneBy logged); skip with reason → PM review; PM view: progress per leaver, blocked items

Sub-Tasks (by team)

Backend

  • DepartureStep/DepartureStepState entities + repositories + Flyway migration
  • Authoring CRUD + project-override endpoints (mirror Arrival authoring)
  • settledBy-enforced confirm endpoints (leaver/PM/receiver) + skip-with-reason
  • PM progress metrics per leaver
  • Tests (MockK/AssertJ) incl. RBAC, override isolation, audience filtering

Frontend

  • Leaver checklist UI (phase tabs + progress, reuse features/onboarding/ components)
  • Authoring UI (reuse ArrivalStepsPage scaffold: scope tabs, override toggle)
  • PM progress view

AI

  • POST /handover/checklist/prioritize (heuristic first, LLM phrasing) + ScriptedLLMClient tests

Dependencies

A → B → C → D (B/C can overlap after A, D needs C). Builds on the UserLeavingEvent listener groundwork from Story A.

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