This repository holds the Groves Residential Framing brand source tokens,
the compiled WordPress block theme, the groves-details plugin, and the
tests that pin all three against their contracts.
brand/ss-tokens.css: the thirteen colour roles required by the theme compiler, declared as literal hex values in a:rootscope and a.theme-midnightscope. Every value in this file is--ss-*.brand/colors_and_type.css: type families, spacing, shadow, radius and stroke tokens, twenty-one declarations in:root, none of them--ss-*.brand/DERIVATION.md: for every one of the forty-seven required declarations, states whether the value is taken directly from a named Groves brand token, derived from named tokens by a stated rule, or is an engine default with a stated reason. No value in the two CSS files above exists without a traceable entry here.themes/groves/: the compiled WordPress block theme (theme.json,styles/midnight.json, templates, parts, and patterns), produced from the two brand CSS files above. Every value a template uses traces back to atheme.jsonpreset, never a literal.plugins/groves-details/: the plugin that owns the compliance surface (contractor licence number, service counties, both phone numbers) as a single source of truth in the options table, plus the server-renderedgroves-details/licence-detailsblock that reads it back.compose.yaml: a Docker Compose stack (database, WordPress, WP-CLI) that stands the theme and plugin up with no host PHP, Composer, or database install required.tests/: the rod. Reads the brand CSS, the compiled theme, the plugin PHP, and the compose file as plain text/JSON/YAML (no build step, no PHP runtime) and checks completeness, security posture, and the runner's ability to actually stand the stack up.
This project has no dependencies. With Node 22 or later installed:
npm test
That runs every file under tests/ with Node's built in test runner and a
TAP reporter.
No PHP, Composer, or database install is required on the host. Docker and Docker Compose are the only prerequisites.
docker compose up -d
docker compose exec wpcli wp plugin list --path=/var/www/html
The first command starts the database, the WordPress service, and a
WP-CLI service that installs WordPress core, activates the groves
theme, and activates the groves-details plugin against a named volume
shared with the WordPress service. The second command is the
verification step: it lists the active plugins inside the running
container and should show groves-details as active. The site itself is
then reachable at http://localhost:8080.