IDKMesh

GitHub Pages Site Projection v0.1

Status: experimental C14-E contract for issue #609.

Purpose

Give a public, non-sensitive repository an optional read-only static view of its IDKMesh runs without a separate server or UI: project health, active work, verification debt, per-run provenance, and the public JSON behind each page.

The implementation is idkmesh/github_pages_site.py. It is a pure function over the C14-D projections defined in GitHub Public Evidence Projection v0.1; it never reads raw provider or evidence JSON.

files = render_github_pages_site(projections, repository="owner/name")

The result is a deterministic path -> text mapping. The function performs no file, network, GitHub, verification, decision, or repository mutation. A separate step decides whether and where to write it: the local-directory writer below, or a later publication step (not part of this slice).

Writing the site to a local directory

idkmesh pages-site --repository owner/name \
  --projection projections/run-1.json projections/run-2.json --out site

The implementation is idkmesh/github_pages_writer.py (write_github_pages_site(files, out_dir, force=False)), driven by idkmesh pages-site. The command reads each --projection file as strict JSON (no duplicate keys, no NaN), at most 500 files, passes them through render_github_pages_site (which re-validates every projection through the C14-D renderer first), and writes exactly the returned files. It adds no manifest, marker, or other file. --json prints the repository, output directory, and per-file size and SHA-256. It makes no network or GitHub call and does not publish: copying the directory to a Pages branch or artifact is a separate, not yet built step.

Write guarantees:

Residual risk: another process swapping --out between the check and the rename is not defended against.

Generated files

Path Content
index.html Project health counts, active work, verification debt, all runs
runs/<slug>.html One run: provenance facts, ordered attempts, evidence summary
data/runs/<slug>.json The exact C14-D public JSON for that run
.nojekyll Empty marker so Pages serves the files as written

<slug> is the first 16 hex characters of the SHA-256 of the run ID, so arbitrary run IDs never become file names. Files are returned in sorted path order and input order does not matter.

Definitions

These are counts over published metadata. They are not a correctness, acceptance, or readiness claim.

Safety rules

Authority and availability

Pages is a publication surface, never a mutation or approval surface. Dispatch, verification, human decision, canonical-state write, Git push, integration, and merge authority are all absent. Pages being disabled or unavailable must not affect coordination; the canonical ledger and the GitHub issue/PR/Actions surfaces remain the source of truth (fallback behavior is C14-H).

The caller, not this module, must establish that the repository and data are public before building the C14-D projections.

Non-goals