Files
cloudinit-bot 9abda8d01e feat(cover,guild,stand): P5 Anti-Capture Bill ceremony + secession + Pier
P5 (final execution phase) of v0.7 delivers REQ-056, REQ-059, REQ-064,
REQ-066:

x/cover — Bill of Rights ceremony (REQ-056) + Pier Selection (REQ-066):
MsgCounselReviewBillOfRights (bonded Counsel, Staked=true gate);
MsgSelectPier (Guild Council + GuildKeeper shim + PierSelectionIndex);
MsgRevokePierSelection (supermajority + Counsel witness); PierSelectionIndex
+ PierSelectionRecord structs; bill_review/pier_selection/pier_index stores.

x/guild — Secession cooling (REQ-064) + Stand->Pier (REQ-059, D-074):
MsgInitiateSecession (SecessionStartedAt + lien audit); MsgCompleteSecession
(21d Cover-active / 14d non-Cover cooling + lien audit + covenant clearance
+ pro-rata settlement event); MsgEscalateStandToPier (10M Grain-cents D-074
threshold, soft upgrade); MsgAcceptPierInvitation; Guild.SecessionStartedAt
+ SecededAt + Lien.Cleared additive; LOCAL StandPierEscalationAnnualPass
VolumeCents const (G-003 local-const mirror of x/stand canonical).

x/stand — StandPierEscalationAnnualPassVolumeCents=10000000 canonical const.

Coverage: cover/keeper 94.6%, guild/keeper 94.1%, stand/types 100%.
G-006/G-028 intact. go.mod/go.sum diff EMPTY. go vet clean. Lexicon green.

---ci---
project: oy
phase: 5
milestone: v0.7
status: execute
---/ci---
2026-08-19 02:44:12 +00:00
..

Component 1: OY Chain & Mirror — Phase 1 Skeleton

Status

v0.0.1 — skeleton with type definitions and locked-constant tests

Vision References

  • §7: Architecture — Three Layers and the Mirror
  • §3: Still/Stir (pause/resume)

Modules

x/watcher — Watcher Bond & Attestation Quorum

  • types.Watcher — bonded Watcher (§7: 100,000 Bread minimum bond)
  • types.Attestation — daily reserve snapshot signed by a Watcher
  • types.ReserveSnapshot — off-chain reserve state (off-chain total, on-chain Bread, basket breakdown)
  • types.QuorumStatus — QuorumMet / QuorumLost / StaleEpoch
  • types.SlashReason — InsufficientBond / StaleAttestation / GeographicCollusion / Forgery

Locked constants (§7):

  • MinBond = 100000 (100,000 Bread)
  • Quorum = 6 (6-of-9)
  • MaxWatchers = 9
  • AttestationEpochHours = 24 (daily)

x/mirror — Reserve Ratio Publication

  • types.NavPerBread — Net Asset Value per Bread (§4.2)
  • types.ReserveRatio — real-time published ratio with quorum flag

x/still — Pause/Resume (Still/Stir)

  • types.StillState — StirActive / StillPaused (§3)
  • types.StillReason — CouncilVote / QuorumLost / SecurityAlert
  • types.StillRecord — tracks pause events
  • Auto-still on quorum lost (§4.2: Forge/Fold blocked until quorum restored)

Tests

12 tests, all passing:

  • Watcher: MinBond, Quorum, MaxWatchers, AttestationEpoch, DefaultParams (5)
  • Still: DefaultStillState, AutoStillOnQuorumLost, StillStates (3)
  • Mirror: DefaultPublishInterval, ModuleName, NavPerBreadStruct, ReserveRatioQuorum (4)

What's NOT in this skeleton (deferred to P1 completion)

  • Cosmos SDK app.go full integration (requires SDK v0.50+ dependency resolution)
  • Keeper implementations (BondWatcher, SubmitAttestation, VerifyQuorum, SlashWatcher)
  • CLI commands (oyd tx watcher bond, oyd query watcher quorum)
  • Proto definitions (Buf-generated types)
  • CometBFT consensus setup
  • Genesis import/export

Next Steps (P1 continuation)

  1. Resolve Cosmos SDK v0.50 dependency tree
  2. Implement keeper logic with store operations
  3. Add proto definitions and code generation
  4. Wire modules into app.go
  5. Build oyd daemon
  6. Integration test: 9 Watchers bond, submit attestations, verify quorum