name: rails-application-ui-blocks description: 组合新的Rails后端页面并重构现有Rails UI,以使用来自templates/application-ui的高级块。当请求提到ERB视图、Rails部分、管理/仪表板屏幕、Tailwind UI组装,或在保留行为、可访问性和Turbo/Stimulus钩子的同时,用现有高级块替换自定义标记时使用。
Rails应用程序UI块
使用此技能从templates/application-ui中选择、适配和集成高级UI块到Rails视图中。
工作流程
- 确定模式:
- 新页面用于全新功能/页面
- 重构页面用于现有视图/部分
- 首先识别约束:
- 所需的交互(Turbo框架/流、Stimulus目标/动作、表单语义)
- 可访问性约束(标签、键盘流程、ARIA)
- 现有组件边界(部分、助手、共享布局)
- 从目录中选择候选块:
- 阅读
references/selection-playbook.md - 查询
references/template-catalog.json
- 最小化集成:
- 保持现有路由/控制器/域逻辑不变
- 以薄步骤替换标记(先外壳,然后部分,然后微组件)
- 验证:
- 确保没有行为、可访问性或测试覆盖的损失
- 在项目标准要求的地方保持现有设计令牌和类约定
选择顺序
对于新页面:
- 从
ui.page-examples.*开始以锚定页面结构。 - 从
ui.application-shells.*中选择外壳。 - 添加页面/部分标题从
ui.headings.*。 - 添加核心主体块(
ui.forms.*,ui.lists.*,ui.data-display.*,ui.feedback.*)。 - 以导航和覆盖细节结束(
ui.navigation.*,ui.overlays.*)。
对于重构页面:
- 保留当前信息架构和交互合同。
- 将每个现有UI区域映射到一个候选目录块。
- 一次替换一个区域并运行相关测试。
- 仅在重用被证明后,将重复标记提取到部分中。
防护栏
- 除非明确请求,否则不要更改控制器/模型/策略。
- 不要在没有替换的情况下移除
data-controller、data-action、data-turbo-*、aria-*或表单字段名。 - 倾向于将块适配到项目样式,而不是引入冲突的视觉系统。
- 避免在原生组件已经解决相同需求时,插入重复现有设计系统组件的块。
输出期望
当使用此技能完成任务时,包括:
- 选定的目录ID(用于可追溯性)
- 使用的源模板路径
- 引入的任何行为/可访问性差异
- 故意未替换的内容及原因
资源
references/selection-playbook.md- 决定首先检查哪些模板系列的规则,以及何时不使用它们。
references/template-catalog.json- 具有别名和源路径的规范块ID。
scripts/build_template_catalog.py- 在模板更新后重新生成目录。
维护
当templates/application-ui下的文件更改时,重新生成目录:
python3 .agents/skills/rails-application-ui-blocks/scripts/build_template_catalog.py \
--root .