Skip to content

Register Dashboard — Build & Deploy

A static HTML view of docs/open-items.md, generated by scripts/build-register.js.

Build locally

npm run build:register

Reads docs/open-items.md and docs/closed-items.md, writes site/index.html. No dependencies. Open the file directly in a browser — it needs no server.

site/ is gitignored. The output is derived, and committing it would let the dashboard drift from the register it is supposed to reflect.

Cloudflare Pages

Setting Value
Framework preset None
Build command node scripts/build-register.js
Build output directory site
Root directory (leave blank)

Rebuilds on every push to the configured branch.

⚠️ Access control is required

auto-warz is a private repository. Cloudflare Pages serves publicly by default, and this dashboard exposes the entire open design surface: unreleased mechanics, endgame paths, mode concepts, and every unmade decision.

Put Cloudflare Access in front of the project before sharing the URL. Zero Trust → Access → Applications → Add a self-hosted application, pointed at the Pages domain, with a policy limited to your own email. Free at this scale.

An unprotected Pages deployment is a public URL whether or not it is linked anywhere.

What the dashboard shows

  • Open — every row in the register
  • Actionabletask and defect only. The register's own header rule warns that logging every unmade decision manufactures a backlog that can never empty; undecided rows are ordinary unfinished design, not debt. The actionable figure is the real backlog.
  • Do first — kept deliberately short. If more than about six items are DO FIRST, none of them are.
  • Blocking the most work — which items have the most dependants. Click to filter to that id.

Column contract

The parser expects nine pipe-delimited columns in open-items.md:

| ID | Area | Kind | Item | Intent steer | Detail lives in | Blocked by | Priority | Raised |

and ten in closed-items.md (the same plus Resolved). It warns on any row with a different count rather than failing, so a malformed row is reported instead of silently dropped.

Blocked by is split on ; — use a semicolon to list more than one blocker.