TenantAtlas/specs/253-remove-findings-backfill-runtime-surfaces/quickstart.md
ahmido 2fa8fc0f87
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 51s
refactor: remove findings lifecycle backfill runtime surfaces (#294)
## Summary
- decommission the legacy findings lifecycle backfill substrate across command, job, service, and UI layers
- remove related platform capabilities, operation catalog entries, and action surface exemptions
- add regression and removal verification tests to ensure runtime integrity and surface absence
- include spec, plan, tasks, and data-model artifacts for the removal slice

## Scope
- active spec: specs/253-remove-findings-backfill-runtime-surfaces
- target branch: dev

## Validation
- integrated regression and removal verification tests for console, findings, and system ops surfaces
- audit log and capability trace verification for the removal path

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #294
2026-04-28 22:00:51 +00:00

3.6 KiB

Quickstart — Remove Findings Lifecycle Backfill Runtime Surfaces

Prereqs

  • Docker running
  • Laravel Sail dependencies installed
  • Existing platform-operator and tenant-user factories available for targeted tests
  • Existing findings workflow fixtures available for regression coverage

Run locally

  • Start containers: cd apps/platform && ./vendor/bin/sail up -d
  • No schema change is expected, but use the normal repo baseline before running tests: export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan migrate --no-interaction
  • Run targeted tests after implementation:
    • export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/System/OpsRunbooks/RemoveFindingsLifecycleBackfillRunbookSurfaceTest.php tests/Feature/System/OpsControls/RemoveFindingsLifecycleBackfillControlTraceTest.php tests/Feature/Findings/RemoveFindingsLifecycleBackfillActionTest.php tests/Feature/Console/RemoveFindingsLifecycleBackfillCommandsTest.php
    • export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/OperationCatalog/RemoveFindingsLifecycleBackfillCatalogTraceTest.php tests/Unit/Support/Auth/RemoveFindingsLifecycleBackfillCapabilityTraceTest.php
    • export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/OperationalControls/NoAdHocOperationalControlBypassTest.php
    • export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Findings/FindingWorkflowRegressionTest.php
  • Format after implementation: export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent

Manual smoke after implementation

  1. Sign in to /system as a platform operator and confirm /system/ops/runbooks no longer shows Rebuild Findings Lifecycle, its preflight action, or its run modal.
  2. Sign in to /admin/t/{tenant}/findings as an entitled tenant operator and confirm there is no Backfill findings lifecycle header action while canonical findings workflow actions still render according to current capability rules.
  3. Open /system/ops/controls and confirm there is no findings lifecycle backfill control row, action, or history affordance.
  4. Check the supported Artisan command catalog and confirm tenantpilot:findings:backfill-lifecycle is gone, and tenantpilot:run-deploy-runbooks is also gone if backfill was its only remaining shipped responsibility.
  5. Exercise representative findings actions such as Triage, Start progress, Assign, Resolve, and Risk accept and confirm the existing workflow behavior is unchanged.
  6. Open Monitoring or Operations and confirm no supported surface can create a new findings.lifecycle.backfill run; historical rows, if any remain in local data, must not receive new special retry or cancel affordances.

Notes

  • Filament v5 remains on Livewire v4.0+ in this repo; the cleanup stays inside existing native Filament pages and actions.
  • No panel or provider registration changes are planned; bootstrap/providers.php remains the authoritative location if any provider work is ever needed later.
  • No new global-search resource, searchable surface, or global-search contract change is involved.
  • No new asset pipeline work is expected, so there is no added filament:assets deployment step.
  • LEAN-001 applies directly: the cleanup should delete obsolete runtime surfaces rather than keeping aliases, no-op command shells, or compatibility branches for historical data.