From f73d3623fc3fe53360a7b0f4ff0498dd38847bf4 Mon Sep 17 00:00:00 2001 From: Ahmed Darrazi Date: Fri, 27 Mar 2026 16:41:39 +0100 Subject: [PATCH] feat: harden finding governance health surfaces --- .github/agents/copilot-instructions.md | 4 +- .specify/memory/constitution.md | 94 ++++- .specify/templates/plan-template.md | 20 +- .specify/templates/spec-template.md | 38 ++ .specify/templates/tasks-template.md | 8 + Agents.md | 4 +- .../Monitoring/FindingExceptionsQueue.php | 36 ++ .../TenantlessOperationRunViewer.php | 6 - .../Resources/FindingExceptionResource.php | 153 +++++++- .../Pages/ListFindingExceptions.php | 50 +++ .../Pages/ViewFindingException.php | 17 + app/Filament/Resources/FindingResource.php | 240 ++++++++++++- .../FindingResource/Pages/ListFindings.php | 38 ++ .../FindingResource/Pages/ViewFinding.php | 19 + .../Widgets/Dashboard/BaselineCompareNow.php | 8 +- .../Widgets/Dashboard/NeedsAttention.php | 83 ++++- .../Tenant/BaselineCompareCoverageBanner.php | 5 +- .../Tenant/FindingExceptionStatsOverview.php | 39 +++ .../Widgets/Tenant/FindingStatsOverview.php | 39 +++ .../FindingRiskGovernanceResolver.php | 124 +++++++ .../FindingRiskGovernanceValidityBadge.php | 4 +- .../Badges/Domains/FindingStatusBadge.php | 2 +- .../Baselines/BaselineCompareReasonCode.php | 21 +- .../Baselines/BaselineCompareStats.php | 104 ++++++ .../BaselineCompareSummaryAssessment.php | 11 +- .../BaselineCompareSummaryAssessor.php | 118 ++++++- app/Support/Filament/FilterOptionCatalog.php | 36 ++ docs/HANDOVER.md | 4 +- docs/product/principles.md | 29 +- docs/product/standards/README.md | 6 +- .../finding-exceptions-queue.blade.php | 13 +- .../tenantless-operation-run-viewer.blade.php | 3 - .../checklists/requirements.md | 37 ++ .../finding-governance-health.openapi.yaml | 329 ++++++++++++++++++ .../data-model.md | 149 ++++++++ specs/166-finding-governance-health/plan.md | 134 +++++++ .../quickstart.md | 88 +++++ .../166-finding-governance-health/research.md | 61 ++++ specs/166-finding-governance-health/spec.md | 254 ++++++++++++++ specs/166-finding-governance-health/tasks.md | 258 ++++++++++++++ .../BaselineCompareSummaryAssessmentTest.php | 47 +++ .../Filament/NeedsAttentionWidgetTest.php | 23 ++ .../TableStandardsCriticalListsTest.php | 2 +- ...antLifecycleStatusDomainSeparationTest.php | 5 +- .../Findings/FindingExceptionRegisterTest.php | 201 +++++++++++ .../Findings/FindingsListDefaultsTest.php | 10 +- .../Findings/FindingsListEnterpriseUxTest.php | 149 ++++++++ .../Findings/FindingsListFiltersTest.php | 60 ++++ .../TenantlessOperationRunViewerTest.php | 29 ++ .../Support/Badges/FindingBadgeTest.php | 4 +- tests/Unit/Badges/FindingBadgesTest.php | 22 ++ .../Findings/FindingExceptionBadgeTest.php | 2 +- 52 files changed, 3155 insertions(+), 85 deletions(-) create mode 100644 app/Filament/Widgets/Tenant/FindingExceptionStatsOverview.php create mode 100644 app/Filament/Widgets/Tenant/FindingStatsOverview.php create mode 100644 specs/166-finding-governance-health/checklists/requirements.md create mode 100644 specs/166-finding-governance-health/contracts/finding-governance-health.openapi.yaml create mode 100644 specs/166-finding-governance-health/data-model.md create mode 100644 specs/166-finding-governance-health/plan.md create mode 100644 specs/166-finding-governance-health/quickstart.md create mode 100644 specs/166-finding-governance-health/research.md create mode 100644 specs/166-finding-governance-health/spec.md create mode 100644 specs/166-finding-governance-health/tasks.md create mode 100644 tests/Feature/Findings/FindingsListEnterpriseUxTest.php diff --git a/.github/agents/copilot-instructions.md b/.github/agents/copilot-instructions.md index fa3013bc..565a272a 100644 --- a/.github/agents/copilot-instructions.md +++ b/.github/agents/copilot-instructions.md @@ -110,6 +110,8 @@ ## Active Technologies - PostgreSQL with existing `operation_runs` JSONB-backed `context`, `summary_counts`, and `failure_summary`; no schema change planned (164-run-detail-hardening) - PHP 8.4, Laravel 12, Blade, Filament v5, Livewire v4 + Filament v5, Livewire v4, Pest v4, Laravel Sail, existing `BaselineCompareStats`, `BaselineCompareExplanationRegistry`, `ReasonPresenter`, `BadgeCatalog` or `BadgeRenderer`, `UiEnforcement`, and `OperationRunLinks` (165-baseline-summary-trust) - PostgreSQL with existing baseline, findings, and `operation_runs` tables plus JSONB-backed compare context; no schema change planned (165-baseline-summary-trust) +- PHP 8.4.15 + Laravel 12, Filament v5, Livewire v4, Pest v4, Tailwind CSS v4, existing `Finding`, `FindingException`, `FindingRiskGovernanceResolver`, `BadgeCatalog`, `BadgeRenderer`, `FilterOptionCatalog`, and tenant dashboard widgets (166-finding-governance-health) +- PostgreSQL using existing `findings`, `finding_exceptions`, related decision tables, and existing DB-backed summary sources; no schema changes required (166-finding-governance-health) - PHP 8.4.15 (feat/005-bulk-operations) @@ -129,8 +131,8 @@ ## Code Style PHP 8.4.15: Follow standard conventions ## Recent Changes +- 166-finding-governance-health: Added PHP 8.4.15 + Laravel 12, Filament v5, Livewire v4, Pest v4, Tailwind CSS v4, existing `Finding`, `FindingException`, `FindingRiskGovernanceResolver`, `BadgeCatalog`, `BadgeRenderer`, `FilterOptionCatalog`, and tenant dashboard widgets - 165-baseline-summary-trust: Added PHP 8.4, Laravel 12, Blade, Filament v5, Livewire v4 + Filament v5, Livewire v4, Pest v4, Laravel Sail, existing `BaselineCompareStats`, `BaselineCompareExplanationRegistry`, `ReasonPresenter`, `BadgeCatalog` or `BadgeRenderer`, `UiEnforcement`, and `OperationRunLinks` - 164-run-detail-hardening: Added PHP 8.4, Laravel 12, Blade views, Alpine via Filament v5 / Livewire v4 + Filament v5, Livewire v4, Pest v4, Laravel Sail, existing `OperationRunResource`, `TenantlessOperationRunViewer`, `EnterpriseDetailBuilder`, `ArtifactTruthPresenter`, `OperationUxPresenter`, and `SummaryCountsNormalizer` -- 163-baseline-subject-resolution-session-1774398153: Added PHP 8.4 + Laravel 12, Filament v5, Livewire v4 diff --git a/.specify/memory/constitution.md b/.specify/memory/constitution.md index 87a6302b..8338df7b 100644 --- a/.specify/memory/constitution.md +++ b/.specify/memory/constitution.md @@ -1,20 +1,32 @@