UI UX Pro Max 怎么检索 Svelte 4、Next.js 15 等旧版本框架的遗留指导?
【免费下载链接】ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.项目地址: https://gitcode.com/gh_mirrors/ui/ui-ux-pro-max-skill
如果你维护着仍在旧版本框架上的项目(Svelte 4、Next.js 15、Tailwind 3、Nuxt 3),向 UI UX Pro Max 查询实现指导时,默认拿到的是面向当前大版本的active行,直接照做会引入新版本的 API 写法。UI UX Pro Max 的 web 栈搜索是版本感知的(version-aware):在查询词中显式写出旧大版本号,例如Svelte 4或Next.js 15,检索引擎只返回人工整理(curated)的 legacy 行,并以Status和Applies To字段标注;如果某个旧版本没有整理过 legacy 语料,搜索返回 0 条结果,而不是把新旧两代指导混在一起。
本文覆盖的操作环境是:技能已通过 CLI 安装到项目中(如uipro init --ai claude,技能文件位于.claude/skills/ui-ux-pro-max/),系统装有 Python 3.x。检索脚本只用 Python 标准库、不发起网络请求,这一点在 README.md 的 Prerequisites 中有说明。
版本感知是如何划分的
检索逻辑由 search.py 调用 core.py 中的search_stack完成,规则如下(README.md 在 "Design System Command" 一节有文字说明,core.py 中有实现):
- 查询不带旧版本号时,只索引
Status为active的行,返回当前版本指导; - 查询显式包含旧大版本时,只索引
Status为deprecated的 legacy 行; - 查询包含
migrat*、upgrad*、replac*、instead、modern、current这类迁移意图词时,按当前代处理——比如Next.js 16 migration返回的仍是active行。想在检索 legacy 指导时避免这些词; - 旧大版本没有整理过 legacy 语料时,返回 0 条结果(abstain),并提示换更宽的关键词重试。
版本号有几种等价的写法都会被识别:纯大版本(Svelte 4)、带@(svelte@4)、带括号版本(Next.js (v15))。这套解析在 docs/journals/260813-1622-phase-7-web-stack-freshness.md 中作为 Phase 7 的修复内容被记录,回归测试见 test_web_stack_freshness.py。
版本感知目前只作用于 web 栈:react、nextjs、vue、svelte、astro、angular、html-tailwind、nuxtjs、nuxt-ui(外加 shadcn 的基座区分)。各栈"当前版本"的适用性标注可在 core.py 的STACK_CURRENT_APPLICABILITY中查到,例如nextjs 16.2、svelte 5、html-tailwind 4.3、nuxtjs 4.5——查询旧版本时对照这张表判断"旧"。
执行遗留版本检索
在技能安装路径下运行。README 中的命令以.claude/skills/ui-ux-pro-max/scripts/search.py为路径;如果你通过 Continue 或 Droid (Factory) 安装,分别替换为.continue/skills/和.factory/skills/。直接在本仓库源码上试验时,路径是 src/ui-ux-pro-max/scripts/search.py。
Svelte 4:查 legacy props 与事件
python3 .claude/skills/ui-ux-pro-max/scripts/search.py "Svelte 4 legacy props and events" --stack svelte查询词中显式带上Svelte 4。示例结果(默认返回 3 条,--max-results可取 1–20):
## UI Pro Max Stack Guidelines **Stack:** svelte | **Query:** Svelte 4 legacy props and events **Source:** stacks/svelte.csv | **Found:** 3 results ### Result 3 - **Category:** Props - **Guideline:** Use export let for legacy props - **Description:** Declare props with export let only in legacy mode - **Do:** Retain export let while maintaining legacy components - **Don't:** Introduce export let in new runes-mode components - **Code Good:** export let count = 0 - **Code Bad:** let { count = 0 } = $props() - **Severity:** High - **Applies To:** svelte legacy <=4 - **Status:** deprecated - **Verified At:** 2026-08-13判断结果正确的标准:Found大于 0,且每条结果的Status都是deprecated、Applies To带 legacy 范围(这里是svelte legacy <=4)。对照运行一次不带版本号的查询(例如"Svelte state props and events" --stack svelte),应全部返回Status: active、Applies To: svelte 5的行——两代指导互不串入。Svelte 的 legacy 语料共 11 行,覆盖export let、on:事件、createEventDispatcher、$$slots等,完整内容可直接看 svelte.csv。
Next.js 15:查 legacy middleware
python3 .claude/skills/ui-ux-pro-max/scripts/search.py "Next.js 15 middleware auth matcher" --stack nextjsNext.js 的 legacy 语料目前只有 1 行(nextjs.csv 中Status为deprecated的行),查询命中后返回示例如下:
- **Guideline:** Treat middleware.ts and export function middleware as legacy - **Description:** The middleware filename and named export are deprecated in Next.js 16; use proxy.ts and export function proxy instead. - **Applies To:** nextjs legacy - **Status:** deprecated这说明 legacy 语料是精选的:不是每个旧版本的每个主题都有对应行。查询某个旧版本时如果主题恰好没有整理过,就会落入下一节的"0 条结果"情形。
Tailwind 3、Nuxt 3:用@写法
@major和(vMajor)写法同样会路由到 legacy 语料(回归用例来自 test_web_stack_freshness.py 的test_common_old_major_syntaxes_select_legacy_guidance):
python3 .claude/skills/ui-ux-pro-max/scripts/search.py "tailwindcss@3 JIT" --stack html-tailwind python3 .claude/skills/ui-ux-pro-max/scripts/search.py "nuxt@3 app config" --stack nuxtjs两条命令都应返回Status: deprecated的行:Tailwind 3 对应的是 JIT 模式迁移行(html-tailwind legacy 3.x),Nuxt 3 对应的是"在加 Nuxt 4 特性前先迁移 Nuxt 3"的迁移行(nuxtjs legacy 3.x)。
验证结果与处理空结果
有结果时,检查三个字段:
Status:必须是deprecated,说明这是 legacy 指导而非当前版本指导;Applies To:版本适用范围,例如svelte legacy <=4、nextjs legacy,对照它确认行确实适用于你项目的框架版本;Verified At:该行的核验日期,数据文件当前均为2026-08-13。
同时留意Don't和Code Bad两列:它们描述的是"在新代码里不要做什么"(例如 legacy 行会提示不要把export let引入 runes-mode 组件),维护旧项目时这是区分"允许保留"与"禁止扩散"的依据。
0 条结果是预期的设计行为,不是故障。例如对 astro 栈查询旧大版本:
python3 .claude/skills/ui-ux-pro-max/scripts/search.py "Astro 5 content collections" --stack astro输出Found: 0 results和No matches. ...提示。astro 栈没有整理过 legacy 行,引擎选择放弃(abstain)而不是混入astro 7.1.6的当前指导。输出中的提示文本给出下一步:用更宽或不同的关键词重试;如果最终回退到通用默认,要明确说明没有命中数据库,而不是默认命中了。
字段截断:人类可读输出会把超过 300 字符的长字段截断(代码字段例外,见 core.py 的UNTRUNCATED_COLS)。需要完整数据时加--json:
python3 .claude/skills/ui-ux-pro-max/scripts/search.py "Svelte 4 legacy props and events" --stack svelte --json覆盖范围与边界
- 有整理过 legacy 语料的 web 栈及主题:Svelte(
svelte legacy <=4,11 行)、Next.js(nextjs legacy,middleware 迁移 1 行)、Tailwind(html-tailwind legacy 3.x,JIT 迁移 1 行)、Nuxt(nuxtjs legacy 3.x,1 行)、React(2 行 legacy)。合计 16 行 deprecated legacy 行的构成见 docs/journals/260813-1622-phase-7-web-stack-freshness.md。查询主题不在这几处时,应按"0 条结果"路径处理,不要改用当前版本指导套到旧项目上。 - 版本感知不适用于非 web 栈(swiftui、jetpack-compose、wpf 等桌面/移动端栈不在
WEB_STACKS内,查询不按大版本隔离)。 - 若查询同时写了旧版本号和迁移意图词(如
Next.js 15 to Next.js 16 migration这类跨代迁移表述),是否按 legacy 处理取决于请求版本与当前版本的比较——纯旧版本查询(不带迁移词)最稳定地命中 legacy 语料。 - 怀疑数据本身时,直接查数据文件确认某行是否存在及其
Status/Applies To/Verified At:data/stacks 目录。
【免费下载链接】ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.项目地址: https://gitcode.com/gh_mirrors/ui/ui-ux-pro-max-skill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考