5.9 KiB
5.9 KiB
MVP Acceptance Matrix
Goal
Track the frozen Atlas for Mac MVP against user-visible acceptance criteria, automated coverage, and manual verification needs.
Scope
OverviewSmart CleanAppsHistoryRecoveryPermissionsSettings
Matrix
| Module | Acceptance Criterion | Automated Coverage | Manual Verification | Status |
|---|---|---|---|---|
Overview |
Shows health snapshot, reclaimable space, permissions summary, and recent activity | swift test --package-path Packages, AtlasApplicationTests, native build |
Launch app and confirm overview renders without crash | covered |
Smart Clean |
User can scan, preview, and execute a recovery-first cleanup plan | AtlasApplicationTests, AtlasInfrastructureTests, AtlasAppTests |
Launch app, run scan, review lanes, execute preview | covered |
Smart Clean competitive readiness |
Supported high-confidence safe cleanup classes are explicit, disk-backed where claimed, and unsupported paths fail closed visibly | focused AtlasInfrastructureTests, AtlasAppTests, scan -> execute -> rescan tests |
Validate one supported and one unsupported scenario against current comparison targets | partial |
Apps |
User can refresh apps, preview uninstall, and execute uninstall through worker flow | AtlasApplicationTests, AtlasInfrastructureTests, AtlasAppTests, MacAppsInventoryAdapterTests |
Launch app, preview uninstall, execute uninstall, confirm history updates | covered |
Apps competitive readiness |
Uninstall preview explains supported footprint categories, concrete leftover evidence paths, and recoverability/audit implications clearly enough to stand against open-source uninstall specialists | AtlasApplicationTests, AtlasInfrastructureTests, AtlasAppTests plus fixture validation |
Preview uninstall for fixture apps, confirm category clarity, observed paths, and completion/history evidence | partial |
History |
User can inspect runs and restore recovery items | AtlasInfrastructureTests, AtlasAppTests |
Launch app, restore an item, verify it disappears from recovery list | covered |
Recovery |
Destructive flows create structured recovery items with expiry | AtlasInfrastructureTests |
Inspect history/recovery entries after execute or uninstall | covered |
Permissions |
User can refresh best-effort macOS permission states | package tests + app build | Launch app, refresh permissions, inspect cards | partial-manual |
Settings |
User can update recovery retention and notifications and persist them | AtlasApplicationTests, AtlasAppTests |
Relaunch app and verify settings remain persisted | covered |
| Packaging | App produces .zip, .dmg, .pkg |
scripts/atlas/package-native.sh |
Inspect output artifacts | covered |
| Installation | User can install from DMG into Applications | scripts/atlas/verify-dmg-install.sh |
Open DMG and drag app to Applications | covered |
| Signed Distribution | Installer is signed and notarized | scripts/atlas/signing-preflight.sh + packaging with credentials |
Verify Gatekeeper-friendly install on a clean machine | blocked-by-credentials |
| UI smoke | Sidebar and primary controls are automatable through native UI tests | scripts/atlas/run-ui-automation.sh |
Run on a trusted local machine or CI agent with automation enabled | covered |
Required Manual Scenarios
Scenario 1: Smart Clean end-to-end
- Launch the app.
- Open
Smart Clean. - Run scan.
- Refresh preview.
- Execute preview.
- Confirm
HistoryandRecoveryupdate.
Scenario 2: App uninstall end-to-end
- Open
Apps. - Refresh app footprints.
- Preview uninstall for one app.
- Execute uninstall.
- Confirm the item appears in
History/Recovery.
Scenario 2b: App uninstall trust verification
- Open
Apps. - Preview uninstall for a fixture app.
- Confirm the preview distinguishes supported footprint categories rather than only showing a generic leftover count.
- Confirm at least one review-only evidence group shows concrete observed paths.
- Execute uninstall.
- Confirm completion and history/recovery surfaces describe what Atlas actually removed and recorded.
- Confirm recovery detail distinguishes the recoverable bundle from review-only leftover evidence.
Scenario 3: DMG install verification
- Build distribution artifacts.
- Open
Atlas-for-Mac.dmg. - Copy
Atlas for Mac.apptoApplications. - Launch the installed app.
Scenario 4: Smart Clean supported vs unsupported verification
- Run a
Smart Cleanscan with one supported high-confidence target class. - Execute and rescan.
- Confirm on-disk effect is visible and history reflects a real side effect.
- Run a scenario with an unsupported or unstructured finding.
- Confirm Atlas blocks or rejects execution clearly instead of implying success.
Selective Parity Validating Fixtures
Smart Cleansupported fixture: app-container cache or temp data under~/Library/Containers/<bundle-id>/Data/Library/Cachesor~/Library/Containers/<bundle-id>/Data/tmp, validated withscan -> execute -> rescan.Smart Cleanfail-closed fixture: launch-agent, service-adjacent, or otherwise unsupported target such as~/Library/LaunchAgents/<bundle-id>.plist, validated as review-only or rejected.Appsmainstream GUI fixture: one large GUI app with visible support files and caches, such asFinal Cut Pro.Appsdeveloper-heavy fixture: one developer-oriented app with larger support/caches footprint, such asXcode.Appslaunch-item or service-adjacent fixture: one app with launch-agent evidence, such asDocker.Appssparse-leftover fixture: one app that produces only a small preference or saved-state trail, validated so Atlas does not overstate removal scope.
Current Blocking Item
- Signed/notarized public distribution remains blocked by missing Apple Developer release credentials.