cloudinit-bot
973e25a7c9
feat(P2): Stash dashboard — Bread scale + maturity progress (REQ-041)
...
web/handlers/stash.go: GET /stash/{holderID} renders balance in Grain +
Bread-scale conversion (x/bread/types.BreadScaleAll() + GrainsPerBread=10000,
D-073 code constants NOT docs) + 90-day maturity progress bar (ActiveDays/90
capped at 100%) + IsMature badge. stash_test.go: D-073 regression guard
(GrainsPerBread=10000, Crumb=100 Grain; would fail if docs 1000x values used),
mature vs immature fixture, 404 + G-026 error lexicon check. Coverage 83.5%
cumulative. Template FuncMap divGrain for the scale table.
---ci---
project: oy
phase: 2
milestone: v0.6
status: execute
---/ci---
2026-08-18 18:55:03 +00:00
cloudinit-bot
741d6e0a96
Merge phase/01 into milestone/v0.6-nomad-web-ui (P1 complete → v0.5.1)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
---ci---
project: oy
phase: 1
milestone: v0.6
status: complete
requirements:
covered: [REQ-040, REQ-045]
partial: []
---/ci---
v0.5.1
2026-08-18 18:52:59 +00:00
cloudinit-bot
eba12998b7
checkpoint(p1): v0.6 phase 1 complete → v0.5.1
...
---ci---
project: oy
phase: 1
milestone: v0.6
status: complete
requirements:
covered: [REQ-040, REQ-045]
partial: []
---/ci---
2026-08-18 18:52:53 +00:00
cloudinit-bot
27b565c965
docs(P1): README web UI quickstart + lexicon firewall v0.6 section
...
---ci---
project: oy
phase: 1
milestone: v0.6
status: execute
---/ci---
2026-08-18 18:52:39 +00:00
cloudinit-bot
0bcb96c442
feat(P1): Reach signup handler + templates + tests (REQ-040, G-026)
...
web/handlers/reach.go: GET /reach (list), GET /reach/new (form),
GET /reach/{id} (detail), POST /reach (atomic Reach+Stash create
per D-071, redirect 302). Labels "Create a Reach" (not the banned
legacy word). G-027 validation (non-empty, <=128, no path separators,
no template syntax). 3 Reach templates extend base.html.
reach_test.go: httptest for all 4 routes + atomic create + 400/409
error paths + rendered-HTML lexicon check on BOTH 200 and error bodies
(G-026). handlers/server.go: clone-per-page template pattern (avoids
content-block collision across pages). Coverage 81.2% on web/handlers.
---ci---
project: oy
phase: 1
milestone: v0.6
status: execute
---/ci---
2026-08-18 17:08:32 +00:00
cloudinit-bot
5a12ab0e76
feat(P1): mock store + fixtures + import-invariant test (REQ-040, G-025, G-027)
...
web/store instantiates real x/identity/types.Reach + x/stash/types.Stash
(app-layer consumption per D-070, NOT a cross-x/ import). CreateReach
atomically creates Reach (IsNomad=true) + Stash (D-071). G-027 validates
HolderID/PublicKey (non-empty, <=128, no path separators, no template
syntax). import_test.go enforces G-025: web/ imports only x/*/types,
never x/*/keeper or x/<module> (module.go). Coverage 100%.
---ci---
project: oy
phase: 1
milestone: v0.6
status: execute
---/ci---
2026-08-18 13:45:05 +00:00
cloudinit-bot
4166de5a4b
feat(P1): web foundation — main.go, server.go, HTMX vendored, base+home templates (REQ-040)
...
Go 1.22 net/http.ServeMux + html/template + http.FileServer for static.
HTMX 2.0.10 vendored as web/static/htmx.min.js (NOT go get; G-006).
base.html layout with nav to all 5 screens. home.html overview.
---ci---
project: oy
phase: 1
milestone: v0.6
status: execute
---/ci---
2026-08-18 13:43:53 +00:00
cloudinit-bot
9811aaabbb
feat(P1): lexicon firewall for web surface (REQ-045)
...
Add lexicon_meta_web/ sibling meta-test mirroring lexicon_meta_docs/. Scans
web/templates/**/*.html + web/static/**/*.js + web/**/*.go using the shared
lexicon.FindBannedTerm (no detection reimplementation). Includes G-009
self-test table (lexicon.SyntheticBannedStrings), banned-terms count (10),
openyield/european false-positive guard, and G-013 walk-coverage (injects a
synthetic banned-term fixture into web/templates/.lexicon_fixture/ and
asserts the walk finds it). Firewall passes green with zero web content
(closed by the walk-coverage test).
---ci---
project: oy
phase: 1
milestone: v0.6
status: execute
---/ci---
2026-08-18 12:07:14 +00:00
cloudinit-bot
5be8c51c60
checkpoint(p0): v0.6 phase 0 complete → v0.5.0
...
---ci---
project: oy
phase: 0
milestone: v0.6
status: complete
---/ci---
2026-08-18 12:05:43 +00:00
cloudinit-bot
d3537249fb
Merge phase/00 into milestone/v0.6-nomad-web-ui (P0 complete → v0.5.0)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
---ci---
project: oy
phase: 0
milestone: v0.6
status: complete
---/ci---
v0.5.0
2026-08-18 12:05:23 +00:00
cloudinit-bot
74bf4d6aaf
decision(P00): mvp/ux gate — verified 3 sections present
...
PLAN.md has User-Facing Surface (L2111), Happy Path (L2125),
UX Acceptance Criteria (L2141). Gate PASSES at full autonomy.
---ci---
project: oy
phase: 0
milestone: v0.6
status: mvp_ux_check
---/ci---
2026-08-18 12:05:15 +00:00
cloudinit-bot
b9fac60a47
docs(P00): grill — v0.6 adversarial review (D-078+, G-025+)
...
---ci---
project: oy
phase: 0
milestone: v0.6
status: grill
---/ci---
2026-08-18 12:05:00 +00:00
cloudinit-bot
66e27f7bb8
checkpoint(p0): plan complete → grill next
...
---ci---
project: oy
phase: 0
milestone: v0.6
status: plan
---/ci---
2026-08-18 12:02:43 +00:00
cloudinit-bot
949b1acf50
docs(P00): create phase plans — v0.6 Nomad Web UI
...
---ci---
project: oy
phase: 0
milestone: v0.6
status: plan
---/ci---
2026-08-18 12:02:28 +00:00
cloudinit-bot
d066885b60
docs(P00): ideate — ratify REQ-040..REQ-045 (Nomad Web UI)
...
IDEATE stage ratified 6 ideas (IDEATE-09..IDEATE-14) at full autonomy.
User pre-validated 5 screens + stack via interactive questions at CLARIFY.
REQ-040 Reach signup, REQ-041 Stash dashboard, REQ-042 Window auth,
REQ-043 Standing+Freeholder signals, REQ-044 Bloom accrual, REQ-045
lexicon firewall extension to web/. D-001 filter does NOT apply (feature).
---ci---
project: oy
phase: 0
milestone: v0.6
status: ideate
---/ci---
2026-08-18 11:58:09 +00:00
cloudinit-bot
e62f783fa1
checkpoint(p0): research complete → ideate next
...
---ci---
project: oy
phase: 0
milestone: v0.6
status: research
---/ci---
2026-08-18 11:57:38 +00:00
cloudinit-bot
6597cbebd8
docs(P00): research — v0.6 Nomad Web UI MVP findings
...
---ci---
phase: 0
milestone: v0.6
status: research
decisions:
- id: D-074
decision: HTMX 2.0.10 vendored as web/static/htmx.min.js (single JS file, no build step, no go get — G-006 preserved)
rationale: htmx.org docs confirm dependency-free single-file install; 2.0.10 is current stable (v4 in beta, Summer 26 target)
confidence: 0.95
alternatives: [htmx 1.x (IE support, unnecessary), pin a newer beta (instability risk)]
- id: D-075
decision: lexicon_meta_web_test.go scans web/**/*.{html,js,go} as a new sibling firewall (package lexicon_meta_web, subdir lexicon_meta_web/)
rationale: web/ is a new top-level dir NOT under x/ — the existing lexicon_meta_test.go (x/**/*.go) does not cover it; mirror the lexicon_meta_docs/ subdir pattern with G-013 walk-coverage + G-009 self-test + G-014 shared SyntheticBannedStrings()
confidence: 0.85
alternatives: [extend lexicon_meta_test.go to also walk web/ (mixes x/ and web/ concerns), separate .go and .html/.js tests (more files)]
- id: D-076
decision: Go 1.22 net/http.ServeMux is the sole router for web/ (method+path patterns, r.PathValue); gorilla/mux NOT used by web/ despite being a transitive cosmos-sdk dep
rationale: go.mod:3 confirms go 1.22; enhanced ServeMux covers GET/POST + path params for all 5 screens; G-006 zero-dep preserved (no third-party router)
confidence: 0.95
alternatives: [gorilla/mux (breaks G-006 for web/, unnecessary), chi/router (new dep)]
- id: D-077
decision: frontend-engineer activated for v0.6 with territory web/** (templates, static, handlers, store, main.go, lexicon_meta_web_test.go); backend-engineer co-owns the mock store x/*/types integration
rationale: first UI milestone — frontend-engineer was deactivated since v0.3 (no UI work); Go html/template + HTMX stack (no node/React) aligns with frameworks; constraints bind G-006 (vendored HTMX), G-003 (app-layer type import), REQ-012 (lexicon), D-073 (bread-scale code constants)
confidence: 0.90
alternatives: [keep frontend-engineer deactivated and have backend-engineer own templates (wrong skill fit), activate docs-writer instead (no docs-content work in v0.6)]
---ci---
v0.6 §1: Go html/template + HTMX architecture — server layout (web/main.go,
handlers/, store/, templates/, static/), base template pattern, HTMX 2.0.10
vendoring (single JS file, no build step, G-006 preserved), progressive
enhancement via HX-Request header (fragment vs full-page dispatch), html/template
contextual auto-escaping (XSS prevention).
v0.6 §2: Mock server data model — exact struct shapes verified from source for
all 6 modules (identity Reach, stash Stash+StashActivity+IsMature, window
Window+Scope+RateLimit+Activate/Revoke/Expire, standing Rating/Vouch/Slash/
FreeholderSignals+helpers, bread GrainsPerBread=10000+BreadScaleAll 11 tiers,
bloom BloomRecord+TargetBloomRateBasisPoints=450). Import paths use module
github.com/oy/openyield. Bread-scale code constants are the source of truth
(D-073) — docs/shared/bread-scale.md is outdated (claims 1000x ratios; code
uses 100x).
v0.6 §3: Lexicon firewall extension — pattern to mirror from
lexicon_meta_test.go (x/**/*.go) and lexicon_meta_docs/ (docs/**/*.md); new
lexicon_meta_web/ subdir + package lexicon_meta_web scanning
web/**/*.{html,js,go}; 10 banned terms verified from lexicon.go:30-41 (bank,
deposit, interest, yield, currency, dollar, euro, account, savings, depositor);
G-013 walk-coverage + G-009 self-test + G-014 shared helper.
v0.6 §4: HTTP routing — Go 1.22 net/http.ServeMux method+path patterns
confirmed (go.mod:3); r.PathValue() for path params; gorilla/mux (go.mod:75
transitive) NOT used by web/ per G-006.
v0.6 §5: PERSONAS.md update — frontend-engineer activation (YAML frontmatter
format documented); territory web/**, frameworks Go 1.22+html/template+HTMX+
ServeMux (NO node/React), constraints G-006/G-003/REQ-012/D-073; backend-engineer
co-owns mock store type integration; security/cosmos/mesh/data-engineers
deactivate for v0.6 (UI-only, no runtime).
v0.6 §6: ARCHITECTURE.md update — proposed section outline appended after
line 514 (v0.5 section end); 7 subsections mirroring v0.5 density.
2026-08-18 11:57:23 +00:00
cloudinit-bot
4876c49aa0
docs(P00): clarify — v0.6 decisions D-066..D-073
...
User-validated stack: Go html/template + HTMX, Go mock API server,
new web/ dir, all 5 screens. Lexicon firewall extended to web/.
Bread-scale source of truth = x/bread/types code constants.
---ci---
project: oy
phase: 0
milestone: v0.6
status: clarify
---/ci---
2026-08-18 11:54:59 +00:00
cloudinit-bot
68298d81b3
docs(init): validate specification — v0.6 Nomad Web UI
...
---ci---
project: oy
phase: 0
milestone: v0.6
status: specify
---/ci---
2026-08-18 11:54:06 +00:00
cloudinit-bot
6502a5abd0
docs(audit): fix PROJECT.md v0.5 status drift (in progress → complete)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
Audit (ci-audit workflow) found PROJECT.md line 64 said 'v0.5 — Bearers
Runtime (in progress...)' but the milestone is COMPLETE (ROADMAP.md
COMPLETE, checkpoint milestone_complete=true, release v0.4.8 shipped).
Fixed to 'complete' to match reconstruction state.
---ci---
project: oy
phase: 8
milestone: v0.5
status: audit
requirements:
covered: []
partial: []
---/ci---
2026-08-18 11:21:14 +00:00
cloudinit-bot
a6a08b0c1b
checkpoint(milestone): v0.5 complete — clear for next milestone
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
---ci---
project: oy
phase: 8
milestone: v0.5
status: complete
requirements:
covered: [REQ-033, REQ-034, REQ-035, REQ-036, REQ-037, REQ-038, REQ-039]
partial: []
---/ci---
2026-08-18 03:42:34 +00:00
cloudinit-bot
6c34650a0d
Merge milestone/v0.5-bearers-runtime into main (v0.5 Bearers Runtime feature milestone release)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
v0.5 Bearers Runtime — 7 runtime REQs (REQ-033..039) shipped as feature.
8 modules promoted to runtime (MsgServer + simtest). cosmos-sdk v0.50.8 +
ibc-go v8.2.1 added (G-006 controlled exception). G-003 + locked-const
firewalls intact. 8 keeper packages ≥80% coverage. 5 GRILL decisions
ratified; 8 binding fixes landed; 5 P1+ flagged for v0.6+.
---ci---
project: oy
phase: 8
milestone: v0.5
status: complete
requirements:
covered: [REQ-033, REQ-034, REQ-035, REQ-036, REQ-037, REQ-038, REQ-039]
partial: []
---/ci---
v0.4.8
2026-08-18 03:42:01 +00:00
cloudinit-bot
4369b3e4cc
checkpoint(milestone): v0.4 complete — clear for next milestone
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
v0.4 Refinement (NFR) milestone complete. Release v0.3.4 (id 752).
All milestone branches deleted (local + remote); tags preserve history.
HEAD on main. NFR purity gate GREEN. Next run starts a new milestone.
---ci---
project: oy
phase: 4
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_role: final
milestone_complete: true
milestone_release_tag: v0.3.4
release_id: 752
requirements:
covered: [REQ-029, REQ-030, REQ-031, REQ-032]
partial: []
---/ci---
2026-08-17 23:36:26 +00:00
cloudinit-bot
d4830bb108
Merge milestone/v0.4-refinement into main (v0.4 Refinement NFR milestone release)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
v0.4 milestone complete. NFR type, tags v0.3.x. Final phase patch v0.3.4
IS the milestone release (D-008). 4 NFR REQs (REQ-029..REQ-032) shipped.
NFR purity gate GREEN (zero feat: commit subjects). go.mod unchanged.
G-003 production firewall intact. Coverage: x/hub 93.3%, x/council 96.4%.
---ci---
project: oy
phase: 4
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_role: final
milestone_complete: true
requirements:
covered: [REQ-029, REQ-030, REQ-031, REQ-032]
partial: []
---/ci---
2026-08-17 23:35:58 +00:00
cloudinit-bot
c1a973f8af
Merge phase/04 (final) into milestone/v0.4-refinement (P4 complete → v0.3.4 milestone release)
...
---ci---
project: oy
phase: 4
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_role: final
milestone_complete: true
---/ci---
2026-08-17 23:35:55 +00:00
cloudinit-bot
21926e8adb
docs(milestone): complete OpenYield v0.4 (Refinement — NFR)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
Milestone v0.4 complete. NFR type, tags v0.3.x. Four NFR REQs shipped:
- REQ-029 lexicon.SyntheticBannedStrings() shared helper (G-014 closed)
- REQ-030 x/hub↔x/bond cross-const equality test (A-304 closed, G-015)
- REQ-031 council lifecycle divergence docs + regression guard (AUDIT §193)
- REQ-032 .gitea/workflows/docs-build.yml docs build CI (D-046 landed)
NFR purity gate GREEN: zero feat: commit subjects in the milestone.
go.mod unchanged (G-006). G-003 production firewall intact. Coverage:
x/hub 93.3%, x/council 96.4% (both above 80% target).
Phases: P0 -> v0.3.0, P1 -> v0.3.1, P2 -> v0.3.2, P3 -> v0.3.3,
P4 -> v0.3.4 (milestone release).
Requirements covered: REQ-029, REQ-030, REQ-031, REQ-032 (all complete).
Live-runtime promotions of v0.3 Bearers skeletons deferred to v0.5+
(feat:-class, rejected by D-001 refinement-only filter).
---ci---
project: oy
phase: 4
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_role: final
milestone_complete: true
requirements:
covered: [REQ-029, REQ-030, REQ-031, REQ-032]
partial: []
---/ci---
v0.3.4
2026-08-17 23:35:48 +00:00
cloudinit-bot
d74515cd1d
docs(P4): v0.4 final review + audit — PASS, NFR purity GREEN
...
REVIEW.md v0.4 section: 7 adversarial probes PASS; 0 P0; 3 P2 nits
(mkdocs link warnings, upload-artifact v4 compat, NFR gate precision).
Confidence 0.90.
AUDIT.md v0.4 section: reconstruction test PASS (phase progression,
tags v0.3.0..v0.3.3, .ciagent evidence); file/branch/commit discipline
PASS; build/test/coverage sanity PASS (x/hub 93.3%, x/council 96.4%).
NFR purity gate GREEN (zero feat: commit subjects). 0 critical issues.
Confidence 0.90.
---ci---
project: oy
phase: 4
milestone: v0.4
status: review
tag_base: v0.3.x
milestone_type: nfr
phase_role: final
---/ci---
2026-08-17 23:34:52 +00:00
cloudinit-bot
a36561337a
checkpoint(p3): v0.4 phase 3 complete → v0.3.3
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
P3 shipped: tag v0.3.3, release id 751. REQ-032 covered. Branch
oy/phase/03 deleted. All execution phases complete. Next: P4 final
review + audit + milestone ship.
---ci---
project: oy
phase: 3
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_release_tag: v0.3.3
---/ci---
2026-08-17 23:33:58 +00:00
cloudinit-bot
7fa5628dc2
Merge phase/03 into milestone/v0.4-refinement (P3 complete → v0.3.3)
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
---ci---
project: oy
phase: 3
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:33:39 +00:00
cloudinit-bot
3b7883c092
verify(P3): docs build CI — 4 layers green
...
docs-build / go test ./... (lexicon firewall + all x/* tests) (push) Has been cancelled
docs-build / mkdocs build (docs site artifact) (push) Has been cancelled
Structural: YAML schema valid; jobs go-test + docs-build; docs-build
needs go-test (G-016 OK). Behavioral: local mkdocs build succeeds (site/
produced); go test ./... green. Security: go.mod unchanged (G-006 intact);
Python deps isolated to docs-build job. Quality: .gitignore covers site/.
NFR purity: zero commit SUBJECTS starting with feat: (grep -E '^feat:'
exit 1 on subject-only check). NOTE: git log --grep matches message BODIES
too (prose mentions 'feat:'); the P4 audit gate uses subject-only check
(git log --format='%s' | grep -E '^feat:').
---ci---
project: oy
phase: 3
milestone: v0.4
status: verify
tag_base: v0.3.x
milestone_type: nfr
reqs: [REQ-032]
---/ci---
v0.3.3
2026-08-17 23:33:36 +00:00
cloudinit-bot
1969b96d3d
chore(ci): docs build CI workflow (REQ-032, D-046, D-051, G-016)
...
Add .gitea/workflows/docs-build.yml: on push, go-test job runs go test ./...
(lexicon firewall + all x/* tests), then docs-build job (needs: go-test per
G-016 firewall-gates-docs-build) installs mkdocs + mkdocs-material, runs
mkdocs build, uploads site/ as a CI artifact. go.mod unchanged (Python deps
isolated to the docs-build job; G-006 intact). Full Gitea Pages publishing
deferred per D-051 (no hosting target configured).
.gitignore: add site/ (mkdocs build output; never committed).
Verification: YAML parses; docs-build needs go-test; go test ./... green;
go.mod unchanged; local mkdocs build succeeds (site/ produced).
---ci---
project: oy
phase: 3
milestone: v0.4
status: execute
tag_base: v0.3.x
milestone_type: nfr
reqs: [REQ-032]
---/ci---
2026-08-17 23:33:02 +00:00
cloudinit-bot
d149916288
checkpoint(p2): v0.4 phase 2 complete → v0.3.2
...
P2 shipped: tag v0.3.2, release id 750. REQ-031 covered. Branch
oy/phase/02 deleted. Next: P3 docs build CI.
---ci---
project: oy
phase: 2
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_release_tag: v0.3.2
---/ci---
2026-08-17 23:32:22 +00:00
cloudinit-bot
c4cbd59c11
Merge phase/02 into milestone/v0.4-refinement (P2 complete → v0.3.2)
...
---ci---
project: oy
phase: 2
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:32:07 +00:00
cloudinit-bot
a6d33a58b3
verify(P2): lifecycle divergence docs + regression guard — 4 layers green
...
Structural: go vet clean. Behavioral: TestSignalKindShapeIntentional PASS;
existing council tests PASS. Security: no locked-const change
(SignalKindCount==4 preserved). Quality: x/council/types coverage 96.4%
(improved from v0.3; new intent test adds coverage). NFR purity: zero
feat: commits in P2 (only docs + test).
---ci---
project: oy
phase: 2
milestone: v0.4
status: verify
tag_base: v0.3.x
milestone_type: nfr
reqs: [REQ-031]
---/ci---
v0.3.2
2026-08-17 23:32:02 +00:00
cloudinit-bot
7d1468b442
docs(arch): council lifecycle divergence decisions (REQ-031, AUDIT §193)
...
Add ARCHITECTURE.md §"Council Voice/Council Interface — Lifecycle Type
Divergence Decisions (v0.4)": documents P1-1 (Proposal/VoteOption absent,
deferred to v0.5+ governance runtime — feat: rejected by D-001), P1-2
(SignalKind 4-vs-5: the 4-source shape is intentional per AUDIT rationale;
Freeholder is eligibility, Guild is council tier, Capital is committed-
capital per vision §9.1), P2 (bearers ValidateGenesis no-op correct per spec).
test(council): TestSignalKindShapeIntentional regression guard (REQ-031)
Add intent-assertion test locking the 4-source SignalKind shape with the
AUDIT §193 P1-2 rationale in the doc comment. A future agent changing
SignalKindCount 4→5 must update this test, surfacing the rationale. No
locked-const change, no production .go files modified (D-050).
Verification: go test ./... green; only types_test.go modified in x/**.
---ci---
project: oy
phase: 2
milestone: v0.4
status: execute
tag_base: v0.3.x
milestone_type: nfr
reqs: [REQ-031]
---/ci---
2026-08-17 23:31:55 +00:00
cloudinit-bot
92966cb9c5
checkpoint(p1): v0.4 phase 1 complete → v0.3.1
...
P1 shipped: tag v0.3.1, release id 749. REQ-029, REQ-030 covered.
Branch oy/phase/01 deleted. Next: P2 lifecycle divergence docs+guard.
---ci---
project: oy
phase: 1
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_release_tag: v0.3.1
---/ci---
2026-08-17 23:31:16 +00:00
cloudinit-bot
838bd06a9d
Merge phase/01 into milestone/v0.4-refinement (P1 complete → v0.3.1)
...
---ci---
project: oy
phase: 1
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:30:50 +00:00
cloudinit-bot
57c7dc5ff5
verify(P1): lexicon+const hardening — 4 layers green
...
Structural: go build ./... + go vet clean. Behavioral: both meta-tests
PASS consuming SyntheticBannedStrings(); 3 new cross-const tests PASS.
Security: lexicon firewalls green (x/ + docs/); G-003 production firewall
intact (no production import of x/bond/types in x/hub/types). Quality:
x/hub/types coverage 93.3% (v0.3 floor preserved; new test adds coverage).
---ci---
project: oy
phase: 1
milestone: v0.4
status: verify
tag_base: v0.3.x
milestone_type: nfr
reqs: [REQ-029, REQ-030]
---/ci---
v0.3.1
2026-08-17 23:30:46 +00:00
cloudinit-bot
2ca0e1aa4b
refactor(lexicon): shared SyntheticBannedStrings() helper (REQ-029, G-014)
...
Add lexicon.SyntheticBannedStrings() — single source for the synthetic
self-test table consumed by BOTH meta-tests. Refactor
TestLexiconMetaSelfTestTable (lexicon_meta) and TestLexiconMetaDocsSelfTestTable
(lexicon_meta_docs) to consume the helper; remove the byte-identical
duplicated 10-string table from both. Closes the G-014 drift risk.
test(hub): cross-package const-equality test (REQ-030, A-304, G-015)
Add x/hub/types/cross_const_test.go: test-only import of x/bond/types
(G-003 test-exempt). TestLendingCouponCapMatchesBondCap + TestLendingCoupon-
FloorMatchesBondFloor assert cross-equality; TestConstsAreMissionLocked800And0
(G-015) asserts absolute 800/0 values — catches paired drift. Closes A-304.
Verification: go test ./... green; old synthetic table gone (grep 0);
go.mod unchanged; G-003 production firewall intact.
---ci---
project: oy
phase: 1
milestone: v0.4
status: execute
tag_base: v0.3.x
milestone_type: nfr
reqs: [REQ-029, REQ-030]
---/ci---
2026-08-17 23:30:30 +00:00
cloudinit-bot
cc0940d9f8
checkpoint(p0): v0.4 phase 0 complete → v0.3.0
...
Phase 0 shipped: tag v0.3.0, release id 748. Branch oy/phase/00 deleted.
Next: P1 lexicon+const hardening (oy/phase/01-lexicon-const-hardening).
---ci---
project: oy
phase: 0
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
phase_release_tag: v0.3.0
release_id: 748
---/ci---
2026-08-17 23:29:20 +00:00
cloudinit-bot
0bb14bd1a1
Merge phase/00 into milestone/v0.4-refinement (P0 complete → v0.3.0)
...
Phase 0 (pre-execution) complete. Tags v0.3.0. Next: P1 lexicon+const
hardening (oy/phase/01-lexicon-const-hardening).
---ci---
project: oy
phase: 0
milestone: v0.4
status: complete
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:28:49 +00:00
cloudinit-bot
b55255614f
decision(P00): mvp/ux gate — auto-generated
...
Auto-generated 3 MVP/UX sections (full autonomy): User-Facing Surface
(4 surfaces: lexicon firewall, cross-const test, docs CI, ARCHITECTURE.md
section), Happy Path (2 scenarios: add banned term / const drift), UX
Acceptance Criteria (6 explicit criteria incl NFR purity gate). Gate
passes — all three sections present.
---ci---
project: oy
phase: 0
milestone: v0.4
status: mvp_ux_check
tag_base: v0.3.x
milestone_type: nfr
---/ci---
v0.3.0
2026-08-17 23:28:34 +00:00
cloudinit-bot
d88d2eaeb8
docs(P00): grill — v0.4 NFR adversarial review (G-015, G-016)
...
Nine-axis scorecard: 8 PASS + 1 CONDITIONAL→fixed. SHIP Phase 0 (0.84).
G-015: cross-const test MUST assert absolute 800/0 values (paired-drift
guard) — already in P1-02-01. G-016: docs-build job MUST need go-test
(firewall-gates-docs-build, no false-green) — applied to P3-01-01.
D-001 filter enforced; NFR purity gate enforceable.
---ci---
project: oy
phase: 0
milestone: v0.4
status: grill
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:28:11 +00:00
cloudinit-bot
5e06b14ddf
docs(P00): create phase plans — v0.4 NFR (P1..P4, 12 tasks)
...
P1 lexicon+const hardening (REQ-029/030). P2 lifecycle divergence docs+
guard (REQ-031). P3 docs build CI (REQ-032). P4 final review+audit+ship.
D-001 refinement-only filter governs all tasks. NFR purity gate in P4.
Tags v0.3.x. No cross-phase hard blockers (independent vertical slices).
---ci---
project: oy
phase: 0
milestone: v0.4
status: plan
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:27:33 +00:00
cloudinit-bot
28d73c8b2c
docs(P00): research findings — v0.4 NFR research R-029..R-032 + PERSONAS.md
...
R-029 lexicon shared helper (G-014 drift confirmed: byte-identical synthetic
tables in both meta-tests). R-030 cross-const test (hub/bond 800/0 LOCAL
consts, G-003 test-exempt import). R-031 lifecycle divergence (AUDIT §193
P1-1/P1-2 are feat:-class, rejected by D-001; v0.4 = document + regression
guard only). R-032 docs CI (.gitea/workflows, build+artifact, no Pages
publish). PERSONAS.md: backend-engineer + lead-developer only; v0.3
frontend/docs-writer deactivated.
---ci---
project: oy
phase: 0
milestone: v0.4
status: research
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:26:33 +00:00
cloudinit-bot
46c2c4ef6c
docs(P00): clarify — v0.4 NFR scope decisions D-047..D-053
...
Auto-decided defaults (autonomy=full). v0.4 = refinement-only NFR.
D-047 NFR type, tags v0.3.x. D-048 lexicon shared helper (G-014).
D-049 cross-const test (A-304). D-050 REQ-031 = document only, no feat:
enum additions (D-001 filter). D-051 docs CI = .gitea/workflows build+artifact
(no Pages publish). D-052 phase ordering. D-053 no IDEATE (no flag this run).
---ci---
project: oy
phase: 0
milestone: v0.4
status: clarify
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:25:20 +00:00
cloudinit-bot
0cac4b0b32
docs(init): validate specification
...
Establish v0.4 refinement-only NFR milestone. Tags run on v0.3.x line.
Scope sourced from v0.3 forward-references (REVIEW P2/A-304, AUDIT §193,
GRILL G-014, D-046): REQ-029 lexicon shared helper, REQ-030 cross-const
test, REQ-031 lifecycle type review, REQ-032 docs build CI. Zero feat:
phases by construction.
---ci---
project: oy
phase: 0
milestone: v0.4
status: specify
tag_base: v0.3.x
milestone_type: nfr
---/ci---
2026-08-17 23:24:46 +00:00
cloudinit-bot
97a25dd0b6
checkpoint(milestone): v0.3 complete — clear for next milestone
2026-08-17 22:36:04 +00:00
cloudinit-bot
82ae6cf5a2
docs(milestone): complete OpenYield v0.3 (Bearers & Documentation)
...
Milestone v0.3 complete. Feature type, tags v0.2.x. Two work-streams
shipped under one feature milestone:
(A) Bearers skeleton + tests (D-020 pattern, 7 x/* packages, zero ext deps):
- x/bridge (NEW): BridgeStatus enum (4), BridgeRoute by-ID-string refs
- x/exit (NEW): ExitStatus enum (5), ExitRoute, DEXSwap (opaque venue)
- x/bearers (EXT): OYSATLink surveillance-resistant LOCKED, OYQRCode idempotent
- x/partner (EXT): AnchorCredential (custody-provider-id empty in skeleton)
- x/hub (NEW): HubService enum (3), LendingCouponCapBps=800 LOCAL const (A-304)
- x/services (NEW): ServiceKind enum (4), window-id by-ID-string ref (A-307)
- x/bond (EXT): GrowthBond, ClampGrowth G-012 underflow guard, secondary market
All packages >=93.3% coverage. Both lexicon firewalls green. G-003 intact.
(B) Documentation deliverable (REQ-027 complete, 26-page MkDocs Material site):
- README.md + mkdocs.yml + docs/index.md
- docs/shared/ (7 pages): Six Principles, Bread Scale, Storage Pools, Watchers/Mirror, Lexicon, Vision
- docs/nomads/ (8 pages): Reach, Stash, Bearers, Maps-Pay, Pacts, Standing, Window
- docs/freeholders/ (8 pages): Signals, Standing, Stands-Guilds, Councils-Voice, Bonds, Partner Spectrum, Anchor Preview
- docs/reference/ (2 pages): Architecture, Components
- REQ-028: lexicon firewall extended to docs/ + README.md (lexicon_meta_docs_test.go, 5 tests incl G-013 walk-coverage + G-014 shared self-test)
Phases: P0 -> v0.2.0, P1 -> v0.2.1, P2 -> v0.2.2, P3 -> v0.2.3, P4 -> v0.2.4, P5 -> v0.2.5, P6 -> v0.2.6 (milestone release).
Requirements covered: REQ-010, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026 (skeleton), REQ-027, REQ-028 (complete).
IDEATE-01..08 ratified and delivered.
---ci---
project: oy
phase: 6
milestone: v0.3
status: complete
tag_base: v0.2.x
phase_role: final
milestone_complete: true
requirements:
covered: [REQ-010, REQ-022, REQ-023, REQ-024, REQ-025, REQ-026, REQ-027, REQ-028]
partial: []
---/ci---
v0.2.6
2026-08-17 22:35:36 +00:00
cloudinit-bot
47fa79148c
docs(milestone): complete OpenYield v0.2 (The Mesh)
...
---ci---
project: oy
phase: 5
milestone: v0.2
status: complete
phase_role: final
milestone_complete: true
---/ci---
Checkpoint: v0.2 milestone complete. Merged to main, tagged v0.1.5 (milestone release,
release id 732 on Gitea). All milestone branches deleted. Per run.md, checkpoint cleared
for next run (v0.3 The Bearers per ROADMAP Phase 3).
2026-08-17 21:41:56 +00:00