Hallmark:一半篇幅在教 AI 不许做什么

想让 AI 把页面做得像有人设计过,直觉是给它更多资料、更好的提示词、更多示例。Hallmark 反过来做。它最厚的文件是一份写着 88 条编号规则的清单,其中 39 条一条都不许破,26 条只记录不拦路,剩下的部分才谈美。

项目 2026 年 4 月 27 日建仓,MIT 协议,出自 Together AI 的人,README 第一行写着给 Claude Code、Codex、Cursor、OpenCode 用。截至 2026 年 11 月 1 日,43,678 Stars、2,291 Forks,10 月 27 日单日涨 2,372 星,挤进当天 GitHub 日榜第二。

Hallmark:一半篇幅在教 AI 不许做什么

它的形态和多数 skill 不一样。没有组件库,没有模板包,没有运行时依赖。skill 本体 154 行,围着它摊开的是 151 个参考文件、50 套主题、21 种页面骨架、一个 231KB 的单文件 linter、一个 755 张图的照片库,还有一整套把评测写进仓库的脚本。154 行对 151 个参考文件,这个比例本身就是设计宣言。

我读它的时候一直在想一件事:这么多规则,模型真的会读吗?后来在 Issue 区翻到一份第三方做的对照实验,编号 #74,答案比我想的难看,也比我想的有意思。

它到底禁掉了什么,那份实验又测出了什么?答案指向相反的方向,所以得分开说。接下来先把规则的形状摆出来。

它到底禁掉了什么

三层门禁是理解 Hallmark 的唯一入口。Floor 层 39 条,管正确性、可访问性、诚实和几条房规,一条都不许破。Reflex 层 48 条,是模型最爱掉进去的默认值,带理由可以在 CSS 注释里豁免。Finish 层 26 条,编号 F1 到 F26,只管手艺细节,报告,不拦路。

Floor 里最有意思的几条不是技术问题,是品味问题。不许在标题上方放一行小字当引子,不许把标签设成全大写加字距,不许用中点把 A、B、C 串成元信息,不许在标题里把某一个词单独染色,不许紫到蓝的渐变,不许卡片套卡片,不许拿 emoji 当图标。这几样恰好是大模型最稳定的输出习惯。

让任何模型生成落地页,它几乎必然给你 eyebrow、渐变按钮、三列图标卡、结尾邮件订阅。Hallmark 的解法是先把这些默认值在静态检查层面物理禁掉,然后才谈设计。规则表里每条都写了识别什么、怎么修,不是一句价值观。

第二层是主题系统。50 套主题,每套是一个材料而不是一个模板:纸、字体、颜色、表面、它自己的组件和纹理,旁边配一张成品页面截图。单个文件不超过 8KB,一次构建只读一个。theme.mjs 的 deal 按 prompt 抽三个候选,draw 按业务类型抽页面骨架,包括怎么开场、导航长什么样、行动按钮放哪、这次不用哪两种构图。

所以同一句 prompt、同一个主题,跑两次会得到两个不同页面。这不是运气,是 draw 带日志去重后的硬要求。主题只管材料,页面结构由业务动作决定,卖货的页面用卖货的结构,订阅的页面用订阅的结构。

这些环节不是散着跑的。SKILL.md 把它压成七步:读项目、问一次、定形、定方向、加载参考、出 Picks 块、构建并清扫。下面这张图是我按流程和门禁分层重画的,能看出外部输入只有三样。

Hallmark:一半篇幅在教 AI 不许做什么

图里最关键的一处是第 7 步。清扫完成后,两个 fresh context 的 reviewer 接手,先审首屏再审整页,写页面的那条线程没有发言权。SKILL.md 给的理由只有一句:建这个页面的线程,是最差的审稿人。

第三层是 sloplint,231KB 单文件、零依赖,直接读 HTML、CSS、框架组件和 Tailwind 类名。加 –render 之后它真的开浏览器,在八个宽度上量:首屏在 1280×800 装不装得下标题、一句话和主按钮,对比度按文字背后的像素算,焦点环靠按 Tab 找,还查分区节奏、照片占页比例、文字被别的元素压住、手机版丢掉的内容。这套东西真正的贡献是把审美降级成可判定的几何。

还有一件事我在别的设计 skill 里没见过:评测被写进仓库。eval 目录有 8 个 brief、两档 harness、一个六轴视觉裁判、六条验收标准,其中 b4 专门诱惑模型编造指标,这一格过不过判定得很硬。

