让 Agent 做个落地页,出图只要两分钟,麻烦的是你一眼就能看出这是 AI 做的:Inter 字体配紫蓝渐变,每个标题上面永远顶着一行小号大写字母,卡片套卡片,按钮全是圆角药丸,页脚挂着一个根本没接后端的订阅框。
这不是模型不行,是它每次都往同一个「安全答案」上靠。这周 GitHub 上有两个项目在治这个毛病,思路完全不一样:一个负责从零把页面做出来,一个负责给已经做出来的页面挑刺。
hallmark:先问素材,再从 50 套主题里抽
hallmark 是 Together AI 做的设计 skill,MIT,4 月底建库,现在 50,366 星,本周涨了 6,600 多。四个月前我第一次写它的时候还是 11.2K 星、20 个主题,现在 v2 是 50 套。
它跟模板站最大的区别在「主题」的定义:一套主题不是一份排版,是一种材料——纸、字、色、表面质感,加一张成品页的图,一个文件不超过 8KB。它不规定页面里有什么、按什么顺序,所以同一个主题喂两个需求,出来是两个不同的网站。
流程是先问再动手:照片有没有、数字是多少、访客进来要点的那个按钮是哪个。它不编素材,照片从 Wikimedia Commons 的开放授权图库里挑(755 张,页面上署名)。
然后它抽三个主题、自己排版、自己用 sloplint 在真实浏览器里过一遍。抓的东西很具体:每个标题上面都顶一行小字、字距拉开的全大写标签、标题里只有一个词变色、整页全是空框或者全是照片、hero 一屏放不下、每页结尾都塞订阅框、表单点了「谢谢」但其实没发出去。
门禁分三层。Floor 永远不放行,管对比度、焦点、减少动效、编造事实、手机布局崩掉;Reflex 是模型的默认毛病,有理由可以越权,但要留在记录里;Finish 只管工艺细节,不拦上线。最后一票给一个全新上下文的 reviewer。
安装一行:npx skills add nutlope/hallmark -g,不要 API key。它官网那个对比示例是同一个 prompt 跑两次,左边 26 个问题,右边 0 个——分数来自它自家 linter,当参考,别当判决。
impeccable:给已有页面一套词表和 62 条规则
impeccable 是另一条路。作者 Paul Bakaus,Apache-2.0,105,645 星,今天上午刚发 cli-v4.8.1,npm 上周下载 32 万。它不负责从零画,负责给已有的页面一套「设计词表」和一台检测机。
装完 npx impeccable install,/impeccable init 会在项目里写一个 PRODUCT.md,把你的受众、目标、约束落成文件,后面每次改都读它。
命令全是动词:polish、bolder、critique、audit。你不用再说「让它好看点」这种废话,你指定目标——「bolder the pricing cards」,它就只动这一块。critique 按可用性启发式打分并排优先级,audit 查无障碍、性能、主题、响应式,P0 到 P3 分级。
真正硬的是那 62 条确定性规则:扫 HTML、CSS、JSX、TSX、Vue、Svelte,纯本地跑,不走 LLM,不要 key,编码的时候当 hook 跟着改,也能在命令行或者 CI 里单独扫。它认的就是那几条 AI 味:Inter、紫蓝渐变、卡片套卡片、彩底灰字、标题上面一块圆角图标。
官方名单里从 Claude Code、Cursor、Copilot、Codex 一直排到 Hermes Agent 和 DeepSeek Harness,仓库里连 .hermes、.dsh 这些目录都有。
实话
第一,这俩不是竞品。hallmark 管从零出一页,impeccable 管已有页面的体检和精修;后者能进 CI,前者更像一次性交付。
第二,它们卖的都是减法。50 套主题是限制你的选择,62 条规则是给你一张禁止清单。它们不给你品味,只把你从模型的默认答案里拽出来——剩下的还得你自己知道要什么。
第三,星数别当质量。hallmark 从 11.2K 到 50K 用了四个月,最近两周才陡起来;impeccable 那 10.5 万星主要是「技能」的星,真正干活的 detector 是一个 Rust 二进制。两个项目的对比图都是自家规则打的分,不是第三方评测。
第四,对中文站和 WordPress 主题基本没直接帮助。它们产出的是自己的 HTML/CSS,套不进现成主题,能借的是那套规则清单和「先问素材再动手」的顺序。
第五,会误报。62 条规则和 sloplint 都是模式匹配,深色站、极简风、故意做旧的排版都容易被判。0 fail 只说明没踩到那几条坑,不说明好看。
要从零做一个落地页、做完立刻能发,走 hallmark,一行安装一句 prompt;手里已经有站,想先知道烂在哪,走 impeccable,先拿一个组件跑 critique,觉得值再装 hook。两个都装也不打架,反正都是往 skills 目录里丢文件。
上次写 EGM 时说过一句:Agent 缺的从来不是生成能力,是有人先定方向。这两个项目干的是同一件事——把「方向」写成 Agent 能执行的约束。