## Summary - introduce a shared operator outcome taxonomy with semantic axes, severity bands, and next-action policy - apply the taxonomy to operations, evidence/review completeness, baseline semantics, and restore semantics - harden badge rendering, tenant-safe filtering/search behavior, and operator-facing summary/notification wording - add the spec kit artifacts, reference documentation, and regression coverage for diagnostic-vs-primary state handling ## Testing - focused Pest coverage for taxonomy registry and badge guardrails - operations presentation and notification tests - evidence, baseline, restore, and tenant-scope regression tests ## Notes - Livewire v4.0+ compliance is preserved in the existing Filament v5 stack - panel provider registration remains unchanged in bootstrap/providers.php - no new globally searchable resource was added; adopted resources remain tenant-safe and out of global search where required - no new destructive action family was introduced; existing actions keep their current authorization and confirmation behavior - no new frontend asset strategy was introduced; existing deploy flow with filament:assets remains unchanged Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #186
24 KiB
Tasks: Operator Outcome Taxonomy and Cross-Domain State Separation
Input: Design documents from /specs/156-operator-outcome-taxonomy/
Prerequisites: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/, quickstart.md
Tests: Tests are REQUIRED for this feature because it changes runtime operator-facing semantics, badge meaning, notifications, canonical view presentation, global-search safety, and cross-tenant non-leakage behavior in a Laravel/Pest codebase.
Operations: This feature reuses existing OperationRun records and Operations surfaces. Tasks below preserve the Ops-UX 3-surface contract while improving outcome wording, summary language, blocked guidance, and next-action clarity.
RBAC: This feature changes presentation on tenant-context and canonical workspace views. Tasks below preserve 404 for non-members or non-entitled actors, 403 for in-scope capability denial, tenant-safe global search and canonical filtering, and non-leakage of unauthorized tenant labels, counts, and filters.
UI Naming: This feature introduces a canonical operator term dictionary. Tasks below align badges, summaries, notifications, helper copy, and canonical views to one shared vocabulary and remove implementation-first wording from primary operator-facing labels.
Filament UI Action Surfaces: This feature does not add a new action family. Existing action surfaces remain intact while adopted list, widget, notification, and detail surfaces are updated to use taxonomy-backed state semantics.
Filament UI UX-001: This feature is not a layout redesign. Adopted screens keep their existing structure while badges, empty-state wording, filters, and summaries are normalized.
Badges: This feature changes status-like badge semantics. All tasks below continue to use BadgeCatalog and BadgeRenderer and add guard coverage so diagnostic-only states cannot ship with warning or danger severity.
Organization: Tasks are grouped by user story so each story can be implemented and tested independently, while the delivery sequence follows the bounded first-slice rollout from the plan.
Phase 1: Setup (Shared Infrastructure)
Purpose: Establish the taxonomy source of truth, curated example rubric, and guard scaffolding used by all stories.
- T001 Publish the canonical taxonomy reference scaffold in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/docs/product/operator-semantic-taxonomy.md - T002 [P] Create the shared taxonomy registry skeleton in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorOutcomeTaxonomy.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorSemanticAxis.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorStateClassification.php - T003 [P] Create the first-slice taxonomy guard and curated-example harness in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Guards/NoDiagnosticWarningBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/OperatorOutcomeTaxonomyTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/quickstart.md
Phase 2: Foundational (Blocking Prerequisites)
Purpose: Put the shared taxonomy contract and badge enforcement in place before domain adoption begins.
⚠️ CRITICAL: No user story work should begin until this phase is complete.
- T004 Implement the shared taxonomy axis, term, severity, and next-action policy contract in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorOutcomeTaxonomy.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorSemanticAxis.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorStateClassification.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/OperatorNextActionPolicy.php - T005 Extend the shared badge boundary to carry taxonomy metadata and enforce diagnostic severity rules in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/BadgeSpec.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/BadgeCatalog.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/BadgeRenderer.php - T006 [P] Wire taxonomy-aware architectural guard expectations into
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Guards/NoAdHocStatusBadgesTest.phpand/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Guards/NoDiagnosticWarningBadgesTest.php - T007 [P] Add shared badge-contract coverage for taxonomy registration, invalid severity combinations, and required next-action policies in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/BadgeCatalogTest.phpand/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/OperatorOutcomeTaxonomyTest.php
Checkpoint: The repo has one shared taxonomy registry, one shared badge-enforcement boundary, and one curated-example rubric, so story-specific adoption can proceed independently.
Phase 3: User Story 2 - Know What Happened And Whether Action Is Needed (Priority: P1) 🎯 MVP
Goal: Use operations as the proving ground for cause-specific, action-oriented, and tenant-safe state presentation.
Independent Test: Review adopted operations list, detail, widget, and notification examples and confirm that blocked, partial, stale, and terminal states explain what happened and whether action is required in one inspection step without leaking unauthorized tenant state.
Tests for User Story 2
- T008 [P] [US2] Extend operations outcome, blocked, and summary-language coverage in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/OperationRunBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Operations/OperationRunBlockedExecutionPresentationTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Filament/RecentOperationsSummaryWidgetTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Notifications/OperationRunNotificationTest.php - T009 [P] [US2] Add positive and negative authorization plus non-leakage coverage for operations surfaces in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/OpsUx/NonLeakageWorkspaceOperationsTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Monitoring/OperationsTenantScopeTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/MonitoringOperationsTest.php
Implementation for User Story 2
- T010 [US2] Make operation outcomes taxonomy-backed, cause-specific, and action-oriented in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/OperationRunOutcomeBadge.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/OpsUx/OperationUxPresenter.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/OpsUx/SummaryCountsNormalizer.php - T011 [US2] Normalize blocked, failed, and no-action-needed guidance for operation notifications in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/OpsUx/RunFailureSanitizer.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Notifications/OperationRunCompleted.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Notifications/OperationRunQueued.php - T012 [US2] Update operations list, workspace widget, and run-detail surfaces to render primary labels and next steps consistently in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Widgets/Dashboard/RecentOperations.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/widgets/workspace/workspace-recent-operations.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/pages/monitoring/operations.blade.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/system/pages/ops/view-run.blade.php
Checkpoint: User Story 2 is complete when operations surfaces provide the shared actionability vocabulary and remain tenant-safe under positive and negative authorization cases.
Phase 4: User Story 1 - Distinguish Real Governance Risk From Diagnostics (Priority: P1)
Goal: Ensure valid-empty, product-support, and diagnostic-only states stop presenting as real governance warnings on the bounded evidence, review, and baseline slice.
Independent Test: Review adopted evidence, review, and baseline surfaces and confirm valid-empty states are neutral or informational, freshness is distinct from completeness, and support limitations remain diagnostic rather than primary warnings.
Tests for User Story 1
- T013 [P] [US1] Extend valid-empty, freshness, and explicit no-action-needed coverage in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Evidence/EvidenceOverviewPageTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Evidence/EvidenceSnapshotResourceTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Evidence/EvidenceSnapshotBadgeTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/TenantReview/TenantReviewBadgeTest.php - T014 [P] [US1] Extend baseline diagnostic-boundary, secondary-detail, and tenant-scope coverage in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Support/Badges/BaselineSnapshotRenderingBadgeTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Filament/BaselineSnapshotAuthorizationTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Filament/BaselineProfileFoundationScopeTest.php
Implementation for User Story 1
- T015 [US1] Reclassify evidence and tenant-review completeness semantics in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Evidence/EvidenceCompletenessState.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/TenantReviewCompletenessState.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/EvidenceCompletenessBadge.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/TenantReviewCompletenessStateBadge.php - T016 [US1] Reclassify baseline fidelity and gap semantics so support limitations stay diagnostic in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Services/Baselines/SnapshotRendering/FidelityState.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Services/Baselines/SnapshotRendering/GapSummary.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/BaselineSnapshotFidelityBadge.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/BaselineSnapshotGapStatusBadge.php - T017 [US1] Update evidence, review, and baseline surfaces to show neutral valid-empty states and explicit no-action-needed copy in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/infolists/entries/baseline-snapshot-groups.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/infolists/entries/evidence-dimension-summary.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/infolists/entries/tenant-review-summary.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/pages/monitoring/evidence-overview.blade.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Pages/Reviews/ReviewRegister.php
Checkpoint: User Story 1 is complete when operators can distinguish real governance warnings from diagnostics across the adopted evidence, review, and baseline slice.
Phase 5: User Story 3 - Reuse One Vocabulary Across Domains (Priority: P2)
Goal: Converge restore semantics and cross-view safety across the bounded first-slice adoption set so the same terms keep the same meaning everywhere they appear.
Independent Test: Review the bounded first-slice adoption set across operations, evidence or review completeness, baselines, and restore surfaces and confirm the same shared term dictionary applies everywhere while global search, counts, and filters remain tenant-safe.
Tests for User Story 3
- T018 [P] [US3] Extend restore semantic-clarity, next-step, and taxonomy-invariant coverage in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/RestoreRunBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/RestoreUiBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/OpsUx/RestoreExecutionOperationRunSyncTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Guards/NoAdHocStatusBadgesTest.php - T019 [P] [US3] Add global-search hint-suppression and canonical-view non-leakage coverage for taxonomy-backed labels in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Filament/TenantGlobalSearchLifecycleScopeTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/OpsUx/NonLeakageWorkspaceOperationsTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Evidence/EvidenceSnapshotResourceTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Filament/BaselineSnapshotAuthorizationTest.php
Implementation for User Story 3
- T020 [US3] Qualify restore run, item result, preview, and check semantics with shared axes and next-step rules in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/RestoreRunStatusBadge.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/RestoreResultStatusBadge.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/RestorePreviewDecisionBadge.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Support/Badges/Domains/RestoreCheckSeverityBadge.php - T021 [US3] Preserve tenant-safe search and scope behavior for taxonomy-backed labels in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Concerns/ScopesGlobalSearchToTenant.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Resources/OperationRunResource.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Resources/EvidenceSnapshotResource.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Resources/BaselineSnapshotResource.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/app/Filament/Resources/TenantReviewResource.php - T022 [US3] Align restore and adopted canonical surfaces to the shared term dictionary in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/infolists/entries/restore-results.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/forms/components/restore-run-checks.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/infolists/entries/restore-preview.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/widgets/dashboard/needs-attention.blade.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/resources/views/filament/widgets/workspace/workspace-needs-attention.blade.php - T023 [US3] Publish migration guidance and curated example mappings for the bounded adoption slice in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/docs/product/operator-semantic-taxonomy.md,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/research.md, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/quickstart.md
Checkpoint: User Story 3 is complete when restore semantics and all adopted canonical or tenant-context surfaces use the same vocabulary and remain safe under scoped search and aggregation behavior.
Phase 6: Polish & Cross-Cutting Concerns
Purpose: Finalize contract artifacts, verify the staged rollout, and keep the branch releasable.
- T024 [P] Align the feature artifacts with the implemented taxonomy decisions in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/contracts/operator-state-presentation.logical.openapi.yaml,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/contracts/operator-taxonomy-entry.schema.json,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/research.md, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/quickstart.md - T025 [P] Run the focused Pest suites from
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/quickstart.mdcovering/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/OperatorOutcomeTaxonomyTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Guards/NoDiagnosticWarningBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/OperationRunBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Evidence/EvidenceSnapshotBadgeTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Support/Badges/BaselineSnapshotRenderingBadgeTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Unit/Badges/RestoreRunBadgesTest.php,/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Notifications/OperationRunNotificationTest.php, and/Users/ahmeddarrazi/Documents/projects/TenantAtlas/tests/Feature/Filament/TenantGlobalSearchLifecycleScopeTest.php - T026 Run formatting for touched files with
vendor/bin/sail bin pint --dirty --format agent - T027 [P] Validate the manual smoke checklist in
/Users/ahmeddarrazi/Documents/projects/TenantAtlas/specs/156-operator-outcome-taxonomy/quickstart.mdagainst/admin/operations,/admin/reviews,/admin/monitoring/evidence-overview, and representative baseline and restore detail surfaces
Dependencies & Execution Order
Phase Dependencies
- Phase 1: Setup has no dependencies and can start immediately.
- Phase 2: Foundational depends on Phase 1 and blocks all user story work.
- Phase 3: User Story 2 depends on Phase 2 and delivers the recommended MVP slice.
- Phase 4: User Story 1 depends on Phase 2 and should follow the operations proving ground while the shared vocabulary is still fresh.
- Phase 5: User Story 3 depends on Phase 2 and should land after the two P1 slices prove the taxonomy on real runtime paths.
- Phase 6: Polish depends on all desired user stories being complete.
User Story Dependencies
- User Story 2 (P1) should start first after the foundational phase because operations are the proving ground for the shared actionability vocabulary.
- User Story 1 (P1) should follow User Story 2 to remove the highest-volume false-warning patterns from the bounded evidence, review, and baseline slice.
- User Story 3 (P2) depends on the foundational phase and should follow the two P1 slices so restore semantics and cross-view safety build on proven vocabulary.
Within Each User Story
- Tests MUST be written and fail before implementation.
- Shared taxonomy and badge-enforcement work must exist before any domain mapper rewrites begin.
- Shared surfaces and helper copy should be updated after the underlying badge or enum semantics are in place.
- Canonical-view non-leakage and global-search safety checks should pass before finalizing any cross-tenant-facing wording changes.
Parallel Opportunities
T002andT003can run in parallel.T006andT007can run in parallel afterT004andT005define the shared contract.T008andT009can run in parallel within User Story 2.T013andT014can run in parallel within User Story 1.T018andT019can run in parallel within User Story 3.T024,T025, andT027can run in parallel after implementation is complete.
Parallel Example: User Story 2
# Split operations semantics from operations RBAC/non-leakage coverage:
Task: "Extend operations outcome, blocked, and summary-language coverage in tests/Unit/Badges/OperationRunBadgesTest.php, tests/Feature/Operations/OperationRunBlockedExecutionPresentationTest.php, tests/Feature/Filament/RecentOperationsSummaryWidgetTest.php, and tests/Feature/Notifications/OperationRunNotificationTest.php"
Task: "Add positive and negative authorization plus non-leakage coverage for operations surfaces in tests/Feature/OpsUx/NonLeakageWorkspaceOperationsTest.php, tests/Feature/Monitoring/OperationsTenantScopeTest.php, and tests/Feature/MonitoringOperationsTest.php"
Parallel Example: User Story 1
# Split valid-empty coverage from baseline diagnostic-boundary coverage:
Task: "Extend valid-empty, freshness, and explicit no-action-needed coverage in tests/Feature/Evidence/EvidenceOverviewPageTest.php, tests/Feature/Evidence/EvidenceSnapshotResourceTest.php, tests/Unit/Evidence/EvidenceSnapshotBadgeTest.php, and tests/Unit/TenantReview/TenantReviewBadgeTest.php"
Task: "Extend baseline diagnostic-boundary, secondary-detail, and tenant-scope coverage in tests/Unit/Support/Badges/BaselineSnapshotRenderingBadgeTest.php, tests/Feature/Filament/BaselineSnapshotAuthorizationTest.php, and tests/Feature/Filament/BaselineProfileFoundationScopeTest.php"
Parallel Example: User Story 3
# Split restore semantics from search/non-leakage hardening:
Task: "Extend restore semantic-clarity, next-step, and taxonomy-invariant coverage in tests/Unit/Badges/RestoreRunBadgesTest.php, tests/Unit/Badges/RestoreUiBadgesTest.php, tests/Feature/OpsUx/RestoreExecutionOperationRunSyncTest.php, and tests/Feature/Guards/NoAdHocStatusBadgesTest.php"
Task: "Add global-search hint-suppression and canonical-view non-leakage coverage for taxonomy-backed labels in tests/Feature/Filament/TenantGlobalSearchLifecycleScopeTest.php, tests/Feature/OpsUx/NonLeakageWorkspaceOperationsTest.php, tests/Feature/Evidence/EvidenceSnapshotResourceTest.php, and tests/Feature/Filament/BaselineSnapshotAuthorizationTest.php"
Implementation Strategy
MVP First
- Complete Phase 1: Setup.
- Complete Phase 2: Foundational.
- Complete Phase 3: User Story 2.
- Stop and validate that operations surfaces communicate actionability in one inspection step and remain tenant-safe under positive and negative authorization cases.
Incremental Delivery
- Land the shared taxonomy reference, curated example rubric, and badge contract.
- Deliver User Story 2 to prove the shared actionability vocabulary on operations.
- Deliver User Story 1 to remove false-warning patterns from evidence, review, and baseline semantics.
- Deliver User Story 3 to converge restore semantics and harden cross-view search and aggregation safety.
- Finish with Phase 6 regression, formatting, and manual validation.
Team Strategy
- One engineer owns the shared taxonomy registry and badge contract in
app/Support/Badges. - A second engineer can prepare operations semantics and operations RBAC/non-leakage coverage in parallel once the foundational contract lands.
- A third engineer can prepare evidence, review, and baseline diagnostic-boundary coverage once User Story 2 proves the vocabulary.
- Final restore convergence and global-search hardening land after the two P1 slices are proven.
Notes
[P]tasks are limited to work on different files with no incomplete dependency overlap.- User Story 2 is the recommended MVP because it matches the plan's rollout order and proves the shared actionability vocabulary on the most centralized runtime path.
- User Story 1 removes the highest-volume false-warning patterns from the bounded first-slice domains.
- User Story 3 finishes the bounded first slice by converging restore semantics and hardening search plus aggregation safety.