diff --git a/.agents/skills/ulthon-card-template/SKILL.md b/.agents/skills/ulthon-card-template/SKILL.md
new file mode 100644
index 0000000..faac817
--- /dev/null
+++ b/.agents/skills/ulthon-card-template/SKILL.md
@@ -0,0 +1,287 @@
+---
+name: "ulthon-card-template"
+description: "自定义卡片/模板形态动手配方:面向用自己的列表页定制专属卡片形态的下游开发者。涵盖适用判断、layoutList 五级模板协议选型(tplFunction/tplLay/tplVue/tplLayId/tplVueId)、渲染上下文契约(_cells/_operatHtml/_checked/_disabled 与上下文冻结)、以商品卡为蓝本的 step-by-step 配方、设计模式库(头部三件套/图面悬浮开关/价格层级/状态徽标/底部分隔/图片降级/响应式/统一设计语言)、取值通道三规则、坑与红线、验收 checklist。需要定制卡片/自定义卡片模板/卡片模板/商品卡/名片/多形态模板/layoutList 自定义条目/tplVueId,或排查自定义模板不渲染、点卡片误勾选、模板数据被改无效时调用。机制原理(受控数据流、五级协议引擎、双端注入、layoutDefault 三层链)见 ulthon-admin-table 技能第十一章,本技能定位是动手配方,不复述机制。"
+---
+
+# 自定义卡片模板定制指南(ulthon-card-template)
+
+本技能教下游开发者为自己的列表页定制卡片/模板形态。全部配方来自两个实战模板:用户管理名片(`extend/base/admin/view/system/admin/index.html` 的 usercardTpl)与商品列表商品卡(`extend/base/admin/view/mall/goods/index.html` 的 goodscardTpl),两者都是框架分发、可直接对照的官方范例。
+
+机制原理(受控数据流为什么零请求、五级协议引擎如何回退、layoutDefault 三层解析链)不在本技能展开,统一见 [ulthon-admin-table](../ulthon-admin-table/SKILL.md) 技能第十一章。本技能回答的是"怎么动手写"。
+
+## 一、适用判断:先想清楚要不要定制
+
+**不定制就够用的情况(多数页面属于这类)**:`ua.table.render` 不配 `layoutList` 时,框架自动注入"表格 + 内置 card"双形态,工具栏自动出现"视图"按钮,字段按 label:value 紧凑网格渲染,零配置零模板。内置 card 的信息密度对管理后台的字段列表场景通常已经足够,**够用就别写模板**。
+
+**值得定制的情况**:
+
+- 需要语义化排版:头部大图 + 价格层级 + 状态徽标这类商品/内容展示形态,内置 card 的 label:value 网格表达不了
+- 需要品牌感:自定义配色、圆角、卡片结构(头部三件套、悬浮开关等)
+- 需要字段编排控制:哪些字段大字强调、哪些弱化、哪些组合进徽标,与表格列语义不同
+
+**锁定纯表格的出口**:如果页面明确不需要任何卡片形态(例如纯运维日志类页面),配单条目清单即可,工具栏不会出现视图按钮:
+
+```js
+// 场景出处:本轮 QA 实证(table-card-global-enabled 计划 Task9 场景 2,host 页临时配置验证)
+layoutList: ['table'],
+```
+
+**一个例外提醒**:显式传 `controlled: false` 逃生口的页面(依赖引擎 url 模式行为的深度定制页,如自定义 parseData)整条多形态链路都不可用,配了 `layoutList` 也不会有视图按钮。判断自己是否属于这类页面见 ulthon-admin-table 第十一章 11.1。
+
+## 二、五级协议选型速查
+
+`layoutList` 自定义条目提供五级模板钩子,按优先级取第一个命中的:
+
+| 优先级 | 钩子 | 类型 | 引擎 | 适用场景 |
+|--------|------|------|------|---------|
+| 1 | `tplFunction` | function | 框架行循环 | 纯 JS 拼 HTML,逻辑重、不想引模板引擎 |
+| 2 | `tplLay` | string | laytpl | laytpl 模板字符串,行级作用域 |
+| 3 | `tplVue` | string | Vue 模板字符串 | Vue 模板,列表级单实例 |
+| 4 | `tplLayId` | string | laytpl | `
+```
+
+同文件追加页面级 `