# Quickstart: UI Copy, IA & Localization Neutralization

## Purpose

Implement the bounded environment-first glossary convergence on the confirmed post-workspace-first admin surfaces only.

## Preconditions

1. Work on a branch that already contains the current workspace-first route and environment dashboard seams.
2. Do not widen into route/slug/class renaming.
3. Keep auth-provider labels and deeper provider-specific diagnostics out of scope unless the spec explicitly names them.

## Recommended Implementation Order

1. Update the in-scope localization catalogs and directly surfaced key family from `tenant_*` to `environment_*`.
2. Apply the new glossary to chooser and landing surfaces.
3. Apply the same glossary to dashboard headings, shared shell labels, registry return labels, and workspace widgets.
4. Neutralize the bounded provider helper text on `PolicyResource`, `ViewPolicy`, `VersionsRelationManager`, and `baseline-compare-landing` only.
5. Run the exact proof commands below.

## Proof Commands

```bash
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Localization/EnvironmentContextTerminologyTest.php tests/Feature/Filament/EnvironmentContextSurfaceCopyTest.php tests/Feature/Filament/Localization/PolicyInventoryLocalizationTest.php tests/Feature/Guards/EnvironmentCopyNeutralizationGuardTest.php
```

```bash
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec286EnvironmentCopyNeutralizationSmokeTest.php
```

```bash
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent
```

## Manual Review Prompts

- Confirm the chooser and registry no longer say `tenant` in their primary title, CTA, or empty-state copy.
- Confirm dashboard and shell labels say `environment` while route targets remain unchanged.
- Confirm auth-provider labels such as `Sign in with Microsoft` remain unchanged.
- Confirm provider-specific helper text remains available only as secondary detail on `PolicyResource`, `ViewPolicy`, `VersionsRelationManager`, and `baseline-compare-landing` where the provider is genuinely the subject.

## Explicit Stop Conditions

- If implementation requires route/slug/class renames, stop and split the work.
- If implementation requires RBAC capability renaming, stop and split the work.
- If implementation discovers broader provider-owned copy cleanup outside the bounded admin surfaces, record it as follow-up rather than widening `286`.