关于 apply-tweaks
这项技能将 YAML 状态文件中排队的设计调整写回源 HTML,适用于由 Claude 编辑文件的工作流。它会按页面的调整架构验证值、记录已应用的更改、清空队列,并提供回退流程。
主要功能
- 01读取调整会话和待处理状态
- 02按架构验证键和值
- 03将更改写入 HTML 标记或 CSS 变量
- 04记录更改并清空待处理项
- 05支持回退最近一次更改
适用场景
- 01将排队的视觉调整应用到 HTML 页面
- 02编辑前拒绝无效的调整值
- 03保留设计更改记录
- 04回退最近应用的调整
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bluzir/ claude-code-design --skill apply-tweaks安装后在 Claude Code 中输入/apply-tweaks确认已加载。
详细介绍
应用调整
通过 Edit 将排队等待的调整变更(在 pending.yaml 中)写回源 HTML。模式借鉴自 claude-pipe:文件是状态,Claude 是写入者。
会话查找
<html-path> 对应的 session-id = tweaks-{slugify(basename html-path without ext)}-{today YYYYMMDD}。
会话目录:artifacts/tweaks/<session-id>/。
如果跳过日期匹配(例如从昨天的会话继续),使用 Bash(ls artifacts/tweaks/),查找最近的匹配前缀。
流程
-
读取会话状态:
Read artifacts/tweaks/<session-id>/state.yaml Read artifacts/tweaks/<session-id>/pending.yaml如果
pending.yaml缺失或为空,则报告“没有待处理的调整”并停止。 -
读取 HTML + 架构:
Read目标 HTML(路径来自 state.yaml 或$0)- 提取
__tweak_schema区块(位于<script id="__tweak_schema">中的 JSON)
-
验证每个待处理的键:
pending.yaml中的每个键都必须存在于架构中- 值类型必须与架构匹配(颜色 = 十六进制,数字 = 在 [min..max] 范围内,布尔值)
- 如果有任何键无效:报告具体键并停止(不要部分应用)
-
应用: 对 pending 中的每个键 → 值:
- 首选模式 —
:root上的 CSS 变量: 查找--tweak-<key>: <old>;并使用Edit替换为新值 - 备选模式 — 标记区块: 查找
...并使用Edit编辑其中的内容 - 如果两种标记都未找到 → 明确报错(HTML 未使用
/make-tweakable模式)
- 首选模式 —
-
通过 Edit 原子写入: 在 Claude Code 中,每次
Edit都已是原子操作,因此无需临时文件重命名的流程。 -
追加到日志:
ts=$(date -u +%Y%m%dT%H%M%SZ) Write artifacts/tweaks/<session-id>/applied/$ts.yaml: applied_at: $ts changes: <copy of pending.yaml> -
清空 pending: 使用空内容(或
{})Write artifacts/tweaks/<session-id>/pending.yaml -
更新状态:
Edit artifacts/tweaks/<session-id>/state.yaml: phase: idle → idle (no-op but bump timestamp) last_applied_at: <ts> -
验证:
/done <html-path>— 确认文件仍可渲染,且预览中显示了新值。 -
报告: “已应用 N 项调整。已记录到
artifacts/tweaks/<session-id>/applied/<ts>.yaml。待处理项已清空。”
撤销流程
如果用户说“撤销上次的调整”:
Bash(ls -t artifacts/tweaks/<session-id>/applied/)— 获取最近的条目Read该文件 — 获取差异- 反向应用每项变更(在 HTML 中查找当前值并恢复先前的值)
- 追加一条新的已应用记录,包含
type: revert,并引用被撤销的文件 /done