docs(P00): introduce oy-spec + oy-state boundary docs (PO <-> ciagent)
Establishes the two-doc contract between the product owner and the ciagent: - oy-spec (PO-authored, ciagent ingests): authoritative product input - oy-state (ciagent-authored, PO ingests): current shipped state Both live in .ciagent/oy/ with no .md extension (PO ingestion keys on the bare stem oy-spec / oy-state). The 10 existing .ciagent/oy/*.md files remain ciagent-internal working memory. PROJECT/REQUIREMENTS/ARCHITECTURE gain a one-line header note pointing to oy-spec as the source and oy-state as the shipped-state mirror. oy-spec holds the schema the PO fills (Objective, Vision source, Principles [locked], Requirements table with acceptance criteria, Constraints, Lexicon [locked], Milestone intent, Open questions, Changelog) + the mandatory docs(spec): Conventional Commit convention for spec edits. oy-state is backfilled from shipped v0.6 state: 45-REQ coverage table, 24 locked constants, 18 deferred items, firewall status (G-003 GREEN, G-006 controlled exception cosmos-sdk v0.50.8, REQ-012 GREEN x3, Mission Lock GREEN, coverage >=80% GREEN), and 5 open PO decisions for v0.7 scoping. Closes the loop: PO reads oy-state -> edits oy-spec (docs(spec): commit) -> ciagent regenerates PROJECT/REQUIREMENTS/ARCHITECTURE at next P0 -> flags drift in oy-state §5. Prevents re-proposing shipped or explicitly-deferred REQs. ---ci--- phase: 0 milestone: v0.6 status: execute project: oy ---/ci---
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- Auto-generated from .ciagent/oy/oy-spec — PO edits oy-spec, not this file; see oy-state for current shipped state. -->
|
||||||
# Architecture: OpenYield (oy) — Phase 0 Index
|
# Architecture: OpenYield (oy) — Phase 0 Index
|
||||||
|
|
||||||
## Source
|
## Source
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- Auto-generated from .ciagent/oy/oy-spec — PO edits oy-spec, not this file; see oy-state for current shipped state. -->
|
||||||
# Project: OpenYield (oy)
|
# Project: OpenYield (oy)
|
||||||
|
|
||||||
## Objective
|
## Objective
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<!-- Auto-generated from .ciagent/oy/oy-spec — PO edits oy-spec, not this file; see oy-state for current shipped state. -->
|
||||||
# Requirements: OpenYield (oy)
|
# Requirements: OpenYield (oy)
|
||||||
|
|
||||||
| ID | Requirement | Vision § | Priority | Status | Phase |
|
| ID | Requirement | Vision § | Priority | Status | Phase |
|
||||||
|
|||||||
@@ -0,0 +1,140 @@
|
|||||||
|
# OpenYield Spec — spec-v1
|
||||||
|
Owner: <product owner>
|
||||||
|
Status: draft
|
||||||
|
Ingested as: oy-spec
|
||||||
|
|
||||||
|
> This is the **only** document the product owner (PO) sends to the ciagent for
|
||||||
|
> implementation. The ciagent consumes it to regenerate PROJECT.md,
|
||||||
|
> REQUIREMENTS.md, and ARCHITECTURE.md. Nothing else is read from upstream.
|
||||||
|
>
|
||||||
|
> In return the ciagent maintains **one** sibling file — `oy-state` — that tells
|
||||||
|
> the PO what exists, what's locked, what's deferred, and what drift exists
|
||||||
|
> between this spec and the shipped code. Read `oy-state` before editing
|
||||||
|
> `oy-spec`; it prevents re-proposing shipped or explicitly-deferred REQs.
|
||||||
|
>
|
||||||
|
> `oy-spec` and `oy-state` are the only two docs that cross the PO<->ciagent
|
||||||
|
> boundary. All other `.ciagent/oy/*.md` files are ciagent-internal working
|
||||||
|
> memory — do not edit them.
|
||||||
|
|
||||||
|
## 1. Objective
|
||||||
|
<!-- <=3 sentences: what the mesh is and who it serves -->
|
||||||
|
|
||||||
|
## 2. Vision source
|
||||||
|
- Document: Vision v3.0 (22 sections)
|
||||||
|
- Locked commitments (non-amendable sections):
|
||||||
|
<!-- list section numbers that are non-amendable -->
|
||||||
|
|
||||||
|
## 3. Principles [locked]
|
||||||
|
1. Real value
|
||||||
|
2. Sustainability
|
||||||
|
3. Mission-lock
|
||||||
|
4. Openness
|
||||||
|
5. Ownership
|
||||||
|
6. Self-service
|
||||||
|
<!-- one line per principle — the ciagent enforces these as REQ-001 -->
|
||||||
|
|
||||||
|
## 4. Requirements
|
||||||
|
<!-- Each row: ID | Title | Vision § | Priority | Locked? | Acceptance criteria -->
|
||||||
|
| ID | Title | Vision § | Priority | Locked? | Acceptance criteria |
|
||||||
|
|----|-------|----------|---------|---------|---------------------|
|
||||||
|
| REQ-001 | Enforce Six Principles | §2 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-002 | Fee ceiling 0.1% / floor 0.01% / 1-Grain min | §18 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-003 | Bloom from real production only (Root Basket) | §6 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-004 | 9 Watchers, 6-of-9 quorum | §7 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-005 | Four Freeholder signals | §9.1 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-006 | Standing anti-gaming formula | §9.2 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-007 | FCFS processing | §15 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-008 | OY Chain (Layer 1) | §7 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-009 | Satellite chains (Layer 2) | §7 | Medium | no | <!-- criteria --> |
|
||||||
|
| REQ-010 | Exit layer (Layer 3) | §7 | Medium | no | <!-- criteria --> |
|
||||||
|
| REQ-011 | Three Councils with Mission Lock | §19 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-012 | Lexicon compliance | §3 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-013 | Bread unit with scale | §4 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-014 | Three pools of storage | §5 | High | yes | <!-- criteria --> |
|
||||||
|
| REQ-015 | Window primitive | §10 | High | no | <!-- criteria --> |
|
||||||
|
| REQ-016 | Nine Stand types | §11 | Medium | yes | <!-- criteria --> |
|
||||||
|
| REQ-017 | Guilds with free Hand-Passes | §12 | Medium | yes | <!-- criteria --> |
|
||||||
|
| REQ-018 | Four-tier Partner Spectrum | §13 | Medium | no | <!-- criteria --> |
|
||||||
|
| REQ-019 | Six bearers via Unified Bearer Layer | §14 | Medium | yes | <!-- criteria --> |
|
||||||
|
| REQ-020 | Six Pacts | §16 | Medium | no | <!-- criteria --> |
|
||||||
|
| REQ-021 | Mesh Bond Market with 8% cap | §17 | Medium | yes | <!-- criteria --> |
|
||||||
|
|
||||||
|
## 5. Constraints
|
||||||
|
- 14 modular components, 6 cross-component interfaces
|
||||||
|
- Mission Lock non-amendable
|
||||||
|
- Lexicon firewall: banned terms = bank, deposit, interest, yield, currency, dollar/euro, account, savings, depositor
|
||||||
|
- Skeleton-first until mainnet gate (D-020 pattern)
|
||||||
|
- Zero Go deps except GRILL-approved runtime exceptions
|
||||||
|
- Coverage >=80% on shipped packages
|
||||||
|
- Multi-project mode active; project slug = `oy`
|
||||||
|
|
||||||
|
## 6. Lexicon [locked]
|
||||||
|
- Banned: bank, deposit, interest, yield, currency, dollar, euro, account, savings, depositor
|
||||||
|
- Required replacements: account -> Reach, deposit -> receive-asset, interest -> coupon, yield -> bloom, currency -> asset
|
||||||
|
|
||||||
|
## 7. Milestone intent
|
||||||
|
- Current shipped: v0.6 (Nomad Web UI) — COMPLETE
|
||||||
|
- Next: <!-- v0.7 target — one paragraph + the REQ-IDs it draws from -->
|
||||||
|
- Out-of-scope this milestone:
|
||||||
|
<!-- list -->
|
||||||
|
|
||||||
|
## 8. Open questions for the ciagent
|
||||||
|
<!-- bulleted; the ciagent logs assumptions if unanswered at autonomy=full -->
|
||||||
|
|
||||||
|
## 9. Changelog
|
||||||
|
<!-- Every spec revision MUST be a `docs(spec):` commit (see Rules below). -->
|
||||||
|
| Spec-v | Date | Commit (docs(spec):) | What changed | REQs affected |
|
||||||
|
|--------|------|----------------------|--------------|---------------|
|
||||||
|
| v1 | <!-- date --> | <!-- docs(spec): initial spec --> | baseline (backfilled from shipped v0.6 state) | all existing |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Rules (PO <-> ciagent contract)
|
||||||
|
|
||||||
|
- **One document each way.** No slides, sidecar notes, or direct edits to
|
||||||
|
generated docs. If you want to change product intent, edit `oy-spec`; if you
|
||||||
|
want to know what the ciagent did, read `oy-state`.
|
||||||
|
- **Every REQ the ciagent implements must appear in §4 with acceptance
|
||||||
|
criteria.** Vague criteria -> vague implementation.
|
||||||
|
- **Mark a REQ `[locked]`** only if a future spec revision must not change it
|
||||||
|
without an explicit override line in §9. Locked REQs map to const firewalls
|
||||||
|
the ciagent defends with regression tests (listed in `oy-state` §3).
|
||||||
|
- **The ciagent regenerates `oy-state` at every milestone ship AND at P0 of the
|
||||||
|
next milestone if `oy-spec` changed since the last `oy-state`.** `oy-state`
|
||||||
|
is authoritative for "what exists"; PROJECT.md is internal working memory.
|
||||||
|
- **Before proposing a new REQ in §4, grep `oy-state` §2 (coverage) and §4
|
||||||
|
(deferred).** Re-proposing an existing or explicitly-deferred REQ is a no-op
|
||||||
|
and will be flagged as drift in the next `oy-state` §5.
|
||||||
|
- **When §4 or §6 change,** the ciagent regenerates PROJECT/REQUIREMENTS and
|
||||||
|
flags drift. When §3/§5 only change, no regeneration is needed.
|
||||||
|
|
||||||
|
## Commit convention (mandatory for `oy-spec`)
|
||||||
|
|
||||||
|
- Every commit that modifies `oy-spec` MUST use a Conventional Commit message:
|
||||||
|
|
||||||
|
```
|
||||||
|
docs(spec): <imperative summary <=72 chars>
|
||||||
|
|
||||||
|
<optional body: what changed in §4/§6 and why; >=1 line per REQ affected>
|
||||||
|
```
|
||||||
|
|
||||||
|
- Examples:
|
||||||
|
```
|
||||||
|
docs(spec): add REQ-046 governance spam deposit (§4)
|
||||||
|
|
||||||
|
Opens REQ-046 per oy-state §4 deferred item "governance spam deposit".
|
||||||
|
Acceptance: proposal deposit >= 1 Loaf, slashable on spam.
|
||||||
|
```
|
||||||
|
```
|
||||||
|
docs(spec): lock REQ-002 fee ceiling — overrideable only via §9
|
||||||
|
|
||||||
|
REQ-002 fee covenant locked per vision §18; any future change requires an
|
||||||
|
explicit §9 changelog override line.
|
||||||
|
```
|
||||||
|
|
||||||
|
- The ciagent will **REJECT** any `oy-spec` commit whose subject does not match
|
||||||
|
`docs(spec): ...`. This makes spec changes grep-able and ties each
|
||||||
|
implementation milestone back to the spec revision that authorized it (via
|
||||||
|
the §9 Changelog row referenced in the commit body).
|
||||||
|
- **No squash merges, `fixup!`, or empty commits** for `oy-spec`. Every edit
|
||||||
|
is a real `docs(spec):` commit on the default branch.
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
# OpenYield State — state-v1
|
||||||
|
Generated: 2026-08-18
|
||||||
|
Milestone: v0.6 (Nomad Web UI) — COMPLETE
|
||||||
|
Tag: v0.5.6
|
||||||
|
Ingested as: oy-state
|
||||||
|
|
||||||
|
> This is the **only** document the ciagent sends to the product owner (PO)
|
||||||
|
> to communicate current project state. The PO reads it before editing
|
||||||
|
> `oy-spec`. `oy-spec` and `oy-state` are the only two docs that cross the
|
||||||
|
> PO<->ciagent boundary; all other `.ciagent/oy/*.md` files are ciagent-internal
|
||||||
|
> working memory.
|
||||||
|
>
|
||||||
|
> Regeneration rule: the ciagent regenerates this file at every milestone ship
|
||||||
|
> AND at P0 of the next milestone if `oy-spec` changed since the last `oy-state`.
|
||||||
|
> `oy-state` is authoritative for "what exists"; PROJECT.md is internal working
|
||||||
|
> memory.
|
||||||
|
|
||||||
|
## 1. Current position
|
||||||
|
- Last shipped: v0.6 (Nomad Web UI) — COMPLETE — tag v0.5.6
|
||||||
|
- Next queued: none — awaiting `oy-spec` §7 (Milestone intent)
|
||||||
|
- Release forge: Gitea (git.cloudinit.dev/oy/openyield), release_id 776
|
||||||
|
- Autonomy: full (decision_confidence_threshold 0.6, clarify_budget 10)
|
||||||
|
- Open `oy-spec` §8 questions answered by ciagent: 0 (none logged — v0.6 closed clean)
|
||||||
|
|
||||||
|
### Milestone history (compact)
|
||||||
|
| Milestone | Type | Tag | Status |
|
||||||
|
|-----------|------|-----|--------|
|
||||||
|
| v0.1 Foundation Init | feat | v0.0.9 | COMPLETE |
|
||||||
|
| v0.2 The Mesh | feat | v0.1.5 | COMPLETE |
|
||||||
|
| v0.3 Bearers & Docs | feat | v0.2.6 | COMPLETE |
|
||||||
|
| v0.4 Refinement | NFR | v0.3.4 | COMPLETE |
|
||||||
|
| v0.5 Bearers Runtime | feat | v0.4.8 | COMPLETE |
|
||||||
|
| v0.6 Nomad Web UI | feat | v0.5.6 | COMPLETE |
|
||||||
|
|
||||||
|
## 2. Requirement coverage
|
||||||
|
<!-- Mirror of oy-spec §4. Status: Not started | Skeleton | Runtime | Complete | Deferred | Rejected -->
|
||||||
|
| REQ | Title | Status | Shipped in | Module(s) | Locked? |
|
||||||
|
|-----|-------|--------|-----------|----------|---------|
|
||||||
|
| REQ-001 | Enforce Six Principles | Skeleton | v0.1 | x/* | yes |
|
||||||
|
| REQ-002 | Fee ceiling 0.1% / floor 0.01% / 1-Grain min | Complete | v0.1 | x/feecovenant | yes |
|
||||||
|
| REQ-003 | Bloom from real production only (Root Basket) | Complete | v0.2 | x/bread, x/bloom | yes |
|
||||||
|
| REQ-004 | 9 Watchers, 6-of-9 quorum | Complete | v0.1 | x/watcher | yes |
|
||||||
|
| REQ-005 | Four Freeholder signals | Complete | v0.2 | x/standing | yes |
|
||||||
|
| REQ-006 | Standing anti-gaming formula | Complete | v0.2 | x/standing | yes |
|
||||||
|
| REQ-007 | FCFS processing | Complete | v0.1 | x/bearers | yes |
|
||||||
|
| REQ-008 | OY Chain (Layer 1) | Skeleton | v0.1 | x/* (no app.go yet) | yes |
|
||||||
|
| REQ-009 | Satellite chains (Layer 2) | Skeleton | v0.2 | x/satellite | no |
|
||||||
|
| REQ-010 | Exit layer (Layer 3) | Runtime | v0.5 | x/exit, x/bridge | no |
|
||||||
|
| REQ-011 | Three Councils with Mission Lock | Runtime | v0.5 | x/council | yes |
|
||||||
|
| REQ-012 | Lexicon compliance | Complete | v0.1 (x/), v0.3 (docs/), v0.6 (web/) | lexicon_meta_test, lexicon_meta_docs, lexicon_meta_web | yes |
|
||||||
|
| REQ-013 | Bread unit with scale | Complete | v0.1 | x/bread | yes |
|
||||||
|
| REQ-014 | Three pools of storage | Complete | v0.1 | x/stash, x/vault, x/rootpool | yes |
|
||||||
|
| REQ-015 | Window primitive | Runtime | v0.2 (skeleton), v0.6 (UI) | x/window | no |
|
||||||
|
| REQ-016 | Nine Stand types | Skeleton | v0.2 | x/stand | yes |
|
||||||
|
| REQ-017 | Guilds with free Hand-Passes | Skeleton | v0.2 | x/guild | yes |
|
||||||
|
| REQ-018 | Four-tier Partner Spectrum | Runtime | v0.5 | x/partner | no |
|
||||||
|
| REQ-019 | Six bearers via Unified Bearer Layer | Runtime | v0.5 | x/bearers | yes |
|
||||||
|
| REQ-020 | Six Pacts | Skeleton | v0.2 | x/pact | no |
|
||||||
|
| REQ-021 | Mesh Bond Market with 8% cap | Runtime | v0.5 | x/bond | yes |
|
||||||
|
| REQ-022 | Bearers expansion: OY-SAT + OY-QR | Skeleton (types) + Runtime (handlers) | v0.3 + v0.5 | x/bearers | no |
|
||||||
|
| REQ-023 | Anchors — first institutional Partner tier | Skeleton (types) + Runtime (handlers) | v0.3 + v0.5 | x/partner | no |
|
||||||
|
| REQ-024 | Hub API — B2B backbone | Skeleton (types) + Runtime (handlers) | v0.3 + v0.5 | x/hub | no |
|
||||||
|
| REQ-025 | Services — Care/SIM/Vault/Mail | Skeleton (types) + Runtime (handlers) | v0.3 + v0.5 | x/services | no |
|
||||||
|
| REQ-026 | Bond market depth — Growth Bonds + secondary | Skeleton (types) + Runtime (handlers) | v0.3 + v0.5 | x/bond | no |
|
||||||
|
| REQ-027 | README.md + docs site | Complete | v0.3 | docs/, mkdocs.yml, README.md | no |
|
||||||
|
| REQ-028 | Extend lexicon firewall to docs/ + README.md | Complete | v0.3 | lexicon_meta_docs | yes |
|
||||||
|
| REQ-029 | Lexicon shared `SyntheticBannedStrings()` helper | Complete | v0.4 | lexicon | no |
|
||||||
|
| REQ-030 | Cross-package const-equality test (hub/bond) | Complete | v0.4 | x/hub/types/cross_const_test.go | no |
|
||||||
|
| REQ-031 | x/* lifecycle type shape-divergence review | Complete | v0.4 | x/council (docs+test) | no |
|
||||||
|
| REQ-032 | Docs build CI (Gitea Actions) | Complete | v0.4 | .gitea/workflows/docs-build.yml | no |
|
||||||
|
| REQ-033 | Exit layer runtime | Complete | v0.5 | x/exit/keeper | no |
|
||||||
|
| REQ-034 | Bearers transport runtime | Complete | v0.5 | x/bearers/keeper | no |
|
||||||
|
| REQ-035 | Anchors onboarding runtime | Complete | v0.5 | x/partner/keeper | no |
|
||||||
|
| REQ-036 | Hub API B2B runtime | Complete | v0.5 | x/hub/keeper | no |
|
||||||
|
| REQ-037 | Services runtime | Complete | v0.5 | x/services/keeper | no |
|
||||||
|
| REQ-038 | Bond market depth runtime (CLOB) | Complete | v0.5 | x/bond/keeper | no |
|
||||||
|
| REQ-039 | Council governance runtime (Proposal/VoteOption) | Complete | v0.5 | x/council/keeper | no |
|
||||||
|
| REQ-040 | Nomad Reach signup Web UI | Complete | v0.6 | web/handlers/reach.go | no |
|
||||||
|
| REQ-041 | Stash dashboard Web UI | Complete | v0.6 | web/handlers/stash.go | no |
|
||||||
|
| REQ-042 | Window authorization Web UI | Complete | v0.6 | web/handlers/window.go | no |
|
||||||
|
| REQ-043 | Standing + Freeholder signals Web UI | Complete | v0.6 | web/handlers/standing.go | no |
|
||||||
|
| REQ-044 | Bloom accrual Web UI | Complete | v0.6 | web/handlers/bloom.go | no |
|
||||||
|
| REQ-045 | Extend lexicon firewall to web/ | Complete | v0.6 | lexicon_meta_web | yes |
|
||||||
|
|
||||||
|
## 3. Locked constants (const firewall)
|
||||||
|
<!-- Amending any row requires an explicit override line in oy-spec §9. -->
|
||||||
|
| Const | Value | Module | Why locked |
|
||||||
|
|-------|-------|--------|-----------|
|
||||||
|
| MissionLockAmendable | false | x/council | vision §19 — non-amendable |
|
||||||
|
| CouponCapBps | 800 (8%) | x/bond | vision §17, D-028 |
|
||||||
|
| CouponFloorBps | 0 (0%) | x/bond | vision §17, D-028 |
|
||||||
|
| LendingCouponCapBps | 800 | x/hub | D-028 mirror (REQ-030 cross-const test) |
|
||||||
|
| LendingCouponFloorBps | 0 | x/hub | D-028 mirror (REQ-030 cross-const test) |
|
||||||
|
| HandPassFeeBps | 0 | x/guild | vision §12, D-025 |
|
||||||
|
| FeeCeilingBps | 10 (0.1%) | x/feecovenant | vision §18, REQ-002 |
|
||||||
|
| FeeFloorBps | 1 (0.01%) | x/feecovenant | vision §18, REQ-002 |
|
||||||
|
| SignalKindCount | 4 | x/standing | AUDIT §193 P1-2 (defensible; expansion deferred to v0.7+ governance) |
|
||||||
|
| BearerTypeCount | 6 | x/bearers | vision §14, REQ-019 |
|
||||||
|
| BridgeStatusCount | 4 | x/bridge | D-036 |
|
||||||
|
| ExitStatusCount | 5 | x/exit | D-036 |
|
||||||
|
| PartnerTierCount | 4 | x/partner | vision §13, REQ-018 |
|
||||||
|
| StandTypeCount | 9 | x/stand | vision §11, REQ-016 |
|
||||||
|
| PactTypeCount | 6 | x/pact | vision §16, REQ-020 |
|
||||||
|
| CouncilKindCount | 3 | x/council | vision §19, REQ-011 |
|
||||||
|
| WatcherQuorum | 6-of-9 | x/watcher | vision §7, REQ-004 |
|
||||||
|
| WatcherVetoQuorum | 6 (param-tunable [2,9]) | x/council | D-065 |
|
||||||
|
| MaturityThresholdDays | 90 | x/stash | vision §9.1, REQ-005 |
|
||||||
|
| GrainsPerBread | 10000 | x/bread | vision §4, REQ-013 |
|
||||||
|
| TargetBloomRateBasisPoints | 450 (4.5%) | x/bloom | vision §6 |
|
||||||
|
| AnchorCredentialStatusCount | 4 | x/partner | v0.5 addition (additive) |
|
||||||
|
| OYSATLink.SurveillanceResistant | true | x/bearers | vision §14, locked |
|
||||||
|
| ServiceKindCount | 4 | x/services | D-040 |
|
||||||
|
| HubServiceCount | 3 | x/hub | D-039 |
|
||||||
|
|
||||||
|
## 4. Deferred / out-of-scope (do NOT re-propose without §9 override)
|
||||||
|
| Item | Deferred from | Reason | Revisit at |
|
||||||
|
|------|--------------|--------|------------|
|
||||||
|
| Cover Pool seniority mechanics | v0.1 Q7 | unstated math | v0.7+ |
|
||||||
|
| SignalKind 4->5 enum expansion | v0.4 AUDIT §193 P1-2 | locked-const change; defensible at 4 | v0.7+ governance vote |
|
||||||
|
| Governance spam deposit/bond | v0.5 REVIEW P1 | mainnet-readiness | v0.7+ |
|
||||||
|
| CLOB per-tx front-running (batch auction) | v0.5 REVIEW P1 | mainnet-readiness | v0.7+ |
|
||||||
|
| Real IBC light-client simtest | v0.5 REVIEW P1 | mainnet-readiness | v0.7+ |
|
||||||
|
| CLOB `restingBookForBond` O(n) -> prefix-key | v0.5 REVIEW P2 | mainnet perf | v0.7+ |
|
||||||
|
| `emitMatchEventHook` testability | v0.5 REVIEW P2 | minor | v0.7+ |
|
||||||
|
| Live chain launch / mainnet / real IBC channels | v0.1 (D-020) | skeleton-first until mainnet gate | v0.7+ (Year 3 target) |
|
||||||
|
| Real `oyd` daemon / `app.go` / `cmd/oyd` | v0.6 OOS | no chain runtime exists | v0.7+ |
|
||||||
|
| Real institutional Anchors onboarding | v0.5 OOS | credential lifecycle in simtest only | v0.7+ |
|
||||||
|
| Real bearer transports (hardware/RF) | v0.5 OOS | message handlers + simtest only | v0.7+ (Year 3) |
|
||||||
|
| Authentication / sessions / real key mgmt | v0.6 OOS | mock; Reach created by form submission | v0.7+ |
|
||||||
|
| Persistence (in-memory mock store) | v0.6 OOS | resets on restart | v0.7+ |
|
||||||
|
| i18n / multi-language UI | v0.3/v0.6 OOS | single-language | v0.7+ |
|
||||||
|
| Yield Token, Travel + 11 service categories | ROADMAP Phase 4 | Maturity (Years 4-5) | Year 4+ |
|
||||||
|
| Maya's Day integration spec | v0.1 Q1 | Mesh Experience component | Phase 2 |
|
||||||
|
| Standing anti-gaming sub-tables | v0.1 Q2 | formula locked; sub-tables deferred | v0.7+ |
|
||||||
|
| Pier credential routing (e-Residency, biometrics) | v0.1 Q5 | deferred | v0.7+ |
|
||||||
|
| Experimental bond forms | v0.1 Q6 | Phase 4+ only | Year 4+ |
|
||||||
|
| Processor share tier boundary exact volumes | v0.1 Q8 | deferred | v0.7+ |
|
||||||
|
| Docs bread-scale.md fix (outdated vs code consts) | v0.6 P1+ | doc-drift fix, not UI feature | next docs touch |
|
||||||
|
|
||||||
|
## 5. Drift flags (ciagent -> PO)
|
||||||
|
<!-- Differences between oy-spec (latest) and what the ciagent has shipped. -->
|
||||||
|
- Lexicon drift: **none**
|
||||||
|
- Locked-const drift: **none**
|
||||||
|
- REQ-shape drift: **none** (oy-state v1 is the baseline; oy-spec v1 backfilled to match)
|
||||||
|
- Architecture drift: **none** (14 components / 15 modules — x/lexicon is a tool package, not a 15th protocol component)
|
||||||
|
|
||||||
|
## 6. Constraints honored (firewall status)
|
||||||
|
- **G-003** production import firewall: GREEN (by-ID-string rule at type level; expected_keepers.go shims for keeper cross-calls)
|
||||||
|
- **G-006** go.mod zero-dep: CONTROLLED EXCEPTION — cosmos-sdk v0.50.8 + ibc-go v8.2.1 added in v0.5 (D-055 GRILL-approved, scoped to runtime phases; types/ packages stay dep-free)
|
||||||
|
- **G-028** go.mod diff baseline (v0.6 vs v0.5.0): EMPTY — v0.6 added zero Go deps (HTMX is a vendored static asset)
|
||||||
|
- **REQ-012** lexicon firewall: GREEN — 3 meta-tests (x/, docs/, web/) all passing
|
||||||
|
- **Mission Lock** non-amendable: GREEN — `MissionLockAmendable=false` unchanged; MissionLockAmendment-Rejected ProposalKind rejected at ValidateBasic (D-064)
|
||||||
|
- **Coverage** >=80% on shipped packages: GREEN (v0.5 keepers 82.1%-92.5%; v0.6 web/store 98.1%, web/handlers 89.2%, lexicon_meta_web 100%)
|
||||||
|
- **Feature purity gate** (v0.6): GREEN — no breaking schema changes; locked-const firewall intact; G-003 intact; go.mod unchanged
|
||||||
|
|
||||||
|
## 7. Open PO decisions before next milestone
|
||||||
|
<!-- The PO should rule on these in oy-spec §8 or §7 before v0.7 P0. -->
|
||||||
|
1. **v0.7 scope selection** — the 5 P1+ mainnet-readiness items deferred from v0.5 (governance spam deposit, CLOB batch auction, real IBC simtest, CLOB prefix-key perf, emitMatchEventHook testability) are the natural v0.7 candidates. PO should pick a subset in `oy-spec` §7.
|
||||||
|
2. **SignalKind 4->5 expansion** — defensible at 4 per AUDIT §193 P1-2; needs a PO ruling (keep at 4, or open a v0.7+ governance-vote REQ to expand).
|
||||||
|
3. **`oyd` daemon** — no `app.go`/`cmd/oyd` exists. Wiring the v0.6 UI to a real daemon is v0.7+; PO should decide whether v0.7 starts the daemon or continues simtest-only runtime.
|
||||||
|
4. **Cover Pool seniority math** — vision §16 names it but the formula is unstated. PO must supply the seniority/over-pledging math before the ciagent can promote x/pact Cover from skeleton to runtime.
|
||||||
|
5. **Real bearer transport integration** — v0.5 ships handler skeletons only; PO must decide which bearer (OY-LR/OY-BLE/OY-WiFi-Direct/OY-SAT/OY-QR) gets hardware integration first in v0.7+.
|
||||||
|
|
||||||
|
## 8. Build/test status
|
||||||
|
- `go build ./...`: GREEN
|
||||||
|
- `go test ./...`: GREEN (no FAIL; 34 packages green as of v0.5; v0.6 added web/ + lexicon_meta_web green)
|
||||||
|
- Coverage: all shipped keeper packages >=80%; web packages >=89%
|
||||||
|
- Lexicon meta-tests: 3/3 GREEN
|
||||||
|
- Last green commit: aa66e58 (checkpoint(milestone): v0.6 complete)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_`oy-state` is regenerated by the ciagent. Do not edit by hand._
|
||||||
Reference in New Issue
Block a user