docs: add selective parity strategy planning

This commit is contained in:
zhukang
2026-03-23 16:48:26 +08:00
parent 92da918281
commit 1f62600532
10 changed files with 1198 additions and 5 deletions

1
.gitignore vendored
View File

@@ -45,6 +45,7 @@ temp/
.agents/
.gemini/
.kiro/
.ralph-loop/
CLAUDE.md
GEMINI.md
ANTIGRAVITY.md

View File

@@ -232,13 +232,15 @@
- Run bilingual manual QA on a clean machine
- Validate packaged first-launch behavior with a fresh state file
- Tighten release-facing copy where execution or recovery is overstated
- Map competitor pressure from `Mole`, `Lemon`, and `Pearcleaner` into frozen-MVP parity work only
#### Next
- Expand real `Smart Clean` execute coverage for the highest-value safe targets
- Expand real `Smart Clean` execute coverage for the highest-value safe targets most likely compared to `Mole` and `Lemon`
- Add stronger `scan -> execute -> rescan` contract coverage
- Implement physical restore for file-backed recoverable actions, or narrow product claims
- Freeze recovery-related copy only after behavior is proven
- Deepen the `Apps` module against the most obvious `Pearcleaner` and `Lemon` comparison points without expanding beyond MVP
#### Later
@@ -260,7 +262,7 @@
#### Release Phase 2: Smart Clean Execution Credibility
- `ATL-211` Expand real `Smart Clean` execute coverage for top safe target classes — `System Agent`
- `ATL-211` Expand real `Smart Clean` execute coverage for top safe target classes most likely compared to `Mole` and `Lemon``System Agent`
- `ATL-212` Carry executable structured targets through the worker path — `Core Agent`
- `ATL-213` Add stronger `scan -> execute -> rescan` contract coverage — `QA Agent`
- `ATL-214` Make history and completion states reflect real side effects only — `Mac App Agent`
@@ -274,7 +276,15 @@
- `ATL-224` Freeze recovery contract and acceptance evidence — `Product Agent`
- `ATL-225` Recovery credibility gate review — `Product Agent`
#### Conditional Release Phase 4: Signed Distribution and External Beta
#### Release Phase 4: Apps Competitive Depth
- `ATL-226` Build a competitor-pressure matrix for `Apps` using representative `Pearcleaner` and `Lemon` uninstall scenarios — `Product Agent` + `QA Agent`
- `ATL-227` Expand uninstall preview taxonomy and leftover evidence for supported app footprint categories — `Core Agent` + `Mac App Agent`
- `ATL-228` Surface recoverability, auditability, and supported-vs-review-only cues directly in the `Apps` flow — `UX Agent` + `Mac App Agent`
- `ATL-229` Validate uninstall depth on mainstream and developer-heavy fixture apps — `QA Agent`
- `ATL-230` Apps competitive depth gate review — `Product Agent`
#### Conditional Release Phase 5: Signed Distribution and External Beta
- `ATL-231` Obtain Apple release signing credentials — `Release Agent`
- `ATL-232` Pass `signing-preflight.sh` on the release machine — `Release Agent`
@@ -283,7 +293,7 @@
- `ATL-235` Run a trusted hardware-diverse signed beta cohort — `Product Agent`
- `ATL-236` Triage public-beta issues before any GA candidate naming — `Product Agent`
#### Launch Surface Phase 5: Landing Page and Domain
#### Launch Surface Phase 6: Landing Page and Domain
- `ATL-241` Finalize landing-page PRD, CTA policy, and bilingual information architecture — `Product Agent`
- `ATL-242` Design and implement the marketing site in `Apps/LandingSite/``Mac App Agent`

View File

@@ -58,6 +58,15 @@
- Atlas must not silently fall back to scaffold behavior for release-facing cleanup execution
- Smart Clean execute must not claim success until real filesystem side effects are implemented
### D-010 Competitive Response Stays Inside Frozen MVP
- Atlas responds to competitor pressure through `selective parity`, not breadth racing
- `Mole` and `Tencent Lemon Cleaner` set the main comparison pressure for `Smart Clean`
- `Pearcleaner` and `Tencent Lemon Cleaner` set the main comparison pressure for `Apps`
- Competitor response work must deepen existing MVP flows rather than reopen deferred scope
- `Storage treemap`, `Menu Bar`, and `Automation` remain out of scope unless the decision log is updated explicitly
- Atlas should compete as an `explainable, recovery-first Mac maintenance workspace`, not as a generic all-in-one cleaner
## Update Rule
Add a new decision entry whenever product scope, protocol, privilege boundaries, release route, or recovery model changes.

View File

