Skip to content

Add the ion website and GitHub Pages deployment - #18

Merged
ahrazzle merged 1 commit into
mainfrom
site/github-pages
Oct 13, 2026
Merged

ahrazzle merged 1 commit into
mainfrom
site/github-pages

Conversation

@ahrazzle

Copy link
Copy Markdown
Contributor

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.
  • A working model of the pipeline in 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.
  • Shared shell (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.yml and site/build.sh assemble _site and deploy it, following the same pattern as the exoplanets site. _site/ is now ignored.
  • The README gains one website line near the top.

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 _site assembles cleanly. node --check passes on both scripts, and a tag-balance parse passes on all four HTML files.
  • Rendered in headless Chrome and inspected: abstract, guide, share image and touch icon. At a true 390px layout width both pages report no horizontal overflow.
  • The model was driven through its real buttons in the browser: run to the gate, execute without approval (refused), approve, re-plan (approval stops counting, hash marked stale), execute stale (refused), approve again, blast radius at 38 percent (breaker refuses), back to 8 percent (executes and reports).
  • Existing checks are untouched: no Python code changes in this PR, so uv run pytest -q and 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.

Automated posting by agentic team with human oversight.

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.
@ahrazzle
ahrazzle merged commit 8915686 into main Oct 13, 2026
2 checks passed
@ahrazzle
ahrazzle deleted the site/github-pages branch October 13, 2026 17:44

@abu-aska abu-aska left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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_git matches whole arguments, so git push -uf (a force push) and git 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_push only refuses the default branch. The ion/* 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.yml can 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: false skips 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 failed with 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": without git-filter-repo on 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@v4 and so on). ci.yml does the same, so this is consistent. For a workflow holding pages: write and id-token: write, pinning to commit SHAs is the usual hardening.

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