Install
openclaw skills install stuff-skillStuff Skill - 秩。告诉 AI 你想管理什么,它给你生成一个专属 App。
openclaw skills install stuff-skill告诉 AI 你想管理什么,它给你生成一个专属 App,直接能在手机上用。
核心理念:Agent 是设计师,不是模板替换器。
从自然语言描述生成个人数据管理 PWA 应用。Skill 提供设计约束和数据引擎(硬规则、数据层 JS 模式、主题色彩系统),Agent 负责根据场景自由设计 UI 布局、卡片样式、交互细节--让每个应用看起来像它该有的样子,而不是同一个模板换张皮。
两种模式:
index.html 即可使用,数据存手机浏览器里。不需要任何账号、不需要安装任何东西,拿来就能用。云模式不一定非用 Cloudflare。 高级用户可以部署到任何支持静态托管 + 数据库的平台(Vercel + Turso、Netlify + Supabase、自有服务器等),只需自行适配 API 层。Skill 默认用 Cloudflare 是因为它免费额度大、部署最简单。
强势: 个人数据管理全品类 需用户配合: 带图片、复杂计算字段 不做: 多用户系统、>10000 条数据
references/inspiration.md - 场景灵感 + 能力边界(用户不知道做什么时给他看)references/field-inference.md - 字段类型推断规则references/components.md - 主题系统 + UI 组件规范references/deploy-guide.md - Cloudflare 部署全流程references/validation.md - 校验规则 R1-R7种子模板和 references/components.md 都是参考实现,不是强制规范。
Agent 必须读取种子模板来理解数据层的约定,但 UI 层自行设计。
| 文件 | 用途 | Agent 用它做什么 |
|---|---|---|
assets/template-app-local.js | 本地模式数据引擎参考 | 学习 localStorage API 模式、Smart Select 逻辑、导入导出 |
assets/template-app.js | 云模式数据引擎参考 | 学习 API CRUD 模式、离线 fallback |
assets/template-api.js | Workers API 参考 | 学习 D1 绑定方式、CORS |
assets/template-sw.js | Service Worker 参考 | 直接复用(SW 不需要设计) |
assets/template-styles.css | 主题变量参考 | 提取当前主题的 CSS 变量,不复制选择器 |
assets/template-app.html | HTML 结构参考 | 了解必要元素(dialog、FAB、chips),结构自己设计 |
Agent 读取种子模板的方式:
我读完种子模板了。数据层逻辑(localStorage CRUD / API 模式)我会保持兼容,
Smart Select 三件套逻辑我也复用。接下来 UI 完全根据场景来设计。
Agent 自动检测:Node.js / wrangler / Cloudflare 登录。
抓住三件事:管什么、谁在用、怎么用。
用户画像推断: 如果用户描述了使用者特征(年龄、性别、职业、场景),Agent 应据此调整字段选择、主题偏好和设计语言。例如:
如果用户没描述画像,按通用默认走,不追问。
不要追问每个字段。 读 references/field-inference.md,推断一套合理字段,一次确认。
生成字段元数据 JSON(类型、UI 组件、是否可搜索/筛选)。
规则不变:
display: "title" 字段type: "enum" 字段(状态筛选)从预设主题中选一套。如果没有匹配场景气质的,Agent 可以基于最接近的预设主题进行微调(换强调色/字体),但背景/卡片/边框的明暗关系必须保持一致。
| 主题 | 色调 | 字体 | 适合场景 |
|---|---|---|---|
| ☕ Dark Roast | 深色暖调(焦糖褐+蜂蜜金) | Cormorant Garamond | 食品/饮品/收藏/手作 |
| 🧊 Frost | 浅色冷调(冷灰白+沉稳蓝) | Inter Tight | 健康/生活/效率/清爽 |
| 🌙 Obsidian | 深色冷调(蓝灰+薰衣草紫蓝) | JetBrains Mono | 科技/数据/极客/装备 |
| 🔥 Blaze | 深色玫红(暗玫瑰+玫红) | Bebas Neue | 运动/健身/挑战/目标 |
设计纪律(来自 tasteskill anti-slop 框架):
#000000,不用纯白 #ffffff -- off-black/off-white 保持深度--bg < --surface < --surface2 < --surface3 递进不跳跃主题规则:
--accent)、换字体、调整状态色--bg < --surface < --surface2 < --surface3)主题解耦(用户可个性化):
[data-theme="xxx"] 选择器<html> 标签加 data-theme="xxx" 属性指定当前主题background: var(--bg)),不硬编码色值data-theme 的值(如 blaze → frost)[data-theme="xxx"] 块,改个名称和色值即可这是整个工作流最重要的一步。在这里 Agent 是设计师。
Agent 根据场景特征,提出一个设计概念,包含:
a) 布局方案: 根据数据特征选择/发明合适的布局:
| 场景特征 | 候选布局 |
|---|---|
| 时间序列数据(日记、训练、记录) | 时间线、日历视图、日志流 |
| 状态流转(想读→在读→读完) | 看板列、书架网格 |
| 参数对比(咖啡豆、装备) | 卡片列表 + 属性网格 |
| 清单勾选(待办、购物) | 清单 + 复选框 |
| 数据仪表盘(统计、趋势) | 概览面板 + 详情列表 |
不限于以上布局。 Agent 可以混合、可以发明。
b) 卡片设计:
c) 交互细节:
d) 输出格式:
给用户一个清晰的视觉提案:
🎨 设计提案:[场景名]
布局:[时间线 / 网格 / 卡片列表 / 看板 / 自定义混合]
主题:[主题名]
📐 结构:
[ASCII 线框图,展示关键页面的布局结构]
🎴 卡片预览(假数据):
┌──────────────────────┐
│ [具体展示一张卡片的样子] │
│ 包括色条位置、信息排列、标签样式 │
└──────────────────────┘
🎨 配色:
[色块] 背景 #xxx [色块] 卡片 #xxx [色块] 强调 #xxx [色块] 状态色1 2 3
✨ 亮点:
- 这个布局为什么适合这个场景
- 有什么特别的设计决策
这个方案可以吗?还是想换布局/换主题?
一次确认,不反复追问。
如果 Agent 有能力(有 browser/canvas 工具),生成一个真实的 HTML Mockup 让用户看:
如果 Agent 没有渲染能力,用 ASCII 线框图 + 文字描述即可。
⚠️ 关键转变:不复制种子模板的 HTML/CSS,只复用数据层 JS 模式。
所有模式通用:
pwa-<slug>/本地模式: 3 个文件(index.html + styles.css + app.js),所有功能在前端 云模式: 加入 functions/ + schema.sql + manifest.json + sw.js
关于 CSS 变量: 从当前主题提取变量名(--bg, --surface, --text 等),用自己的 CSS 选择器使用它们。不要复制种子模板的 CSS 文件。
与之前相同。关键原则:先给用户看,再问要不要校验,交付时包含数据导入导出说明。
设计自由,功能不自由。以下规则必须遵守,不管 UI 怎么设计:
template-app.js 的 openSmartSelectManager + template-app.html 的 #smartSelectManager dialog + template-styles.css 的 .smart-manage-btn / .smart-manager-* 样式)。<dialog> 模态框。 不用路由跳转,不用侧边栏。bottom: calc(24px + env(safe-area-inset-bottom, 0px))。type="module"。 file:// 协议下有 CORS 问题。好的设计是“这应用就该长这样”。CrossFit 日记不该看起来像图书馆,图书馆不该看起来像咖啡豆仓。
种子模板是乐高积木的说明书,不是乐高成品。Agent 读说明书,搭自己的东西。
以下内容是给用户看的(不是给 Agent)。生成应用后,把这段贴给用户作为部署指引。
不需要任何账号,不需要安装任何软件。
index.html + styles.css + app.js)index.html,就能用了限制: 只能在一个设备上用。手机和电脑的数据不会同步。
想在手机和电脑上都能用、数据实时同步?需要部署到云上。
默认方案:Cloudflare(推荐,免费)
你需要:
npm install -g wranglerwrangler login,在浏览器里授权做完这 4 步,告诉 Agent“我 Cloudflare 配好了”,Agent 会自动帮你部署。部署完你会拿到一个网址,手机打开就能用。
其他平台(高级用户)
如果你熟悉其他平台,也可以部署到:
只需要告诉 Agent 你想用哪个平台,Agent 会适配 API 层。但注意:非 Cloudflare 平台需要你自己有一定技术基础。