装上去,然后被它问四个问题

装它只要一条命令,Node 18 以上。浏览器档的检查(sloplint –render 和截图)额外要 puppeteer-core 和 Chrome,没装也能跑静态档。

npx skills add nutlope/hallmark -g

-g 是装到全局,去掉就装进当前项目。只装一个 harness 就加 –agent 参数,或者走 Claude Code 的插件市场:

npx skills add nutlope/hallmark -g --agent claude-code
/plugin marketplace add nutlope/hallmark
/plugin install hallmark@hallmark

装完落地位置各不相同。Claude Code 落在 ~/.claude/skills/hallmark,Codex CLI 落在 ~/.agents/skills/hallmark,Cursor 和 OpenCode 会去这两处找现成的副本。想单独 lint 某个页面,跳过整个流程直接调脚本也行:

node skills/hallmark/scripts/sloplint.mjs ./index.html --render

跑起来之后第一件事不是生成,是它问你四个问题:素材(截图、真实数字、真实引语)、受众、页面要驱动的唯一动作、语气。语气必须挑一个极端,干净现代不算语气。全部跳过也可以,回一句 go ahead,它会自己推断,并在顶部声明推断了什么。这个环节踩坑最多。

  • Issue #76 记的是 npx skills add 只复制 skills/hallmark 目录,SKILL.md 里那几个 ../../ 外链装完就指向虚空,agent 打不开它被告知要去查的 tokens.css。这个 issue 到 10 月 27 日还有讨论,仍然开着。
  • 当前版本的 SKILL.md 里那些 ../../ 已经不见了,改成 skill 内部自引用,说明结构重构顺手治好了它,但 issue 没人关,维护者没收尾。

装得上、跑得通,不代表它适合所有人。这套流程在什么场景下划算,在什么场景下反而是累赘?

什么时候该用,什么时候别指望

场景 典型用户 优势 局限
落地页、营销页、活动页的第一次成型 独立开发者、小团队 结构不撞车,视觉不掉档,交付即自包含 HTML 要有素材,没图就跑不出真正的效果
已有页面重做系统与版式 前端、设计工程师 redesign 保留全部链接与表单,丢一个就自己判失败 必须点名调用,静默不会触发
给 AI 产物做体检 用 agent 出活的团队 88 条规则可静态检查,能进 CI 只查 tell,不查信息架构对不对
品牌站、编辑型长文页 内容团队 21 种骨架 + 50 套材料,编辑型题材覆盖最厚 品牌真值要自己喂,它拒绝凭记忆编

先说清楚它的边界:这是一个约束 skill,不是组件库。它不产出可复用的按钮、卡片、导航,产出是一份自包含的 HTML 加 CSS,第一行注释里盖着一份决策记录。想要组件资产,它帮不上忙。

它的定位也和同类不太一样。下面这张卡片把三个最常被放在一起比的项目拉到一张表上,数据都取到 2026 年 11 月 1 日。

Hallmark:一半篇幅在教 AI 不许做什么

从表里能读出 Hallmark 的取舍:它的检查最重(静态加渲染两档,还要两次冷审),主题最具体(50 套材料各配成品图),代价是流程最重、最依赖素材。Impeccable 用动词驱动,polish、bolder、critique 一条一条下指令,轻。Taste Skill 把品味做成常驻规则集,覆盖面最广。三者不是替代关系,是三种不同力度的干预。

不适用的情况也得说清楚。你只是想让 agent 顺手把按钮改圆一点,用 Impeccable 的动词更快,走 Hallmark 会先被问四个问题。你要的是设计稿级别的像素还原,任何 skill 都替代不了人对着稿子调。你连一句文案、一张截图都没有,那再好的门禁也只能给你一个没内容的空壳。说完用法,得看是谁在维护它。

一个人写了 292 次提交

指标 数据 说明
Stars 43,678 截至 2026-11-01,10 月 27 日单日 +2,372
Forks 2,291 Fork 与 Star 比 5.2%,属正常区间
核心维护者 7 人,其中 1 人 292 次提交 Bus Factor 高风险
Open Issues 66 对比 10 月底仍在合并外部 PR
协议 MIT 商业友好,可闭源衍生
发布 无 GitHub Release 版本号写在 SKILL.md 的 frontmatter

