refactor: retire the hand-written site

Deletes the pre-Astro pages, scripts, and stylesheets that the migration
replaced, and moves the ones it did not replace out of the way.

Deleted (32 files): app.js, responsive.css, landing.css, rules/app.js,
rules/styles.css, skills/app.js, the ten route index.html files, and the
root hands-on/ copy, which is byte-identical to public/hands-on/ -- the
one the build actually ships.

Moved to legacy/ (12 files): styles.css, full-guide/audit.css,
chapters.css, skills/styles.css, skills-review/styles.css,
skills-review/change-lens.css, and the skills-review/app.js module graph.
These are not dead. The Astro pages import them and the build fails
without them, which the plan had not accounted for. They go to legacy/
rather than src/ because check-tokens.mjs sweeps src, and these files are
full of raw hex and unnamed breakpoints: moving one into src/ should mean
migrating it to tokens in the same change, not adding a scan exclusion.
The prettier, stylelint, and eslint ignore lists that already named these
files at their old paths now name legacy/ instead.

verify.mjs no longer reads app.js. The 102 Portuguese strings were
extracted from its translations.pt object before deletion into
.agents/snapshots/full-guide-pt.json -- a legacy capture, not a snapshot
of the Astro build, so the assertion still compares against an
independent source. The brace-matching helper's assertion is replaced by
one that rejects an empty snapshot entry, without which trimming the
snapshot would make the presence check pass vacuously. Count stays at 84.

audit-ui.mjs reads the ten pages from dist/ and resolves Astro's
base-absolute hrefs against it.

Before deleting anything, rendered-text-diff was run across all ten
routes plus both Portuguese pages: every one at parity, 0 missing and 0
extra. That comparison is not repeatable once the legacy files are gone.
computed-style-diff on /full-guide/ stays at 32 differences, so the moves
are style-neutral.

Docs updated to match: README, AGENTS.md, GATES.md, the architecture
context, the operations guide's lab instructions, and the three skills
that told you to serve the vanilla site.

Publishing is not part of this commit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Marcos Paulo
2026-09-06 08:30:27 +00:00
parent 12c32d2fd7
commit 580293867d
57 changed files with 367 additions and 1287 deletions
+13 -11
View File
@@ -427,17 +427,19 @@ paths, and confidence notes.
## Hands-on lab
The presentation includes a dependency-free starter at `hands-on/starter/`. It
renders a small task board but intentionally omits the All / Open / Done filter.
The presentation includes a dependency-free starter at
`public/hands-on/starter/`. It renders a small task board but intentionally
omits the All / Open / Done filter. Attendees clone it from the `pages` branch,
where the build places it at `hands-on/starter/`.
Run it from the repository root:
```bash
python3 -m http.server 4173
pnpm run dev
```
Open
[http://localhost:4173/hands-on/starter/](http://localhost:4173/hands-on/starter/).
[http://localhost:4321/ai-for-dummies/hands-on/starter/](http://localhost:4321/ai-for-dummies/hands-on/starter/).
In a fresh coding-agent session, copy **Run A — Good prompt** from the
presentation. Record changed files, dependencies, checks, and evidence. Restore
the starter, then repeat with **Run B — Good prompt + skills**.
@@ -464,20 +466,20 @@ Compare:
### Hands-on rules lab
A second lab at `hands-on/rules/` mirrors the starter's visual system and runs
the same exercise against rule sources. It lists five toggleable rule sources —
`AGENTS.md`, the `gate-discipline` skill body, the Husky `pre-commit` hook, the
`check-ui-contract.mjs` enforcer, and `commitlint` — and rebuilds the **ruled**
prompt live as each toggle flips.
A second lab at `public/hands-on/rules/` mirrors the starter's visual system and
runs the same exercise against rule sources. It lists five toggleable rule
sources — `AGENTS.md`, the `gate-discipline` skill body, the Husky `pre-commit`
hook, the `check-ui-contract.mjs` enforcer, and `commitlint` — and rebuilds the
**ruled** prompt live as each toggle flips.
Run it:
```bash
python3 -m http.server 4173
pnpm run dev
```
Open
[http://localhost:4173/hands-on/rules/](http://localhost:4173/hands-on/rules/).
[http://localhost:4321/ai-for-dummies/hands-on/rules/](http://localhost:4321/ai-for-dummies/hands-on/rules/).
Compare the **naive** and **ruled** prompt panels. Toggle rules off to shrink
the prompt; toggle them on to add more guards. Copy the final prompt and run it
against a real coding agent.