# AEG-V16-017 — FieldShell standardization

## Scope

- **WBS / Requirement / UI / Test:** AEG-V16-017 / REQ-V16-FEC-01 / UI-V16-FEC-01 / T-V16-FEC-01
- **Classification:** one FE component vertical slice; no API, database, policy, provider, or design-token contract change.
- **Target gate:** MVP-A.  This note records implementation evidence only; it does not claim the gate is passed.

## Source / Assumption / Unknown / Decision Required

- **Source:** `docs/CURRENT/CATALOGS/WBS_MASTER.csv`, `docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv`, `contracts/ui/ui-adapter.v4.json`, and the existing components under `frontend/src/shared/ui/components/`.
- **Assumption:** the v4 provider adapters preserve fall-through ARIA attributes on their concrete input control. This is characterized by the shared-component test; provider-level evidence remains owned by AEG-V16-013 and AEG-V16-066.
- **Unknown:** the tracker has no rows for AEG-V16-009 through AEG-V16-016, while the Master marks them PLANNED and their source artifacts exist. Their acceptance evidence has not been reconstructed in this slice.
- **Decision Required:** a WBS owner must reconcile the Master and progress tracker and attach/approve the AEG-V16-016 vendor-boundary evidence before AEG-V16-017 can be marked COMPLETED.

## Acceptance mapping

| Acceptance requirement | Implementation evidence |
| --- | --- |
| label/error/help/ARIA single boundary | `FieldShell.vue` owns IDs, label, required indicator, invalid state, and message relationship. |
| no repeated field chrome in feature components | text, textarea, select, date, and number wrappers render `FieldShell`. |
| reproducible regression check | `FieldShell.spec.ts`, `pnpm typecheck`, and `pnpm test` result are recorded in the tracker after execution. |

## Non-goals

- Provider selection, capability changes, visual approval, and runtime API behavior.
- Multi-select and checkbox semantics: their v4 provider contracts do not yet expose the normalized field-control props needed for a safe conversion.