贡献者名单是这样的:Luffixos 292 次提交,作者本人 Nutlope 12 次,其余五人各 1 到 2 次。这个分布意味着项目的设计判断几乎全部来自一个人,而那 292 次提交里相当一部分是 site 目录和主题页的迭代。Bus factor 等于一,这是它最大的结构性风险,不是 Stars。

社区声音我挑两条能验证的。#74 的实验者写得很克制:“看起来是 SKILL.md 说了什么就被执行,藏在参考文件里的就没被执行。” #62 则是一份逐行照做后整理出的文档矛盾清单,作者说三步之内就撞上三套互相冲突的导航默认值。

趋势上它在往上走。10 月 27 日那波日榜流量之后没有回落,最后一行代码停在 10 月 29 日,v2 的五十套主题是同月铺完的。但要盯的不是星星,是那 66 个 open issue 的消化速度。

那份第三方实验,把话说得比 README 硬

说它的效果之前,得先看一份不是官方做的数据。Issue #74 是一次消融实验:同样四个 brief(开发者工具、面包店、设计工作室、一日会议),一组装 skill,一组不装,100 次生成,用确定性规则打分,不用 LLM 当裁判。

Hallmark:一半篇幅在教 AI 不许做什么

图里两条数据的方向完全相反。纯黑纯白的页面占比从 100% 掉到 50%,区间不重叠,这条是真效果。transition: all 的占比却从 35% 涨到 57%,方向反了,而且用的恰恰是 Hallmark 自己的时长与缓动 token。同一份规则,怎么会一边奏效一边反噬?

我对这份实验的评价是:它比官方 README 可信,因为它把自己不利的结论也写进去了。但它只测了一个模型(claude-haiku-4-5),样本 40 对 28,大模型上的表现可能不一样,作者自己也标了这条 caveat。

机制解释比数字更有用。实验者统计了参考文件的打开次数:macrostructures.md 被读过 3 次,anti-patterns 和 slop-test 一次都没被请求过。而 14 条检测项里有 12 条只定义在那两份文件里。这解释得通为什么颜色规则生效了(SKILL.md 自己讲了 token 系统),transition: all 反而恶化(它只活在参考文件里)。

第二条坑更硬:40 次带 skill 的尝试里有 12 次没产出任何页面,全部卡在问四个问题那一步。brief 里明明写了受众和用途,门禁还是问了。交互场景里这是一次多余的回合,在 claude -p、CI、批量跑的地方,这就是终点。30% 的产出是这么丢的。

第三条是触发问题。同样的四个任务,只用描述性 prompt(“读 brief.md,把里面描述的落地页做出来”),12 次里 skill 激活 0 次;点名 hallmark,40 次全中。SKILL.md 自己也认了这点,末尾写着如果它没自动触发,就点名。

所以我的判断是:这东西的价值不在 50 套主题,主题是糖。价值在那 39 条永不豁免的规则和一个能进 CI 的 linter,那才是别人抄不走也绕不过的部分。

更值得说的是它的方向。过去一年做设计 skill 的人都在拼“给模型更多灵感”,Hallmark 赌的是“给模型更少自由”。从纯黑白那条数据看,这个赌注成立了一半,另一半败在模型根本不去读参考文件。

先把它当 linter 用

如果你手上有素材、也要做一个新页面,从 /hallmark 加一句 prompt 开始,别先挑主题,让 deal 去抽,抽完你再看那三张成品图选材料。

如果你只是想治住 agent 那股默认味,别指望它整页接管。把 sloplint 单独接进流程,或者干脆把 gates.md 里那 39 条 Floor 抄进你自己的规范,成本低得多,收益也稳定得多。

要观望的话,盯两个数:66 个 open issue 多久消化完,以及那个 292 次提交的账号如果停手,还有没有人能接住 50 套主题的维护。这两个数决定它是个人作品还是能长期依赖的基础设施。

资源地址

资源 地址
GitHub https://github.com/Nutlope/hallmark
官网与五十套主题 https://www.usehallmark.com
规则全集 https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/gates.md
技能入口 https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md
评测工具 https://github.com/Nutlope/hallmark/tree/main/eval

 

活动讲座

100+场深度演讲,AI正在走向“实时化”:下一代AI产品拼什么?

2026-9-14 20:14:17

AI情报

测评Happycapy:一个把 OpenClaw 和 Claude Code 装在了一起的工具

2026-3-13 21:47:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