From 39ca04c0cad5928d30361b254fbafbff077ee83c Mon Sep 17 00:00:00 2001 From: Ahmed Darrazi Date: Sun, 21 Jun 2026 21:42:12 +0200 Subject: [PATCH] feat: add product surface gate and gatekeeper contracts --- .gitea/pull_request_template.md | 9 + .specify/README.md | 17 + .specify/memory/constitution.md | 55 +- .specify/templates/checklist-template.md | 10 + .specify/templates/plan-template.md | 27 + .specify/templates/spec-template.md | 55 ++ .specify/templates/tasks-template.md | 12 +- Agents.md | 18 + .../Guards/ProductSurfaceContractGateTest.php | 136 ++++ apps/platform/tests/Pest.php | 1 + .../tests/Support/TestLaneManifest.php | 28 + docs/product/standards/README.md | 1 + .../standards/product-surface-contract.md | 278 +++++++ docs/ui-ux-enterprise-audit/README.md | 6 + docs/ui/action-surface-contract.md | 6 + docs/ui/operator-ux-surface-standards.md | 7 + .../checklists/requirements.md | 49 ++ .../implementation-report.md | 104 +++ specs/395-product-surface-gate/plan.md | 267 +++++++ specs/395-product-surface-gate/spec.md | 686 ++++++++++++++++++ specs/395-product-surface-gate/tasks.md | 110 +++ 21 files changed, 1856 insertions(+), 26 deletions(-) create mode 100644 apps/platform/tests/Feature/Guards/ProductSurfaceContractGateTest.php create mode 100644 docs/product/standards/product-surface-contract.md create mode 100644 specs/395-product-surface-gate/checklists/requirements.md create mode 100644 specs/395-product-surface-gate/implementation-report.md create mode 100644 specs/395-product-surface-gate/plan.md create mode 100644 specs/395-product-surface-gate/spec.md create mode 100644 specs/395-product-surface-gate/tasks.md diff --git a/.gitea/pull_request_template.md b/.gitea/pull_request_template.md index c49b1ba5..686149a0 100644 --- a/.gitea/pull_request_template.md +++ b/.gitea/pull_request_template.md @@ -27,5 +27,14 @@ ## UI (Filament/Livewire) (falls relevant) - [ ] Screenshots/Notizen hinzugefügt - [ ] UI Surface Impact in der Spec dokumentiert: entweder `[x] No UI surface impact` mit Begründung oder UI/Productization Coverage + Audit-Artefakte aktualisiert +## Product Surface Contract (falls relevant) +- [ ] Product Surface Contract geprüft (`docs/product/standards/product-surface-contract.md`) +- [ ] No-Legacy / keine Compatibility-Shims bestätigt oder Ausnahme dokumentiert +- [ ] Product Surface Impact, Page Archetype, Surface Budgets, Technical Annex / Deep-Link-Demotion und Status-Vocabulary dokumentiert +- [ ] Product Surface Exceptions dokumentiert oder `none` +- [ ] Browser proof erledigt oder `N/A - no rendered UI surface changed` begründet +- [ ] Human Product Sanity Check und sichtbarer Complexity-Outcome dokumentiert +- [ ] Implementation Report enthält Tests, Browser/No-Browser, Livewire v4, Provider-Registration, Global Search, destructive actions, Asset-Strategie und Deployment Impact + ## Notes diff --git a/.specify/README.md b/.specify/README.md index 4aa543a4..2c98fa5d 100644 --- a/.specify/README.md +++ b/.specify/README.md @@ -31,6 +31,23 @@ ## Review Entry Point 3. Apply the checklist and end with both one review outcome class (`blocker`, `strong-warning`, `documentation-required-exception`, or `acceptable-special-case`) and one workflow outcome (`keep`, `split`, `document-in-feature`, `follow-up-spec`, or `reject-or-split`). 4. If a guarded surface or exception remains in scope, ensure the active feature PR close-out entry records the final note rather than leaving the decision in scattered review comments. +## Product Surface Contract Gate + +Future UI-affecting specs must reference +`docs/product/standards/product-surface-contract.md` and carry its completion +gate through `spec.md`, `plan.md`, `tasks.md`, the generated checklist, and +the PR close-out. + +The gate requires a no-legacy posture, Product Surface Impact, page +archetype, surface-budget decision, Technical Annex/deep-link demotion, +canonical status vocabulary, Product Surface exception handling, focused +browser proof or a justified no-browser path, Human Product Sanity status, +visible complexity outcome, and implementation-report fields. + +Completed historical specs are context only. Do not rewrite closed specs, +delete validation history, or normalize old task/browser evidence solely to +satisfy new Product Surface wording. + ## Low-Impact Rule - Docs-only or template-only work may answer `N/A` or `none`. diff --git a/.specify/memory/constitution.md b/.specify/memory/constitution.md index 52f0ba5a..e0166f82 100644 --- a/.specify/memory/constitution.md +++ b/.specify/memory/constitution.md @@ -1,35 +1,32 @@