# Prune Roadmap Current managed-output pruning behavior is documented in: - `docs/config.md` - `docs/cli.md` - `docs/operations.md` - `docs/troubleshooting.md` - `docs/integrations/destination-state.md` - `docs/internal/app.md` - `docs/internal/publish.md` - `docs/internal/state.md` ## Current Scope Current scope includes: - destination `retention.prune.enabled`; - `retention.prune.older_than`; - `retention.prune.keep_latest`; - `distributor prune --dry-run`; - `distributor prune --apply`; - text and JSON reports; - owner-scoped pruning for shared-root state. Pruning uses managed output `updated_at` timestamps from destination state. When both `keep_latest` and `older_than` are configured, the newest `keep_latest` outputs are preserved before age-based pruning is applied to the remaining managed outputs. Apply mode deletes only planned managed output paths, preserves unmanaged content, preserves `.distributor.json`, and rewrites state only for confirmed deletions. ## Deferred Work Deferred pruning work: - one-off retention overrides; - automatic post-publish pruning; - path/date parsing retention policies; - group-level pruning by source publication; - removal of empty state files. Pruning remains an operator command rather than a general storage cleanup tool.