0.8.0 — reach: zero-setup first run, four more countries, eaa-kit countries, audit --watch - #27
Merged
Merged
Conversation
0.8.0 is reach: four more countries, one place a country is defined, a command that lists them, init that stops turning a typo into Austria, and audit --watch. 0.9.0 is the first ten minutes, 1.0.0 the contracts frozen. The four countries' citations were established from secondary sources only -- the official gazettes were not reachable from the session that wrote them -- and checking them against the primary text is written in as a release blocker rather than left implicit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
Four more countries, each written under its own law: BE in French, Dutch and English; IE in English; PL in Polish and English; PT in Portuguese and English. Belgium and Portugal say supervision is split rather than naming one body as the whole of it, which is what the roadmap asked of Belgium. What each country is now lives in one registry, src/config/countries.ts, that init, the new `eaa-kit countries` command and a test read. The test fails when a template exists without its entry or the other way round. The four are marked unverified in the registry and in `eaa-kit countries`: their citations come from regulators' pages and law firms, not from the gazettes, and cite less than the older seven -- no article numbers, no fine amounts -- for that reason. init no longer turns an answer it does not recognise into AT without a word. It asks again, accepts a country's English name, and when it does fall back after three tries it says so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
A run over an unchanged build costs about what starting the process does, so it is worth repeating on every save. --watch runs once, then watches the directory that run read and audits again when anything in it changes; the page cache means only the pages whose markup moved are audited. The refusals the roadmap set: --url is an error rather than a poll that looks like a watch; the watch exits 0 on Ctrl-C whatever the last run found, because failing a build is the one-shot run's job; and a change that lands mid-run starts another run when that one ends instead of being dropped. Later runs are pointed at the directory the first one found rather than repeating auto-detection, which may run the project's build into the very directory being watched. The page cache and an --output inside the build are ignored for the same reason. A named directory that does not exist yet is waited for, since a build in another terminal is the usual way it appears. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
The statement docs gain the four countries, with a note on each that its citations come from secondary sources and cite less for that reason. The audit docs describe --watch and its refusals, the README and the package description say eleven, and the changelog opens 0.8.0 with what was given up as well as what was added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
…enty-six Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
Owner
Author
|
Two red checks on this PR, and neither comes from the diff:
Generated by Claude Code |
`eaa-kit` with no command printed the help and exited 2, and it is the first thing anybody types. Now it finds the site the way `audit` does, audits it, writes the HTML report to .eaa-kit/report.html, and ends with what it found out about the project and the command to run next: init without a config, statement with one, baseline when there are findings and no baseline, then --watch and checklist. Detection closes two gaps on the way. A folder of hand-written HTML with no package.json is the site, and is audited where it stands. init reads <html lang> and the canonical link from the built site and offers them as defaults, with the country a language tag points at: pl is Poland, fr-BE is Belgium, en and fr-CA suggest nothing, because a site's language does not settle whose law applies. The first run writes nothing outside .eaa-kit/, gives that directory a .gitignore of its own rather than editing the project's, leaves a folder with no site in it untouched, and keeps audit's exit codes. It is decided before commander sees the arguments, so `eaa-kit adit` still gets "did you mean audit?" rather than "too many arguments". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
CI forces colour, which puts an escape between "pl-PL" and the dimmed "→ a statement under Poland's law", so the assertion looked for text that was there but split. Reproduced with FORCE_COLOR=1; the test now strips the codes before comparing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
likeBloodMoon
marked this pull request as ready for review
September 23, 2026 20:46
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
likeBloodMoon
pushed a commit
that referenced
this pull request
Sep 24, 2026
Version, the changelog headings, the front page, the ROADMAP's Done-means and the pinned action tag in docs/integrations.md and .github/workflows/accessibility.yml. The examples move with it and nothing else in them does: the tool version is stamped into four of them. 0.8.0 is not published. Its tag was on the merge of #27, where package.json still said 0.7.0, and the release workflow stopped at its version check before anything reached npm. Rather than publish it from an older commit, its changes ship in 0.9.0, and the changelog says so under both headings. The citation check ships open, as the changelog and ROADMAP now say: the eight new countries keep the unverified marker, and the full check against the primary text moves to 1.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM
This was referenced Sep 24, 2026
Merged
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.
The plan for 0.8.0 (and an outline of 0.9.0 → 1.0.0) is in
ROADMAP.md, and this PR carries it out. The version number is not bumped yet: one release blocker is open (see below).What's in it
Zero-setup first run:
npx eaa-kiteaa-kitused to print the help and exit 2. Now, with no config and no flags, it:.eaa-kit/report.html;<html lang>→ country, canonical address);initorstatement,baseline,--watch,checklist)..eaa-kit/gets its own.gitignore. A folder with no site in it is left untouched. Exit codes stayaudit's.eaa-kit aditstill gets "did you mean audit?".package.jsonand HTML at the top level is now audited where it stands.initoffers the built site's language, country and address as defaults.pl→ Poland,fr-BE→ Belgium;enandfr-CAsuggest nothing.initstill asks.Four more countries: Belgium, Ireland, Poland, Portugal (seven → eleven countries, fourteen templates → twenty-two)
BEfr/nl/en,IEen,PLpl/en,PTpt/en.plandptare new--langvalues.One registry per country:
src/config/countries.tsinit, the new command and a test all read it.eaa-kit countries(--jsontoo)audit --watch--urlis an error, not a poll.initstops guessingATsilently. Nowinitasks again, accepts English names, and says so out loud if it falls back after three tries.The session that wrote the four new templates could not reach the official gazettes (irishstatutebook.ie, isap.sejm.gov.pl, dre.pt, ejustice.just.fgov.be). Everything in them comes from several independent secondary sources that agree: regulators' own pages, government portals and law firms. To match that, they deliberately cite less than the older seven (no article numbers, no fine amounts). They are marked
unverifiedin the registry, flagged ineaa-kit countries, and footnoted indocs/statement.md.Before tagging 0.8.0, please check against the primary text:
The Polish and Portuguese texts were also written by me, not by a native speaker, so a language review is worth doing too.
Testing
pnpm lint,pnpm typecheck: clean.pnpm test: 1328 passed. The only failing file istests/audit/runners/playwright.test.ts, which fails identically onmasterin the authoring environment, whose Chromium doesn't match the pinned Playwright version. CI's own Chromium is fine.pnpm smoke: green.pnpm examples: no drift.audit --watchagainst the fixture site: adding a page re-audited 1 page and reused 5.🤖 Generated with Claude Code
https://claude.ai/code/session_013BXnvSeRtgZoTXe4j753gM