@@ -0,0 +1,249 @@
# Competitive Strategy Plan — 2026-03-21
## Purpose
Turn the findings in [Open-Source-Competitor-Research-2026-03-21.md](./Open-Source-Competitor-Research-2026-03-21.md) into a practical strategy for Atlas for Mac's next execution window.
This plan assumes:
- MVP scope remains frozen to the current modules
- direct distribution remains the only MVP release route
- strategy should improve competitive position by deepening existing flows, not by reopening deferred scope
## Strategic Options Considered
### Option A: Breadth Race
Try to match `Mole` and `Lemon` feature-for-feature as quickly as possible.
- Upside:
- easier feature checklist comparisons
- broader marketing claims
- Downside:
- high scope pressure
- weakens Atlas's current trust advantage
- increases risk of half-implemented cleanup claims
- encourages pulling deferred items like `Storage treemap`
Decision: reject.
### Option B: Trust-Only Niche
Ignore breadth pressure and compete only on recovery, permissions, and execution honesty.
- Upside:
- strongest alignment with Atlas architecture
- lowest scope risk
- Downside:
- leaves obvious product comparison gaps open
- makes Atlas look elegant but underpowered next to `Mole`, `Lemon`, and `Pearcleaner`
Decision: reject.
### Option C: Recommended Strategy
Compete on `trust-first native workspace`, while selectively closing the most visible parity gaps inside frozen MVP.
- Upside:
- preserves Atlas's strongest differentiation
- improves user-visible competitiveness where comparison pressure is highest
- avoids scope creep
- Downside:
- requires disciplined prioritization and clear no-go boundaries
Decision: adopt.
## Strategic Thesis
Atlas should not try to become a generic all-in-one cleaner. It should become the most trustworthy native Mac maintenance workspace, then remove the most painful reasons users would otherwise choose `Mole`, `Lemon`, or `Pearcleaner`.
That means:
1. Win on execution honesty, recoverability, auditability, and permission clarity.
2. Close only the highest-pressure breadth gaps inside existing MVP flows.
3. Make Atlas's differentiation visible enough that users can understand it without reading architecture docs.
## Competitive Reading
### `Mole`
Primary pressure:
- broad cleanup coverage
- developer-oriented cleanup
- disk analysis and status breadth
- strong dry-run and automation posture
Atlas response:
- do not chase terminal ergonomics
- close the most visible safe cleanup coverage gaps in `Smart Clean`
- keep the trust advantage by failing closed and showing real side effects only
### `Tencent Lemon Cleaner`
Primary pressure:
- native GUI breadth
- large-file / duplicate / privacy / uninstall / startup-item utility expectations
- Chinese-speaking user familiarity with one-click cleaner workflows
Atlas response:
- stay native and polished
- avoid claiming equivalent breadth until behavior is real
- compete with safer workflows, clearer recommendations, and higher trust in destructive actions
### `Pearcleaner`
Primary pressure:
- uninstall depth
- leftovers and app-adjacent cleanup
- macOS-native integration quality
Atlas response:
- treat `Apps` as a serious competitive surface, not just an MVP checklist module
- deepen uninstall preview and explain what will be removed, what is recoverable, and what remains review-only
### `Czkawka` and `GrandPerspective`
Primary pressure:
- high-performance file hygiene primitives
- treemap-based storage analysis
Atlas response:
- borrow architectural lessons only
- keep `Storage treemap` deferred
- do not import GPL-constrained UI paths into Atlas
## Strategic Pillars
### Pillar 1: Build a Trust Moat
Atlas's strongest defendable position is trust architecture:
- structured worker/helper boundaries
- recoverable destructive actions
- history and auditability
- permission explanations instead of permission ambush
- honest failure when Atlas cannot prove execution
This must remain the primary product story and the primary release gate.
### Pillar 2: Close Selective Parity Gaps
Atlas should close the gaps users notice immediately in side-by-side evaluation:
- `Smart Clean` coverage on high-confidence safe targets users expect from `Mole` and `Lemon`
- `Apps` uninstall depth and leftovers clarity users expect from `Pearcleaner` and `Lemon`
This is selective parity, not full parity. The rule is: only deepen flows already inside frozen MVP.
### Pillar 3: Make Differentiation Visible
Atlas cannot rely on architecture alone. The product must visibly communicate:
- what is recoverable
- what is executable now
- what requires permission and why
- what changed on disk after execution
- what Atlas intentionally refuses to do
If users cannot see these differences in the UI and release materials, Atlas will be compared as "another cleaner" and lose to broader tools.
## 90-Day Execution Direction
### Phase 1: Trust and Claim Discipline
Target outcome:
- Atlas's release-facing claims are narrower than its real behavior, never broader
Priority work:
- execution honesty
- recovery claim discipline
- permission and limited-mode clarity
- visible trust markers in `Smart Clean`, `Apps`, `History`, and `Permissions`
### Phase 2: Smart Clean Competitive Depth
Target outcome:
- the highest-value safe cleanup classes compared against `Mole` and `Lemon` have real execution paths
Priority work:
- expand safe cleanup target coverage
- strengthen `scan -> execute -> rescan` proof
- make history reflect only real side effects
### Phase 3: Recovery Credibility
Target outcome:
- Atlas's recovery promise is provable and product-facing copy can be frozen without caveats that undercut trust
Priority work:
- physical restore where safe
- clear split between file-backed restore and Atlas-only state restore
- explicit validation evidence
### Phase 4: Apps Competitive Depth
Target outcome:
- Atlas's `Apps` module is defensible against `Pearcleaner` and `Lemon` for the most common uninstall decision paths
Priority work:
- deeper uninstall preview taxonomy
- clearer leftovers and footprint reasoning
- visible recoverability and audit cues in the uninstall flow
- fixture-based validation on mainstream and developer-heavy apps
## No-Go Boundaries
The competitor response must not trigger:
- `Storage treemap`
- `Menu Bar`
- `Automation`
- duplicate-file or similar-photo modules as new product surfaces
- privacy-cleaning module expansion outside existing MVP framing
- code reuse from `Lemon`, `GrandPerspective`, or GPL-constrained `Czkawka` paths
- monetization-sensitive reuse from `Pearcleaner`
## Metrics and Gates
### Product Metrics
- first scan completion rate
- scan-to-execution conversion rate
- uninstall preview-to-execute conversion rate
- permission completion rate
- recovery success rate
- user-visible reclaimed space
### Competitive Readiness Gates
- `Smart Clean` can prove meaningful gains on the top safe categories users compare against `Mole` and `Lemon`
- `Apps` uninstall preview is detailed enough that users understand footprint, leftovers, and recoverability before confirmation
- no release-facing copy implies full parity with broader tools when Atlas only supports a narrower subset
- recovery language stays tied to shipped behavior only
## Resulting Strategy Call
For the next planning window, Atlas should be managed as:
- a `trust-first Mac maintenance workspace`
- with `selective parity` against `Mole` and `Lemon` in `Smart Clean`
- with `targeted depth` against `Pearcleaner` and `Lemon` in `Apps`
- while keeping all non-MVP expansion pressure explicitly frozen
This is the narrowest strategy that still improves Atlas's competitive position in a way users will actually feel.

View File

