TenantAtlas/specs/324-ui-productization-coverage-guardrails/tasks.md
ahmido e35706b846 Spec 324: add UI productization coverage guardrails (#384)
## Summary
- add the Spec 324 package for UI Productization Coverage Guardrails, including spec, plan, tasks, and requirements checklist
- update Spec Kit templates and implementation prompts so future work must record UI surface impact, including navigation and Filament panel/provider surfaces
- harden the UI productization coverage guard script and add the validation helper for lightweight guard execution
- document the proportional guardrail flow in the UI/UX enterprise audit README

## Validation
- not run in this step
- change set is docs/tooling/governance only; no product runtime implementation included

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #384
2026-05-17 19:01:48 +00:00

154 lines
9.2 KiB
Markdown

# Tasks: Spec 324 - UI Productization Coverage Guardrails
**Input**: `specs/324-ui-productization-coverage-guardrails/spec.md` and `plan.md`
**Prerequisites**: Spec 323 UI audit foundation exists on `platform-dev`
**Tests**: Shell/docs/tooling validation only. No runtime product tests unless implementation accidentally changes runtime behavior, which is out of scope.
## Phase 1: Inspect Existing Spec-Kit Files
- [x] T001 Locate Constitution file at `.specify/memory/constitution.md`.
- [x] T002 Locate spec, plan, tasks, and checklist templates under `.specify/templates/`.
- [x] T003 Locate implementation prompts under `.codex/prompts/` and `.github/agents/`.
- [x] T004 Locate existing scripts and CI/Gitea conventions for lightweight static checks.
- [x] T005 Review Spec 323 as completed historical context and do not rewrite its close-out/task history.
- [x] T006 Confirm no `specs/324-*` package existed before this feature branch except the active package.
## Phase 2: Add Or Verify Constitution Principle
- [x] T007 Add or verify the UI/Productization Coverage principle in `.specify/memory/constitution.md`.
- [x] T008 Keep Constitution wording principle-level and avoid long script details.
- [x] T009 Ensure Navigation and Filament provider/panel surfaces are covered by the principle or by template/prompt details without bloating the Constitution.
## Phase 3: Update Spec Template
- [x] T010 Update `.specify/templates/spec-template.md` to require the UI Surface Impact section.
- [x] T011 Add or verify the UI/Productization Coverage section.
- [x] T012 Add explicit UI Surface Impact options for `Navigation changed`.
- [x] T013 Add explicit UI Surface Impact options for `Filament panel/provider surface changed`.
- [x] T014 Add status/evidence/review and workspace/environment context presentation options where they fit the existing template.
- [x] T015 Add or verify the no-impact rationale requirement.
- [x] T016 Keep proportional guidance clear: not every UI change needs a screenshot or full page report.
## Phase 4: Update Plan, Tasks, And Checklist Templates
- [x] T017 Update `.specify/templates/plan-template.md` with a UI/Productization Guardrail Check section or verify the existing section satisfies Spec 324.
- [x] T018 Ensure the plan template requires affected routes/pages/actions/states/navigation/panel surfaces where relevant.
- [x] T019 Ensure the plan template supports backend-only, docs-only, tooling-only, test-only, and non-material UI no-impact rationale.
- [x] T020 Update `.specify/templates/tasks-template.md` with proportional UI coverage task requirements.
- [x] T021 Ensure the tasks template includes `No UI surface impact` with rationale for no-impact specs.
- [x] T022 Update `.specify/templates/checklist-template.md` with UI/Productization Coverage checks.
- [x] T023 Ensure checklist template explicitly considers Navigation and Filament provider/panel surface changes.
## Phase 5: Update Agent Prompts
- [x] T024 Update `.codex/prompts/speckit.implement.md` to require UI impact evaluation before implementation.
- [x] T025 Update `.codex/prompts/speckit.implement.md` to require a coverage decision before completion.
- [x] T026 Update `.codex/prompts/speckit.implement.md` to include Navigation and Filament provider/panel surface awareness.
- [x] T027 Update `.codex/prompts/speckit.implement.md` to document proportional coverage expectations.
- [x] T028 Apply the same implementation-prompt changes to `.github/agents/speckit.implement.agent.md`.
- [x] T029 If another existing implementation prompt convention is discovered, update it only when it is clearly the same workflow surface.
## Phase 6: Add Or Update Mechanical Guard
- [x] T030 Update `scripts/check-ui-productization-coverage`.
- [x] T031 Ensure the script is executable.
- [x] T032 Detect Filament page/resource paths under `apps/platform/app/Filament/`.
- [x] T033 Detect Blade view paths under `apps/platform/resources/views/`.
- [x] T034 Detect Livewire paths under `apps/platform/app/Livewire/`.
- [x] T035 Detect route paths under `apps/platform/routes/`.
- [x] T036 Detect `apps/platform/app/Support/Navigation/`.
- [x] T037 Detect `apps/platform/app/Providers/Filament/`.
- [x] T038 Do not broaden to all `apps/platform/app/Support/`.
- [x] T039 Do not broaden to all `apps/platform/app/Providers/`.
- [x] T040 Detect concrete coverage acknowledgment through changed specs with checked UI impact, changed specs with checked no-impact plus nearby rationale, or real audit coverage artifacts.
- [x] T041 Support checked no-impact rationale.
- [x] T042 Provide the clear Spec 324 failure message.
- [x] T043 Provide the expected pass message.
- [x] T044 Avoid external dependencies.
- [x] T045 Preserve local and CI/Gitea compatibility.
- [x] T068 Ensure generic template/prompt/doc phrases do not count as coverage acknowledgment when guarded UI files changed.
## Phase 7: Update Guardrail Documentation
- [x] T046 Update `docs/ui-ux-enterprise-audit/README.md` or the existing guardrail documentation path with standalone usage.
- [x] T047 Document `scripts/check-ui-productization-coverage HEAD`.
- [x] T048 Document proportional coverage: strategic page, domain page, small existing surface change, backend-only work.
- [x] T049 Document Navigation and Filament provider/panel surface handling.
- [x] T050 Document that full page reports and screenshots are not required for every tiny UI change.
## Phase 8: Validate Guard Behavior
- [x] T051 Validate no UI diff passes.
- [x] T052 Validate backend-only diff passes.
- [x] T053 Validate docs-only diff passes.
- [x] T054 Validate UI diff without coverage fails.
- [x] T055 Validate UI diff with coverage acknowledgment passes.
- [x] T056 Validate UI diff with no-impact rationale passes.
- [x] T057 Validate Navigation surface diff is detected.
- [x] T058 Validate Filament provider surface diff is detected.
- [x] T059 Validate Navigation/provider surface diff with coverage acknowledgment passes.
- [x] T060 Revert any temporary validation diffs before final state.
- [x] T069 Validate UI diff with unchecked template heading fails.
- [x] T070 Validate UI diff with unchecked spec checkbox fails.
- [x] T071 Validate UI diff with checked UI impact item in spec passes.
- [x] T072 Validate UI diff with checked no-impact and rationale passes.
- [x] T073 Validate UI diff with checked no-impact but no rationale fails.
- [x] T074 Validate UI diff with real audit coverage artifact update passes.
- [x] T075 Validate Navigation/provider diff without acknowledgment fails.
- [x] T076 Validate Navigation/provider diff with checked acknowledgment passes.
- [x] T077 Validate backend-only and docs-only diffs pass.
- [x] T078 Validate untracked guarded UI file without acknowledgment fails.
## Phase 9: Final Validation
- [x] T061 Run `bash -n scripts/check-ui-productization-coverage`.
- [x] T062 Run `bash scripts/check-ui-productization-coverage HEAD`.
- [x] T063 Run `git diff --check`.
- [x] T064 Confirm no product runtime files changed.
- [x] T065 Confirm no product UI implementation was performed.
- [x] T066 Confirm no business logic changed.
- [x] T067 Document full suite not run because this spec is governance/tooling/docs-only.
- [x] T079 Run `bash -n scripts/validate-ui-productization-coverage-guard`.
- [x] T080 Run `bash scripts/validate-ui-productization-coverage-guard`.
## Runtime Stop Conditions
- [x] NT001 Evaluated and not triggered: no product Filament pages/resources were modified for runtime behavior.
- [x] NT002 Evaluated and not triggered: no Livewire components, Blade views, product routes, policies, services, jobs, models, migrations, config, runtime tests, or business logic were modified.
- [x] NT003 Evaluated and not triggered: no new package, dependency, CI framework, or toolchain was needed.
- [x] NT004 Evaluated and not triggered: the guard remains limited to targeted Navigation and Filament provider paths.
- [x] NT005 Evaluated and not triggered: product runtime behavior did not become necessary.
## Requirement Coverage Map
| Requirement(s) | Task Coverage |
| --- | --- |
| FR-324-001 | T007-T009 |
| FR-324-002, FR-324-003, FR-324-004 | T010-T016 |
| FR-324-005, FR-324-006, FR-324-007 | T017-T023 |
| FR-324-008, FR-324-009, FR-324-010 | T024-T029 |
| FR-324-011, FR-324-012, FR-324-013, FR-324-014, FR-324-015, FR-324-016, FR-324-017, FR-324-018, FR-324-019, FR-324-025 | T030-T045, T051-T059, T068-T078 |
| FR-324-020 | T046-T050 |
| FR-324-021 | Preparation package files |
| FR-324-022, FR-324-023, FR-324-024 | T061-T067, T079-T080 |
## Dependencies
1. Phase 1 must complete before file updates.
2. Phase 2 through Phase 5 can proceed independently by file group after inspection.
3. Phase 6 depends on inspection of the current guard script.
4. Phase 7 depends on final guard behavior.
5. Phase 8 depends on the updated guard script.
6. Phase 9 depends on all implementation tasks.
## MVP Scope
The minimum viable Spec 324 implementation is:
1. Templates/prompts explicitly cover Navigation and Filament provider/panel surfaces.
2. Guard script detects the required UI paths without broad Support/Provider matching.
3. Guard accepts proportional coverage acknowledgment or checked no-impact rationale.
4. Documentation explains standalone usage and proportional expectations.
5. Validation commands pass.
6. No runtime product behavior changes.