HiroHyun
EN
← 全部项目

grounded-copy

一道面向营销与网页文案的风格门禁:每个卖点都必须说清一样东西"是什么、做什么"。一个零依赖的 Python linter 在九种语言里执行这条规则。

Python · Agent skill · CI · 2026年7月 源码 ↗

grounded-copy 是一道面向营销与网页文案的风格门禁。它只执行一条规则:每个卖点都要说清主语”是什么、做什么”——一个功能、一个数字、一套机制。那种靠对比的写法——“不仅仅是 X""与众不同""和……说再见”之类——无论换上哪种伪装都会被拦下,连同浮夸词汇和”专家一致认为”这类含糊的背书。一个确定性的 Python linter 支撑这条规则,在文案合规之前一直卡住写作任务。

它要求的改写

效果在前后对照里最清楚。“专家一致认为 Acme 领先市场”改写成”据 Gartner 2025 市场报告,Acme 占据该细分市场 34% 的份额”。“和隐藏费用说再见”改写成”标出的价格就是全部价格,账单不会再加任何东西”。同样的信息,换成具体细节来承载。这条规则把写作者送回去点出那个功能、给出那个数字,或讲清那句含糊话原本指向的机制。

三层

门禁分三层运作,每一层接住上一层漏掉的。SKILL.md 把这个被禁的写法和它的十种伪装教给 AI 智能体,并针对智能体绕过风格规则的各种借口写好封堵:把对比拆到两句话里、编造一段客户证言、声称”被禁的字符串并没有出现”。scripts/copy_lint.py 是一个零依赖的 Python 3 linter,内置五十多条枚举模式;退出码 1 会拦下任务,而技能本身禁止为了通过而改动 linter。钩子与 CI 在每一次文件写入、每一个 pull request 上执行这道门禁,包括人写的那些。

九种语言

这个 linter 在英语、中文、俄语、西班牙语、阿拉伯语、法语、德语、日语和韩语里抓同一个写法。不仅仅是、не просто、no es solo、ليس مجرد、pas seulement、mehr als nur、単なる〜ではない、단순한 ~이 아닙니다,都承载着同一句”不仅仅是”,也都会被判失败。那些有日常事实用法的结构——日语的 だけでなく、韩语的 뿐만 아니라——会被标为警告,并走一遍删除测试:看去掉这个短语后句子是否还站得住。这层覆盖延伸到本地化文件:一份重新引入对比写法的译文,即便英文原文干净通过,也会让 CI 失败。

安装与执行

Skills CLI 一条命令就能装好——npx skills@latest add HiroHyun/grounded-copy——它读取根目录的 SKILL.md,检测机器上的智能体,把技能放进它们的技能目录。linter 也能独立运行:python3 scripts/copy_lint.py draft.md locales/en.json,或用 --stdin 从管道读入,退出码 0 表示通过,1 表示需要改写。references/setup.md 里的复制粘贴片段把这道门禁接进 Claude Code 钩子、AGENTS.md、GitHub Actions 与 CODEOWNERS。目录里每加一条新模式,都需要一处真实世界的出处、一行会在测试语料里失败的样本,以及一个反例检查,确保正当文案仍然通过。grounded-copy 以 MIT 许可发布。