发布

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

    frostbyte_neo 发布于 2026-06-25 10:33:23 +00:00 | 92 次提交 在此版本后已推送到 main

    • 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 /skills/, 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 /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.

    下载附件