# Quickstart: Operation Run Detail Hierarchy, Deduplication, and Decision Guidance Hardening ## Goal Validate that the canonical operation-run detail page now behaves as a decision-first surface without changing route semantics, authorization, or underlying `OperationRun` meaning. ## Prerequisites 1. Start Sail if it is not already running. 2. Ensure the workspace has representative `OperationRun` fixtures for: - completed success - completed partial or follow-up required - failed - blocked - stale or reconciled - artifact-heavy baseline capture or baseline compare 3. Ensure the acting user is a valid workspace member and, for tenant-bound runs, entitled to the referenced tenant. ## Focused Automated Verification Run only the tests that guard this surface first: ```bash vendor/bin/sail artisan test --compact tests/Feature/Filament/OperationRunEnterpriseDetailPageTest.php vendor/bin/sail artisan test --compact tests/Feature/Filament/OperationRunBaselineTruthSurfaceTest.php vendor/bin/sail artisan test --compact tests/Feature/Operations/TenantlessOperationRunViewerTest.php vendor/bin/sail artisan test --compact tests/Unit/Support/Ui/EnterpriseDetail/EnterpriseDetailBuilderTest.php ``` If new spec-scoped tests are added during implementation, run them alongside the existing files with `--filter` or direct file paths. ## Manual Validation Pass For each representative run, open the canonical detail page and check the following in order. ### 1. First-screen decision quality Confirm the first visible page height answers: - what run this is - how it ended - whether the visible result is trustworthy enough to use - what the operator should do next ### 2. Next-step singularity Confirm there is exactly one leading next-step statement in the decision zone. Confirm that: - the same next-step text is not repeated in a sidebar card - the same next-step text is not repeated in a run summary section - any extra guidance is visibly secondary ### 3. Count deduplication Confirm there is no duplicate count block in main content. Allowed: - one primary count summary - one clearly diagnostic count breakdown with a different purpose Not allowed: - the same normalized counts shown twice as equal-priority summary content ### 4. Semantic separation For artifact-heavy runs, confirm the page still distinguishes: - execution status - outcome - artifact truth - result trust - next action A successful execution outcome must still be able to coexist with limited trust or weak artifact usability. ### 5. Special-state behavior For blocked, stale, or reconciled runs, confirm: - the exceptional state is visible - the explanation is understandable without opening JSON - the same lifecycle warning is not repeated as equal-priority content across banner, decision zone, and supporting facts ### 6. Type-specific coexistence For baseline compare, baseline capture, or verification-heavy runs, confirm: - the generic decision zone appears first - type-specific detail appears afterward - raw payloads and JSON remain secondary ## Non-Regression Checks Confirm the feature did not change: - canonical route identity for `/admin/operations/{run}` - workspace or tenant authorization behavior - 404 versus 403 semantics - DB-only render behavior on the page - existing related-context links and canonical navigation patterns ## Formatting And Final Verification Before finalizing implementation work: ```bash vendor/bin/sail bin pint --dirty --format agent ``` Then rerun the smallest affected test set. If the user wants a broader confidence pass afterward, offer the full suite.