Skip to content

UX: replace flat start menu with a goal-based first-scan workflow #429

Description

@jonathanweinberg

Summary

Replace the current flat seven-task ShareSurfer start menu with a goal-based home screen optimized for a low-to-average-skill operator completing a safe first scan.

This follows the console-layer direction in #366. The current menu renders task labels twice, defaults to a preview-only dead end, exposes advanced implementation settings before the scan target, and has inconsistent cancel/back behavior.

Acceptance Criteria

  • Render one goal-based home screen with Start a first scan as the recommended default, followed by saved scan, results review, ownership data, advanced tools, and exit.
  • Show unavailable actions as non-selectable status rows with a short reason.
  • Reduce the recommended first-scan path to target, review-location choice, recommended/custom settings, and final review/action.
  • Keep advanced paths, AD/OBS/ACL details, and ownership imports behind progressive disclosure.
  • Use one return-based Select/Accept/Back/Skip/Cancel prompt contract; cancellation must never become a field value.
  • Return to a refreshed home screen after setup, validation, recoverable failure, or a declined action.
  • Treat existing export files as unvalidated until Test-ShareSurferExport succeeds; block dashboard packaging after failed validation.
  • Keep exact command previews available as technical details while leading with plain-language consequences.
  • Preserve public parameters, non-interactive replay, Windows PowerShell 5.1, offline ZIP operation, plain numbered fallback, transcripts, and existing JSON/rerun outputs.
  • Update first-run/operator docs and add focused renderer/state/flow tests, including 80/120-column output, cancellation, unavailable states, corrupt saved setup, and failed-validation recovery.

Validation

  • git diff --check
  • PowerShell parser/import checks
  • Focused menu/startup flow tests
  • pwsh -NoLogo -NoProfile -File tests/Invoke-ShareSurferTests.ps1
  • Windows PowerShell 5.1 CI smoke after PR push

Delivery

Use a focused codex/ branch, preserve unrelated worktree files, and post commit/validation evidence back to this issue with body-file comments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions