15 — Requirements Traceability
This document provides stable requirement IDs for tickets, tests, and acceptance criteria.
Product
- PV-P-001: Application is local-first.
- PV-P-002: Sync state and backup protection are distinct.
- PV-P-003: Every recommendation is explainable.
- PV-P-004: v0.1 performs no user-file mutations.
Discovery
- PV-D-001: Discover internal volumes.
- PV-D-002: Discover mounted removable volumes.
- PV-D-003: Detect iCloud Drive roots.
- PV-D-004: Detect OneDrive roots/accounts.
- PV-D-005: Identify volumes using stable identifiers.
Inventory
- PV-I-001: Scan only user-approved roots.
- PV-I-002: Persist scan metadata to SQLite.
- PV-I-003: Capture logical and allocated size where available.
- PV-I-004: Do not follow symlinks recursively by default.
- PV-I-005: Do not intentionally hydrate cloud-only files.
- PV-I-006: Support scan cancellation.
- PV-I-007: Record partial/inaccessible coverage.
Duplicates
- PV-DUP-001: Exact duplicates require full content hash.
- PV-DUP-002: Same-name files are not automatically exact duplicates.
- PV-DUP-003: Duplicate groups show all locations/providers.
- PV-DUP-004: Reclaimable local bytes account for physical allocation/cloud state.
Safety
- PV-S-001: All future mutations pass through SafetyGate.
- PV-S-002: Level 0 forbids copy/move/rename/delete.
- PV-S-003: Cloud mutation requires explicit synchronization-impact warning.
- PV-S-004: Test mutations are limited to generated fixtures.
- PV-S-005: Permanent deletion is not the default cleanup mechanism.
Backup
- PV-B-001: Backup jobs validate stable destination volume identity.
- PV-B-002: Successful copy alone is not verified backup.
- PV-B-003: Verification failure never removes source.
- PV-B-004: Backup health exposes stale/offline/failed states.
Archive
- PV-A-001: Archive copies are verified before source cleanup is offered.
- PV-A-002: Archive manifests retain original and destination locations.
- PV-A-003: Disconnected archive drives remain represented as offline.
UI
- PV-UI-001: Dashboard shows storage, recovery opportunities, and protection.
- PV-UI-002: Scan age/coverage is visible.
- PV-UI-003: Recommendations expose a deterministic "why."
- PV-UI-004: Speculative cleanup is never labeled "safe to delete."