{"id":"public-approach","title":"Public Corpus & Documentation Approach","subtitle":"How the corpus stays public — organization model, shelves, and roadmap.","category":"foundations","tags":["meta","strategy","roadmap"],"source":"articles/docs/PUBLIC.md","lang":"en","words":515,"readMinutes":2,"toc":[{"depth":2,"text":"Principle","id":"principle"},{"depth":2,"text":"Organization model","id":"organization-model"},{"depth":2,"text":"The shelves","id":"the-shelves"},{"depth":2,"text":"Roadmap","id":"roadmap"},{"depth":2,"text":"Editorial rules","id":"editorial-rules"}],"html":"<h1 id=\"public-corpus-amp-documentation-approach\">Public Corpus &amp; Documentation Approach</h1><p>How Lupine maintains a research corpus <em>in public</em> — hypotheses, conjectures, proofs,\npartnerships, and a working changelog — in one place: the\n<a href=\"https://library.lupine.science\">Lupine Library</a>, generated from this repository.</p>\n<h2 id=\"principle\">Principle</h2><p><strong>The corpus is the source of truth; the Library is a view of it.</strong> Every public artifact is\na Markdown file in this repo. <code>library-site/scripts/catalog.js</code> curates which files appear,\nhow they are grouped, and in what order; <code>library-site/scripts/build.js</code> renders them to a\nstatic, offline-capable reader. Nothing is authored in a CMS; there is no second copy to\ndrift.</p>\n<p>This makes the Library a place to <strong>think about the work</strong>, not just publish it: the same\nedit that records a result also re-shelves it.</p>\n<h2 id=\"organization-model\">Organization model</h2><p>Today the catalog has one axis — <code>category</code> (the shelf) — plus free-text <code>tags</code>. To make the\nLibrary a reasoning surface we add two more axes (Phase 2):</p>\n<div class=\"table-wrap\"><table><thead><tr>\n<th>Axis</th>\n<th>Purpose</th>\n<th>Examples</th>\n</tr>\n</thead><tbody><tr>\n<td data-label=\"Axis\"><code>category</code></td>\n<td data-label=\"Purpose\">The shelf (broad domain)</td>\n<td data-label=\"Examples\">Foundations, Uncertainty &amp; Error, Theory, Formalization</td>\n</tr>\n<tr>\n<td data-label=\"Axis\"><code>group</code></td>\n<td data-label=\"Purpose\">A pivot <em>within or across</em> shelves</td>\n<td data-label=\"Examples\">research round, element, property family, partnership</td>\n</tr>\n<tr>\n<td data-label=\"Axis\"><code>status</code></td>\n<td data-label=\"Purpose\">Epistemic / lifecycle state</td>\n<td data-label=\"Examples\"><code>proposed</code>, <code>supported</code>, <code>refuted</code>, <code>self-corrected</code>, <code>landed</code>, <code>planned</code></td>\n</tr>\n<tr>\n<td data-label=\"Axis\"><code>tags</code></td>\n<td data-label=\"Purpose\">Free-text retrieval</td>\n<td data-label=\"Examples\"><code>simpson</code>, <code>hyper-ribbon</code>, <code>phonon</code></td>\n</tr>\n</tbody></table></div><p><code>status</code> is the important new one: it lets a reader (you) browse the <strong>hypothesis lifecycle</strong>\ndirectly — every conjecture with where it stands and <em>why it moved</em>, cross-linked to the\nchangelog entry and the Lean proof that grounds or refutes it.</p>\n<h2 id=\"the-shelves\">The shelves</h2><p>Existing (recovered): Foundations · Uncertainty &amp; Error · Validation &amp; Benchmarking ·\nTheory · Ecosystem &amp; Funding · Formalization · Meta.</p>\n<p>Added now (Phase 0): <strong>Changelog &amp; Progress</strong> — the <a href=\"#/read/changelog\"><code>CHANGELOG.md</code></a>\nnarrative spine, why/what/results/next.</p>\n<p>Added in Phase 2:</p>\n<ul>\n<li><strong>Conjectures &amp; Proofs</strong> — one entry per hypothesis, <code>status</code>-tagged, with evidence IDs and\nlinks into <code>lean-spec/</code> formal proofs. Generated from the hypothesis records, not\nhand-maintained.</li>\n<li><strong>Partnerships</strong> — pilot mappings (e.g. MIIT-67 ↔ Lupine thesis) under a visibility\nconvention: public thesis and methodology; gated commercial terms.</li>\n</ul>\n<h2 id=\"roadmap\">Roadmap</h2><ul>\n<li><strong>Phase 0 (done).</strong> Recover <code>library-site/</code>; external README; <code>CHANGELOG.md</code>;\n<code>docs/PUBLIC.md</code>; wire changelog + strategy into the catalog. Local-only, no redeploy.</li>\n<li><strong>Phase 1 (code done; awaits merge).</strong> Confirmed EN fallback already correct in the\nrecovered source; made the service worker network-first for <code>/data/</code> + added a <code>KILL</code>\ncache-eviction token so a bad build can never permanently brick visitors again; recreated\nthe deploy as committed IaC (<code>.github/workflows/deploy-library-site.yml</code> → recovered\n<code>cloudbuild.yaml</code>) that replaces the frozen image on the existing <code>library-site</code> Cloud Run\nservice. Restoring <code>library.lupine.science</code> is now a merge-to-<code>main</code>, not a hand-run deploy.</li>\n<li><strong>Phase 2 (the ambition).</strong> Add <code>status</code>/<code>group</code> to catalog + build manifest + reader\nfacets. Generate the Conjectures &amp; Proofs and Partnerships shelves from the corpus and the\nhypothesis records so the Library updates as research lands. A <code>make publish</code> step keeps\nthe site in lock-step with the corpus.</li>\n<li><strong>Phase 3 (door left open).</strong> Many-language support on the EN-fallback-safe i18n base.</li>\n</ul>\n<h2 id=\"editorial-rules\">Editorial rules</h2><ul>\n<li>Every refuted claim gets a <code>CHANGELOG.md</code> entry <strong>and</strong> a <code>status: refuted</code> shelf entry\nwith the confounder named. Self-correction is a first-class result.</li>\n<li>Negative and null results are published, not buried.</li>\n<li>No artifact exists only on the site — if it is public, it is a Markdown file in this repo.</li>\n</ul>\n"}