From ca8ef38cfa8050d1bd119ff0ea70436d139c2c6e Mon Sep 17 00:00:00 2001 From: Paolo Mottadelli Date: Sun, 28 Jun 2026 16:34:52 +0200 Subject: [PATCH 1/2] deploy: make vanilla aem-boilerplate the runtime; remove AuthorKit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit stardust:deploy assumed the AuthorKit runtime by default and treated vanilla aem-boilerplate as a "port AuthorKit onto it" branch. Across the end-to-end interview sessions, operators repeatedly chose vanilla and shipped full sites off-script, while AuthorKit was the source of most of the silent-failure guardrails (no .block class, footer double-load, postlcp className edit, body.appear blank-render, fragment- diff --git a/plugins/stardust/skills/diff/scripts/diff-profiles.mjs b/plugins/stardust/skills/diff/scripts/diff-profiles.mjs index f843a2e6..7813fe88 100644 --- a/plugins/stardust/skills/diff/scripts/diff-profiles.mjs +++ b/plugins/stardust/skills/diff/scripts/diff-profiles.mjs @@ -38,7 +38,7 @@ export const profiles = { EXTRA: 'Unexpected node with no proto source.', FONT_FORK: 'A "โ†’sys" on the proto side means it named a font it never loaded and fell back โ€” EDS self-hosting the intended fallback is then CORRECT (#77); confirm the fork is intended, else ship the missing @font-face.', // visual-diff - BLANK_RENDER: 'Likely a foundation body{display:none}/body.appear gate the runtime never satisfies (use the body.session font gate, no display gate), or the harness failed to load. Fix before trusting any other result.', + BLANK_RENDER: 'The page rendered zero-height/empty. On vanilla aem-boilerplate the body{display:none}/body.appear gate IS driven by scripts.js loadEager โ€” so a blank render usually means the harness failed to load scripts.js (no `appear` added) or a block threw during decorate; check the harness loads /scripts/scripts.js and the console is clean. Fix before trusting any other result.', IMAGERY_GAP: 'Likely image-less content using CSS fallbacks (#2) โ€” EYEBALL the screenshots to confirm the fallbacks render intentionally (not a missing-asset regression). Not a defect by itself.', CONTENT_GAP: 'The EDS likely DROPPED or duplicated authored content (a missing section, a dropped CTA) โ€” eyeball the section pair; metrics-only checks (stretch/flush/blank) cannot see this.', SURFACE_GROUND: 'A band likely rendered on the wrong ground (dark vs light). Check the owning block section background (#58/#59).', diff --git a/plugins/stardust/skills/rollout/reference/multilingual.md b/plugins/stardust/skills/rollout/reference/multilingual.md index 24b2cc9c..0665e1f8 100644 --- a/plugins/stardust/skills/rollout/reference/multilingual.md +++ b/plugins/stardust/skills/rollout/reference/multilingual.md @@ -11,19 +11,20 @@ a ~90-pages-per-language add (โ‰ฅ5 per template). agents grouped by template-type, each given the default-language reference file to mirror โ€” *no new blocks*. -- **Language-route the static header/footer.** A single `loadStaticFragment` - (`postlcp.js`) serves one fragment for all pages; make it pick by path prefix and - fall back to the default: +- **Language-route the header/footer blocks.** The `header`/`footer` blocks render + one chrome for the whole repo; make them resolve the chrome per language by path + prefix, with a fallback to the default. In the block `decorate()`: ```js const seg = window.location.pathname.split('/')[1]; - const lang = (seg === 'fr' || seg === 'en') ? `${seg}/` : ''; - let resp = await fetch(`${codeBase}/fragments/${lang}${name}.html`); - if (!resp.ok && lang) resp = await fetch(`${codeBase}/fragments/${name}.html`); + const lang = (seg === 'fr' || seg === 'en') ? seg : ''; + // self-contained block: branch the lifted DOM/strings by `lang`. + // fragment-content block: loadFragment(`/${lang}/nav`) โ†’ fall back to `/nav`. ``` - Add `fragments/fr/{header,footer}.html` + `fragments/en/โ€ฆ`: translated labels, - links localized to *live* same-language pages (else a source bounce), and a - **language switcher that targets each language's home** โ€” don't try to compute - per-page cross-language equivalents. + Provide per-language chrome (self-contained: a translated-strings map keyed by + `lang`; fragment-content: `content/fr/{nav,footer}` + `content/en/โ€ฆ`) with: + translated labels, links localized to *live* same-language pages (else a source + bounce), and a **language switcher that targets each language's home** โ€” don't try + to compute per-page cross-language equivalents. - **Per-language indexes** in `helix-query.yaml`: clone each index with a language-scoped `include` glob + a language-prefixed `target`, and **fix the From 7bf8cd908ef963f17e418afed60d840b7d9487ce Mon Sep 17 00:00:00 2001 From: Paolo Mottadelli Date: Sun, 28 Jun 2026 18:19:37 +0200 Subject: [PATCH 2/2] stardust: bump version to 0.13.2 Forces the plugin cache to re-copy from source on update/reinstall so the AuthorKit-removal changes actually land in installed projects (the cache is keyed by version; 0.13.1 would otherwise be treated as already-current). Co-Authored-By: Claude Opus 4.8 --- .claude-plugin/marketplace.json | 2 +- plugins/stardust/.claude-plugin/plugin.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 94a0b004..b607028a 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -13,7 +13,7 @@ "name": "stardust", "source": "./plugins/stardust", "description": "Redesign an existing website to make it better. Higher-level guided flow on top of impeccable.", - "version": "0.13.0", + "version": "0.13.2", "category": "design", "keywords": [ "design", diff --git a/plugins/stardust/.claude-plugin/plugin.json b/plugins/stardust/.claude-plugin/plugin.json index 895f7f87..8d002e87 100644 --- a/plugins/stardust/.claude-plugin/plugin.json +++ b/plugins/stardust/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "stardust", "description": "Redesign an existing website to make it better. Higher-level guided flow on top of impeccable.", - "version": "0.13.1", + "version": "0.13.2", "author": { "name": "Adobe" },