Skip to content

docs: formalise Phase 2 owner decisions - #8

Merged
AdilAzhariOmsan merged 1 commit into
mainfrom
docs/phase-2-owner-decisions
Nov 4, 2026
Merged

AdilAzhariOmsan merged 1 commit into
mainfrom
docs/phase-2-owner-decisions

Conversation

@AdilAzhariOmsan

Copy link
Copy Markdown
Collaborator

This records two owner decisions made on 2026-11-04 before Phase 2 (Brand Identity and Design System), and resolves the contradiction they exposed. Documentation only: no application code, dependencies, configuration, migrations or generated files.

Summary

Decision 1: ADR-0020 is Accepted (it was Proposed).

 Platform administration                     Vendor dashboard
 /admin  · Filament (Livewire)               /vendor · Vue 3 + Inertia.js
 staff (platform_role) only                  vendor members (VendorContext)
+English only                               +en · ar (RTL) · ms
+uses Phase 2 design tokens
+delegates to use cases; never writes status or money directly
 Laravel 13 compatibility checked in Phase 3; Vue fallback retained
  • The new Decision §6, surface separation, says vendors never use Filament (no panel, resource or tenancy). Both surfaces call the same use cases and policies.
  • The new Decision §7, language, makes the admin English-only.
  • The platform_role, permission-enum and VendorContext mechanisms come from ADR-0011, which stays Proposed. ADR-0020 says explicitly that they are not accepted until ADR-0011 is.
  • Under ADR-0006, an accepted ADR's text is frozen, so these clarifications are added in the same change as the acceptance.

Decision 2: P-1 is approved. Checkout flow:

visitor ── browse, search, guest cart ──► start checkout
  ├─ sign in (verified) ─────────────────────────────────────► address → place → pay
  ├─ sign in (unverified) ─┐
  └─ register inline ──────┴─► verification prompt (resend) ─► follow signed link
                                                              └► back to checkout, same cart ─► place → pay
place / pay from a guest or unverified account → rejected before any write
  • The guest cart merges at sign-in, including the automatic sign-in after registration.
  • Nothing is reserved before placement, so verifying never uses up the reservation time.

Phase 1 briefing C7 is resolved. P-1's inline sign-up contradicted FR-ID-01's "redirected to verification". Verification is now a step inside checkout, and the signed link and its 60-minute lifetime are unchanged.

These C-numbers come from the Phase 1 decision briefing. They are not Phase 0's code findings C1–C6, and Addendum A says so.

Consistency (briefing C13). Because the admin is English-only, three statements that implied every page is translated are now scoped to the storefront and vendor dashboard: PRD §6.1, release gate 7 and NFR-I18N-01.

Files (9)

File Change
docs/architecture/adr/0020-platform-administration-in-filament.md Status Accepted; owner decision and rationale; §6 surface separation; §7 language; ADR-0011 dependency note
docs/architecture/README.md ADR index: 0020 Accepted
docs/product/product-requirements.md P-1 approved, as rules (a)–(f); §5 and §6.1 rows; gate 7; §9 open list
docs/product/functional-requirements.md FR-ID-01 (registration, verification, resend, enforcement); FR-CART-02 (merge after registration); FR-CHK-01 (guest, unverified, server enforcement, resume, reservation)
docs/product/user-journeys.md CJ-1: paths 4a–4d (existing verified, existing unverified, new, return after verification); 4 new failure branches
docs/architecture/adr/0015-checkout-and-payment-orchestration.md §1: verified email required; step 1 (place) and step 2 (attempt) reject before any write
docs/architecture/security-model.md §5: checkout route group (public entry; place and pay need auth + verified; use cases re-check)
docs/product/non-functional-requirements.md NFR-I18N-01 scoped; admin English-only
docs/discovery/PHASE-1-REVIEW.md Addendum A: decisions, C7 resolution, briefing-label note, what stays open

Evidence

Verified before committing:

  • Scope:
    • 9 files changed, all under docs/;
    • 0 untracked files;
    • git diff --check is clean;
    • no CRLF line endings.
  • Statuses:
    • ADR-0020 is Accepted, by owner decision (2026-11-04);
    • ADR-0011 is still Proposed, both in the ADR file and in the index;
    • no wording says ADR-0011 is accepted.
  • Consistent enforcement: "verified before order submission and payment initiation" appears in P-1, FR-ID-01, FR-CHK-01, CJ-1, ADR-0015 §1 and security-model §5. FR-CART-02 covers only the cart merge.
  • Verification link: "60 minutes" is unchanged in FR-ID-01, CJ-1 and Addendum A.
  • Links: 121 relative links checked, 1 broken: marketplace-migration.md → ../REDESIGN_BRIEF.md. It was already broken before this PR:
    • the file is untouched on this branch;
    • the link exists on main;
    • the target is absent on main.

CI note

The PHP 8.5 / Laravel 13 job is expected to fail at composer audit. Five dependency advisories were published after main last passed CI. The fix is in #7, which is open with CI passing, and is waiting for a required review.

This PR touches only Markdown and deliberately does not work around that failure. Re-run CI here once #7 has merged.

Merge Danger

Door: two-way

Documentation only, so a revert restores the previous wording. The decisions themselves are owner approvals; reversing one would need a new ADR under ADR-0006.

Blast Radius: docs

There is no runtime effect. The change does steer Phase 2 scope (admin theming only, no admin RTL) and the Phase 3 checkout implementation.

Record two owner decisions made on 2026-11-04 before Phase 2:

- Accept ADR-0020: Filament for platform administration at /admin
  (staff only, English-only, Phase 2 tokens, use cases only, Laravel 13
  check in Phase 3 with fallback). Vendor dashboard stays Vue + Inertia.
  Adds the surface-separation and language clauses, and notes that the
  ADR-0011 mechanisms it relies on are still Proposed.
- Approve P-1: guest browsing and cart; account-required checkout with
  inline registration; verified email before order submission and
  payment initiation; resume checkout after verification.

Resolve Phase 1 briefing C7 (P-1 inline sign-up vs FR-ID-01 redirect):
verification becomes a step inside checkout. The signed 60-minute link
is unchanged. Amend FR-ID-01, FR-CART-02, FR-CHK-01, CJ-1, ADR-0015 §1
and security-model §5 routing to enforce it consistently.

Scope PRD §6.1, gate 7 and NFR-I18N-01 to the storefront and vendor UI,
because the admin is English-only (briefing C13). Record everything in
PHASE-1-REVIEW Addendum A.

Documentation only.
@AdilAzhariOmsan
AdilAzhariOmsan merged commit 57341bb into main Nov 4, 2026
1 check failed
@AdilAzhariOmsan
AdilAzhariOmsan deleted the docs/phase-2-owner-decisions branch November 4, 2026 12:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant