docs(init): validate specification — v0.6 Nomad Web UI

---ci---
project: oy
phase: 0
milestone: v0.6
status: specify
---/ci---
This commit is contained in:
2026-08-18 11:54:06 +00:00
parent 6502a5abd0
commit 68298d81b3
3 changed files with 57 additions and 12 deletions
+7 -10
View File
@@ -1,15 +1,12 @@
{ {
"phase": 8, "phase": 0,
"stage": "complete", "stage": "specify",
"milestone": "v0.5", "milestone": "v0.6",
"milestone_type": "feature", "milestone_type": "feature",
"tag_base": "v0.4.x", "tag_base": "v0.5.x",
"phase_role": "final", "phase_role": "pre_execution",
"project": "oy", "project": "oy",
"attempts": 0, "attempts": 0,
"updated_at": "2026-08-18T02:00:00Z", "updated_at": "2026-08-18T11:30:00Z",
"milestone_complete": true, "milestone_complete": false
"milestone_release_tag": "v0.4.8",
"release_id": 763,
"requirements_covered": ["REQ-033", "REQ-034", "REQ-035", "REQ-036", "REQ-037", "REQ-038", "REQ-039"]
} }
+2 -2
View File
@@ -6,9 +6,9 @@
} }
], ],
"active_project": "oy", "active_project": "oy",
"milestone": "v0.5", "milestone": "v0.6",
"milestone_type": "feature", "milestone_type": "feature",
"tag_base": "v0.4.x", "tag_base": "v0.5.x",
"autonomy": { "autonomy": {
"level": "full", "level": "full",
"escalation_hooks": ["deploy", "delete_data", "merge_to_main"], "escalation_hooks": ["deploy", "delete_data", "merge_to_main"],
+48
View File
@@ -61,6 +61,54 @@ OpenYield (OY) is a durable, anti-greed, jurisdiction-light financial layer —
- D-009: Rebased history to fix v1.0 → v0.1 in ---ci--- blocks - D-009: Rebased history to fix v1.0 → v0.1 in ---ci--- blocks
## Milestone ## Milestone
v0.6 — Nomad Web UI (in progress; feature type; tags run on the v0.5.x patch line)
### v0.6 Scope (Nomad Web UI MVP — generated test data, no real chain)
v0.6 is the project's first UI milestone. It delivers a working prototype Web
UI where a person can sign up to be a Nomad (create a Reach + open a Stash)
and exercise basic functionality around the (Reach, Stash) components, plus
Window authorization, Standing progress, and Bloom accrual views. All data is
generated as test fixtures — there is no real blockchain interaction, no live
chain launch, no real bearer transports (D-020 continues to govern network
deployment). The UI is a greenfield Go `html/template` + HTMX layer served by a
Go mock HTTP server that instantiates the real `x/*/types` structs (Reach,
Stash, Window, FreeholderSignals, BloomRecord) populated from in-memory
fixtures. No keeper, no Cosmos runtime, no `app.go` (none exists in the repo).
This milestone is the prerequisite for real-world MVP testing: it makes the
Nomad path visible and exercisable in a browser. Wiring the UI to a real `oyd`
daemon (once one exists) is deferred to v0.7+ (no `app.go`, `cmd/`, or `main.go`
exists in the repo today).
- **REQ-040** Nomad Reach signup Web UI — Go HTTP mock server (`web/`) + "Create a Reach" form + Reach list/detail; grounds the UI in `x/identity/types.Reach`. "Sign up" maps to "Create a Reach" (the word "account" is banned per REQ-012).
- **REQ-041** Stash dashboard Web UI — balance in Grain + Bread-scale conversion (using `x/bread/types.BreadScaleAll()`) + 90-day maturity progress bar (`x/stash/types.StashActivity.IsMature`).
- **REQ-042** Window authorization Web UI — form to open a Window (scope + duration + rate-limit), lifecycle view (Open→Active→Revoked/Expired via `x/window/types.Window.Activate/Revoke/Expire`), audit log.
- **REQ-043** Standing + Freeholder signals progress Web UI — computed from mock `Rating`/`Vouch`/`Slash` records using the locked constants + `GetStandingBucket`/`ComputeDiversityBonus`/`GetVoucherWeight`; 4-signal progress (`FreeholderSignals.IsFreeholderEligible`).
- **REQ-044** Bloom accrual Web UI — per-Stash `BloomRecord` view (`AccruedGrain`, `RateBasisPoints`), computed from mock data; shows the 4.5% target rate.
- **REQ-045** Extend REQ-012 lexicon firewall to scan `web/templates/**` + `web/static/**` (new `lexicon_meta_web_test.go`). Firewall-first: lands in P1 before content.
### Milestone Type
Feature (all execution phases are `feat` except REQ-045 which is `test`). Phase 0 → `v0.5.0`; execution phases `v0.5.1..v0.5.5`; final phase patch `v0.5.6` IS the v0.6 milestone release. No separate minor tag. The final-phase audit enforces the feature purity gate (no breaking schema changes; G-003 production firewall intact; G-006 go.mod unchanged unless a runtime dep is GRILL-approved — HTMX is a vendored static asset, not a Go dep).
### Out of Scope (v0.6)
- Real blockchain interaction / mainnet / IBC / real bearer transports (D-020 continues)
- A real `oyd` daemon / `app.go` / `cmd/oyd` (no chain runtime exists; deferred to v0.7+)
- Real Anchors onboarding / Hub API B2B / real custody (simtest/mock only)
- Authentication / sessions / real key management (mock; a Reach is created by form submission, stored in-memory)
- Persistence (mock store is in-memory; resets on restart)
- i18n / multi-language UI
- Real Standing oracle / real Bloom accrual engine (computed from fixtures using locked constants)
- The 5 P1+ mainnet-readiness items deferred from v0.5 (governance spam deposit, CLOB front-running, real IBC simtest, CLOB perf, emitMatchEventHook testability) — those are v0.7+ mainnet-readiness, not UI work
### Prior Milestones
- v0.1 — OpenYield Foundation Init (COMPLETE; pre-MVP foundation skeleton; released as v0.0.9)
- v0.2 — The Mesh (COMPLETE; skeleton + tests; released as v0.1.5)
- v0.3 — Bearers & Documentation (COMPLETE; feature; released as v0.2.6)
- v0.4 — Refinement (COMPLETE; NFR; released as v0.3.4)
- v0.5 — Bearers Runtime (COMPLETE; feature; released as v0.4.8)
## Prior Milestone
v0.5 — Bearers Runtime (complete; feature type; tags ran on the v0.4.x patch line) v0.5 — Bearers Runtime (complete; feature type; tags ran on the v0.4.x patch line)
### v0.5 Scope (Live-runtime promotions of the v0.3 Bearers skeletons) ### v0.5 Scope (Live-runtime promotions of the v0.3 Bearers skeletons)