diff --git a/.ciagent/CHECKPOINT.json b/.ciagent/CHECKPOINT.json index b5fa27b..1a8ff4e 100644 --- a/.ciagent/CHECKPOINT.json +++ b/.ciagent/CHECKPOINT.json @@ -1,14 +1,11 @@ { - "phase": 6, - "stage": "complete", - "milestone": "v0.3", - "milestone_type": "feature", - "tag_base": "v0.2.x", - "phase_role": "final", + "phase": 0, + "stage": "specify", + "milestone": "v0.4", + "milestone_type": "nfr", + "tag_base": "v0.3.x", + "phase_role": "pre_execution", "project": "oy", "attempts": 0, - "updated_at": "2026-08-18T01:00:00Z", - "milestone_complete": true, - "milestone_release_tag": "v0.2.6", - "release_id": 739 + "updated_at": "2026-08-17T22:40:00Z" } \ No newline at end of file diff --git a/.ciagent/config.json b/.ciagent/config.json index 2ae1b51..50e4ba0 100644 --- a/.ciagent/config.json +++ b/.ciagent/config.json @@ -6,9 +6,9 @@ } ], "active_project": "oy", - "milestone": "v0.3", - "milestone_type": "feature", - "tag_base": "v0.2.x", + "milestone": "v0.4", + "milestone_type": "nfr", + "tag_base": "v0.3.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 f8d19b5..461ea48 100644 --- a/.ciagent/oy/PROJECT.md +++ b/.ciagent/oy/PROJECT.md @@ -61,7 +61,36 @@ 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.3 — Bearers & Documentation (active milestone; feature type; tags run on the v0.2.x patch line) +v0.4 — Refinement (active milestone; NFR type; tags run on the v0.3.x patch line) + +### v0.4 Scope (Refinement-only NFR — v0.3 post-hoc forward-references) + +v0.4 is a refinement-only NFR milestone: zero `feat:` phases. It lands the +durability fixes v0.3 flagged but did not block on, sourced from REVIEW.md, +AUDIT.md §193, and GRILL.md G-014. Live-runtime promotions of the v0.3 Bearers +skeletons are out of scope (deferred to v0.5+). + +- **REQ-029** Lexicon firewall shared helper (`lexicon.SyntheticBannedStrings()`) — dedupe the synthetic self-test table between `lexicon_meta_test.go` and `lexicon_meta_docs_test.go`. Both meta-tests derive count + strings from the single `lexicon` package source, so a future banned-term addition updates both firewalls from one place. (GRILL G-014) +- **REQ-030** Cross-package const-equality test — `x/hub.LendingCouponCapBps == x/bond.CouponCapBps` (and Floor). Test-only import (G-003 exempt). Catches silent mission-lock drift between hub LOCAL consts and bond D-028 consts. (REVIEW.md P2 / A-304) +- **REQ-031** x/* lifecycle type shape-divergence review + alignment fixes — audit non-must-have lifecycle types across modules flagged by AUDIT §193; align where divergent without behavioral change. (AUDIT.md §193) +- **REQ-032** Docs build CI — Gitea Actions workflow running `go test ./...` (lexicon firewall) + `mkdocs build` on every push; upload `site/` as a CI artifact. Full Gitea Pages publishing deferred if no hosting target configured. (D-046) + +### Milestone Type +NFR (all phases are refactor/test/quality/chore). Phase 0 → `v0.3.0`; execution phases `v0.3.1..v0.3.3`; final phase patch `v0.3.4` IS the milestone release. No separate minor tag. The final-phase audit enforces the NFR purity gate (zero `feat:` commits). + +### Out of Scope (v0.4) +- Live-runtime promotions: Exit/DEX, OY-SAT/OY-QR hardware, Hub API B2B, bond matching, L2 IBC rollout, Anchors onboarding (all `feat:`, deferred to v0.5+) +- i18n / MkDocs internationalization (`feat:`, rejected by D-001 filter) +- Yield Token, Travel + 11 service categories (ROADMAP Phase 4) +- Cover Pool seniority mechanics (still deferred per PROJECT.md Q7) + +### 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) + +## Prior Milestone +v0.3 — Bearers & Documentation (complete; feature type; tags ran on the v0.2.x patch line) ### v0.3 Scope (Bearers skeleton + Docs site — ROADMAP Phase 3 partial, plus a docs deliverable) diff --git a/.ciagent/oy/REQUIREMENTS.md b/.ciagent/oy/REQUIREMENTS.md index 9cfb6ec..3723cee 100644 --- a/.ciagent/oy/REQUIREMENTS.md +++ b/.ciagent/oy/REQUIREMENTS.md @@ -43,6 +43,24 @@ > IDEATE-01..IDEATE-07, then assigned final REQ-IDs). REQ-010 is promoted from > v0.1 Skeleton to a fuller v0.3 skeleton. +## v0.4 Milestone Requirements (Refinement — NFR) + +v0.4 is a refinement-only NFR milestone: zero `feat:` phases. Scope sourced +from v0.3 forward-references (REVIEW.md, AUDIT.md §193, GRILL.md G-014). +Live-runtime promotions are out of scope (deferred to v0.5+). The D-001 +refinement-only filter applies to any IDEATE stage. + +| ID | Requirement | Source | Class | Priority | Status | Phase | +|----|-------------|--------|-------|----------|--------|-------| +| REQ-029 | Lexicon firewall: shared `lexicon.SyntheticBannedStrings()` helper — dedupe the synthetic self-test table between `lexicon_meta_test.go` and `lexicon_meta_docs_test.go`; both meta-tests derive count + strings from the single source so a future banned-term addition updates both firewalls from one place | GRILL G-014 | refactor/test | High | Pending | v0.4/P1 | +| REQ-030 | Cross-package const-equality test: `x/hub.LendingCouponCapBps == x/bond.CouponCapBps` (and Floor) — test-only import (G-003 exempt), catches silent mission-lock drift between hub LOCAL consts and bond D-028 consts | REVIEW.md P2 / A-304 | test | High | Pending | v0.4/P1 | +| REQ-031 | x/* lifecycle type shape-divergence review + alignment fixes — audit non-must-have lifecycle types across modules flagged by AUDIT §193; align shapes where divergent (no behavioral change) | AUDIT.md §193 | refactor/quality | Medium | Pending | v0.4/P2 | +| REQ-032 | Docs build CI — Gitea Actions workflow that runs `go test ./...` (lexicon firewall) + `mkdocs build` on every push; upload the built `site/` as a CI artifact. Full Gitea Pages publishing deferred if no hosting target is configured (chore, not feat) | D-046 | chore/ci | Medium | Pending | v0.4/P3 | + +> REQ-029..REQ-032 are NEW in v0.4. All are NFR classes (refactor/test/quality/ +> chore) — zero `feat:` phases by construction. The final-phase audit enforces +> the NFR purity gate (zero `feat:` commits in the milestone). + ## IDEATE Traceability (Phase 0 — IDEATE stage, autonomy=full) The IDEATE stage ran the three ideation tiers (mechanical, backend-enriched,