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

5.3 KiB

Logo Usage Rules

Guidelines for proper logo implementation across all marketing materials.

Logo Variants

Primary Variants

Variant File Name Use Case
Full Horizontal logo-full-horizontal.{ext} Website headers, documents
Stacked logo-stacked.{ext} Square spaces, social avatars
Icon Only logo-icon.{ext} Favicons, app icons, small spaces
Wordmark Only logo-wordmark.{ext} When icon already present

Color Variants

Variant Use Case
Full Color Default on white/light backgrounds
Reversed On dark backgrounds
Monochrome Dark On light backgrounds when color not possible
Monochrome Light On dark backgrounds when color not possible

Clear Space

Minimum Clear Space

The clear space around the logo should equal the height of the logo mark (icon portion).

    ┌─────────────────────────────┐
    │           [x]               │
    │   ┌───────────────────┐     │
    │   │                   │     │
[x] │   │    [LOGO]         │ [x] │
    │   │                   │     │
    │   └───────────────────┘     │
    │           [x]               │
    └─────────────────────────────┘

Where [x] = height of logo mark

Minimum Size

Digital

Format Minimum Width Notes
Full Logo 120px All elements legible
Icon Only 24px Favicon/small icons
Icon Only 32px UI elements

Print

Format Minimum Width Notes
Full Logo 35mm Business cards, letterhead
Icon Only 10mm Small print items

Color Usage

Approved Backgrounds

Background Logo Version
White Full color or dark mono
Light gray (#F5F5F5+) Full color or dark mono
Brand primary Reversed (white)
Dark (#333 or darker) Reversed (white)
Photography Ensure sufficient contrast

Color Rules

  1. Never change logo colors outside approved palette
  2. Don't use gradients on the logo
  3. Don't apply transparency to logo elements
  4. Don't add shadows or effects

Incorrect Usage

Absolute Don'ts

  • Stretch or compress logo
  • Rotate at angles
  • Add drop shadows
  • Apply gradient fills
  • Use unapproved colors
  • Add strokes or outlines
  • Place on busy backgrounds
  • Crop any portion
  • Rearrange elements
  • Add additional elements

Visual Examples

WRONG: Stretched      WRONG: Rotated       WRONG: Wrong color
┌──────────────┐      ┌────────┐          ┌────────┐
│   L O G O    │      │  /    │          │ LOGO   │ <- wrong color
└──────────────┘      │ /LOGO │          └────────┘
                      └───────/

Co-branding

Partner Logo Guidelines

  1. Equal visual weight (same height)
  2. Adequate separation between logos
  3. Use divider line if needed
  4. Both logos in their approved colors
  5. Clear space applies to both

Layout Options

Option A: Side by side with divider
[OUR LOGO] | [PARTNER LOGO]

Option B: Stacked
    [OUR LOGO]
        +
  [PARTNER LOGO]

File Formats

Usage Format Notes
Web SVG Preferred, scalable
Web fallback PNG With transparency
Print PDF Vector, high quality
Print alt EPS Legacy systems
Documents PNG High res (300dpi)

File Organization

assets/logos/
├── full-horizontal/
│   ├── logo-full-color.svg
│   ├── logo-full-color.png
│   ├── logo-reversed.svg
│   ├── logo-mono-dark.svg
│   └── logo-mono-light.svg
├── icon-only/
│   ├── icon-full-color.svg
│   ├── icon-reversed.svg
│   └── favicon.ico
└── monochrome/
    ├── logo-black.svg
    └── logo-white.svg

Platform-Specific Guidelines

Social Media

Platform Format Size Notes
LinkedIn PNG 300x300px Icon only
Twitter/X PNG 400x400px Icon only
Facebook PNG 180x180px Icon only
Instagram PNG 320x320px Icon only

Website

Location Variant Size
Header Full horizontal 120-200px width
Footer Full horizontal 100-150px width
Favicon Icon only 32x32px
Apple Touch Icon only 180x180px

Documents

Document Variant Placement
Letterhead Full horizontal Top left
Presentation Icon + wordmark Title slide
Report Full horizontal Cover + footer

Logo Approval Process

  1. Verify you have the correct version
  2. Check background compatibility
  3. Ensure minimum size requirements
  4. Confirm clear space allocation
  5. Review against these guidelines

Requesting Approval

For non-standard uses:

  1. Submit mockup showing proposed usage
  2. Include context (medium, audience)
  3. Wait for brand team approval
  4. Document approved exceptions