Alexander ef5f5ba0e6
fix(cli): install all 7 skills via uipro init, not just the orchestrator (#362) (#387)
* fix(cli): install all 7 skills via uipro init, not just the orchestrator

`uipro init` rendered only the orchestrator (ui-ux-pro-max) and never
delivered the 6 sibling skills (banner-design, brand, design,
design-system, slides, ui-styling), so users got 1 of 7 skills (#362).

- sync-assets.mjs: bundle the 6 sub-skills into cli/assets/skills/ as
  static copies (source of truth: .claude/skills/), with sync + check
  coverage. Excludes ui-styling/canvas-fonts (~5.8MB of TTF) and
  __pycache__/.pyc cruft — a skill registers from its SKILL.md, not its
  fonts — so the bundle adds ~0.9MB, not ~6.6MB.
- template.ts: after rendering the orchestrator, install each bundled
  sub-skill as a sibling. The skills parent is derived from the
  platform's skillPath (skills/ for most, prompts/ for copilot,
  steering/ for kiro) rather than hardcoded.
- uninstall.ts: remove the sub-skills too.

Verified: check:assets in sync, tsc passes, and a per-platform install
harness delivers all 7 skills to the correct parent dir with no fonts.

Closes #362

* fix(cli): filter excluded files from target side of check:assets

check:assets filtered sourceFiles with isExcludedAssetFile but not
targetFiles, so a stray cli/assets/scripts/__pycache__/*.pyc (generated
by a local Python run) was reported as an "extra asset file" and failed
the gate. Apply the same predicate to targetFiles in both the
dirsToSync and sub-skill loops.

Verified: check:assets now passes with __pycache__/*.pyc present in the
target tree; typecheck passes.

* fix(cli): uninstall from each platform's real skills dir, not hardcoded skills/

removeSkillDir() hardcoded <folder>/skills/<name>, but the installer
places skills under each platform config's skillPath parent — copilot in
.github/prompts/, kiro in .kiro/steering/. So uninstall left those
platforms' skills (orchestrator + sub-skills) behind.

Derive the install parent from loadPlatformConfig(aiType).folderStructure
(same source the installer uses), and keep the legacy <folder>/skills/
cleanup (incl. .shared/) for older installs. Deduped via a Set.

Verified: typecheck passes; an install+uninstall harness removes all 7
skills with zero leftovers for claude (.claude/skills), copilot
(.github/prompts) and kiro (.kiro/steering).

* fix(cli): re-sync bundled sub-skills after #385 stripped ckm- names

#385 merged to main and removed the ckm- prefix from the six
.claude/skills/*/SKILL.md name fields. This branch's bundled copies
under cli/assets/skills/ still carried the old ckm- names, so after the
PR merges with main the source no longer matched the bundle and the
check-asset-sync CI gate failed (stale asset file: skills/*/SKILL.md).

Merge main and regenerate the bundle so cli/assets/skills matches the
current .claude/skills source of truth. check:assets and typecheck pass.
2026-06-25 17:33:23 +07:00

2.2 KiB

1idnamedescriptionstroke_widthfillbest_forkeywords
2outlinedOutlinedClean stroke-based icons with no fill, open paths2pxnoneUI interfaces, web apps, dashboardsoutline line stroke open clean
3filledFilledSolid filled shapes with no stroke, bold presence0solidMobile apps, nav bars, toolbarssolid fill bold flat shape
4duotoneDuotoneTwo-tone layered icons with primary and 30% opacity secondary0dualMarketing, landing pages, feature sectionstwo-tone layer opacity dual color
5thinThinDelicate thin line icons, minimal weight1-1.5pxnoneLuxury brands, editorial, minimal UIthin light delicate minimal hairline
6boldBoldHeavy weight icons with thick strokes3pxnoneHeaders, hero sections, emphasisbold heavy thick strong impactful
7roundedRoundedRounded line caps and joins, soft corners2pxnoneFriendly apps, children, healthrounded soft friendly warm approachable
8sharpSharpSquare line caps, mitered joins, precise edges2pxnoneTech, fintech, enterprisesharp angular precise crisp exact
9flatFlatSolid flat fills, no gradients or shadows0solidMaterial design, Google-style UIflat material simple geometric clean
10gradientGradientLinear or radial gradient fills0gradientModern brands, SaaS, creativegradient color transition vibrant modern
11glassmorphismGlassmorphismSemi-transparent fills simulating frosted glass1pxsemi-transparentModern UI, overlays, cardsglass frosted transparent blur modern
12pixelPixelPixel art style on grid, retro 8-bit aesthetic0solidGaming, retro, nostalgiapixel retro 8bit grid blocky
13hand-drawnHand-drawnIrregular strokes, organic sketch-like feelvariesnoneArtisan, creative, casualsketch organic hand drawn artistic
14isometricIsometric3D isometric projection, 30-degree angles1-2pxpartialTech docs, infographics, diagrams3d isometric dimensional depth
15glyphGlyphSingle solid shape, minimal detail, pictogram style0solidSystem UI, status bar, compactglyph pictogram symbol minimal compact
16animated-readyAnimated-readySVG with named groups/IDs for CSS/JS animation2pxvariesInteractive UI, onboarding, micro-interactionsanimation motion interactive css js