0bcb96c442
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---
24 lines
993 B
HTML
24 lines
993 B
HTML
{{define "title"}}OpenYield — real production on the mesh{{end}}
|
|
|
|
{{define "content"}}
|
|
<section class="panel">
|
|
<h1>OpenYield</h1>
|
|
<p>
|
|
OpenYield is a mesh-native system for real production. A Holder creates a
|
|
Reach to enter the mesh, holds a Stash of Grain, and authorizes Window
|
|
access to partners. Standing accrues through honest participation, and
|
|
Bloom rewards sustained contribution. No middleman holds your Stash.
|
|
</p>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<h2>The five screens</h2>
|
|
<ul>
|
|
<li><a href="/reach">Reach</a> — create a Reach and view the mesh of Holders.</li>
|
|
<li><a href="/stash">Stash</a> — your sovereign Grain Stash (P2).</li>
|
|
<li><a href="/window">Window</a> — authorize partner access to your Stash (P3).</li>
|
|
<li><a href="/standing">Standing</a> — track progress toward Freeholder standing (P4).</li>
|
|
<li><a href="/bloom">Bloom</a> — accrued rewards for sustained contribution (P5).</li>
|
|
</ul>
|
|
</section>
|
|
{{end}} |