# 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.
