2026/10/25 16:11:25

技能包成了新的分发单位:这半年生态变了什么

技能包成了新的分发单位:这半年生态变了什么 技能包成了新的分发单位这半年生态变了什么【免费下载链接】hallmarkAnti-AI-slop design skill for Claude Code, Cursor, and Codex.项目地址: https://gitcode.com/GitHub_Trending/hal/hallmark半年前把一套设计规范交给 AI 编程助手动作是复制一段提示词现在动作是npx skills add nutlope/hallmark -g然后它在~/.claude/skills/hallmark落下一个 5.8 MB 的目录。同一件事的交付形态变了从一段可以随时被截断、被摘要、被遗忘的文本变成了一个有入口文件、有引用树、有脚本、有校验、有版本号的软件制品。这篇文章不打算复述某个项目有多好用。它要回答三个更硬的问题技能包作为分发单位形态具体变成了什么样可查的源码证据供给侧出现了哪几种打法可查的舆情数据以及为什么能装之后能比仍然没解决仓库自带的评测数据。Hallmark 是一个合适的样本它是 Together AI 出品的反 AI 味设计技能掘金 2026 年 7 月的盘点里给到 1.3 万星更关键的是它把分发这件事的每一层都摊在了仓库里——安装器、主题索引、评测集、插件清单一个不缺。一、三段形态从片段、规范到可安装单元如果按交付物是什么来切这半年至少能看清三段。第一段是片段。一段 system prompt一个.cursorrules一份粘贴进对话的清单。它的版本等于聊天记录它的校验等于人的肉眼。第二段是规范文档。单一入口 分层引用标志物是SKILL.md。Hallmark 的入口文件只有 18,239 字节skills/hallmark/SKILL.md的 frontmatter 已经把这是一个什么单位写清楚了name: hallmark description: Design skill for websites and new pages that look designed, not generated... argument-hint: prompt | redesign path | audit path version: 2.0.0 metadata: opencode/slash: trueargument-hint这一行值得多看一眼技能不再只是给模型看的说明书它同时声明了人类怎么调用它——/hallmark redesign path。规范文档开始有了 CLI 的形状。真正让规范变成系统的是加载纪律。SKILL.md 的第 4 步写的是 Exactly these就这些文件并列出了layout.md、anatomy.md、imagery.md、craft.md、genre 文件、主题文件、gates.md§1–§421 种页面骨架则要求 load only the file you pick只加载你选中的那一个。配套的目录也确实按这个粒度切开了skills/hallmark/references/macrostructures/下 21 个文件合计只有 32.6 KB单个约 1.3 KB。这是上下文分页把一份巨大的规范拆成可寻址的页让模型按需读取而不是一次性灌进去。二手文章里常说的69 项 slop test在仓库里对应的是skills/hallmark/references/gates.md——39 KB带编号的条目 88 条分档为 M静态44 条、M/R静态 渲染14 条、R仅渲染11 条、J人工判定9 条、M/J 6 条、R/J 4 条。一个技能包的门禁数量已经比很多前端项目的 lint 规则还多。第三段是可安装单元。这一步的标志不是文档写得多好而是仓库里出现了包的自我描述。package.json里除了常规字段多了一段files: [skills], skill: { entry: skills/hallmark/SKILL.md, references: skills/hallmark/references, harnesses: [claude-code, codex, cursor, opencode] }files白名单只放skills/意味着eval/、site/、docs/都不进包skill.entry声明入口skill.harnesses声明兼容面。再加上.claude-plugin/marketplace.json这份插件市场清单同一个技能同时有两条分发通道一条走npx skills add一条走 Claude Code 的/plugin marketplace add。形态变化的代价是体积。执行du -sh的结果很直白部分体积内容skills/hallmark/references5.8 MB其中themes/5.4 MB48 张主题图占 5.0 MBskills/hallmark/scripts1.1 MBsloplint.mjs单文件 231 KBsloplint-render.mjs99 KBSKILL.md18 KB入口与流程规则很便宜材料很贵。88 条门禁的全文 39 KB48 套主题的材料库 5.4 MB。这个比例说明厂商级技能包的护城河不在措辞而在待选集合——48 种纸、字、色、面的组合以及 755 张可用照片skills/hallmark/scripts/photos.json452 KB 元数据无图片文件。二、安装器已经在偷偷做包管理的事第三段形态最容易被忽略的一点当交付物是一个目录安装就不再是cp -r。skills/hallmark/scripts/install.mjs里有三段代码值得逐行看。第一段是载荷声明——它定义了一个技能包到底包含什么const PAYLOAD [SKILL.md, LICENSE, references, scripts, agents];第二段是目标探测——它把装在哪儿这个各 harness 各行其是的混乱收敛成一张表const TARGETS { claude: { dir: path.join(HOME, .claude, skills, hallmark) }, codex: { dir: path.join(HOME, .agents, skills, hallmark), detect: () [.codex, .agents, .cursor].some(...), legacy: path.join(HOME, .codex, skills, hallmark) }, opencode: { dir: path.join(HOME, .config, opencode, skills, hallmark) }, };注意legacy字段旧版本装在~/.codex/skills/hallmark新版本装在~/.agents/skills/hallmark安装器会主动提示Codex 可能把 Hallmark 列两次并给出清理命令。这是包管理的经典问题——路径迁移与重复安装——只不过发生在技能生态里。第三段是安装门禁。装之前先跑两个检查任何一项不干净就拒绝安装const clean gate(refcheck, [..., refcheck.mjs, --errors]) gate(theme validate, [..., theme.mjs, validate, ...themeFiles]); if (!clean !has(--force)) { /* 什么都不装 */ }再往外一层是写入策略先拷到dir .tmp-install成功后renameSync覆盖符号链接一律不跟随never follow a link out of the skill into the install。这两条合起来就是一个最小可用的原子安装语义。把这四件事列出来——载荷清单、目标探测、安装前校验、原子写入——你会发现它已经构成了一个包管理器 70% 的骨架。缺的那 30% 是版本求解、依赖声明、锁文件。而这 30% 恰好是当下技能生态最大的空洞。仓库里有个细节能佐证站点上已发布的主题页CSS 首行的 stamp 记录的是v2.8.042 处与v2.7.015 处而package.json与 SKILL.md 的version仍然是2.0.0。产物自己在记版本分发元数据没跟上。这不是某个项目的疏忽而是整个品类还没建立起技能版本与技能产物版本的对应关系。三、供给方个人、方法论、厂商三种完全不同的成本结构掘金 7 月那篇盘点的数据足够说明供给侧的密度7 月 11 日obra/superpowers、mattpocock/skills、addyosmani/agent-skills三个仓库单日合计涨星接近 50 万mattpocock/skills16.5 万星、1.5 万 forksuperpowers25.7 万星、23000 forkaddyosmani/agent-skills7.7 万星。同一篇文章把 hallmark1.3 万星和 caveman9.1 万星归为省钱二人组。数字背后的三种打法成本结构完全不同。个人型把私人目录掏出来。Matt Pocock 的 21 个技能定位是小而可组合装法是npx skills add mattpocock/skills。这类供给的边际成本接近零质量上限取决于作者本人的手感没有资产、没有评测、也没有兼容性承诺。方法论型卖流程不卖单点。superpowers的 Spec → Plan → Implement → Review → Ship 五段式配上 23000 fork说明它的真实用途是被团队拿去改成自己的内部标准。它分发的是组织流程所以 fork 数比 star 数更能说明问题。厂商型带资产、带评测、带发布通道。Hallmark 的 README 第一屏就写着 Made by Together AI.仓库里同时有三样个人项目几乎不会有的东西site/48 个可点开的主题页 21 个成品案例、eval/8 个 brief 的评测集、.claude-plugin/插件市场清单。厂商进入带来的最直接变化是许可与素材开始被当成工程问题处理。photos.json的头部写得很清楚全部来自 Wikimedia Commons许可限于 CC0、公有领域、CC BY、CC BY-SA并明确排除 Unsplash、Pexels、Pixabay——理由不是画质而是whose terms bar AI tools from picking their images这些站点的条款禁止 AI 工具挑选其图片。仓库里的实际分布也确实只有这几类CC0、Public domain、CC BY 2.0/3.0/4.0、CC BY-SA 1.0–4.0。这是技能包和提示词片段最不像的地方提示词没有合规负担技能包有。一旦技能会替用户选图、选字体、生成页面并附带署名它就必须处理素材的来源、许可和归属。四、能装但不能比评价体系的三个断点安装是一行命令比较却没有一行命令。这是当下最真实的体验落差。需求侧的证据很集中。302.AI 在短时间内连续产出了多篇实测Taste Skill、15K Star 的 Huashu Design Skill、GZH-Design-Skill、Guizang Social Card Skill、Lieflat Charts Skill、Kami Skill、以及 Superpowers 任务板。这些文章的体裁高度一致——实测 能力拆解 适用场景本质上是在替代一个不存在的评测榜单。另一侧CSDN 上同一个 Hallmark 被切成了十几篇完全指南audit一篇、study一篇、21 种 macrostructure 一篇、输出预览块一篇、.hallmark/log.json一篇。阅读量在 187 到 1182 之间收藏 3 到 23。信息供给非常充分可比性却接近于零。断点有三个而且都能在仓库里找到证据。断点一口径不统一。README 写 checks the page … against the tells二手文章写60 项 slop test另一批写69 项 AI 味检测规则而gates.md里带编号的条目实际是 88 条。三个数字三种口径。当检测项数量成为宣传语它就不再是质量指标。断点二评测不随包发布。eval/目录做得相当认真8 个 brief含一个专门诱发编造指标的 b4、一个纯组件路由的 b5、一个视觉能力探测的 b6、6 条验收标准、六轴视觉评审Philosophy / Hierarchy / Execution / Specificity / Restraint / Variety各 1–5 分、以及rotation compliance——同一 arm 的 b1–b5 的 stamp 不允许重复同一个 macrostructure。但eval/README.md第一段就承认Not shipped with the skill: thepackage.jsonfileswhitelist only includesskills/, so nothing ineval/reaches the published package.评测是仓库私有的用户装到的包里没有它。断点三触发率不被测。同一份文档里还有一句更关键的注记skills do not auto-trigger inclaude -p, so we invoke by name; this is a CONFORMANCE harness, not an auto-trigger test.README 也留了同样的后门If it does not fire on its own, name it。也就是说装了和用上了之间还有一道没人量化的概率。技能生态目前所有的评测量的是按名字调用之后能不能做对而不是该触发的时候有没有触发。这三个断点合起来解释了为什么选择困难安装成本被压到一行命令比较成本仍然是几篇长文加一次自己试。五、仓库自己给出的最有价值的一组数字抛开宣传口径eval/README.md里 2026-07-23 那一轮的结果是整个技能生态里少见的、可复现的横向数据。测试设计是同一份技能文本两种打包方式--pack floor只把 SKILL.md 的 Floor 与 Flow 段落编进 system prompt--pack full则包含完整 SKILL.md 加references/craft.md和gates.md的门禁表。然后跑 6 个 brief用sloplint.mjs数 FAIL。结果模型full packfloor-onlyClaude0 FAIL—Kimi K2.7-Code0 FAIL6 个 brief30 FAILGLM11 FAIL一轮修复后清零96 FAIL每个 cell 都不干净原文的结论是The full pack is load-bearing on open models.… The floor block alone is a safety net, not a substitute; ship the whole skill to open models.这组数字说明两件事。第一技能的价值不在规则有没有写下来而在引用树有没有被读到。同样是那 88 条门禁只把 Floor 塞进上下文GLM 直接掉到 96 个 FAIL给全量引用掉到 11 个且一轮修复就能清零。分页加载不是省钱技巧它是能力开关。其次质量在这个品类里是分布性质不是单点性质。验收标准第 5 条要求 rotation compliance同一 arm 在 b1–b5 上的 stamp 不许重复同一个 macrostructure。这对应到实现就是theme.mjs里的滑动窗口const log readLog(flag(log, .hallmark/log.json)); const recent log.slice(0, 3); const recentNames new Set(recent.map((r) String(r.theme || ).toLowerCase())); const blocked recentNames.has(t.name.toLowerCase()) || (lastAxes lastAxes triple(t));写入端则把它截断在 20 条const next [entry, ...readLog(file)].slice(0, 20);于是连续生成十个页面不重样这件事从一句主观评价变成了一个可断言的约束最近 3 次用过的主题被屏蔽最近 3 次用过的轴线组合被屏蔽最近 5 次用过的照片被排除theme.mjs的 photos 分支历史窗口 20 条。传统包评测算能不能跑通技能评测算连续跑 N 次会不会收敛到同一个答案。这是评价维度的一次真实迁移也是为什么二手文章里最常被拆解的不是 gates而是.hallmark/log.json。六、下一步的中间层更像 npm CI而不是 App Store把上面所有证据摊开能对中间层长什么样做几个有据可依的判断。它们不是预测是可以被验证或证伪的判据。判据一先出现的是版本与校验不是商店。依据是install.mjs已经实现了载荷、探测、校验、原子写入四件事缺的只有版本求解和锁。版本这一环甚至已经有内部压力——站点产物的 stamp 写着v2.8.0包元数据还停在2.0.0。任何一个技能只要被两个以上项目依赖这个问题就会立刻变成阻塞。判据二锁文件会先于市场出现。现在最接近锁的是.hallmark/log.json但它是技能行为的项目记忆防重复不是依赖的版本快照。两者结构相似、目的不同。真正需要的是这个项目用哪个版本的技能、读哪套主题、跑哪版 linter——因为sloplint的判定会随版本变化今天 0 FAIL 的页面换一版 linter 可能变红。判据三信任模型会成为分水岭。技能一旦越出纯文本边界就开始持有权限。Hallmark 的install-hook.mjs往~/.claude/settings.json的PostToolUse里塞一条Write|Edit|MultiEdit钩子命令是node lint-hook.mjs超时 10 秒lint-hook.mjs自身只处理.html/.css与.jsx/.tsx/.vue/.svelte/.astro且只对带/* Hallmark标记或位于含.hallmark目录的项目生效advises and never blocks。这套设计相当克制但它清楚地展示了未来市场的核心问题不是好不好用而是**它在我机器上能做什么**。references/flow.md的 harness 对照表把这件事摊得更明白Claude Code 有子代理、有编辑时钩子、有浏览器预览Codex CLI 默认断网imagegen.mjs需要显式请求与批准OpenCode 的 bash 权限分 allow / ask / deny且明确要求永远不要替用户改权限配置。同一份技能在三种运行时下的权限面完全不同。任何中间层如果只分发文件不分发权限声明就无法解决这个问题。判据四评测会从仓库私有变成注册表 CI。eval/证明了一件事可复现的技能评测是做得出来的——8 个 brief、6 条验收线、六轴评审、rotation 断言、修复轮次。它现在不进包也不测触发率。下一步合理的形态不是技能商店给个五星而是提交时跑固定 brief 集产出 FAIL 数、轮换合规、成本三项。ROADMAP 的 Now 里还列着两条未完成项恰好就是这套 CI 的前置条件三个 harness 上的 conformanceClaude Code、codex exec、OpenCode 非交互模式跑同一 brief都要 0 FAIL以及Measure a build——同一 brief 下一次页面构建的时间与 token 成本。至于技能市场短期内更可能长成npm CI 一点点商店的混合体而不是 App Store。理由很朴素技能包的价值密度集中在材料库 门禁 引用树这三样可被程序检查的东西上而商店的核心是人工策展与评分。前者已经能被refcheck、theme validate、sloplint自动验证后者还没有任何可信的量化口径——毕竟连有多少条检测规则这件事三个来源就能给出三个数字。结语分发单位变了评价单位还没变这半年真正变化的不是模型变强了而是经验被封装成了可分发的目录。SKILL.md是入口references/是分页scripts/是可执行的部分tokens.css与主题库是材料log.json是记忆sloplint是自检。这六件东西凑齐它就已经是一个软件包而不是一段提示词。但生态只完成了前半程。安装被压到一行npx skills add比较却还停留在看几篇实测 自己试一次。仓库里那份不随包发布的eval/和那句skills do not auto-trigger是这条鸿沟最诚实的注脚。下一个中间层要解决的不是哪里能下载到更多技能而是三个更无聊的问题这个技能是哪个版本、它在我这台机器上有哪些权限、换一台 harness 它还能不能跑到 0 FAIL。谁把这三件事做成一行命令谁就拿到了这个品类真正的分发权。【免费下载链接】hallmarkAnti-AI-slop design skill for Claude Code, Cursor, and Codex.项目地址: https://gitcode.com/GitHub_Trending/hal/hallmark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考