6.1 KiB
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-qaAgent 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 |