mcpField
A
apply-tweaks

apply-tweaks

github.com/bluzir设计与 UI10746 次安装27 周前更新
代码仓库

关于 apply-tweaks

这项技能将 YAML 状态文件中排队的设计调整写回源 HTML,适用于由 Claude 编辑文件的工作流。它会按页面的调整架构验证值、记录已应用的更改、清空队列,并提供回退流程。

主要功能

  1. 01读取调整会话和待处理状态
  2. 02按架构验证键和值
  3. 03将更改写入 HTML 标记或 CSS 变量
  4. 04记录更改并清空待处理项
  5. 05支持回退最近一次更改

适用场景

  1. 01将排队的视觉调整应用到 HTML 页面
  2. 02编辑前拒绝无效的调整值
  3. 03保留设计更改记录
  4. 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/),查找最近的匹配前缀。

流程

  1. 读取会话状态:

    Read artifacts/tweaks/<session-id>/state.yaml
    Read artifacts/tweaks/<session-id>/pending.yaml
    

    如果 pending.yaml 缺失或为空,则报告“没有待处理的调整”并停止。

  2. 读取 HTML + 架构:

    • Read 目标 HTML(路径来自 state.yaml 或 $0)
    • 提取 __tweak_schema 区块(位于 <script id="__tweak_schema"> 中的 JSON)
  3. 验证每个待处理的键:

    • pending.yaml 中的每个键都必须存在于架构中
    • 值类型必须与架构匹配(颜色 = 十六进制,数字 = 在 [min..max] 范围内,布尔值)
    • 如果有任何键无效:报告具体键并停止(不要部分应用)
  4. 应用: 对 pending 中的每个键 → 值:

    • 首选模式 — :root 上的 CSS 变量: 查找 --tweak-<key>: <old>; 并使用 Edit 替换为新值
    • 备选模式 — 标记区块: 查找 ... 并使用 Edit 编辑其中的内容
    • 如果两种标记都未找到 → 明确报错(HTML 未使用 /make-tweakable 模式)
  5. 通过 Edit 原子写入: 在 Claude Code 中,每次 Edit 都已是原子操作,因此无需临时文件重命名的流程。

  6. 追加到日志:

    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>
    
  7. 清空 pending: 使用空内容(或 {})Write artifacts/tweaks/<session-id>/pending.yaml

  8. 更新状态:

    Edit artifacts/tweaks/<session-id>/state.yaml:
      phase: idle → idle (no-op but bump timestamp)
      last_applied_at: <ts>
    
  9. 验证: /done <html-path> — 确认文件仍可渲染,且预览中显示了新值。

  10. 报告: “已应用 N 项调整。已记录到 artifacts/tweaks/<session-id>/applied/<ts>.yaml。待处理项已清空。”

撤销流程

如果用户说“撤销上次的调整”:

  1. Bash(ls -t artifacts/tweaks/<session-id>/applied/) — 获取最近的条目
  2. Read 该文件 — 获取差异
  3. 反向应用每项变更(在 HTML 中查找当前值并恢复先前的值)
  4. 追加一条新的已应用记录,包含 type: revert,并引用被撤销的文件
  5. /done

评论

支持 Markdown