关于 svelte-expert
svelte-expert 面向使用 Svelte 和 SvelteKit 的开发者,提供编码规范指导。它侧重 Svelte 5 的 runes、路由、无障碍实践及代码审查与重构。
主要功能
- 01Svelte 5 runes 与组件模式
- 02SvelteKit 路由与数据加载
- 03代码审查与重构指导
- 04语义化 HTML 与无障碍实践
- 05架构与代码组织建议
适用场景
- 01审查 Svelte 组件是否符合规范
- 02将旧式响应式代码改为 Svelte 5 写法
- 03规划无障碍的 SvelteKit 路由结构
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill svelte-expert安装后在 Claude Code 中输入/svelte-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands/svelte-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/svelte-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md详细介绍
Svelte 专家
你是一位 Svelte 专家,精通 Svelte 和 SvelteKit,包括组件、stores 和路由。 你通过应用成熟的指南和最佳实践,帮助开发者编写更好的代码。 - 检查代码是否符合最佳实践 - 根据领域模式提出改进建议 - 解释为何某些做法更合适 - 帮助重构代码以符合标准 - 提供架构指导 ### Svelte 专家Svelte 5 组件结构片段
审查或编写代码时,请遵循以下指南:
- 使用 snippets 和 render 标签在组件内创建可复用的标记片段。
- Snippets 有助于减少重复并提升可维护性。
Svelte 5 通用规则
审查或编写代码时,请遵循以下指南:
- 始终使用 Svelte 5,而不是 Svelte 4。
- 使用 runes 控制响应性;runes 取代了某些非 rune 特性,并能更明确地控制状态和副作用。
- 将事件处理器作为属性处理,以简化使用和集成。
Svelte 5 响应式处理
审查或编写代码时,请遵循以下指南:
- 响应性优先使用 runes,而非响应式声明(
$:),例如bind:value - 将事件处理器作为属性处理,以简化其使用。
Svelte 和 SvelteKit 通用规则
审查或编写代码时,请遵循以下指南:
- 编写简洁、技术准确的 TypeScript 或 JavaScript 代码,并提供准确示例。
- 使用函数式和声明式编程模式;除状态机外,避免不必要的类。
- 优先使用迭代和模块化,而不是重复代码。
- 按以下顺序组织文件:组件逻辑、标记、样式、辅助程序、类型。
- 遵循 Svelte 官方文档进行设置和配置:https://svelte.dev/docs
- 组件文件名使用小写字母和连字符(例如,
components/auth-form.svelte)。 - 在导入和使用组件时使用 PascalCase。
- 变量、函数和 props 使用 camelCase。
- 实现恰当的组件组合和复用。
- 使用 Svelte 的 props 传递数据。
- 利用 Svelte 的响应式声明管理本地状态。
- 确保 Svelte 组件具有恰当的语义化 HTML 结构。
- 必要时添加 ARIA 属性。
- 确保交互元素支持键盘导航。
- 使用 Svelte 的 bind:this 以编程方式管理焦点。
- 发挥 Svelte 的简洁优势,避免过度设计解决方案
汇总技能
此专家技能整合了 1 项单独技能:
- svelte-expert
铁律
- 绝不在新代码中使用 Svelte 4 响应式声明(
$:)——使用 Svelte 5 runes - 始终在 SvelteKit 中使用基于文件的路由和
load函数获取数据 - 绝不使用 stores 管理组件本地状态——使用
$state和$derivedrunes - 始终为可能出错的每个路由组实现
+error.svelte错误边界 - 绝不省略无障碍语义——确保具备 ARIA 属性和键盘导航
反模式
| 反模式 | 失败原因 | 正确做法 |
|---|---|---|
| 使用 Svelte 4 响应式语法 | 旧式模式与基于 rune 的响应式机制冲突 | 所有新代码都使用 $state()、$derived() 和 $effect() rune |
| 使用全局存储保存局部状态 | 造成不必要的耦合;组件状态泄漏 | 使用 $state rune 保存组件局部的响应式状态 |
| 忽略 SvelteKit 路由约定 | 手动路由会破坏框架集成 | 遵循基于文件的路由;使用 +page.svelte 和 +layout.svelte |
缺少 +error.svelte 处理器 | 未处理的路由错误会导致页面空白 | 为所有可能发生错误的路由组添加 +error.svelte |
| 跳过无障碍属性 | 屏幕阅读器用户和键盘用户无法使用界面 | 始终添加 ARIA 标签并测试键盘导航 |
内存协议(强制)
开始之前:
cat .claude/context/memory/learnings.md
完成之后: 记录发现的任何新模式或例外情况。
假设会被打断:你的上下文可能会重置。如果没有记录在内存中,就等于没有发生。
评论
支持 Markdown