@@ -0,0 +1,243 @@
# ATL-211 / ATL-214 / ATL-226-230 Implementation Plan
> **For Codex:** Use this as the first coding-slice plan for the selective-parity strategy. Keep scope inside frozen MVP. Verify behavior with narrow tests and fixture-driven checks before broader UI validation.
## Goal
Make Atlas more defensible against `Mole`, `Tencent Lemon Cleaner`, and `Pearcleaner` without expanding beyond MVP:
- increase `Smart Clean` competitive credibility on the most visible safe cleanup classes
- deepen the `Apps` module so uninstall preview and completion evidence feel trustworthy and specific
## Product Rules
- Do not add new top-level product surfaces.
- Do not imply parity with broader tools when Atlas still supports only a narrower subset.
- Prefer explicit supported-vs-review-only states over speculative or partial execution.
- Prefer categories Atlas can prove and recover over categories that merely look complete in the UI.
## Target Outcomes
### Smart Clean
- Atlas can execute more of the high-confidence safe cleanup classes users naturally compare to `Mole` and `Lemon`.
- Completion and history copy only describe real disk-backed side effects.
- Unsupported paths remain explicit and fail closed.
### Apps
- Atlas explains what an uninstall preview actually contains.
- Users can understand bundle footprint, leftovers, launch-item/service implications, and recoverability before confirming.
- The uninstall flow leaves stronger audit and completion evidence than the current baseline.
## Competitive Pressure Matrix
### Smart Clean comparison pressure
Top overlap with `Mole` and `Lemon`:
- user cache roots
- logs and temp data
- developer artifact roots
- high-confidence app-specific junk paths already represented structurally in Atlas
Non-goals for this slice:
- duplicate file cleanup
- similar photos
- privacy-cleaning as a standalone surface
- treemap storage analysis
### Apps comparison pressure
Top overlap with `Pearcleaner` and `Lemon`:
- uninstall leftovers clarity
- launch-item / service-adjacent footprint awareness
- better explanation of what Atlas will remove, what it will not remove, and what is recoverable
Non-goals for this slice:
- Homebrew manager as a new standalone module
- PKG manager as a new standalone module
- plugin manager as a new standalone module
- auto-cleaning daemon behavior
## Task 1: Freeze Fixture and Benchmark Set
### Goal
Define the exact scenarios the coding slice must satisfy before implementation starts drifting.
### Deliverables
- a `Smart Clean` target-class list used for parity work
- an `Apps` fixture list covering:
- mainstream GUI app
- developer-heavy app
- app with launch item or service artifact
- app with sparse leftovers
### Proposed file touch map
- `Docs/Execution/MVP-Acceptance-Matrix.md`
- `Docs/Execution/Beta-Acceptance-Checklist.md`
- future test fixtures under `Testing/` or package test directories as implementation chooses
### Acceptance
- each benchmark scenario is tied to a real competitor comparison pressure
- each benchmark scenario is tied to a current MVP surface
## Task 2: Smart Clean Selective Parity Increment
### Goal
Land one implementation slice that widens competitive coverage without weakening trust.
### Likely code areas
- `Packages/AtlasCoreAdapters/Sources/AtlasCoreAdapters/MoleSmartCleanAdapter.swift`
- `Packages/AtlasInfrastructure/Sources/AtlasInfrastructure/AtlasInfrastructure.swift`
- `Packages/AtlasApplication/Sources/AtlasApplication/AtlasApplication.swift`
- `Apps/AtlasApp/Sources/AtlasApp/AtlasAppModel.swift`
- `Packages/AtlasFeaturesSmartClean/Sources/AtlasFeaturesSmartClean/SmartCleanFeatureView.swift`
### Work shape
- extend safe allowlisted target support only where Atlas already has structured evidence
- tighten plan/execution/result summaries so history reflects actual side effects only
- expose unsupported findings as review-only rather than ambiguous ready-to-run items
### Tests
- package-level contract tests for `scan -> execute -> rescan`
- app-model tests for explicit unsupported or unavailable states
### Acceptance
- at least one new high-confidence safe target class is supported end to end
- unsupported target classes remain visibly unsupported
- no history or completion surface overclaims what happened on disk
## Task 3: Apps Preview Taxonomy and Evidence
### Goal
Make uninstall preview feel materially stronger against `Pearcleaner` and `Lemon`.
### Likely code areas
- `Packages/AtlasApplication/Sources/AtlasApplication/AtlasApplication.swift`
- `Packages/AtlasInfrastructure/Sources/AtlasInfrastructure/AtlasInfrastructure.swift`
- `Packages/AtlasProtocol/`
- `Packages/AtlasFeaturesApps/Sources/AtlasFeaturesApps/AppsFeatureView.swift`
- `Apps/AtlasApp/Sources/AtlasApp/AtlasAppModel.swift`
### Work shape
- expand preview categories so the UI can group footprint evidence more explicitly
- distinguish:
- application bundle
- support files
- caches
- preferences
- logs
- launch/service-adjacent items where Atlas can safely classify them
- keep unclear or unsupported items explicitly separate instead of silently mixing them into a generic leftover count
### Tests
- application-layer tests for preview taxonomy
- infrastructure tests for structured footprint generation
- UI snapshot or app-model assertions for preview grouping if feasible
### Acceptance
- uninstall preview provides more than a count and byte total
- supported footprint categories are explicit and user-comprehensible
- ambiguous items are clearly labeled rather than overstated
## Task 4: Apps Trust Cues and Completion Evidence
### Goal
Turn `Apps` from a functional uninstall screen into a trust-differentiated uninstall workflow.
### Likely code areas
- `Packages/AtlasFeaturesApps/Sources/AtlasFeaturesApps/AppsFeatureView.swift`
- `Apps/AtlasApp/Sources/AtlasApp/AppShellView.swift`
- localization resources in `Packages/AtlasDomain`
### Work shape
- add supported-vs-review-only messaging where relevant
- show recoverability and audit implications before destructive confirmation
- tighten completion summaries so they state what Atlas actually removed and what was recorded for recovery/history
### Tests
- app-model tests for completion summaries and history-driven state
- focused UI verification for uninstall preview -> execute -> history/recovery path
### Acceptance
- the flow answers, before confirm:
- what will be removed
- what evidence Atlas has
- what is recoverable
- the flow answers, after confirm:
- what was actually removed
- what was recorded
## Task 5: Fixture-Based Validation and Gate
### Goal
Prove the coding slice against realistic comparison cases instead of synthetic happy-path only.
### Validation layers
- narrow package tests first
- app-model tests second
- manual or scripted fixture walkthrough third
### Required fixture scenarios
- one mainstream app uninstall
- one developer-heavy app uninstall
- one `Smart Clean` scenario with newly supported target class
- one unsupported scenario that must fail closed visibly
### Gate outputs
- evidence summary for `ATL-229`
- short gate review for `ATL-230`
- any claim narrowing needed in UI or release-facing docs
## Recommended Coding Order
1. freeze fixtures and target classes
2. implement one `Smart Clean` selective-parity increment
3. land uninstall preview taxonomy changes
4. land uninstall trust cues and completion evidence
5. rerun fixture validation and produce gate evidence
## Commands To Prefer During Implementation
```bash
swift test --package-path Packages
swift test --package-path Apps
swift test --package-path Packages --filter AtlasInfrastructureTests
swift test --package-path Apps --filter AtlasAppModelTests
```
Add narrower filters once the exact tests are created.
## Done Criteria
- `Smart Clean` parity increment is real and test-backed
- `Apps` preview is structurally richer and more trustworthy
- fixture validation shows visible improvement against the current baseline
- docs remain honest about supported vs unsupported behavior

View File

