docs(sdd): authorize frontend implementation
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
# Phase 2 Implementation Plan — Merchant Analytics Dashboard
|
||||
|
||||
- Status: Approved
|
||||
- SDD phase: 2 — Plan approved; Phase 3 task list approved
|
||||
- Status: Approved — Phase 4 implementation authorized 2026-08-20
|
||||
- SDD phase: 4 — Plan and task list approved; implementation authorized
|
||||
- Capability: Merchant dashboard
|
||||
- Implementation authorization: Not granted
|
||||
- Implementation authorization: Granted by user on 2026-08-20
|
||||
- Approved task list: `tasks/todo.md`
|
||||
- Last updated: 2026-08-20
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Build the approved Persian RTL merchant analytics dashboard as a statically built SvelteKit application behind Nginx. The browser authenticates with the backend-owned server session, consumes the same-origin merchant API, renders the four analytics sections independently through snapshot/SSE delivery, provides safe merchant-owned detail views and CSV export, and meets the approved responsive, theme, privacy, and WCAG 2.2 AA contracts.
|
||||
|
||||
This plan does not authorize scaffolding, dependency installation, Svelte components, API code, or deployment changes. After approval, SDD Phase 3 converts each work package into small tasks with explicit acceptance criteria, verification, dependencies, and no more than approximately five files per task.
|
||||
Implementation is authorized through the approved Phase 3 task list. Each work package remains constrained by its acceptance criteria, verification, dependencies, and approximately five-file limit.
|
||||
|
||||
## 2. Approved inputs
|
||||
|
||||
@@ -23,9 +23,9 @@ This plan does not authorize scaffolding, dependency installation, Svelte compon
|
||||
| Backend `IDENTITY-SPEC.md` | Approved | Session, login, logout, CSRF, throttle, and tenant boundary |
|
||||
| Backend `ANALYTICS-SPEC.md` | Approved | Metric lifecycle, partial delivery, retries, thresholds, and privacy |
|
||||
| Backend `METRIC-CATALOGUE.md` `0.4.0` | Approved definitions | Metric semantics and formatting evidence |
|
||||
| Backend `API-SPEC.md` | Draft | Proposed REST/SSE/CSV behavior; cannot yet authorize implementation |
|
||||
| Backend `docs/openapi.yaml` `0.1.0-draft` | Draft | Proposed generated types and operation contracts |
|
||||
| Nginx/static routing contract | Unresolved | Required before production/static-host verification |
|
||||
| Backend `API-SPEC.md` | Approved | REST/SSE/CSV behavior and provider boundary |
|
||||
| Backend `docs/openapi.yaml` `1.0.0` | Approved | Generated types and operation contracts |
|
||||
| Nginx/static routing contract | Approved | Production/static-host verification contract |
|
||||
|
||||
## 3. Planning assumptions
|
||||
|
||||
@@ -50,9 +50,9 @@ Implementation cannot start until all items in Gate A are approved. Foundation w
|
||||
- [x] CSV limits/encoding, audit retention, terminal-reference presentation, and the production Problem Details URI namespace are approved.
|
||||
- [x] UX export states are reconciled with synchronous CSV delivery and error handling.
|
||||
- [x] Nginx serves history fallback only for frontend routes; `/api/v1` and reserved operational paths never fall through to `index.html`.
|
||||
- [ ] Obtain a separate explicit instruction to begin implementation.
|
||||
- [ ] Confirm `merchant.displayName` from `AuthSession` is the shell/export display authority.
|
||||
- [ ] Confirm whether visible chart-data tables are sufficient or chart-data downloads are also required.
|
||||
- [x] Separate explicit instruction to begin implementation received on 2026-08-20.
|
||||
- [x] `merchant.displayName` from `AuthSession` is the shell/export display authority.
|
||||
- [x] Visible semantic chart-data tables are sufficient; chart-data download is not a separate MVP export.
|
||||
|
||||
### Gate B — scaffold verification
|
||||
|
||||
@@ -436,14 +436,14 @@ No Phase 3 task may say merely “build the dashboard” or combine a foundation
|
||||
|
||||
Approved on 2026-08-20:
|
||||
|
||||
1. Build order and the hard rule that implementation cannot consume `openapi.yaml` while it remains `0.1.0-draft`.
|
||||
2. Synchronous CSV defaults: 100,000 rows, 50 MiB, 60 seconds, 3 requests/10 minutes with burst 1, UTF-8 BOM, and ASCII `snake_case` headers.
|
||||
3. Thirty-day analytics/export audit retention for the hackathon.
|
||||
1. Build order and the hard rule that implementation consumes only the approved backend `openapi.yaml` version `1.0.0` from a recorded immutable source revision.
|
||||
2. Synchronous CSV defaults: 100,000 rows, 50 MiB, 60 seconds, 3 requests/10 minutes with burst 1, UTF-8 BOM, and the approved stable Persian headers.
|
||||
3. Ninety-day analytics/export audit retention for the hackathon; minimal demo-authentication audit retention remains 30 days.
|
||||
4. Display/export of the existing approved opaque terminal reference.
|
||||
5. `merchant.displayName` as the shell and CSV-preflight merchant name.
|
||||
6. Early SSE, CSV-delivery, and chart risk spikes before committing their implementation patterns or dependencies.
|
||||
|
||||
Still external contract inputs: the production Problem Details base URI and the exact Nginx deep-link/static fallback plus `/api/v1` proxy behavior.
|
||||
Resolved external contracts: the production Problem Details base URI is owned by the backend contract, and the exact Nginx deep-link/static fallback plus `/api/v1` proxy behavior is owned by the deployment contract.
|
||||
|
||||
## 16. Official implementation references
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# Phase 3 Task List — Merchant Analytics Dashboard
|
||||
|
||||
- Status: Approved task list — implementation explicitly paused
|
||||
- SDD phase: 3 — Tasks approved; Phase 4 not authorized
|
||||
- Status: Approved — Phase 4 implementation authorized 2026-08-20
|
||||
- SDD phase: 4 — Tasks approved and ready to execute
|
||||
- Source plan: [`plan.md`](plan.md)
|
||||
- Implementation authorization: Not granted
|
||||
- Implementation authorization: Granted by user on 2026-08-20
|
||||
- Approved by user: 2026-08-20
|
||||
- Last updated: 2026-08-20
|
||||
|
||||
Tasks are ordered by dependency. Each implementation task must satisfy its acceptance criteria plus the Definition of Done in `tasks/plan.md`. Likely files are planning targets and may be adjusted before work begins, but a task must be split if it would exceed approximately five files or one focused session.
|
||||
|
||||
Approval of this task list closes the SDD Phase 3 review gate only. It does not authorize starting any task, scaffolding the application, installing dependencies, editing application code, or otherwise entering Phase 4. Implementation begins only after a separate explicit user instruction.
|
||||
The user approved this task list and explicitly authorized Phase 4 implementation on 2026-08-20. Execute tasks in dependency order and stop at their named review checkpoints.
|
||||
|
||||
Commands named below are established by Task 4. Before then, verification uses the scaffold's generated commands and read-only contract checks.
|
||||
|
||||
@@ -21,7 +21,7 @@ Commands named below are established by Task 4. Before then, verification uses t
|
||||
|
||||
**Acceptance criteria:**
|
||||
- [ ] Backend `API-SPEC.md` and `openapi.yaml` identify an approved matching version.
|
||||
- [ ] Approved CSV defaults, 30-day analytics/export audit retention, opaque terminal reference, and stable Problem Details base URI are recorded by the provider.
|
||||
- [ ] Approved CSV defaults, 90-day analytics/export audit retention, 30-day demo-authentication audit retention, opaque terminal reference, and stable Problem Details base URI are recorded by the provider.
|
||||
- [ ] A checksum or immutable commit hash is recorded for frontend generation.
|
||||
|
||||
**Verification:**
|
||||
|
||||
Reference in New Issue
Block a user