Skip to content

fix(skills): reset-css needs no plugin configuration - #67

Merged
owjs3901 merged 1 commit into
mainfrom
fix/skill-reset-css-needs-no-config
Sep 15, 2026
Merged

owjs3901 merged 1 commit into
mainfrom
fix/skill-reset-css-needs-no-config

Conversation

@owjs3901

Copy link
Copy Markdown
Contributor

0.8.0 shipped wrong build advice in two of the skills it installs. This corrects both and re-vendors devup-ui.

What was wrong

Both devup-ui and devfive-frontend said @devup-ui/reset-css "has to be declared to the build plugin or its classes are never emitted", with three settings:

plugins: [DevupUI({ include: ['@devup-ui/reset-css'] })],
optimizeDeps: { exclude: ['@devup-ui/reset-css'] },
ssr: { noExternal: ['@devup-ui/reset-css'] },

None of them are needed.

Why

packages/reset-css/src/index.ts is 145 lines: globalCss({...}) spans 3–143 at module top level, and line 145 is export function resetCss(): void {} — an empty function, there only so the import survives tree-shaking.

So the single requirement is that the plugin transforms the package inside node_modules, which is already unconditional:

// plugin-utils/src/shared.ts
const base = `node_modules(?!.*(${['@devup-ui', '@devup-editor', ...include]...

include only appends. ssr.noExternal is set from a /@devup-ui/ pattern, matching the package for the same reason.

devup-ui's own apps/landing imports resetCss in its root layout and configures DevupUI({ singleCss }) and nothing else.

Why this mattered more here

devup-mcp vendors these documents into the binary, so the wrong recipe was exactly what devup_skills install wrote on every machine with no network — the machines least able to check it against the plugin source.

How I got it wrong

I read one downstream project that had added include: ['@devup-ui/reset-css'] and inferred it was required. One observation of a redundant setting is not evidence that the setting is needed, and the plugin source was three files away. I verified the extraction rule in #665 against the extractor but did not hold this claim to the same standard.

Both documents now say the package needs no configuration, and say plainly not to add those entries — writing them teaches the next reader that a devup-ui package needs wiring when none does.

Contents

  • Re-vendors devup-ui at 601dd15c (docs(skill): reset-css needs no plugin configuration devup-ui#668, the same correction upstream) — 20,632 → 21,253 bytes
  • Corrects devfive-frontend in two places: the vinext vite.config.ts example and the reset-css block — resealed 18,354 → 18,796 bytes
  • Patch changepack, so this releases as 0.8.1

Verification

gate result
cargo fmt --all -- --check exit 0
cargo clippy --locked --workspace --all-targets --all-features -- -D warnings exit 0
cargo test -p devup-mcp --all-features exit 0
node scripts/refresh-skills.mjs --check exit 0
grep for the three settings across all vendored skills no matches remain

0.8.0 shipped wrong build advice in two of the skills it installs.

Both the devup-ui and devfive-frontend documents said `@devup-ui/reset-css`
has to be declared to the build plugin or its classes are never emitted, and
gave three settings to add:

    plugins: [DevupUI({ include: ['@devup-ui/reset-css'] })],
    optimizeDeps: { exclude: ['@devup-ui/reset-css'] },
    ssr: { noExternal: ['@devup-ui/reset-css'] },

None of them are needed.

The reset is a `globalCss()` call at the top level of that package's own
module, and `resetCss()` is an empty function that only keeps the import from
being tree-shaken. So the single requirement is that the plugin transforms the
package inside node_modules, and `createNodeModulesExcludeRegex` already allows
`@devup-ui` and `@devup-editor` through unconditionally, with `include` only
appending to that list. `ssr.noExternal` is set from a `/@devup-ui/` pattern
for the same reason. devup-ui's own `apps/landing` imports `resetCss` in its
root layout and passes `DevupUI({ singleCss })` and nothing else.

This matters more here than in a README. devup-mcp vendors these documents into
the binary, so the wrong recipe was exactly what `devup_skills install` wrote
on every machine with no network - the machines least able to check it against
the plugin source.

The advice came from reading one downstream project that had added `include`
and inferring it was required. One observation of a redundant setting is not
evidence that the setting is needed.

Re-vendors devup-ui at 601dd15c, which carries the same correction upstream,
and reseals devfive-frontend after editing it.
@owjs3901
owjs3901 merged commit e78f786 into main Sep 15, 2026
9 checks passed
@owjs3901
owjs3901 deleted the fix/skill-reset-css-needs-no-config branch September 15, 2026 06:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant