Skip to content

Rebuild the public site as a unified static-first knowledge system - #5

Merged
erinepshovel-code merged 59 commits into
mainfrom
agent/unified-static-first-site
Jul 14, 2026
Merged

erinepshovel-code merged 59 commits into
mainfrom
agent/unified-static-first-site

Conversation

@erinepshovel-code

@erinepshovel-code erinepshovel-code commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Establishes one Eleventy-generated production site with a unified Midnight Field visual system.
  • Replaces the raw-text homepage with a layered orientation path: Start → The Way → unit companion → Article Lab or exact source.
  • Preserves the wayseer00/wayseer.github.io:canon/the_interdependent_way.md canonical identity and visibly records remote versus recovery-mirror retrieval.
  • Parses canonical units, line ranges, SHA-256 evidence, actual numbered note text, and bounded deterministic route slugs.
  • Generates one page for every public organization repository and enriches pages from .interdependency/project.yml manifests or reviewed central overrides.
  • Adds an Artifacts index and publishes artifacts/four-cuts-1.html at /artifacts/four-cuts/ through the Eleventy deployment artifact.
  • Adds a dependency-free emergency static edition and a separate explicit manual recovery workflow.
  • Retains verified _site artifacts for 30 days before Pages deployment.
  • Replaces the stale a0p README with architecture, usage, manifest, status-language, and recovery guidance.
  • Adds msdmd-style module and boundary declarations to new or materially revised build modules.

Why

The repository contained an older hand-authored root site and a newer Eleventy scaffold with competing aesthetics and incomplete routing. The dynamic browser script queried an obsolete repository identity, canon provenance incorrectly named a0, Article Lab pages did not contain parsed note text, and the Four Cuts artifact was not part of the generated deployment route system.

This change makes static HTML the durable floor, moves dynamic discovery to build time, keeps canon and commentary distinct, and leaves uncertainty visible as hmmm instead of manufacturing completion.

Visitor and contributor impact

Visitors receive a calm orientation before dense source text, consistent status language, accessible progressive disclosure, repository constellation pages, and a complete no-JavaScript reading floor. Contributors receive an explicit .interdependency/project.yml contract, offline build path, recovery workflow, bounded route rules, and generated-route tests.

Validation — passing

GitHub Actions run 29315844817 passed the full gate on head 36b5b0844d03e3d9d8b8da5917f80eda813356cb:

  • dependency installation
  • canonical and organization data refresh
  • canon authority verification
  • canonical unit evidence verification
  • repository route coverage verification
  • recovery input verification
  • generated content validation
  • Eleventy site generation
  • Pagefind search indexing
  • Node contract tests, including generated _site route checks

hmmm

  • Reviewed plain-language companion readings and the research corpus remain intentionally incomplete; the site records those gaps per unit rather than filling them with generated certainty.
  • Repository manifests remain to be propagated across the rest of the organization; unmanifested repositories still receive public pages with visible editorial gaps.

@erinepshovel-code
erinepshovel-code marked this pull request as ready for review July 14, 2026 22:59

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 36b5b0844d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/fetch-github-org.mjs Outdated
Comment thread tests/site-contract.test.mjs Outdated
@erinepshovel-code
erinepshovel-code merged commit 16e6834 into main Jul 14, 2026
5 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7e95b04bcf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +54 to +55
} catch {
return null;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve manifests when manifest fetches fail

When the org listing succeeds but a per-repo contents request fails for a repository that actually has .interdependency/project.yml (for example due to API rate limiting, a timeout, or invalid YAML), this catch makes that failure indistinguishable from “no manifest”. The rest of the run still has fallback === false, so the mapper publishes inferred frontier/hmmm fields and rewrites repos.last-known-good.json, erasing previously reviewed manifest metadata instead of falling back for that repo.

Useful? React with 👍 / 👎.


const canon = JSON.parse(await readFile('src/_data/generated/canon.json', 'utf8'));
const repos = JSON.parse(await readFile('src/_data/generated/repos.json', 'utf8'));
if (canon.source.repository !== 'wayseer00/wayseer.github.io') throw new Error(`unexpected canon repository: ${canon.source.repository}`);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep generated canon data in sync for validate

On a clean checkout, running the standalone package script npm run validate now fails at this new authority check because the committed src/_data/generated/canon.json in this commit still names The-Interdependency/a0 instead of the Wayseer source; I verified the script exits here before the refresh step that npm run build performs. Since validate remains a public script and this module declares it as an entrypoint, either commit matching generated data or make validation refresh/read the new provenance first.

Useful? React with 👍 / 👎.

Comment thread scripts/parse-canon.mjs
Comment on lines +58 to +61
if (/^article\s+/i.test(title)) {
const count = (articleBySection.get(sectionId) || 0) + 1;
articleBySection.set(sectionId, count);
localId = `article-${count}`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Only count canonical article headings

With the current canon, the nested heading ##### Article Two (low density) also matches this condition, so it consumes article-3 and shifts the real #### Article Three route/id to rights-and-definitions-of-the-way.article-4. Any inserted explanatory subheading that starts with “Article” will similarly renumber subsequent public URLs and unit IDs, so the counter should be limited to the canonical article level/pattern rather than every heading title prefix.

Useful? React with 👍 / 👎.

let fallback = false;
let rawRepos = [];
let overrides = {};
try { overrides = yaml.load(await readFile('src/_data/project-overrides.yml', 'utf8')) || {}; } catch {}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fail instead of dropping central overrides

If src/_data/project-overrides.yml has a YAML typo or cannot be read, this empty catch silently replaces all reviewed central overrides with {}; when the GitHub repo listing then succeeds, the run is not marked as fallback and writes a new last-known-good snapshot with those reviewed summaries/statuses/purposes removed. Missing override files can still be optional, but parse/read errors for an existing reviewed file should fail the refresh rather than publish inferred metadata.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants