Skip to content

[Phase 1] Gated tutorial session type: first-launch detection, skip, and replay #334

Open

Description

@don-petry

Story

As a first-time TalkTerm user,
I want have the guided tutorial launch automatically on my very first run, with a clearly visible way to skip it and a way to replay it later,
so that I get a gentle introduction the first time without ever being forced through it again or losing the option to revisit it.

Acceptance Criteria

  1. A dedicated tutorial/onboarding session type exists, distinct from a normal session, that can be started programmatically.
  2. On first launch (detected via absence of an existing user profile per FR36) the tutorial session starts automatically.
  3. A clearly visible Skip control is present throughout the tutorial and ends it immediately, returning the user to the normal app entry point.
  4. Completing or skipping the tutorial is persisted so it never auto-launches again for that user.
  5. A manual 'replay tutorial' entry point re-runs the tutorial on demand without altering the first-launch persistence semantics.
  6. A feature flag can disable auto-launch of the tutorial without removing the manual replay entry point.

Tasks / Subtasks

Dev Notes

  • This story is the gating/lifecycle shell only; the step content and step engine come in later stories. Keep the tutorial session type a thin wrapper the engine plugs into.
  • First-launch detection must reuse the existing FR36 profile-existence check rather than introduce a second source of truth for 'has this user run before'.
  • Skip must be reachable at every step (a persistent control, not per-step), because a user may decide to bail at any point.
  • Persist 'tutorial seen' the same way other first-run/profile state is persisted so it survives restarts; do not gate solely on in-memory state.
  • Testing: unit-test the gating decision (profile present/absent x flag on/off x seen/unseen) as a pure function so it is deterministic and does not require driving the UI.

Project Structure Notes

Adds a new session type alongside existing session types and a small first-run gating check; no changes to the underlying avatar/ActionCard/OutputPanel systems.

References

Likely target surface

  • session-type registration / routing
  • first-run gating check
  • onboarding feature flag

Story prepared by the BMAD Scrum Master (Bob) for epic #333. Status: ready-for-dev.

Metadata

Metadata

Assignees

No one assigned

    Labels

    initiativeTracked initiatives (epics)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions