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:
@@ -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"]
|
|
||||||
}
|
}
|
||||||
@@ -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"],
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user