Repository navigation
Add the ion website and GitHub Pages deployment - #18
Merged
Merged
Conversation
Infographic abstract with a working model of the approval gate, a guide to running ion, and the Pages workflow to publish both. Plain HTML/CSS/JS in site/, assembled by site/build.sh.
abu-aska
reviewed
Oct 13, 2026
abu-aska
left a comment
Contributor
There was a problem hiding this comment.
Review of the site against main at c618f4a. site/build.sh, the Pages workflow and the two scripts look sound (static content, the only innerHTML is a fixed string, the only fetch is data/build.json). The points below are lines on the page that main does not meet today. Each one links the issue with its reproduction.
Claims the code does not meet on main
- Panel 04, "No force push, in any spelling, ever" and "No deleted repos, branches or history":
guard_gitmatches whole arguments, sogit push -uf(a force push) andgit push -d origin <branch>(a delete) pass it. The delete was reproduced (#39). No executor builds these argv today, so this is about the guard, not a live path. - Panel 04, "Pushes may only target ion/* branches": on main,
safe_pushonly refuses the default branch. Theion/*check is in PR #2, which is still open. - Panel 04, "Any branch-protection weakening also trips it": dropping required status checks does not (#3).
- Hero, "0 structural changes without a maintainer's approval", and panel 03, "whether they maintain every repo involved": a repo's own
.github/ion.ymlcan replace the maintainer list (#19), and bus approvals skip the per-repo check (#27). - Panel 03, "Change the plan and the fingerprint changes. The old yes stops counting": this holds until execution starts. Once a proposal is
executing, a changed subject is saved without a re-plan (#31). The hash also covers only the current phase (#38). - Panel 03, "Archiving always needs its own approval":
archive_requires_second_approval: falseskips it (#40). - Hero, "25 % of the org in one run trips the circuit breaker": the guard is off for orgs under 4 repos (#7).
- Panel 04, "a crashed or interrupted run resumes without repeating finished steps": several steps fail on every re-run after a crash (#33), and a breaker trip leaves the proposal
failedwith no automatic resume (#29). - Panel 05, "A candidate must persist across repeated snapshots ... so one odd day never files an issue": policy fixes are filed from one snapshot (#4).
Suggest either wording these lines as what main does now, or listing the open issues in the Status panel next to "Not yet built" until they close. The footer says the repository and SPEC.md are the record, and the page currently claims more than the record shows.
Smaller
- "Run the checks yourself:
uv run pytest -q": withoutgit-filter-repoon PATH, 11 tests fail and 4 error. CI installs it with apt. The guide lists filter-repo as needed "if you want splits"; the test suite needs it too. - The workflow pins actions to major tags (
actions/checkout@v4and so on).ci.ymldoes the same, so this is consistent. For a workflow holdingpages: writeandid-token: write, pinning to commit SHAs is the usual hardening.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the project website for ion and deploys it with GitHub Pages.
What is in it
site/index.html: an infographic abstract in nine numbered panels. It says what ion is, why an org drifts, how approval binds to one plan hash, how writes stay safe, what ion proposes and how coupling is scored, what is built and what is not, why the name fits, and where the prior art is credited.site/sim.js. A visitor runs the six stages, then acts as the maintainer: approve, hold, change the plan and watch the approval stop counting, widen the blast radius past the 25 percent guard and watch the breaker refuse a fully approved run.site/guide.html: install and first dry run, the config keys that matter, a walk-through of approving one plan, every command, scheduling, and a first-month plan.site/shell.js,site/style.css): plain HTML, CSS and JavaScript, no build step and no web fonts. Side index, lattice backdrop, share image, favicons and a 404 page..github/workflows/pages.ymlandsite/build.shassemble_siteand deploy it, following the same pattern as the exoplanets site._site/is now ignored.Numbers on the site come from the shipped defaults and SPEC.md: six stages, nine proposal kinds, coupling weights and the 0.6 merge threshold, caps of 5 PRs and 1 archive per run, breaker guards at 25 percent, 2 archives and 150 writes, 14-day approval expiry. The status panel lists the not-yet-built items from SPEC sections 7 and 8 as not built.
Validation
bash site/build.sh _siteassembles cleanly.node --checkpasses on both scripts, and a tag-balance parse passes on all four HTML files.uv run pytest -qand the licence guard cover the same surface as on main. CI runs both on this branch.Pages setup
Two repository settings complete the publishing side: Pages on the workflow build type, and the homepage set to https://aska-digital.github.io/ion/. Each is one API call, made alongside this PR.