version: 1
kind: findings-acknowledged-compat-removal

scope:
  goal: remove productive acknowledged compatibility from findings workflow truth only
  non_goals:
    - findings lifecycle backfill runtime-surface removal
    - creation-time finding invariant hardening
    - broader findings lifecycle redesign
    - verification acknowledgement cleanup
    - onboarding acknowledgement cleanup
    - restore impact acknowledgement cleanup
    - migration or fallback-reader preservation

canonical_status_contract:
  active_open:
    - new
    - triaged
    - in_progress
    - reopened
  terminal:
    - resolved
    - closed
    - risk_accepted
  removed_active_status:
    - acknowledged

shared_seams:
  model_and_workflow:
    owner_files:
      - apps/platform/app/Models/Finding.php
      - apps/platform/app/Services/Findings/FindingWorkflowService.php
      - apps/platform/app/Policies/FindingPolicy.php
    requirements:
      - no productive findings workflow helper writes or expects acknowledged
      - open-status query helpers collapse onto the canonical active-open set only
  badge_and_filter_catalogs:
    owner_files:
      - apps/platform/app/Support/Badges/Domains/FindingStatusBadge.php
      - apps/platform/app/Support/Filament/FilterOptionCatalog.php
    requirements:
      - no badge label exposes acknowledged or legacy acknowledged
      - no findings filter offers acknowledged as a current workflow state
  capabilities_and_roles:
    owner_files:
      - apps/platform/app/Support/Auth/Capabilities.php
      - apps/platform/app/Services/Auth/RoleCapabilityMap.php
    requirements:
      - tenant_findings.acknowledge is removed
      - surviving findings capability language stays canonical and tenant-scoped
  tenant_findings_surfaces:
    routes:
      - /admin/t/{tenant}/findings
      - /admin/t/{tenant}/findings/{record}
    owner_files:
      - apps/platform/app/Filament/Resources/FindingResource.php
      - apps/platform/app/Filament/Resources/FindingResource/Pages/ListFindings.php
      - apps/platform/app/Filament/Pages/Findings/MyFindingsInbox.php
    requirements:
      - no visible findings workflow affordance presents acknowledged as current work
  findings_derived_consumers:
    owner_files:
      - apps/platform/app/Support/CustomerHealth/WorkspaceHealthSummaryQuery.php
      - apps/platform/app/Support/Workspaces/WorkspaceOverviewBuilder.php
      - apps/platform/app/Support/GovernanceInbox/GovernanceInboxSectionBuilder.php
      - apps/platform/app/Support/Baselines/BaselineCompareStats.php
      - apps/platform/app/Support/SupportDiagnostics/SupportDiagnosticBundleBuilder.php
      - apps/platform/app/Services/TenantReviews/TenantReviewSectionFactory.php
      - apps/platform/app/Jobs/Alerts/EvaluateAlertsJob.php
      - apps/platform/app/Services/PermissionPosture/PermissionPostureFindingGenerator.php
      - apps/platform/app/Services/EntraAdminRoles/EntraAdminRolesFindingGenerator.php
      - apps/platform/app/Services/Baselines/BaselineAutoCloseService.php
      - apps/platform/app/Services/Findings/FindingAssignmentHygieneService.php
    requirements:
      - counts, previews, review disclosures, diagnostics, and alerts use the same canonical open-status set as findings surfaces
      - no productive findings-derived consumer treats acknowledged as current work

retained_behavior:
  findings_workflow_actions:
    - triage
    - start_progress
    - assign
    - resolve
    - close
    - reopen
    - request_exception
    - risk_accept
  guarantees:
    - existing findings lifecycle outcomes remain otherwise unchanged
    - no new workflow state or replacement compatibility path is introduced

non_finding_domains:
  untouched:
    - verification check acknowledgement
    - onboarding verification acknowledgement
    - restore impact acknowledgement

legacy_data_posture:
  findings_table:
    - acknowledged columns may remain in schema for now without preserving active runtime semantics
  migrations:
    - no new migration or persisted compatibility artifact is allowed in this slice

validation_expectations:
  no_new_persistence:
    - no file under apps/platform/database/migrations may change
    - no alias table, persisted mapping, or fallback reader may be introduced
  absence_proof:
    - no productive findings surface exposes acknowledged as current workflow status
    - no productive findings-derived consumer exposes acknowledged as current work
    - no findings capability alias remains for acknowledge semantics
  regression_proof:
    - canonical findings workflow actions still behave unchanged
    - non-finding acknowledgement domains remain untouched
  lane_classification:
    required:
      - fast-feedback
      - confidence
      - heavy-governance
    excluded:
      - browser