Keel base theme wiring - #2
Merged
Merged
Conversation
Replace the FSE/Tailwind base-theme with the Keel hybrid-classic theme
(slug tbt), and re-point the scaffolder, packager, and visual-check gates
to it.
- base-theme/: swap FSE/Tailwind starter for the tbt Keel theme (PHP
template hierarchy + hooks + server-rendered blocks; theme.json as the
only token source; no Tailwind, no .html templates).
- new-site.sh: clone base-theme -> sites/<slug> and rewrite tbt->slug per
RENAME.md (text domain, tbt_/Tbt_/TBT_ prefixes, block namespace, CSS
vars), rename the .pot, fix .wp-env.json, then npm install && build.
- package-site.sh: build with wp-scripts and stage a runtime-only zip
(ships /build; excludes block source, tooling, bin/, examples/, docs).
- visual-check re-point (REBUILD.md §11):
- lint-theme: Keel CSS/markup paths + leftover-Tailwind and
raw-value/token-enforcement checks.
- seed: create + assign a nav menu (classic nav needs one).
- assert: config-driven mobile-nav (classic dropdown, not FSE overlay).
- style-diff: add --extract mode emitting the porting manifest.
- validate-blocks: SSR rewrite (block.json/render.php validity, php -l,
zero render-time PHP errors; drop the isValid check).
- ledger/example.json: updated sequence, boot notes, Keel selectors.
- Docs: CLAUDE.md rewritten as the Keel pipeline playbook; README
architecture/quick-start/gates updated.
Verified end-to-end: scaffolded a sample slug (0 residual tbt, correct
build namespace, clean php -l), packaged a runtime-only zip, and ran the
re-pointed gates against a live wp-now render (seed incl. menu creation,
assert incl. classic mobile-nav, validate-blocks, style-diff --extract).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…spec - run.mjs: shoot real seeded pages for hybrid-classic (Keel) themes instead of the FSE front-page.html swap (kept for block themes); scroll pages so lazy-loaded images paint before fullPage screenshots; support designClick for state-routed SPA designs; keep the fixed header at top under admin bar. - seed.mjs: upsert pages by slug instead of minting "-2" duplicates when a slug already exists; raise the cold wp-now block-editor wait to 180s. - style-diff.mjs / text-parity.mjs: apply designClick on the design side; collapse innerText whitespace so table rows don't false-fail parity. - new-site.sh: rewrite the phpcs PrefixAllGlobals value to the underscore prefix (a hyphenated slug is not a valid PHP prefix). - Add claudetowp-to-keel-rebuild-spec.md — the locked decisions for the FSE→Keel hybrid-classic rebuild. - .gitignore: exclude per-client design sources and gate configs (same rule as sites/) and local Claude Code settings. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What & why
Checklist
for f in scripts/visual-check/*.mjs; do node --check "$f"; donefind base-theme -name '*.php' -print0 | xargs -0 -n1 php -lcd base-theme && composer lintRESULT: DONE).CLAUDE.mdis updated (single source of truth).