@@ -0,0 +1,479 @@
# Open-Source Competitor Research — 2026-03-21
## Objective
Research open-source competitors relevant to `Atlas for Mac` and compare them against Atlas from two angles:
- feature overlap with the frozen MVP
- technical patterns worth copying, avoiding, or tracking
This report is scoped to Atlas MVP as defined in [PRD.md](../PRD.md): `Overview`, `Smart Clean`, `Apps`, `History`, `Recovery`, `Permissions`, and `Settings`. Deferred items such as `Storage treemap`, `Menu Bar`, and `Automation` are treated as adjacent references, not MVP targets.
## Method
- Internal product/architecture baseline:
- [PRD.md](../PRD.md)
- [Architecture.md](../Architecture.md)
- [Smart-Clean-Execution-Coverage-2026-03-09.md](./Smart-Clean-Execution-Coverage-2026-03-09.md)
- External research date:
- All GitHub and SourceForge metadata in this report was checked on `2026-03-21`.
- External research workflow:
- 2 focused web searches to identify the relevant open-source landscape
- deep reads of the most representative projects: `Mole`, `Pearcleaner`, `Czkawka`
- repo metadata, release metadata, license files, and selected source files for technical verification
## Middle Findings
- There is no single open-source product that matches Atlas's intended combination of `native macOS UI + explainable action plan + history + recovery + permission guidance`.
- The market is fragmented:
- `Mole` is the closest breadth benchmark for cleanup depth and developer-oriented coverage.
- `腾讯柠檬清理 / lemon-cleaner` is the closest native-GUI breadth benchmark from the Chinese Mac utility ecosystem.
- `Pearcleaner` is the strongest open-source benchmark for app uninstall depth on macOS.
- `Czkawka` is the strongest reusable file-analysis engine pattern, but it is not a Mac maintenance workspace.
- `GrandPerspective` is the strongest adjacent open-source reference for storage visualization, but Atlas has explicitly deferred treemap from MVP.
- Licensing is a major strategic boundary:
- `Mole` uses `MIT`, which aligns with Atlas's current reuse strategy.
- `Pearcleaner` is `Apache 2.0 + Commons Clause`, so it is source-available but not a safe upstream for monetized derivative shipping.
- `Czkawka` mixes `MIT` and `GPL-3.0-only` depending on component.
- `GrandPerspective` is `GPL`.
- Atlas's strongest differentiation is architectural trust. Atlas's current weakest point is breadth of release-grade executable cleanup compared with how broad `Mole` already looks to users.
## Executive Summary
If Atlas wants to win in open source, it should not position itself as "another cleaner." That lane is already occupied by `Mole` on breadth and `Pearcleaner` on uninstall specialization. Atlas's credible lane is a `native macOS maintenance workspace` with structured worker/helper boundaries, honest permission handling, and recovery-first operations.
The biggest threat is not that an open-source competitor already matches Atlas end to end. The threat is that users may compare Atlas's current MVP against a combination of `Mole + Pearcleaner + GrandPerspective/Czkawka` and conclude Atlas is cleaner in design but behind in raw capability. That makes execution credibility, uninstall depth, and product messaging more important than adding new surface area.
The one important omission in an open-source-only Mac comparison would be `腾讯柠檬清理 / Tencent lemon-cleaner`, because it is both open-source and closer than most projects to a native GUI maintenance suite. Atlas should treat it as a real comparison point, especially for Chinese-speaking users.
## Landscape Map
| Project | Type | Why it matters to Atlas | Current signal |
| --- | --- | --- | --- |
| `tw93/Mole` | Direct breadth competitor | Closest open-source "all-in-one Mac maintenance" positioning | Very strong community and recent release activity |
| `Tencent/lemon-cleaner` | Direct breadth competitor | Closest open-source native GUI maintenance suite, especially relevant in Chinese market | Established product and recognizable feature breadth |
| `alienator88/Pearcleaner` | Direct module competitor | Strongest open-source benchmark for `Apps` uninstall depth on macOS | Strong adoption, but maintainer bandwidth is constrained |
| `qarmin/czkawka` | Adjacent engine competitor | Best open-source file hygiene / duplicate / temporary-file engine pattern | Mature and active, but not macOS-native |
| `GrandPerspective` | Adjacent UX competitor | Best open-source reference for storage visualization / treemap | Active, but outside Atlas MVP scope |
| `sanketk2020/MacSpaceCleaner` | Emerging minor competitor | Shows appetite for lightweight native Mac cleaners | Low maturity; not a primary benchmark |
## Functional Comparison
Legend:
- `Strong` = clear product strength
- `Partial` = present but narrower or less central
- `No` = not a meaningful capability
| Capability | Atlas for Mac | Mole | Lemon | Pearcleaner | Czkawka | GrandPerspective |
| --- | --- | --- | --- | --- | --- | --- |
| Broad junk / cache cleanup | Partial | Strong | Strong | Partial | Partial | No |
| App uninstall with leftovers | Strong | Strong | Strong | Strong | No | No |
| Developer-oriented cleanup | Strong | Strong | Partial | Partial | Partial | No |
| Disk usage analysis | Partial | Strong | Strong | No | Partial | Strong |
| Live health / system status | Partial | Strong | Strong | No | No | No |
| History / audit trail | Strong | Partial | Low | No | No | No |
| Recovery / restore model | Strong | Partial | No | No | No | No |
| Permission guidance UX | Strong | Low | Partial | Partial | Low | Low |
| Native macOS GUI | Strong | No | Strong | Strong | Partial | Strong |
| CLI / automation surface | Partial | Strong | Low | Partial | Strong | No |
### Notes Behind The Table
- Atlas:
- Atlas is strongest where it combines cleanup with `History`, `Recovery`, and `Permissions`.
- Atlas already has real `Apps` list / preview uninstall / execute uninstall flows in the current architecture and protocol, with recovery-backed app uninstall behavior; the remaining question is depth and polish versus Pearcleaner, not whether the module exists.
- Per [Smart-Clean-Execution-Coverage-2026-03-09.md](./Smart-Clean-Execution-Coverage-2026-03-09.md), real Smart Clean execution is still limited to a safe structured subset. So Atlas's cleanup breadth is not yet at `Mole` level.
- Mole:
- Mole covers `clean`, `uninstall`, `optimize`, `analyze`, `status`, `purge`, and `installer`, which is broader than Atlas's current release-grade execution coverage.
- Mole exposes JSON for some commands and has strong dry-run patterns, but it does not center recovery/history as a product promise.
- Lemon:
- Lemon combines deep cleaning, large-file cleanup, duplicate cleanup, similar-photo cleanup, privacy cleaning, app uninstall, login-item management, and status-bar monitoring in one native Mac app.
- It is a much more direct GUI comparison than Mole for users who expect a polished desktop utility instead of a terminal-first tool.
- Pearcleaner:
- Pearcleaner is deep on `Apps`, but it is not a full maintenance workspace.
- It extends beyond uninstall into Homebrew, PKG, plugin, services, and updater utilities.
- Czkawka:
- Czkawka is powerful for duplicate finding, big files, temp files, similar media, broken files, and metadata cleanup.
- It is not a Mac workflow app and does not cover uninstall, permissions guidance, or recovery.
- GrandPerspective:
- Very strong for treemap-based disk visualization.
- It is analysis-first, not cleanup-orchestration-first.
## Technical Comparison
| Area | Atlas for Mac | Mole | Lemon | Pearcleaner | Czkawka | GrandPerspective |
| --- | --- | --- | --- | --- | --- | --- |
| App shape | Native macOS app | CLI / TUI plus scripts | Native macOS app | Native macOS app | Cross-platform workspace | Native macOS app |
| Main stack | SwiftUI + AppKit bridges + XPC/helper | Shell + Go | Objective-C/Cocoa + Xcode workspace + pods | SwiftUI + AppKit + helper targets | Rust workspace with core/CLI/GTK/Slint frontends | Cocoa / Objective-C / Xcode project |
| Process boundary | App + worker + privileged helper | Mostly single local toolchain | App plus multiple internal modules/daemons | App + helper + Finder extension + Sentinel monitor | Shared core with multiple frontends | Single app process |
| Privileged action model | Structured helper boundary | Direct shell operations with safety checks | Native app cleanup modules; license files indicate separate daemon licensing | Privileged helper plus Full Disk Access | Mostly user-space file operations | Read/analyze oriented |
| Recoverability | Explicit product-level recovery model | Safety-focused, but not recovery-first | No clear recovery-first model | No clear recovery-first model | No built-in recovery model | Not applicable |
| Auditability | History and structured recovery items | Operation logs | No first-class history model | No first-class history model | No first-class history model | Not applicable |
| Packaging | `.zip`, `.dmg`, `.pkg`, direct distribution | Homebrew, install script, prebuilt binaries | Native app distribution via official site/App ecosystem | DMG/ZIP/Homebrew cask | Large prebuilt binary matrix | SourceForge / App Store / source tree |
| License shape | MIT, with attribution for reused upstream code | MIT | GPL v2 for daemon, GPL v3 for most other modules | Apache 2.0 + Commons Clause | Mixed: MIT plus GPL-3.0-only for some frontends | GPL |
## Competitor Deep Dives
### 1. Mole
#### Why it matters
`Mole` is the closest open-source breadth competitor and also Atlas's most important upstream-adjacent reference. It markets itself as an all-in-one Mac maintenance toolkit and already bundles many of the comparisons users naturally make against commercial utilities.
#### What it does well
- Broad feature surface in one install:
- cleanup
- app uninstall
- disk analyze
- live status
- project artifact purge
- installer cleanup
- Strong developer-user fit:
- Xcode and Node-related cleanup are explicitly called out
- `purge` is a strong developer-specific wedge
- Safe defaults are well communicated:
- dry-run
- path validation
- protected directories
- explicit confirmation
- operation logs
- Good automation posture:
- `mo analyze --json`
- `mo status --json`
#### Technical takeaways
- Repo composition is pragmatic rather than layered:
- heavy Shell footprint
- Go core dependencies including `bubbletea`, `lipgloss`, and `gopsutil`
- Distribution is optimized for speed and reach:
- Homebrew
- shell install script
- architecture-specific binaries
- Safety is implemented inside one local toolchain, not via an app-worker-helper separation.
#### Weaknesses relative to Atlas
- Terminal-first experience limits mainstream Mac adoption.
- Product trust is based on careful scripting and dry-run, not on a native explainable workflow with recovery.
- History, audit, and restore are not a first-class user-facing value proposition.
#### Implication for Atlas
`Mole` should be treated as Atlas's primary benchmark for `Smart Clean` breadth and developer-oriented cleanup coverage. Atlas should not try to beat Mole on shell ergonomics. Atlas should beat it on:
- explainability
- permissions UX
- structured execution boundaries
- history / recovery credibility
- native product polish
### 2. Pearcleaner
#### Why it matters
`Pearcleaner` is the strongest open-source benchmark for Atlas's `Apps` module. It is native, widely adopted, and much deeper on uninstall-adjacent workflows than most open-source Mac utilities.
#### What it does well
- Strong uninstall-centered feature cluster:
- app uninstall
- orphaned file search
- file search
- Homebrew manager
- PKG manager
- plugin manager
- services manager
- updater
- Native platform integrations:
- Finder extension
- helper target
- Sentinel monitor for automatic cleanup when apps hit Trash
- CLI support and deep-link automation
- Clear macOS assumptions:
- Full Disk Access required for search
- privileged helper required for system-folder actions
#### Technical takeaways
- Repo structure shows native macOS product thinking:
- `Pearcleaner.xcodeproj`
- `Pearcleaner`
- `PearcleanerHelper`
- `PearcleanerSentinel`
- `FinderOpen`
- Source confirms a SwiftUI app entrypoint:
- `import SwiftUI`
- `@main struct PearcleanerApp: App`
- Helper code confirms XPC-like privileged helper behavior with code-sign validation before accepting client requests.
#### Weaknesses relative to Atlas
- It is not a full maintenance workspace.
- No strong user-facing recovery/history model.
- Maintainer note in the README says updates slowed due to limited spare time, which is a maintainability risk.
- Licensing is a hard boundary:
- Apache 2.0 with Commons Clause prevents monetized derivative use.
#### Implication for Atlas
For `Apps`, Atlas should benchmark against Pearcleaner rather than against generic cleaners. The gap to close is not "can Atlas delete apps" but:
- uninstall footprint depth
- service / launch item cleanup coverage
- package-manager and installer awareness
- native workflow polish
Atlas should not depend on Pearcleaner code for shipped product behavior due license constraints.
### 3. Tencent Lemon Cleaner
#### Why it matters
`Tencent/lemon-cleaner` is one of the most relevant omissions if Atlas only compares itself with Western or terminal-first open-source tools. It is a native macOS maintenance utility with broad GUI feature coverage and obvious overlap with what many users expect from a Mac cleaning app.
#### What it does well
- Broad native GUI utility bundle:
- deep scan cleanup
- large-file cleanup
- duplicate-file cleanup
- similar-photo cleanup
- browser privacy cleanup
- app uninstall
- startup item management
- status-bar monitoring
- disk space analysis
- Product positioning is close to mainstream cleaner expectations:
- one-click cleaning
- software-specific cleanup rules
- real-time device status in menu bar / status area
- Chinese-market relevance is high:
- the README and official site are aimed directly at Chinese macOS users and their cleanup habits
#### Technical takeaways
- Repo structure is a classic native Mac app workspace:
- `Lemon.xcodeproj`
- `Lemon.xcworkspace`
- multiple feature modules such as `LemonSpaceAnalyse`, `LemonUninstaller`, `LemonPrivacyClean`, `LemonLoginItemManager`, and `LemonCleaner`
- The repository is primarily `Objective-C` and keeps a separate daemon license file.
- This is a good example of a feature-suite style monolithic Mac utility rather than Atlas's more explicitly layered app/worker/helper model.
#### Weaknesses relative to Atlas
- No visible recovery-first promise comparable to Atlas.
- No obvious user-facing history/audit model.
- Architecture appears more utility-suite oriented than trust-boundary oriented.
- License is restrictive for Atlas reuse:
- GPL v2 for the daemon
- GPL v3 for most other modules
#### Implication for Atlas
Lemon is a direct product benchmark, especially for:
- native GUI breadth
- large-file / duplicate / privacy / startup-item utility coverage
- Chinese-language market expectations
Atlas should study Lemon as a product benchmark, but not as a code-reuse candidate.
### 4. Czkawka
#### Why it matters
`Czkawka` is not a direct Mac maintenance workspace competitor, but it is the strongest open-source reference for fast multi-platform file analysis and cleanup primitives.
#### What it does well
- High-performance file hygiene coverage:
- duplicates
- empty files/folders
- big files
- temp files
- similar images/videos
- broken files
- Exif remover
- video optimizer
- Strong engineering posture:
- memory-safe Rust emphasis
- reusable `czkawka_core`
- CLI plus multiple GUI frontends
- explicit note that it does not collect user data or access the Internet
- Platform strategy is mature:
- macOS, Linux, Windows, FreeBSD, Android
#### Technical takeaways
- Workspace composition is clear:
- `czkawka_core`
- `czkawka_cli`
- `czkawka_gui`
- `krokiet`
- `cedinia`
- The newer `Krokiet` frontend is built in `Slint` because the maintainer found GTK inconsistent and high-friction on Windows and macOS.
- This is a strong example of separating reusable scan logic from frontends.
#### Weaknesses relative to Atlas
- It is not macOS-native in product feel.
- It does not cover uninstall, permissions workflow, history, or restore semantics.
- Mixed licensing matters:
- core/CLI/GTK app are MIT
- `Krokiet` and `Cedinia` are GPL-3.0-only due Slint-related restrictions
#### Implication for Atlas
`Czkawka` is best used as an engineering reference, not as a product model. Atlas can learn from:
- reusable core logic boundaries
- fast scanning primitives
- cross-front-end separation
Atlas should avoid importing GPL-constrained UI paths into shipping code.
### 5. GrandPerspective
#### Why it matters
`GrandPerspective` is not an MVP competitor but it is the clearest open-source reference for treemap-based storage visualization on macOS.
#### What it does well
- Strong single-purpose focus:
- visual treemap disk usage analysis
- Mature native Mac implementation:
- `GrandPerspective.xcodeproj`
- `main.m`
- Still active:
- SourceForge tree shows commits in January and February 2026 and a `3.6.3` version update in January 2026.
#### Weaknesses relative to Atlas
- It is an analyzer, not a cleanup workspace.
- GPL license makes it unattractive for direct reuse in Atlas.
#### Implication for Atlas
Keep `GrandPerspective` as a post-MVP reference for `Storage treemap` only. Do not let it pull Atlas out of frozen MVP scope without an explicit product decision update.
### 6. Watchlist: MacSpaceCleaner
`MacSpaceCleaner` is useful as a signal, not as a primary benchmark.
- Positives:
- native Swift-based Mac utility
- MIT licensed
- explicit developer/Xcode cleanup slant
- Limitations:
- only `136` GitHub stars on `2026-03-21`
- much weaker ecosystem signal than Mole, Pearcleaner, or Czkawka
- repository structure is less mature and less informative
It is worth monitoring for specific ideas, but it should not drive Atlas roadmap decisions.
## What Atlas Is Actually Competing With
The real competitive picture is not one app. It is a user assembling a toolkit:
- `Mole` for broad cleanup and monitoring
- `Lemon` for native GUI all-in-one cleanup expectations
- `Pearcleaner` for uninstall depth
- `GrandPerspective` or similar tools for disk visualization
- `Czkawka` for duplicate / large-file hygiene
That means Atlas wins only if it makes the integrated workflow meaningfully safer and easier than stitching together multiple specialist tools.
## Strategic Implications For Atlas
### 1. Atlas should own the trust architecture lane
This is the strongest differentiator that the current open-source set does not combine well:
- explainable findings
- structured worker/helper boundary
- visible permission rationale
- history
- recoverable actions
### 2. `Smart Clean` breadth is the highest product risk
Per [Smart-Clean-Execution-Coverage-2026-03-09.md](./Smart-Clean-Execution-Coverage-2026-03-09.md), Atlas currently executes a safe structured subset of targets. That is honest and correct, but it also means Atlas can lose obvious comparisons to `Mole` unless release messaging stays precise and execution coverage expands.
### 3. `Apps` depth should be benchmarked against Pearcleaner, not generic cleaners
Atlas already includes app uninstall flows, but the market standard for open-source Mac uninstall depth is closer to Pearcleaner's footprint search, services/package awareness, and native integrations.
### 4. License hygiene must stay strict
- `Mole` is the only clearly safe major upstream from this set for Atlas's current MIT-oriented posture.
- `Lemon`, `GrandPerspective`, and parts of `Czkawka` carry GPL constraints and should be treated as product/UX references, not casual reuse candidates.
- `Pearcleaner` and `GrandPerspective` should be treated as product references, not code reuse candidates.
- `Czkawka` components need per-component license review before any adaptation.
### 5. Deferred scope must stay deferred
`GrandPerspective` makes storage treemap look attractive, but Atlas has explicitly deferred `Storage treemap` from MVP. The correct move is to use it as future design reference, not as a reason to reopen MVP.
## Recommended Next Steps
- Product:
- Position Atlas explicitly as an `explainable, recovery-first Mac maintenance workspace`, not just a cleaner.
- Smart Clean:
- Expand release-grade execution coverage on the categories users will compare most directly with Mole: caches, developer artifacts, and high-confidence junk roots.
- Apps:
- Run a gap review against Pearcleaner feature depth for uninstall leftovers, services, package artifacts, and automation entry points.
- Architecture:
- Keep leaning into worker/helper and structured recovery. That is Atlas's most defensible open-source differentiation.
- Messaging:
- Be exact about what runs for real today. Over-claiming breadth would erase Atlas's trust advantage.
## Sources
### Internal Atlas docs
1. [PRD.md](../PRD.md)
2. [Architecture.md](../Architecture.md)
3. [Smart-Clean-Execution-Coverage-2026-03-09.md](./Smart-Clean-Execution-Coverage-2026-03-09.md)
### Mole
1. [tw93/Mole](https://github.com/tw93/Mole)
2. [Mole README](https://raw.githubusercontent.com/tw93/Mole/main/README.md)
3. [Mole go.mod](https://raw.githubusercontent.com/tw93/Mole/main/go.mod)
4. [Mole latest release `V1.30.0` published on 2026-03-08](https://github.com/tw93/Mole/releases/tag/V1.30.0)
### Pearcleaner
1. [alienator88/Pearcleaner](https://github.com/alienator88/Pearcleaner)
2. [Pearcleaner README](https://raw.githubusercontent.com/alienator88/Pearcleaner/main/README.md)
3. [Pearcleaner app entrypoint](https://github.com/alienator88/Pearcleaner/blob/main/Pearcleaner/PearcleanerApp.swift)
4. [Pearcleaner helper entrypoint](https://github.com/alienator88/Pearcleaner/blob/main/PearcleanerHelper/main.swift)
5. [Pearcleaner license](https://github.com/alienator88/Pearcleaner/blob/main/LICENSE.md)
6. [Pearcleaner latest release `5.4.3` published on 2025-11-26](https://github.com/alienator88/Pearcleaner/releases/tag/5.4.3)
### Lemon
1. [Tencent/lemon-cleaner](https://github.com/Tencent/lemon-cleaner)
2. [Lemon README](https://raw.githubusercontent.com/Tencent/lemon-cleaner/master/README.md)
3. [腾讯柠檬清理官网](https://lemon.qq.com)
### Czkawka
1. [qarmin/czkawka](https://github.com/qarmin/czkawka)
2. [Czkawka README](https://raw.githubusercontent.com/qarmin/czkawka/master/README.md)
3. [Czkawka Cargo workspace](https://github.com/qarmin/czkawka/blob/master/Cargo.toml)
4. [Krokiet README](https://github.com/qarmin/czkawka/blob/master/krokiet/README.md)
5. [Czkawka latest release `11.0.1` published on 2026-02-21](https://github.com/qarmin/czkawka/releases/tag/11.0.1)
### GrandPerspective
1. [GrandPerspective SourceForge source tree](https://sourceforge.net/p/grandperspectiv/source/ci/master/tree/)
### MacSpaceCleaner
1. [sanketk2020/MacSpaceCleaner](https://github.com/sanketk2020/MacSpaceCleaner)
2. [MacSpaceCleaner README](https://raw.githubusercontent.com/sanketk2020/MacSpaceCleaner/main/README.md)

View File

@@ -0,0 +1,22 @@
task_id: atl-211-214-226-230
goal: >
按 Docs/Execution/Implementation-Plan-ATL-211-214-226-230-2026-03-21.md
实现第一阶段 selective parity 开发切片:提升 Smart Clean 在高置信安全清理类目上的竞争可信度,
并增强 Apps 卸载预览、完成态与审计/恢复线索。必须保持 MVP 冻结,不引入新产品面。
constraints:
- 不要扩展出 frozen MVP 范围之外的新模块或新表面。
- 不要引入 Storage treemap、Menu Bar、Automation、重复文件/相似照片/隐私清理新模块。
- 不要在 UI、文档或完成态中暗示 Atlas 已与 Mole、Lemon、Pearcleaner 全面同等。
- unsupported 或 review-only 路径必须保持 fail-closed 和明确提示。
verify_commands:
- swift test --package-path Packages --filter AtlasInfrastructureTests
- swift test --package-path Packages --filter AtlasApplicationTests
- swift test --package-path Apps --filter AtlasAppModelTests
adapter: codex_cli
adapter_config:
sandbox: workspace-write
full_auto: true
timeout_seconds: 600
max_iterations: 5
timeout_minutes: 45
rollback_on_fail: false

View File

@@ -0,0 +1,128 @@
# Selective Parity Week — 2026-03-23
## Context
Atlas now has a documented competitive strategy:
- keep MVP frozen
- preserve trust as the primary moat
- selectively close the most visible comparison gaps against `Mole`, `Tencent Lemon Cleaner`, and `Pearcleaner`
This week plan turns that strategy into the next development-ready execution window.
Related docs:
- [Open-Source-Competitor-Research-2026-03-21.md](./Open-Source-Competitor-Research-2026-03-21.md)
- [Competitive-Strategy-Plan-2026-03-21.md](./Competitive-Strategy-Plan-2026-03-21.md)
- [ROADMAP.md](../ROADMAP.md)
## Planned Window
- `2026-03-23` to `2026-03-27`
## Goal
Prepare Atlas's next coding phase so that development can start immediately on the two highest-pressure competitive surfaces:
- `Smart Clean` selective parity against `Mole` and `Lemon`
- `Apps` depth and uninstall trust against `Pearcleaner` and `Lemon`
## Scope
Stay inside frozen MVP:
- `Overview`
- `Smart Clean`
- `Apps`
- `History`
- `Recovery`
- `Permissions`
- `Settings`
Do not expand into:
- `Storage treemap`
- `Menu Bar`
- `Automation`
- duplicate-file or similar-photo cleanup as new Atlas modules
- privacy-cleaning as a new standalone module
## Must Deliver
- A concrete competitor-pressure matrix for `Smart Clean` and `Apps`
- A fixture-backed validation plan for uninstall depth and supported cleanup classes
- One implementation-ready plan for the first selective-parity coding slice
- Updated acceptance criteria for `Smart Clean` and `Apps`
- Updated release-facing beta checklist so validation reflects competitive trust requirements
## Backlog Mapping
- `ATL-211` Expand real `Smart Clean` execute coverage for top safe target classes most likely compared to `Mole` and `Lemon`
- `ATL-214` Make history and completion states reflect real side effects only
- `ATL-226` Build a competitor-pressure matrix for `Apps` using representative `Pearcleaner` and `Lemon` uninstall scenarios
- `ATL-227` Expand uninstall preview taxonomy and leftover evidence for supported app footprint categories
- `ATL-228` Surface recoverability, auditability, and supported-vs-review-only cues directly in the `Apps` flow
- `ATL-229` Validate uninstall depth on mainstream and developer-heavy fixture apps
## Day Plan
- `Day 1`
- finalize competitor-pressure matrix
- freeze non-goals and no-go boundaries for selective parity work
- `Day 2`
- define fixture app set and Smart Clean target-class benchmark set
- confirm acceptance and validation expectations
- `Day 3`
- write the detailed implementation plan for the first coding slice
- identify likely file-touch map and contract-test map
- `Day 4`
- align beta checklist and MVP acceptance matrix with the selective-parity strategy
- verify risks and roadmap still match
- `Day 5`
- hold an internal doc gate for development readiness
- confirm the next coding session can begin without planning gaps
## Owner Tasks
- `Product Agent`
- keep parity work bounded to visible comparison pressure only
- reject backlog inflation that does not strengthen the frozen MVP
- `UX Agent`
- define visible trust cues for supported, unsupported, and review-only actions
- keep Atlas's UI difference legible against broader cleaner tools
- `Mac App Agent`
- identify concrete UI surfaces that must change in `Smart Clean`, `Apps`, `History`, and completion states
- `Core Agent`
- define the preview taxonomy and structured evidence that the UI can actually render
- `System Agent`
- define which additional safe cleanup classes are realistic next targets for `Smart Clean`
- `QA Agent`
- define the fixture set, comparison scenarios, and contract-style checks
- `Docs Agent`
- keep strategy, acceptance, roadmap, and release-check documents aligned
## Validation Plan
### Planning Validation
- every new task maps to existing MVP surfaces
- every new acceptance criterion is testable
- every parity goal has an explicit competitor reference and an explicit Atlas non-goal
### Readiness Validation
- at least one implementation-ready plan exists for the next coding slice
- acceptance matrix and beta checklist reflect the new competitive gates
- no document implies that Atlas is reopening deferred scope
## Exit Criteria
- selective parity work is expressed as tasks, acceptance, and validation rather than just strategy prose
- `Smart Clean` and `Apps` both have explicit competitor-driven targets
- next coding session can start without another planning pass
## Known Blockers
- signed public beta remains blocked by missing Apple release credentials
- `Smart Clean` breadth still has to stay subordinate to execution honesty
- `Apps` depth work must remain bounded by what Atlas can safely prove and recover

View File

@@ -120,3 +120,27 @@
- Owner: `Product Agent`
- Risk: A future landing page or custom-domain launch surface may overstate release readiness, signed-install status, recovery behavior, or permission expectations relative to the actual downloadable build.
- Mitigation: Make release-channel state and install guidance dynamic, keep prerelease warnings visible, and gate launch-surface copy review with the same trust standards used for README and release materials.
## R-016 Competitive Breadth Perception Gap
- Impact: High
- Probability: High
- Owner: `Product Agent`
- Risk: Users comparing Atlas with `Mole` or `Tencent Lemon Cleaner` may conclude Atlas is cleaner in presentation but weaker in practical cleanup breadth if `Smart Clean` execution coverage stays too narrow or too invisible.
- Mitigation: Expand only the highest-value safe target classes inside frozen MVP, and make supported-vs-unsupported execution scope explicit in product copy and UI states.
## R-017 Apps Depth Comparison Gap
- Impact: High
- Probability: Medium
- Owner: `Mac App Agent`
- Risk: Users comparing Atlas with `Pearcleaner` or `Tencent Lemon Cleaner` may find the `Apps` module less credible if uninstall preview taxonomy, leftover visibility, and completion evidence remain too shallow.
- Mitigation: Add fixture-based uninstall benchmarking, deepen supported footprint categories, and surface recoverability/audit cues directly in the `Apps` flow.
## R-018 License Contamination From Competitor Reuse
- Impact: High
- Probability: Medium
- Owner: `Docs Agent`
- Risk: Competitive pressure may tempt reuse of code or assets from `Tencent Lemon Cleaner`, `GrandPerspective`, or GPL-constrained `Czkawka` components, creating license conflict with Atlas's shipping posture. `Pearcleaner` also remains unsuitable for monetized derivative reuse due `Commons Clause`.
- Mitigation: Treat these projects as product and technical references only, require explicit license review before adapting any third-party implementation, and prefer MIT-compatible upstream or original Atlas implementations for shipped code.

View File

@@ -9,6 +9,7 @@
- remove silent XPC fallback from release-facing trust assumptions
- make `Smart Clean` execution honesty match real filesystem behavior
- make `Recovery` claims match shipped restore behavior
- convert competitor research into a selective parity plan against `Mole`, `Lemon`, and `Pearcleaner` without reopening MVP scope
- Release-path blocker:
- no Apple signing and notarization credentials are available on the current machine
@@ -23,10 +24,22 @@
- `Permissions`
- `Settings`
- Do not pull `Storage treemap`, `Menu Bar`, or `Automation` into this roadmap.
- Respond to competitor pressure by deepening the frozen MVP flows rather than adding new surfaces for parity theater.
- Treat trust and recovery honesty as release-critical product work, not polish.
- Keep direct distribution as the only eventual release route.
- Do not plan around public beta dates until signing credentials exist.
## Competitive Strategy Overlay
- Primary breadth comparison pressure comes from `Mole` and `Tencent Lemon Cleaner`.
- Primary `Apps` comparison pressure comes from `Pearcleaner` and `Tencent Lemon Cleaner`.
- Atlas should compete as an `explainable, recovery-first Mac maintenance workspace`, not as a generic all-in-one cleaner.
- The roadmap response is:
- preserve trust as the primary release gate
- close the most visible `Smart Clean` coverage gaps users compare against `Mole` and `Lemon`
- deepen the `Apps` module where `Pearcleaner` and `Lemon` set expectations
- keep `Storage treemap`, `Menu Bar`, and `Automation` out of scope
## Active Milestones
### Milestone 1: Internal Beta Hardening
@@ -49,7 +62,7 @@
- Dates: `2026-03-31` to `2026-04-18`
- Goal: prove that the highest-value safe cleanup paths have real disk-backed side effects.
- Focus:
- expand real `Smart Clean` execute coverage for top safe target classes
- expand real `Smart Clean` execute coverage for top safe target classes most likely compared to `Mole` and `Lemon`
- carry executable structured targets through the worker path
- add stronger `scan -> execute -> rescan` contract coverage
- make history and completion states reflect real side effects only
@@ -72,6 +85,20 @@
- file-backed recoverable actions either restore physically or are no longer described as if they do
- QA has explicit evidence for restore behavior on the candidate build
### Milestone 4: Apps Competitive Depth
- Dates: `2026-05-12` to `2026-05-30`
- Goal: close the highest-value `Apps` depth gaps versus `Pearcleaner` and `Lemon` without reopening MVP scope.
- Focus:
- deepen uninstall preview taxonomy and leftover visibility
- improve clarity around launch items, service artifacts, and other app-adjacent footprint categories where Atlas can safely reason about them
- surface recoverability and audit cues directly in the uninstall flow
- validate uninstall flows against mainstream and developer-heavy fixture apps
- Exit criteria:
- `Apps` uninstall preview clearly explains footprint scope, leftovers, and recovery implications for supported flows
- supported uninstall fixtures show better uninstall depth and clearer completion evidence than the current baseline
- release-facing product copy can describe the `Apps` module as a trust-differentiated uninstall workflow, not just an app list with delete actions
## Conditional Release Branch
These milestones do not start until Apple release credentials are available.
@@ -79,6 +106,7 @@ These milestones do not start until Apple release credentials are available.
### Conditional Milestone A: Signed Public Beta Candidate
- Trigger:
- Milestones `1` through `4` are complete
- `Developer ID Application` is available
- `Developer ID Installer` is available
- `ATLAS_NOTARY_PROFILE` is available