v2.17.0
·
21 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
- A shipped eye-verify harness (
frontend-quality/scripts/, emitted asboost-core1.3
companion assets). Three framework-agnostic tools so a project stops rebuilding the plumbing:screenshot.mjs— navigate a running app, optionally crop to a--selectorwith ≥15px
padding (clamped to the page), save a PNG.console.mjs— record console errors/warnings, uncaught page errors, and failed requests;
--text-patternscans rendered text for a project-supplied leak regex (e.g. untranslated-key
markers);--fail-on-errorgates.auth-capture.mjs— the portable auth seam: open a headed browser, log in by hand, save a
PlaywrightstorageStatethe other two reuse via--storage-state. Knows nothing about any
login form, so it works for any app.
Playwright is a project prerequisite (npm i -D playwright && npx playwright install chromium);
each tool fails fast with that hint if it's absent. What stays per-app is only genuinely
app-specific glue (programmatic SSO login, data seeding, domain drivers).
- Catalog-consistency CI gate (
.github/validate-catalog.php). The format validator never
checked that the catalog's own tables agree with what ships; the new gate enforces README
Skills/Guidelines tags vs each skill'smetadata.boost-tags, skill/guideline inventory,
the guideline tag sidecar, the documented tag vocabulary,boost:convtokens vs real
conventions-schema.jsonslots, andschema-requiredvs conv usage. - On-demand design-verification reference (
frontend-quality/references/design-verification.md).
The full per-element scoring rubric — attributes incl. shadow/elevation, line-height,
letter-spacing, tap-area; the "undocumented difference is a finding, not a deviation" rule;
image-sampling to the nearest project token when there's no token spec; and a ✓/✗ scoring table.
Changed
codex-reviewreplaced the plugin path with a bounded native-CLI wrapper. The Codex
plugin's companion awaited aturn/completedevent with no timeout and hung on stale broker
sessions. The skill now shipsscripts/run-codex-review.mjs(a companion asset) that runs the
barecodexCLI under a hard timeout — it cannot hang and cannot read a stale prior run's
output. The wrapper adds an env-configurable timeout (CODEX_REVIEW_TIMEOUT_MS, floor 1000ms;
--timeout-mswins) and a no-flag target fallback that infers the review target from the repo's
default branch.codex.invocation_modeis deprecated and ignored (retained in the schema so
existing configs keep validating).- Eye-verify woven deeper.
frontend-qualitygained a "seed the off-by-default state before
capturing" step and points at the shipped harness as the primary capture path;pull-requests
documents private-repo image embedding (a committed PNG's?raw=trueblob URL renders inline
for authenticated members; a browser drag-dropuser-attachmentsURL is the no-file fallback;
data:URIs are stripped by GitHub). Thejavascriptguideline was slimmed to the always-on
principle plus a pointer, so the detailed rubric lives on-demand rather than in every project's
CLAUDE.md.
Fixed
- README tag/inventory drift, surfaced by the new gate:
pre-releasenow documents its
release-automationtag (a consumer declaring onlyphp+githubwould not have received it);
jira-updatesdrops agithubtag it never carried in frontmatter; and the shipped
signed-commitsguideline gets its missing row in the Guidelines inventory.
Internal
Repository-only; none ship to consumers (all under export-ignored paths or dev config):
- CI
composer installruns--no-scripts --no-pluginson the fork-exposedpull_requestjob. - Dependabot now watches the
composerecosystem, not just GitHub Actions. stolt/skill-validatorpinned exactly (0.0.1; the^0.0.1caret resolved to the same version).- Removed a dead
.mcp.jsonpointing at avendor/bin/testbench boost:mcpcommand this package
does not provide.
The codex, eye-verify, and design-verification work was sourced from the upstream catalog and
production adoption feedback, then dogfooded through this repository's own evaluate and
codex-review flow before shipping.
Full Changelog: 2.16.1...2.17.0