Skip to content

Add a CI gate: the site builds and the built pages match their sources - #2

Merged
ALLiDoizCode merged 2 commits into
mainfrom
ci-gate
Oct 14, 2026
Merged

ALLiDoizCode merged 2 commits into
mainfrom
ci-gate

Conversation

@ALLiDoizCode

Copy link
Copy Markdown
Contributor

Adds .github/workflows/ci.yml with a job named gate. Its run: steps are also the AFK factory's gate (gateFromCi in .sandcastle/run-gate.ts reads them from main), so once this merges every agent PR is checked by:

  1. python3 build.py: the site builds.
  2. Built pages match their sources: after the build, git status --porcelain is empty, so an edit to src/ without a rebuild, or a hand edit to a built page, fails.
  3. sh -n install.sh: the installer at toon.ar.io/install.sh parses.

build.py needed a fix to run in the factory. The factory runs the gate in ghcr.io/toon-protocol/sandcastle-agent, which has Python 3.11. nav_groups used a backslash inside an f-string expression, which needs 3.12+, so build.py failed to parse there. It's rewritten to use a local variable. The output is byte-identical: rebuilding leaves every page unchanged.

CI pins Python 3.11 to match the sandbox, so a 3.12-only construct fails in CI too, not only in the factory.

Verified:

  • All three steps pass in the sandcastle-agent image.
  • gateFromCi parses this file into exactly those three steps, with no skips.
  • A src/ edit that wasn't rebuilt fails step 2.

🤖 Generated with Claude Code

ALLiDoizCode and others added 2 commits October 14, 2026 14:00
The gate job's run steps are also the AFK factory's gate, run in the
sandcastle-agent image's Python 3.11. build.py used a backslash inside an
f-string expression, which needs 3.12, so it is rewritten to parse on 3.11.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ALLiDoizCode
ALLiDoizCode merged commit 97f9f8c into main Oct 14, 2026
1 check passed
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.

1 participant