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

8.4 KiB

1idchart_typekeywordsbest_fordata_typewhen_to_usewhen_to_avoidmax_categoriesslide_contextcss_implementationaccessibility_notessources
21Bar Chart Verticalbar, vertical, comparison, categories, rankingComparing values across categoriesCategorical discreteComparing 3-12 categories, showing ranking, highlighting differencesContinuous time data trends12Traction metrics feature comparisonChart.js or CSS flexbox with height percentage barsAlways label axes include valuesAtlassian Data Charts
32Bar Chart Horizontalhorizontal bar, ranking, long labels, categoriesCategories with long names rankingCategorical discreteLong category names, 5+ items, reading left-to-right naturalFew categories time series15Team performance competitor analysisCSS flexbox with width percentage barsNatural reading direction for labelsDatylon Blog
43Line Chartline, trend, time series, growth, change over timeShowing trends over continuous timeTime series continuousTime-based data, showing growth trajectory, 10+ data pointsCategorical comparisons50+ pointsRevenue growth MRR user growthChart.js line or SVG path elementInclude data point markers for screen readersTableau Best Practices
54Area Chartarea, cumulative, volume, trend, filled lineShowing volume or magnitude over timeTime series cumulativeEmphasizing magnitude, showing cumulative totals, comparing totalsPrecise value comparison3-4 seriesRevenue breakdown market share over timeChart.js area or SVG path with fillUse patterns not just colors for seriesData Visualization Guide
65Pie Chartpie, composition, percentage, parts, wholeShowing parts of a wholeProportional percentage2-5 slices, showing simple composition, adds to 100%More than 6 categories precise comparison6 maxMarket share budget allocation simple splitsCSS conic-gradient or Chart.js pieNever use 3D always include percentagesFusionCharts Blog
76Donut Chartdonut, composition, percentage, center metricParts of whole with center highlightProportional percentageLike pie but need center space for key metric, 2-5 segmentsMany categories6 maxComposition with key stat in centerCSS conic-gradient with inner circleSame as pie include legendModern alternative to pie
87Stacked Barstacked, composition, comparison, breakdownComparing composition across categoriesCategorical + proportionalShowing composition AND comparison, segment contributionToo many segments precise values5 segmentsRevenue by segment across quartersChart.js stacked bar or CSS nested divsOrder segments consistently use legendAtlassian Data Charts
98Grouped Bargrouped, clustered, side by side, multi-seriesComparing multiple metrics per categoryMulti-series categoricalDirect comparison of 2-3 metrics per categoryToo many groups (>4) or categories (>8)4 groupsFeature comparison pricing tiersChart.js grouped bar CSS grid barsColor code consistently across groupsData Visualization Best Practices
109100% Stacked Bar100%, proportion, normalized, percentageComparing proportions across categoriesProportional comparativeComparing percentage breakdown across categories, not absolute valuesShowing absolute values5 segmentsMarket share comparison percentage breakdownCSS flexbox 100% width segmentsClearly indicate percentage scaleProportional analysis
1110Funnel Chartfunnel, conversion, stages, drop-off, pipelineShowing conversion or drop-off through stagesSequential stage-basedSales funnel, conversion rates, sequential process with decreasing valuesNon-sequential data equal stages6-8 stagesUser conversion sales pipelineCSS trapezoid shapes or SVGLabel each stage with count and percentageMarketing/Sales standard
1211Gauge Chartgauge, progress, goal, target, kpiShowing progress toward a goalSingle metric vs targetSingle KPI progress, goal completion, health scoresMultiple metrics1 metricGoal progress health scoreCSS conic-gradient or arc SVGInclude numeric value not just visualDashboard widgets
1312Sparklinesparkline, mini, inline, trend, compactShowing trend in minimal spaceTime series inlineInline metrics, table cells, compact trend indicationDetailed analysisN/AMetric cards with trend indicatorSVG path or canvas inlineSupplement with text for accessibilityEdward Tufte
1413Scatter Plotscatter, correlation, relationship, distributionShowing relationship between two variablesBivariate continuousCorrelation analysis, pattern detection, outlier identificationCategorical data simple comparisons100+ pointsCorrelation analysis segmentationCanvas or SVG circles positionedInclude trend line if meaningfulStatistical visualization
1514Bubble Chartbubble, three variables, scatter, sizeShowing three variables simultaneouslyTrivariate continuousThree-variable comparison, population/size mattersSimple comparisons30-50 bubblesMarket analysis with size dimensionSVG circles with varying radiusLegend for size scale essentialData Visualization Guide
1615Heatmapheatmap, matrix, intensity, correlation, gridShowing intensity across two dimensionsMatrix intensityLarge data matrices, time-day patterns, correlation matricesFew data pointsUnlimited gridUsage patterns correlation matricesCSS grid with background-color intensityUse colorblind-safe gradientsDatylon Blog
1716Waterfall Chartwaterfall, bridge, contribution, breakdownShowing how values add to a totalCumulative contributionFinancial analysis, showing positive/negative contributionsNon-additive data10-15 itemsRevenue bridge profit breakdownCSS positioned bars with connectorsClear positive/negative color codingFinancial reporting standard
1817Treemaptreemap, hierarchy, nested, proportionShowing hierarchical proportional dataHierarchical proportionalNested categories, space-efficient proportions, 2 levels maxSimple comparisons few items50+ itemsBudget breakdown category analysisCSS grid with calculated areasInclude text labels on larger segmentsBen Shneiderman
1918Radar Chartradar, spider, multi-metric, profileComparing multiple metrics for single itemMulti-metric profileComparing 5-8 metrics for one or two items, skill profilesMore than 3 items to compare8 axes maxFeature profile skill assessmentSVG polygon on axesEnsure scale is clear and consistentProfile comparison
2019Bullet Chartbullet, target, actual, performanceShowing actual vs target with rangesKPI with targetProgress against target with qualitative rangesSimple goal tracking1-3 per slideKPI performance with targetsCSS layered bars with markersClearly label target and actualStephen Few
2120Timelinetimeline, chronology, history, milestonesShowing events over timeEvent-based temporalHistory roadmap milestones, showing progressionQuantitative comparison10-15 eventsCompany history product roadmapCSS flexbox with positioned markersEnsure logical reading orderChronological visualization
2221Sankey Diagramsankey, flow, distribution, connectionsShowing flow or distribution between nodesFlow distributionShowing how values flow from source to destinationSimple distributions15-20 nodesUser flow budget flowD3.js or dedicated libraryAlternative text description essentialComplex flow visualization
2322KPI Cardkpi, metric, number, stat, scorecardHighlighting single important metricSingle metricDashboard hero metrics, emphasizing one key numberShowing trends or comparisons1 numberMain KPI highlightLarge font-size centered numberInclude trend context if relevantDashboard design
2423Progress Barprogress, completion, percentage, barShowing completion percentageSingle percentageSimple progress indication, goal completionMultiple goals comparison1 per contextProject completion goal progressCSS width with percentage gradientInclude numeric percentageUI/UX standard
2524Comparison Tabletable, comparison, matrix, featuresDetailed feature or value comparisonMulti-attribute categoricalDetailed comparison, many attributes, exact values matterVisual impact storytelling10-15 rowsFeature matrix pricing comparisonHTML table with CSS stylingProper table headers and scopeInformation design
2625Icon Arrayicon array, pictogram, proportion, visualShowing proportions with visual metaphorProportional visualMaking statistics tangible (e.g. 1 in 10 people), visual impactPrecise values large numbers100 iconsStatistics visualization impact slidesCSS grid or flexbox with iconsDescribe proportion in textISOTYPE Otto Neurath