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

6.3 KiB

1idformula_namekeywordscomponentsuse_caseexample_templateemotion_triggerslide_typesource
21AIDAaida, attention, interest, desire, actionAttention→Interest→Desire→ActionLead-gen CTAs general persuasion{Attention hook} → {Interesting detail} → {Desirable outcome} → {Action step}Curiosity→Engagement→Want→UrgencyCTA slidesClassic copywriting 1898
32PASpas, problem, agitation, solution, dan kennedyProblem→Agitate→SolutionSales pages problem slides most reliableYou're struggling with {problem}. It's costing you {agitation}. {Solution} fixes this.Frustration→Fear→ReliefProblem slidesDan Kennedy
434Ps4ps, promise, picture, proof, push, ray edwardsPromise→Picture→Proof→PushHome pages lead-gen{Promise benefit} → {Picture future state} → {Proof it works} → {Push to act}Hope→Vision→Trust→ActionSolution slidesRay Edwards
54Before-After-Bridgebab, before, after, bridge, transformationBefore→After→BridgeTransformation case studiesBefore: {old state}. After: {new state}. Bridge: {how to get there}Pain→Pleasure→PathBefore/after slidesCopywriting classic
65QUESTquest, qualify, understand, educate, stimulate, transitionQualify→Understand→Educate→Stimulate→TransitionMatching solution to prospect{Qualify audience} → {Show understanding} → {Educate on solution} → {Stimulate desire} → {Transition to CTA}Recognition→Empathy→Learning→ExcitementEducational slidesMichel Fortin
76Star-Story-Solutionstar, story, solution, narrativeStar→Story→SolutionPersonality brands info products{Introduce character} → {Tell their struggle} → {Reveal their solution}Connection→Empathy→HopeCase study slidesCopyHackers
87Feature-Advantage-Benefitfab, feature, advantage, benefitFeature→Advantage→BenefitFeature explanations product slides{Feature name}: {What it does} → {Why that matters} → {How it helps you}Curiosity→Understanding→DesireFeature slidesSales training classic
98What Ifwhat if, imagination, possibility, hookWhat if + PossibilityOpening hooks vision slidesWhat if you could {desirable outcome} without {common obstacle}?Wonder→PossibilityTitle problem slidesHeadline formula
109How Tohow to, tutorial, guide, instructionHow to + Specific outcomeEducational actionable contentHow to {achieve specific result} in {timeframe or steps}Curiosity→EmpowermentEducational slidesHeadline formula
1110Number Listnumber, list, reasons, ways, tipsNumber + Topic + PromiseScannable benefit lists{Number} {Ways/Reasons/Tips} to {achieve outcome}Curiosity→CompletenessFeature summary slidesContent marketing
1211Question Hookquestion, hook, curiosity, engagementQuestion that implies answerOpening engagement slides{Question that reader answers yes to}? Here's how.Recognition→CuriosityOpening slidesRhetorical technique
1312Proof Stackproof, evidence, credibility, statsStat→Source→ImplicationBuilding credibility trust{Impressive stat} (Source: {credible source}). This means {implication for audience}.Trust→ValidationTraction proof slidesSocial proof theory
1413Future Pacingfuture, vision, imagine, picture thisImagine + Future stateVision and aspiration slidesImagine: {desirable future scenario}. That's what {solution} delivers.Aspiration→DesireSolution CTA slidesNLP technique
1514Social Proofsocial proof, testimonial, customers, trustWho + Result + QuoteCredibility through others{Customer name} increased {metric} by {amount}. '{Quote about experience}'Trust→FOMOTestimonial slidesRobert Cialdini
1615Scarcity Urgencyscarcity, urgency, limited, deadline, fomoLimited + Deadline + ConsequenceDriving action urgencyOnly {quantity} available. Offer ends {date}. {Consequence of missing out}.Fear of loss→ActionCTA closing slidesCialdini influence
1716Cost of Inactioncost, inaction, consequence, lossCurrent cost + Future cost + ComparisonMotivating changeEvery {timeframe} without {solution} costs you {quantified loss}. That's {larger number} per year.Loss aversion→UrgencyProblem agitation slidesLoss aversion psychology
1817Simple Benefitbenefit, value, outcome, resultYou get + Specific benefitClear value communication{Solution}: You get {specific tangible benefit}.Clarity→DesireAny slideDirect response
1918Objection Preemptobjection, concern, but, however, faqObjection + Response + ProofHandling concerns proactivelyYou might think {objection}. Actually, {counter with proof}.Doubt→ResolutionFAQ objection slidesSales training
2019Comparison Framecomparison, versus, than, better, alternativeUs vs Them + Specific differenceCompetitive positioning{Competitor approach}: {limitation}. {Our approach}: {advantage}.Evaluation→PreferenceComparison slidesPositioning strategy
2120Pain-Claim-Gainpcg, pain, claim, gainPain point→Bold claim→Specific gainConcise value proposition{Pain point}? {Bold claim about solution}. Result: {specific gain}.Frustration→Hope→ExcitementProblem/solution slidesCopywriting framework
2221One Thingone thing, single, focus, keyThe one thing + Why it mattersFocus and clarityThe #1 thing {audience} needs to {outcome} is {one thing}.Focus→ClarityKey message slidesGary Keller concept
2322Riddle Openriddle, mystery, puzzle, questionMystery + Reveal + ImplicationEngagement through curiosity{Intriguing mystery or paradox}. The answer: {reveal}. For you: {implication}.Mystery→InsightOpening slidesStorytelling technique
2423Hero Journeyhero, journey, transformation, storyOrdinary→Call→Challenge→TriumphNarrative structure{Character in ordinary world} → {Discovers challenge} → {Overcomes with solution} → {Achieves transformation}Identification→Tension→TriumphFull deck structureJoseph Campbell
2524Value Stackvalue, stack, bundle, worthComponent + Value → Total valueJustifying price/investment{Item 1} (Worth ${X}) + {Item 2} (Worth ${Y}) + ... = Total value ${Z}. Your investment: ${actual price}.Value perceptionPricing offer slidesInfo product marketing
2625Power Statementpower, statement, bold, declarationBold declaration + Supporting factAuthority and confidence{Bold declaration}. {Supporting evidence or fact}.Confidence→TrustKey message slidesThought leadership