# Quickstart: 103 — IA Semantics: Scope vs Filter vs Targeting ## Prerequisites - Sail running (`vendor/bin/sail up -d`) - Database migrated (`vendor/bin/sail artisan migrate`) - At least one workspace with 2+ tenants seeded ## Files to Touch ### Core (must change) 1. `app/Support/OperateHub/OperateHubShell.php` — update `scopeLabel()` copy 2. `app/Filament/Widgets/Alerts/AlertsKpiHeader.php` — fix `deliveriesQueryForViewer()` bug 3. `app/Filament/Resources/AlertRuleResource.php` — relabel form fields, add Sections + helper texts 4. `app/Filament/Resources/AlertRuleResource/Pages/ListAlertRules.php` — remove OperateHubShell header spread 5. `app/Filament/Resources/AlertDestinationResource/Pages/ListAlertDestinations.php` — remove OperateHubShell header spread ### Tests (must update/add) 6. `tests/Feature/OpsUx/OperateHubShellTest.php` — update assertions for new copy 7. New test: AlertsKpiHeader consistency (deliveries vs banner) 8. New test: Manage pages have no tenant indicator 9. Update: AlertRuleCrud test for new form labels (if label-dependent assertions exist) ## Verification ```bash # Run targeted tests vendor/bin/sail artisan test --compact --filter=OperateHubShell vendor/bin/sail artisan test --compact --filter=AlertsKpiHeader vendor/bin/sail artisan test --compact --filter=AlertRuleCrud # Run full suite vendor/bin/sail artisan test --compact ``` ## Risk Assessment - **Low risk**: Copy changes are purely presentational, no persistence or business-logic alteration. - **Medium risk**: The AlertsKpiHeader bugfix changes query filtering — existing deliveries tests should catch regressions. - **No migration**: Zero schema changes.