214 Commits

Author SHA1 Message Date
Viet Tran
a38d04c3d5
feat(search): overhaul relevance and curated design data
Overhaul BM25 relevance, reasoning and data-quality contracts; refresh UI styles and framework guidance; add resilient text, chip, badge and micro-interaction guidance; strengthen release, provenance and catalog refresh gates; update bilingual documentation.
v2.15.0
2026-08-14 00:08:23 +07:00
Viet Tran
97eb2a2003
docs: clarify asset sync workflow (#443)
Replace stale symlink instructions with the current real-file mirror and validated sync workflow.
2026-08-12 17:20:38 +07:00
Viet Tran
7c1806cc0a
docs: clarify Claude ZIP upload limit (#442)
Clarify that the full repository archive is not a Claude.ai skill upload artifact and direct Claude Code users to the supported Marketplace and CLI installation paths.\n\nCloses #235.
2026-08-12 16:43:41 +07:00
Viet Tran
0ed327fc18
fix(cli): generate runnable script paths (#181)
Resolve platform-root-relative script paths for local and global installs, with regression coverage across Claude, Codex, Copilot, and Kiro.
v2.14.2
2026-08-12 16:34:27 +07:00
PengQi Shi
abb7f2fd5a
fix: bump skill.json version to 2.13.0 (#438)
Bumps skill.json, marketplace.json, and plugin.json version from 2.11.0 to 2.13.0 to match the latest GitHub release.
v2.14.1
2026-08-06 08:29:01 +07:00
PengQi Shi
f4d3b71dbe
feat(ci): auto-bump skill JSON versions after release (#439)
Adds a workflow that triggers on release published, checks out main,
updates the version field in skill.json, marketplace.json, and plugin.json
to match the release tag, then opens a PR automatically.
v2.14.0
2026-08-06 08:02:05 +07:00
Yadnesh Teli
4d140cf8ff
feat(cli): add --global flag to uipro update and support --ai universal target (#435, #436) (#437)
* feat(cli): add --global flag to update command and support --ai universal (#435, #436)

* fix(cli): support dist package.json resolution in update command
v2.13.0
2026-08-03 19:30:53 +07:00
Yong Tang
14ddef5c05
feat(gallery): add Style Detail Modal with phone UI controls preview (#155)
Click any StyleCard to open a full-screen modal showing the style applied
to 9 interactive phone UI controls (buttons, inputs, toggles, checkboxes,
radios, cards, badges, slider, nav bar) inside an iPhone mockup frame.

Co-authored-by: yongtang <jlinux@msn.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
v2.12.0
2026-08-01 08:29:30 +07:00
vkayatas
b0ebb1797e
fix(copilot): generate .prompt.md file for VS Code Copilot slash commands (#328)
* fix(copilot): generate .prompt.md file for VS Code Copilot slash commands

VS Code Copilot requires reusable prompts to be files named
`<name>.prompt.md` directly in `.github/prompts/`. The previous
config generated `.github/prompts/ui-ux-pro-max/PROMPT.md` (a folder
with PROMPT.md inside), which is not recognized as a slash command.

Changes:
- copilot.json: set skillPath to 'prompts', filename to
  'ui-ux-pro-max.prompt.md', add dataPath for data/scripts location
- copilot.json: use 'mode: agent' frontmatter (VS Code format) instead
  of 'name' field
- template.ts: add dataPath support so data/scripts go to a separate
  directory from the prompt file when configured
- template.ts: rewrite hardcoded script paths to platform-specific
  scriptPath for platforms that differ from the default
- uninstall.ts: handle copilot-specific file layout during uninstall

After this fix, `uipro init --ai copilot` produces:
  .github/prompts/ui-ux-pro-max.prompt.md  (slash command file)
  .github/prompts/ui-ux-pro-max/data/      (search database)
  .github/prompts/ui-ux-pro-max/scripts/   (search engine)

* fix(copilot): apply prompt-file layout fix to canonical source template

Address review feedback on PR #328:
- Update src/ui-ux-pro-max/templates/platforms/copilot.json (source of
  truth) with the same .prompt.md layout fix that was previously applied
  only to the packaged CLI asset copy
- Sync cli/assets/templates/platforms/copilot.json byte-for-byte from
  the source template (also fixes stale '15 technology stacks' count;
  there are 16 stack CSVs)

Smoke check (uipro init --ai copilot --offline):
  .github/prompts/ui-ux-pro-max.prompt.md  (slash command, mode: agent)
  .github/prompts/ui-ux-pro-max/data/      (search database)
  .github/prompts/ui-ux-pro-max/scripts/   (search engine)
uninstall --ai copilot removes both the prompt file and data directory.

---------

Co-authored-by: vkayata <volkan.kayatas@mercedes-benz.com>
v2.11.5
2026-07-31 23:02:31 +07:00
Lin Junrong
ec1f2a9027
fix(design-system): resolve palette and anti-patterns against the style's mode (#428) (#434)
generate() ranked style, palette and anti-patterns independently, so a
dark-primary style could come back with a light palette and a
"Dark mode by default" anti-pattern in the same output. The palette is
what users copy into CSS variables, so the output shipped a light theme
with dark-theme styling instructions attached.

Resolve the mode first -- from the query keywords and the style's own
Light/Dark Mode columns -- then pick a palette whose Background matches
it and drop mode-contradicting anti-pattern clauses.

Only the dark case filters palettes. Light keeps the existing top-hit
behaviour so queries that never mention a mode are untouched, and dark
falls back to the top hit when colors.csv has no dark ramp for the
product type.

Adds scripts/tests/test_design_system_mode.py (stdlib unittest, matching
test_core.py) and syncs cli/assets + .claude/skills via sync-assets.mjs.
v2.11.4
2026-07-31 18:00:15 +07:00
Kc
4857a2c5ef
fix(cli): sync shadcn test asset (#433) v2.11.3 2026-07-28 12:00:07 +07:00
Clark Cant
3b5df75479
Merge pull request #430 from scarletkc/codex/fix-codex-agents-skill-path
fix(codex): install skills under .agents
v2.11.2
2026-07-27 13:30:30 +07:00
Kc
98a80d8630
test: expect pinned shadcn CLI version
Align the test expectation with the pinned shadcn@2.3.0 fallback implementation.
2026-07-27 13:01:28 +07:00
Kc
310810de9a docs: label shared .agents uninstall path 2026-07-27 12:31:40 +08:00
Kc
43e8d4a5b0
fix(cli): run TypeScript fallback with Node (#431) v2.11.1 2026-07-27 11:30:18 +07:00
Kc
38e3de0bfe fix(cli): handle shared .agents targets 2026-07-27 12:29:21 +08:00
Kc
3321626663 fix(codex): install skills under .agents 2026-07-27 12:16:38 +08:00
amazscript
1307d97a72
docs: don't hardcode React Native as the project stack (#427)
Step 1 of the workflow told the agent the stack was always React Native
("this project's only tech stack"), a leftover from the skill's origin as
a React Native project. In a generic skill this actively misleads: agents
pick React Native guidance for web, Flutter or desktop work, and skip the
matching `--stack` file entirely.

Replace it with stack inference plus an explicit platform question, and
point at the Available Stacks list so the right rules get loaded.

Also flags that several rule sections are scoped to App UI, so mobile-only
concerns (safe areas, haptics, bottom nav, Dynamic Type) are not applied
to desktop-web work.

Co-authored-by: decilapdenis <decilapdenis@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 22:51:36 +07:00
contato43agency-commits
5c0946f661
docs: fix stale stats in skill.json and marketplace.json (#425)
The description strings still reported 161 color palettes, 73 font
pairings, 99 UX guidelines, and 17 tech stacks -- numbers that predate
the current data set. README.md and .claude-plugin/plugin.json already
report the correct counts (192 palettes, 74 pairings, 98 guidelines,
22 stacks); this brings the two remaining stale files in line.
2026-07-21 05:49:56 +07:00
Young Munger
b484e8338c
Add website design stack starter kit under stack/ (#424)
A ready-to-use Claude Code environment for website design, bundling:
- .mcp.json: Playwright + Chrome DevTools + shadcn MCP servers
- CLAUDE.md: the design loop (plan -> commit to a look -> build -> screenshot -> review)
- .claude/agents/design-review.md: 7-phase design-review subagent (WCAG AA, responsive)
- .claude/commands: /design-review, /design-plan
- scripts/design-audit.mjs: standalone multi-viewport screenshot + heuristic audit
- .github/workflows/design-review.yml: CI design gate (template)
- docs/: STACK, SETUP, WORKFLOW
- examples/juniper-audit/: a real audit run (report + 6 viewport screenshots)

Pairs with the ui-ux-pro-max skill (knowledge layer) and the official
frontend-design plugin (taste layer). Lives on its own branch as a
self-contained starter; copy stack/ out to seed a standalone repo.

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-20 03:57:13 +07:00
sunilchandarjr
f8ac5e1266
Fix .claude/skills data drift, harden search engine, tighten SKILL.md (#412)
Merged by github-maintain cron. Approved by @clark-cant and @jizc. Pre-existing pytest failure on main (ui-styling/shadcn test) is unrelated to PR scope.
2026-07-15 01:32:50 +07:00
Clark Cant
fe3f65e5d0
Merge pull request #423: chore: bump version to 2.11.0 in skill metadata files
chore: bump version to 2.11.0 in skill metadata files
2026-07-14 10:02:33 +07:00
XiaOldMan
1781c3122c chore: 版本号同步至 v2.11.0 2026-07-14 10:38:00 +08:00
Clark Cant
e2964b533e
Merge pull request #408 from Cb2i/chore/repo-health-and-e2e-tests
chore: repo health files, CI test wiring, and a real SVG bug fix
2026-07-14 05:30:34 +07:00
Abraham040203
0468898265
docs: sync --domain and --stack lists with search.py --help (#411)
- CLAUDE.md: add missing domains (icons, react, web, google-fonts);
  domain list now matches all 12 --help choices (gsap landed via #402,
  stack list already synced by #404)
- README.md / README.zh.md: complete Desktop row in Supported Stacks
  (add WPF, WinUI 3, Avalonia, Uno Platform, UWP); fix stack count
  (13+ -> 22); replace nonexistent --max-length flag with --json in
  Troubleshooting
- templates/base/skill-content.md (+ cli/assets mirror): add
  icons/google-fonts/gsap rows to search tables, drop invalid 'prompt'
  domain, list all 22 stacks instead of 2

Co-authored-by: 文敏華 <guanweijie@wenminhuadeMacBook-Air.local>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 16:32:25 +07:00
Inf Sein
6142b07395
feat(cli): add CodeWhale platform support for uipro init --ai codewhale (#413)
* feat(cli): add CodeWhale platform support for uipro init --ai codewhale

* docs: Update README
v2.11.0
2026-07-13 16:30:22 +07:00
Andras Polgar
3da52ff1ca
security: harden skill against agent-audit risk patterns (#417)
Addresses the behavioral patterns that plausibly triggered the Gen
(Agent Trust Hub) High Risk rating on skills.sh, without changing
runtime functionality:

- Prerequisites no longer instruct agents to run sudo/brew/apt/winget
  install commands; agents must ask the user to install Python instead
  (SKILL.md, skill-content.md template, README.md, README.zh.md)
- Soften coercive invocation language ("Must Use" -> "Primary Use
  Cases") and replace keyword-stuffed frontmatter descriptions with
  factual ones (SKILL.md, quick-reference.md, claude/droid.json,
  plugin.json)
- Remove design.csv, draft.csv and _sync_all.py: unused by the runtime
  (not registered in core.py CSV_CONFIG) and containing prompt-shaped
  "System Prompt: ... You are ..." blocks that read as injection risk
- Fix path traversal in --persist: new safe_slug() restricts project
  and page names to [a-z0-9_-], so ../ in -p/--page can no longer
  escape the design-system/ output folder

Verified: validate-csv.py (35 files), smoke-domains (12/12),
smoke-stacks (22/22), check:assets in sync, persist traversal attempt
stays confined.

Co-authored-by: Andras Polgar <5525341+ruredi@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 21:30:06 +07:00
M-STYLEZ
12b486b22e
fix(codex): include quick reference gating in generated skill (#410) v2.10.2 2026-07-06 22:33:11 +07:00
Clark Cant
4baa399d00
Merge pull request #407 from mikeholownych/fix/data-validation-and-build-fallback
fix: validate design data and support node builds
v2.10.1
2026-07-04 09:24:54 +07:00
Yassire
1b774be863 chore: repo health files, CI test wiring, and Playwright e2e smoke test
- Add SECURITY.md and CODE_OF_CONDUCT.md (community health was at 50%)
- Add bug/feature issue templates and a PR template
- Wire the existing pytest suite under .claude/skills/*/scripts/tests into
  a new CI workflow; the test docstrings claimed "the existing pytest CI
  runs them" but no workflow actually did
- Add @playwright/test to cli/ with a smoke test that loads the shipped
  preview/xiaomaomi-app.html and asserts no console errors
- Fix a malformed SVG path (invalid `d` attribute) in
  preview/xiaomaomi-app.html found by that new test, replacing it with
  the equivalent valid paw icon path already used elsewhere in the file
2026-07-03 21:25:03 -04:00
Mike Holownych
137597b02f fix: validate design data and support node builds
- add CSV structural validation and all-domain smoke tests
- repair malformed CSV rows in source and bundled CLI assets
- run data validation in CI and prepublish checks
- add npm build wrapper with TypeScript fallback when Bun is unavailable
- fix CLI asset resolution for TypeScript fallback builds
2026-07-03 23:16:28 +00:00
saranp1
9ceab49a1c
docs: fix Premium tier domain typo in README (uipm.cc -> uupm.cc) (#405)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 00:24:32 +07:00
Clark Cant
bf5c3cfb61
Merge pull request #402 from Abraham040203/feat/motion-domain-design-dials
Add motion domain and design dials (variance/motion/density)
2026-07-02 23:26:22 +07:00
文敏華
6a6167691a Rename motion domain to gsap to avoid collision with PR #296
PR #296 (feat/emil-motion-principles) independently registers a "motion"
domain key in CSV_CONFIG/detect_domain for motion-principles.csv (37
design-principle rows). Both PRs adding the same dict key would cause
one to silently overwrite the other's domain registration if merged
independently, per the automated review on this PR.

The two domains are complementary, not duplicate (design principles vs.
ready-to-use GSAP code snippets), so this renames this PR's domain from
"motion" to "gsap" - a more precise name given every row is GSAP-specific
implementation code. The --motion CLI dial and its "Subtle/Standard/
Complex" tiers are unaffected (unrelated to the domain key; only the
`--domain gsap` search endpoint and its internal lookup changed). No
regressions: --design-system output with no dials set remains
byte-identical to before this feature.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-02 23:36:44 +08:00
Isi-blip
247bf48d02
docs: sync CLAUDE.md stack list with core.py STACK_CONFIG (#404)
STACK_CONFIG in src/ui-ux-pro-max/scripts/core.py defines 22 stacks,
but the Available stacks list in CLAUDE.md only listed 16, silently
omitting threejs, wpf, winui, avalonia, uno, and uwp.
2026-07-02 21:25:21 +07:00
fivv
d7e37dd359
docs: sync Chinese README with English version (#403)
Update README.zh.md to match the current English README.md:
- Reasoning rules 100 -> 161 (badges, headings, flow diagram, features)
- Color palettes 96 -> 161 (aligned 1:1 with product types)
- Tech stacks 13 -> 22 (list all 22 stacks; expand supported-stacks table with Angular/Laravel/Three.js/JavaFX)
- npm package uipro-cli -> ui-ux-pro-max-cli (badges, install, contributor steps)
- Add install entries for kilocode, warp, augment; add uninstall/global commands
- Expand reasoning-rules table (fill examples, add Lifestyle category)
- Add design-system javafx examples
- Replace manual cp -r with npm run sync:assets / check:assets
- Add sections: Basic vs. Premium, Automated Releases, Troubleshooting, Compatible Agents
- Fix inconsistent pronoun (您 -> 你) for consistency

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 08:55:43 +07:00
文敏華
4f341e2af1 Sync cli/assets with src (catch up pre-existing drift)
cli/assets had fallen out of sync with src/ui-ux-pro-max ahead of this
change (unrelated to the motion-domain feature) - colors.csv, products.csv,
google-fonts.csv, draft.csv, several platform templates, and sub-skill
scripts/tests had all drifted. Ran the project's own `sync-assets.mjs`
to bring cli/assets back in line with the source of truth per the
documented Sync Rules; `--check` now reports assets as in sync.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-01 22:54:13 +08:00
文敏華
bd9329c9cb Add motion domain and design dials to design-system generator
Adds a new searchable `motion` domain (motion.csv, 16 GSAP animation
skeletons across hover/scroll-reveal/stagger/page-transition/parallax/
loading, each tagged Subtle/Standard/Complex) plus three optional 1-10
dials on `--design-system` — --variance, --motion, --density — inspired
by taste-skill's DESIGN_VARIANCE/MOTION_INTENSITY/VISUAL_DENSITY sliders.

- --variance biases style search/selection toward centered-minimal (low)
  or bold-asymmetric (high) categories
- --motion attaches a matching GSAP snippet (code + framework notes +
  do/don't) from motion.csv
- --density overrides the --space-* token scale in ASCII/markdown/MASTER.md
  output (spacious <-> dense/dashboard)

All three dials are optional and additive; output with no dials set is
byte-identical to before (verified via regression diff). Synced into
.claude/skills/ui-ux-pro-max and cli/assets alongside src/ui-ux-pro-max
(source of truth) so all three installed copies stay consistent.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-01 22:54:02 +08:00
Li Yin
8e43c9d98f
docs: Add compatible agents section with AdaL (#142) 2026-07-01 19:56:24 +07:00
Tarana
3effe971c0
Add Basic vs. Premium Version Comparison to README (#232)
Added the comparison between Basic and Premium versions to the README. Users were asking about this difference in Issue #156, so I added it here to improve the documentation.
2026-06-30 04:25:11 +07:00
fivv
782d4e79c5
docs: add Chinese README with bilingual support (#173)
Add README.zh.md with complete Chinese translation
Add language switcher links in both README files
Support for 简体中文 / English bilingual access

Features:
- Full translation of all UI/UX style names and terminology
- Consistent industry-standard Chinese terms (玻璃拟态、粗野主义等)
- Language switcher with flag icons at the top of both files
2026-06-30 02:55:27 +07:00
nhatvy142
3327f9dcb3
feat: add three UI project examples (#174)
- SaaS landing page with social proof, pricing, testimonials
- Healthcare analytics dashboard with charts and KPIs
- Portfolio website with dark mode and project grid

All built using ui-ux-pro-max design system recommendations.

https://claude.ai/code/session_01E4rdBvf1LWqQ1XMTic7NrU

Co-authored-by: Claude <noreply@anthropic.com>
v2.10.0
2026-06-29 23:59:34 +07:00
Munir Abbasi
8a81ed6027
Merge PR #223: Expand products database with 31 new product types and improved keywords
* Add revised products.csv

* add 31 new color profiles
2026-06-28 09:27:07 +07:00
Clark Cant
65e2319949
Merge pull request #242 from jizc/feature/desktop-apps
feat(stacks): add 5 .NET desktop stacks — WPF, WinUI 3, UWP, Avalonia, Uno Platform
v2.9.0
2026-06-27 06:55:34 +07:00
Pirate252
9fd25fe07e
Fix codegen/validator bugs and a standalone-install break across four skills (#346)
* Fix invalid Tailwind config output (missing comma before plugins)

`tailwind_config_gen.py` serialized the config by json.dumps()-ing
everything except `plugins`, stripping the outer braces, then appending
`plugins: [...]` in the template. The JSON block's last property (`theme`)
has no trailing comma, so the emitted config was:

    "theme": { ... }
    plugins: [],

which is a syntax error (`Unexpected identifier 'plugins'`) — every
generated tailwind.config.ts / tailwind.config.js failed to parse.

Add the missing comma after the serialized block in both
`_generate_typescript` and `_generate_javascript`.

The existing 54 tests passed because they only assert on the data
structure, never parsing the emitted string as JS. Add a
`TestGeneratedConfigIsValidJs` regression class that (1) asserts the
property before `plugins` is comma-terminated (pure Python) and (2)
parses the generated config with `node --check` when node is available.
Both new cases fail on the pre-fix code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fix validate-tokens.cjs missing violations on lines that use a token

The scanner skipped any line containing `var(--` outright, so a hardcoded
value sharing a line with a token reference was never reported:

    .btn { background: #FF6B6B; color: var(--color-primary); }  // missed

This is a broad false-negative: real CSS routinely puts several properties
on one line, and minified CSS is a single line — one `var()` anywhere
suppressed every violation in the file. (The Python slide validator already
handles this correctly, so the two validators disagreed.)

Remove the line-level skip. Token-definition files are already excluded by
`skipPatterns` at the file level, and none of the detection regexes can
match inside a `var(--...)` reference, so this adds no false positives.

Add a pytest regression test (drives the CLI via node) asserting a hex
sharing a line with a token is flagged, and that a token-only line stays
clean. The first case fails on the pre-fix code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Fix sync-brand-to-tokens.cjs crashing on the bundled starter template

The color parser required a parenthesized name in the Quick Reference row
(`#2563EB (name)`) and a bolded label in the color tables
(`**Primary Blue** | #hex`). The bundled `brand-guidelines-starter.md` uses
neither — its rows are `| Primary Color | #2563EB |` and
`| Primary Blue | #2563EB |`. So no base hex was extracted, and
`generateColorScale(undefined)` → `adjustBrightness(undefined)` threw:

    TypeError: Cannot read properties of undefined (reading 'replace')

i.e. the documented "edit guidelines → sync" flow crashed on the skill's
own starter template.

- Rewrite the parser: Quick Reference matches hex without a parenthesized
  name; color-table rows match with optional bold; an accent swatch living
  in another table (the starter's "Accent Green" under Secondary Colors) is
  picked up by a fallback scan.
- Skip any role with no base hex (with a warning) instead of crashing, guard
  adjustBrightness against non-string input, and initialize tokens.primitive
  so a tokens file without it doesn't throw.

Add a pytest regression test (drives the CLI via node) that syncs the bundled
starter template and asserts the expected base colors are written. It fails
on the pre-fix code.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Vendor ui-ux-pro-max scripts/data so a standalone skill install works

`.claude/skills/ui-ux-pro-max/scripts` and `.../data` were symlinks into the
repo's top-level `src/ui-ux-pro-max/`:

    scripts -> ../../../src/ui-ux-pro-max/scripts
    data    -> ../../../src/ui-ux-pro-max/data

That resolves in a full checkout, but installing a single skill by copying
`.claude/skills/<name>/` into `~/.claude/skills/` leaves the links pointing at
`~/src/ui-ux-pro-max/`, which does not exist. The links dangle and `search.py`
— the entire searchable engine behind --design-system / --domain / --persist —
fails with `No such file or directory`. (The embedded rule tables in SKILL.md
still work, masking the breakage.)

Replace the two symlinks with the real `scripts/` and `data/` files so the
skill is self-contained, matching how the sibling skills (design,
design-system, ui-styling, brand) already ship real files under their own
`scripts/`. Maintainers who prefer to keep the `src/` + symlink architecture
may instead document that this skill requires a full-repo checkout.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: abukardini7 <abukardini7@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 20:25:35 +07:00
Crocodile Forest
e3a7f270ff
docs: make SKILL.md stack-neutral instead of React Native-only (#372)
The skill body claimed "React Native (this project's only tech stack)"
and listed only `react-native` under Available Stacks. That contradicts:

- the SKILL.md frontmatter description ("web and mobile", multi-stack)
- plugin.json, which advertises 15 stacks
- the shipped data/stacks/ engine data (16 stack CSVs)

So `--stack nextjs`/`react`/`shadcn`/`vue`/etc. have always worked; the
docs just never said so, steering every project toward React Native.

Make the guidance framework-agnostic:
- Step 1 "Stack" bullet: match the project's framework, not RN
- Step 4 heading/command: generic `--stack <your-stack>`
- Available Stacks table: list all shipped stacks
- Example workflow (a homepage) uses a web stack
- Tips line generalized
2026-06-26 14:17:56 +07:00
Duy /zuey/
cc3d1be743
fix(cli): publish under fallback npm package (#393) v2.8.8 2026-06-26 11:02:09 +07:00
Jan Ivar Z. Carlsen
090a405cc0 feat(stacks): add 5 .NET desktop stacks — WPF, WinUI 3, UWP, Avalonia, Uno Platform
Adds WPF, WinUI 3, UWP, Avalonia, and Uno Platform stacks (17 -> 22 total),
each with its own guidelines CSV, registered in core.py and synced to cli/assets.

- New stack CSVs in src/ and cli/assets/data/stacks/
- search.py / core.py registry updated
- smoke-stacks.sh: EXPECTED_STACK_COUNT 21 -> 22 with a smoke-test workflow
- platform template descriptions and README bumped to 22 technology stacks
2026-06-25 21:51:59 +02:00
Alexander
318e0b2e40
fix(cli): use npm-canonical bin path so the uipro command survives publish (#392)
The bin mapping was "./dist/index.js". On publish, npm normalizes bin
values and the leading ./ triggers a warning -- on the npm version in the
release runner it reports `bin[uipro] script name dist/index.js was
invalid and removed`, i.e. the published package ships with no `uipro`
command, so `npx uipro-cli init` would not work even once publishing
succeeds (see #353).

Change the value to the canonical `dist/index.js` (exactly what
`npm pkg fix` produces). src/index.ts already has the
`#!/usr/bin/env node` shebang, which bun build preserves, so the bin is
executable.

Verified: `npm publish --dry-run` no longer emits the bin warning, and
dist/index.js is included in the tarball; typecheck passes.

Addresses the package-metadata half of #353. Actually landing on npm
still requires a release run with a token that has publish rights for
uipro-cli.
v2.8.7
2026-06-25 20:17:09 +07:00
Alexander
d86f44368d
fix(scripts): force UTF-8 stdout/stderr in design_system.py on Windows (#390)
design_system.py prints box-drawing characters and swatches (--, OK marks,
block swatches), but unlike search.py it never reconfigured stdout. On a
non-UTF-8 Windows console (cp1252/gbk) running the CLI crashes with
UnicodeEncodeError, the same failure reported in #112 for search.py.

Mirror the wrapper search.py already uses: re-wrap stdout/stderr in a
UTF-8 TextIOWrapper when the console encoding is not UTF-8. Applied to
the source of truth and the synced cli/assets copy.

Verified: the CLI runs clean under PYTHONIOENCODING=cp1252 (exit 0, no
UnicodeEncodeError) while still emitting the box/swatch output;
check:assets passes.

Related to #112 (search.py is already fixed on main; this covers the
remaining design_system.py instance).
v2.8.6
2026-06-25 18:30:49 +07:00