最近做了一个叫 clreq 的 Skill,让 Codex、Claude Code 和其他兼容 Agent Skills 的智能体,能主动检查网页里的中文文案、国际化配置与排版实现,给出有依据、可执行的修改建议。

《中文排版需求》是一份值得认真阅读的文档,但它很长,也有一些门槛。

开发者在实现页面时,很少会暂停手头工作,打开规范,找到对应章节,再判断当前代码是不是合适。代码审查也面临同样的问题。审查者通常会关注逻辑、类型、性能和可维护性,而中文标点对不对这样的问题很容易被忽略。

就算团队意识到了中文排版的重要性,也需要有人知道该查什么、去哪里查、怎么把规范转化成代码。

这是我开发 clreq Skill 的动机。我希望能降低《中文排版需求》的使用成本,让文档里的规则直接进入开发流程。

这个 Skill 面向网站和 Web 应用,支持常见的前端文件:

  • HTML
  • JSX、TSX
  • Vue、Svelte
  • Markdown、MDX
  • JSON、YAML 等本地化资源
  • 影响中文呈现的 CSS

安装后,可以让智能体检查单个文件:

使用 $clreq 审查 src/components/Checkout.tsx 里的中文文本和排版问题。

也可以只看当前改动:

使用 $clreq 审查当前 diff 中变更的文件。

或者扫描整个仓库:

使用 $clreq 扫描仓库中的中文文本和排版问题。

它会结合文件类型、语言环境和页面实现选择规则,列出问题、影响、修改建议、依据和置信度。

默认情况下,它只给出审查建议,不会直接修改文件。需要修复时,你可以在确认建议后继续要求智能体动手。

比如页面里有这样一段代码:

<html lang="zh">
<p>今天下单, 明天发货.</p>
</html>

对应的 CSS 又包括:

.vertical-label {
transform: rotate(90deg);
}

这段代码里至少包含三个值得检查的问题。

第一个问题是 lang="zh"

zh 只能说明内容属于中文,无法说明页面使用简体中文还是繁体中文。部分字形、标点和排版建议依赖具体的文种或区域。

clreq 会建议开发者确认目标语言环境,并在适用时使用 zh-Hanszh-Hant 等更明确的语言标签。

第二个问题是中文句子使用了 ASCII 的逗号和句号。

“今天下单, 明天发货.”会被建议修改为“今天下单,明天发货。”

第三个问题是通过旋转元素模拟直排。

旋转只能改变元素的视觉方向,不能提供完整的直排布局行为。标点位置、行进方向、拉丁字母与数字的方向,都可能因此出错。

目前的规则覆盖了中文标点、语言标签、简繁体语境、全角字符、语义化注音标记和直排实现等主题。

增加一条规则时,我们可以单独定义它的适用范围、例外条件与来源,不需要不断扩张一份难以维护的总提示词。

另外,通用规则无法覆盖所有的项目。法律文本可能要求保持原文,品牌名称可能有固定写法,历史材料和用户生成内容可能也不适合随意调整。某些团队还会对默认语言、字体、换行和组件行为作出自己的规定。

这个 Skill 支持项目级覆盖设置。项目可以指定默认语言环境、启用或关闭某些规则、调整严重程度,并声明需要保留的内容。

安装与使用

可以通过 skills 命令全局安装:

npx skills@latest add xfq/clreq-skills --skill clreq --global

也可以只安装到当前项目:

npx skills@latest add xfq/clreq-skills --skill clreq

在 Codex 中,可以这样调用:

使用 $clreq 审查 src/components/Checkout.tsx。

在 Claude Code 中,可以使用:

/clreq 审查 src/locales/zh-Hant.json

其他兼容 Agent Skills 格式的智能体也是类似。

这个 Skill 才刚刚开始

clreq 还是一个刚发布的项目。现有规则只覆盖了几个简单的中文排版问题,距离完整承载《中文排版需求》和实践还有很大的扩展空间。标点的宽度调整、禁则处理、换行、字体选择、混排间距、更多注音场景和不同地区的排版差异,都需要继续整理。

如果你在网页中遇到难以判断的中文排版问题,可以提交案例;如果你发现规则引用、适用范围或例外条件不够准确,可以提出修正;如果你熟悉中文排版、CSS或者国际化,也欢迎直接参与贡献。

项目地址:xfq/clreq-skills