fix: ship skill assets as real copies for Windows compatibility#336
Open
BeyBaba wants to merge 2 commits into
Open
fix: ship skill assets as real copies for Windows compatibility#336BeyBaba wants to merge 2 commits into
BeyBaba wants to merge 2 commits into
Conversation
… compatibility
The skill at .claude/skills/ui-ux-pro-max/ used filesystem symlinks
(data -> ../../../src/ui-ux-pro-max/data, same for scripts) to avoid
duplicating the source-of-truth content. On Windows clones — and any
environment where `git config core.symlinks` defaults to false — git
materialises these as plain text files containing the symlink target,
which breaks the skill at runtime:
python scripts/search.py "..." --design-system
-> "not a directory" / "no such file"
This change replaces the two symlinks with real copies of `data/` and
`scripts/`, and adds a sync script for maintainers to run before commit
whenever the source of truth changes (mirroring the existing
cli/assets/ copy-and-sync pattern documented in CLAUDE.md).
Changes
-------
- Replace .claude/skills/ui-ux-pro-max/{data,scripts} symlinks with file copies
- Add scripts/sync-skill-assets.sh (bash) and scripts/sync-skill-assets.ps1 (pwsh)
- Update CLAUDE.md Sync Rules to document the new workflow
Verification
------------
On Windows the previously broken invocation now works:
cd .claude/skills/ui-ux-pro-max
python scripts/search.py "fintech crypto modern" --design-system
Adds .github/workflows/check-asset-sync.yml that fails a PR when the
copy targets diverge from src/ui-ux-pro-max/ (source of truth):
- .claude/skills/ui-ux-pro-max/{data,scripts} -> hard-fail (introduced by this PR)
- cli/assets/{data,scripts,templates} -> soft-fail (drift today; flip
after nextlevelbuilder#330 lands)
This addresses the "Optional follow-up" in nextlevelbuilder#330: a CI check so the
documented `cp -r src/... <target>/...` step can't be silently
forgotten on the next source update. Workflow runs on pull_request
and push-to-main when any of these paths change, and prints the exact
sync commands when drift is detected.
The cli/assets/ leg is `continue-on-error: true` for now because
main currently drifts from src/ (the exact bug nextlevelbuilder#330 fixes). Once
that PR merges and main is clean, drop continue-on-error so cli
drift hard-fails too.
This was referenced Jun 20, 2026
Merged
Contributor
|
Summary: I’m deferring full maintainer review for this run because this PR is oversized for the cron-safe review budget and materially overlaps the active packaging/asset-sync queue. Risk level: Medium Mandatory gates:
Findings:
Verdict: DEFERRED Next step: please add a short implementation note covering the source-of-truth files, exact sync/copy command, Windows verification path, and how this differs from the other open packaging PRs. If possible, split this into a small workflow/sync fix plus a generated-assets update so review can focus on the actual logic. |
This was referenced Jun 21, 2026
Closed
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.
Summary
The skill at
.claude/skills/ui-ux-pro-max/shipsdataandscriptsas filesystem symlinks pointing at../../../src/ui-ux-pro-max/{data,scripts}. On Windows clones — and any environment wheregit config core.symlinksdefaults tofalse— git materialises those entries as plain text files containing the symlink target string. The skill then breaks at runtime:This affects users installing the plugin via
claude plugin install ui-ux-pro-max@ui-ux-pro-max-skillon Windows.Fix
data/(1.7 MB, 31 CSVs) andscripts/(3 Python modules).scripts/sync-skill-assets.shandscripts/sync-skill-assets.ps1so maintainers can refresh the skill folder after editing the source of truth — mirroring the existingcp -r src/... cli/assets/...workflow already documented for the CLI assets inCLAUDE.md.CLAUDE.mdSync Rules to document the new workflow and the Windows rationale.Net diff: ~9 KB of meaningful changes plus the duplicated CSV/Python content (which was already present once under
src/).Verification
On a fresh Windows clone of this branch:
The sync script was also exercised:
Trade-off
Duplicating ~1.8 MB of CSV/Python in the repo in exchange for cross-platform install correctness. The duplication is fenced behind a one-line sync command, matching the precedent already set by
cli/assets/in this repo.Test plan
python scripts/search.py "..." --design-systemfrom inside.claude/skills/ui-ux-pro-max/on Windows (or withcore.symlinks=false) and confirms outputbash scripts/sync-skill-assets.sh(orpwsh scripts/sync-skill-assets.ps1) and confirms no spurious diffCloses any open Windows-install issues.