public/Invoke-OctaQuickClean.ps1

# FR-019: curated default bundle, applied through the same Invoke-OctaCategory path (one
# combined dry-run preview, same restore-point/snapshot/Run Record guarantees). Includes appx
# and oem-suites for real bloatware/background-service impact (the actual performance lever -
# per the real Octa-vs-Windows11Debloat benchmark, most of Windows11Debloat's process-count
# reduction came from removing 84 apps, which Octa's Quick Clean didn't touch before this).
# Both are still gated by their own dedicated confirmation - appx's package removal is
# irreversible (Split-OctaActionsByConfirmationGroup's Irreversible gate), oem-suites' heuristic
# hits get their own Heuristic gate - so nothing irreversible is silently bundled into the
# single "y/N" a purely-reversible bundle would have. background-activity (008) is fully
# reversible and Safe/Moderate only, so it joins the plain bundle with no extra gate needed.
# preferences/desktop/user-experience joined afterward: every action in all three is RiskLevel
# Safe, reversible, and RequiresElevation $false (same profile as explorer-start, already in the
# bundle) - see categories/Preferences.ps1, categories/Desktop.ps1,
# categories/UserExperience.ps1. Categories left out of this bundle (onedrive, performance,
# power, gpu, services, gaming, ai-features, windows-features, registry-orphans) are documented
# in README.md under "Categorías" / "Por qué estas categorías no están en Quick Clean".
$script:OctaQuickCleanBundle = @('telemetry', 'copilot', 'widgets', 'recall', 'explorer-start', 'appx', 'oem-suites', 'background-activity', 'preferences', 'desktop', 'user-experience')

function Invoke-OctaQuickClean {
    [CmdletBinding()]
    param(
        [switch]$Apply,
        [switch]$NoRestorePoint,
        [switch]$Yes,
        [switch]$Quiet
    )

    return Invoke-OctaCategory -CategoryId $script:OctaQuickCleanBundle -Apply:$Apply `
        -NoRestorePoint:$NoRestorePoint -Yes:$Yes -Quiet:$Quiet -ExcludeRisky
}