diff --git a/.ciagent/CHECKPOINT.json b/.ciagent/CHECKPOINT.json index b04b690..63a6d56 100644 --- a/.ciagent/CHECKPOINT.json +++ b/.ciagent/CHECKPOINT.json @@ -1,15 +1,12 @@ { - "phase": 8, - "stage": "complete", - "milestone": "v0.5", + "phase": 0, + "stage": "specify", + "milestone": "v0.6", "milestone_type": "feature", - "tag_base": "v0.4.x", - "phase_role": "final", + "tag_base": "v0.5.x", + "phase_role": "pre_execution", "project": "oy", "attempts": 0, - "updated_at": "2026-08-18T02:00:00Z", - "milestone_complete": true, - "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"] + "updated_at": "2026-08-18T11:30:00Z", + "milestone_complete": false } \ No newline at end of file diff --git a/.ciagent/config.json b/.ciagent/config.json index 4c406e6..52f310c 100644 --- a/.ciagent/config.json +++ b/.ciagent/config.json @@ -6,9 +6,9 @@ } ], "active_project": "oy", - "milestone": "v0.5", + "milestone": "v0.6", "milestone_type": "feature", - "tag_base": "v0.4.x", + "tag_base": "v0.5.x", "autonomy": { "level": "full", "escalation_hooks": ["deploy", "delete_data", "merge_to_main"], diff --git a/.ciagent/oy/PROJECT.md b/.ciagent/oy/PROJECT.md index f8f67e9..2494fa0 100644 --- a/.ciagent/oy/PROJECT.md +++ b/.ciagent/oy/PROJECT.md @@ -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 ## 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 Scope (Live-runtime promotions of the v0.3 Bearers skeletons)