P2 of v0.7 extends x/cover with Cover-Charter + Pool governance hybrid + category staging + the Anti-Capture Bill of Rights types (D-090(1) temporal-gap fix — Bill of Rights types land HERE, not P5, so the dual firewall is in place before any Charter can be signed). New (x/cover/types/rights.go): RightID type + 13 Right* consts + AntiCaptureBillOfRightsCount=13 locked const + 13 Waivable* bool consts (all false) + RightIsWaivable() always false + AllRights()/AllWaivableFlags(). New structs: CoverCharter (REQ-052) + CharterAmendment (7-day cooling) + PoolCouncil (REQ-062 — 3 Masons + Watcher observer; NO Anchor/MAB seat) + CoverCallVote (majority requires Watcher observer present). CoverPool extended with CharterRef + CouncilRef. D-086 DefaultParams [Phase2] -> [Phase2, Phase3, Phase4]. New Msg*: MsgSignCoverCharter (D-090(1) WaivedRights gate at ValidateBasic — mirrors MissionLockAmendmentRejected D-064), MsgAmendCoverCharter, MsgElectPoolMason, MsgVoteCoverCall, MsgAmendPoolStandingGate (D-090(3) dual check: floor at ValidateBasic + handler), MsgEscalateReserveCeiling (12-month age check). New handlers: SignCoverCharter, AmendCoverCharter (Proposed + ProposedAt), ElectPoolMason (max 3), VoteCoverCall (Yes requires observer), AmendPoolStandingGate (D-090(3) re-check), EscalateReserveCeiling, CoolCharterAmendment + RatifyCharterAmendment lifecycle helpers. New stores: charter/ council/ vote/ amendment/ + SetParamsOverride/Params(). Simtest cases (a)-(h): Charter signing + D-090(1) WaivedRights reject + 7-day cooling + election + vote observer + D-086 out-of-phase + ceiling escalation + D-090(3) below-floor reject. Lexicon: rights.go + msg_charter.go lexicon-clean (initial 'policy' hit fixed -> 'invariant'). .lexicon_fixture SkipDir guard added to 3 lexicon walks (fixes pre-existing cross-package test-isolation race). G-003/G-006/G-028/G-024 intact. go.mod/go.sum diff EMPTY. Coverage: types 98.9%, keeper 95.1%, firewall 100.0%. REQs: REQ-048, REQ-052, REQ-062, REQ-065 (D-090(1) Bill of Rights types for REQ-056 land here; P5 adds the ceremony) ---ci--- project: oy phase: 2 milestone: v0.7 status: execute ---/ci---
OpenYield
OpenYield is a jurisdiction-light, public-good mesh for real production — a protocol organized around Holders, Stands, and the Six Principles, designed to hold real value without the words or the shapes that invite capture. The mesh runs on OY Chain (Layer 1), a canonical state layer for the Bread unit, the Storage Pools (Stash, Vault, Root-Pool), Standing, Watcher attestations, and the Pact / Council / Partner surface. It is anti-greed by construction: Mission Lock fixes the Six Principles and fee covenant so no council can amend them, and the 8% coupon cap on bonds is a mission-locked ceiling, not a parameter.
The Six Principles
- Real value — the mesh holds real production, not speculation.
- Sustainability — fees are floored and capped; the protocol cannot drain its users.
- Mission-lock — the Six Principles and fee covenant are immutable; no council can amend them.
- Openness — anyone may join; the mesh is a public good.
- Ownership — Holders own their Stash and their Reach; custody is theirs.
- Self-service — a Holder can act without a custodian; the mesh is jurisdiction-light.
Bread unit & scale
The unit of value is Bread, scaled in 11 tiers: Grain → Crumb → Bread → Loaf → Batch → Cake → Bakery → Granary → Mill → Harvest → Earth.
Status
v0.6 (Nomad Web UI) — in progress. v0.5 shipped the Bearers Runtime
(simtest-grade keeper handlers for 8 x/ modules). v0.6 adds the project's
first UI: a Go html/template + HTMX prototype Web UI in web/ where a
visitor can sign up to be a Nomad (create a Reach + open a Stash) and
exercise basic functionality around Reach, Stash, Window, Standing, and
Bloom. All data is generated test fixtures — no real chain. See
.ciagent/oy/ROADMAP.md for the phase plan and .ciagent/oy/PROJECT.md
for governance.
Build & test
OpenYield is pure Go with zero external dependencies (go.mod has no
require lines; go 1.22). From the repo root:
go build ./...
go test ./...
Web UI
The Nomad Web UI (v0.6) is a Go html/template server with HTMX progressive
enhancement, served by a mock HTTP server in web/ that instantiates the
real x/*/types structs from in-memory fixtures. No node, no build step,
no real chain. To run it:
go run ./web
# opens on http://localhost:8080 (PORT env var overridable)
Five screens, all reachable from the home nav:
/reach— create a Reach (sign up to be a Nomad) + Reach list/detail/stash/{holderID}— Stash dashboard (Grain balance + Bread scale + 90-day maturity)/window— Window authorization (open/lifecycle/audit log)/standing/{reachID}— Standing + Freeholder signals progress/bloom/{stashID}— Bloom accrual view
HTMX is a single vendored JS file (web/static/htmx.min.js), NOT a Go
dependency — go.mod stays unchanged (G-006).
Docs
The docs site is MkDocs Material
(a build-only Python dep; not a Go dep — go.mod is unchanged). To
preview locally:
mkdocs serve
# or build to a static site/ dir:
mkdocs build
The site lives under docs/ (see mkdocs.yml for the nav). Publishing CI is
deferred to v0.4 (D-046); v0.3 ships the source.
Lexicon firewall
OpenYield bans 10 financial terms as standalone words (REQ-012) across all Go
source (x/**/*.go), all docs (README.md + docs/**/*.md), and all web UI
files (web/**/*.{html,js,go}). The banned terms are the words you would
expect a legacy financial institution to use; this README and the docs describe
them only by their safe replacements, so the firewall itself never trips.
The firewall is enforced in code by three sibling Go tests:
lexicon_meta_test.go(v0.2) — scansx/**/*.go.lexicon_meta_docs/lexicon_meta_docs_test.go(v0.3) — scansREADME.md+docs/**/*.md.lexicon_meta_web/lexicon_meta_web_test.go(v0.6) — scansweb/templates/**+web/static/**+web/**/*.go.
All three use lexicon.FindBannedTerm (word-boundary, case-insensitive), so
"OpenYield" is safe (word-boundary does not match the banned term inside an
identifier) but the standalone banned term is not — docs say "real
production" / "real return", and a Holder's identity is Holder /
Reach, never the banned word for a custodial position. See
docs/shared/lexicon.md for the glossary of safe replacements.
Governance
.ciagent/oy/PROJECT.md— full vision, decisions (D-0xx), assumptions..ciagent/oy/PLANS.md— phase plans (v0.1, v0.2, v0.3)..ciagent/oy/REQUIREMENTS.md— REQ coverage matrix..ciagent/oy/ROADMAP.md— release roadmap.