Files
stack/docs/TASKS.md
jason.woltje be917e2496
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful
docs: mark IUH-M02 complete, start IUH-M03 (#432)
2026-04-05 18:02:21 +00:00

6.1 KiB

Tasks — Install UX Hardening

Single-writer: orchestrator only. Workers read but never modify.

Mission: install-ux-hardening-20260405 Schema: | id | status | description | issue | agent | branch | depends_on | estimate | notes | Status values: not-started | in-progress | done | blocked | failed | needs-qa Agent values: codex | sonnet | haiku | opus | (auto)

Milestone 1 — mosaic uninstall (IUH-M01)

id status description issue agent branch depends_on estimate notes
IUH-01-01 done Design install manifest schema (~/.config/mosaic/.install-manifest.json) — what install writes on first success #425 sonnet feat/mosaic-uninstall 8K v1 schema in install-manifest.ts
IUH-01-02 done mosaic uninstall TS command: --framework, --cli, --gateway, --all, --keep-data, --yes, --dry-run #425 sonnet feat/mosaic-uninstall IUH-01-01 25K uninstall.ts
IUH-01-03 done Reverse runtime asset linking in ~/.claude/ — restore .mosaic-bak-* if present, remove managed copies otherwise #425 sonnet feat/mosaic-uninstall IUH-01-02 12K file list hardcoded from mosaic-link-runtime-assets
IUH-01-04 done Reverse npmrc scope mapping and PATH edits made by tools/install.sh #425 sonnet feat/mosaic-uninstall IUH-01-02 8K npmrc reversed; no PATH edits found in v0.0.24 install
IUH-01-05 done Shell fallback: tools/install.sh --uninstall path for users without a working CLI #425 sonnet feat/mosaic-uninstall IUH-01-02 10K
IUH-01-06 done Vitest coverage: dry-run output, --all, --keep-data, partial state, missing manifest #425 sonnet feat/mosaic-uninstall IUH-01-05 15K 14 new tests, 170 total
IUH-01-07 done Code review (independent) + remediation #425 sonnet feat/mosaic-uninstall IUH-01-06 5K
IUH-01-08 done PR open, CI green, review, merge to main, close issue #425 sonnet feat/mosaic-uninstall IUH-01-07 3K PR #429, merge 25cada77

Milestone 2 — Wizard Remediation (IUH-M02)

id status description issue agent branch depends_on estimate notes
IUH-02-01 done Password masking: replace plaintext rl.question in bootstrapFirstUser with masked TTY read + confirmation #426 sonnet feat/wizard-remediation IUH-01-08 8K prompter/masked-prompt.ts
IUH-02-02 done Hooks preview stage in wizard: show framework/runtime/claude/hooks-config.json entries + confirm prompt #426 sonnet feat/wizard-remediation IUH-02-01 12K stages/hooks-preview.ts; finalize gating TODO
IUH-02-03 done mosaic config hooks list|enable|disable subcommands #426 sonnet feat/wizard-remediation IUH-02-02 15K commands/config.ts
IUH-02-04 done Headless path: env-var driven runConfigWizard + bootstrapFirstUser (MOSAIC_ASSUME_YES, MOSAIC_ADMIN_*) #426 sonnet feat/wizard-remediation IUH-02-03 12K
IUH-02-05 done Tests + code review + PR merge #426 sonnet feat/wizard-remediation IUH-02-04 10K PR #431, merge cd8b1f66

Milestone 3 — Unified First-Run Wizard (IUH-M03)

id status description issue agent branch depends_on estimate notes
IUH-03-01 not-started Design doc: unified state machine; decide whether mosaic gateway install becomes an internal wizard stage #427 opus feat/unified-first-run IUH-02-05 10K
IUH-03-02 not-started Refactor runWizard to invoke gateway install as a stage; drop the 10-minute session-file bridge #427 opus feat/unified-first-run IUH-03-01 25K
IUH-03-03 not-started Preserve backward-compat: mosaic gateway install still works as a standalone entry point #427 opus feat/unified-first-run IUH-03-02 10K
IUH-03-04 not-started Tests + code review + PR merge #427 opus feat/unified-first-run IUH-03-03 12K