搭建模块化提示词系统,其实并不复杂,核心只需四步即可实现。如果你希望Claude能稳定、精准地为命令行工具生成说明文档,而不是每次对话都从零编写提示词,就必须将角色设定、结构约束和校验规则整合成一个可加载、可版本管理、并能通过CSV批量驱动的模块化系统。下面逐一详解。

先说一个关键判断:在SKILL.md顶部的YAML元数据中,description字段并非摆设,它直接决定了Claude何时自动触发该Skill。例如可以这样写:【description: 为CLI工具生成符合POSIX标准的man-page风格说明,包含USAGE、OPTIONS、EXAMPLES三段,仅描述行为,不解释原理】。这一步如果遗漏,后面所有的结构指令都会被Claude默认的教学口吻冲淡——man page要求的是权威、简洁、命令式陈述,绝不是“建议”或“请”这类措辞。
正文开头就必须锁定身份和交付物:“你是一名Unix系统文档工程师,专注于为Go/Rust编写的CLI工具撰写man(1)兼容说明。输出必须严格遵循GNU手册格式,不含Markdown渲染符号,不使用祈使语气。” 如果不这样设定,Claude很容易偏离方向。
第一步:定义角色与输出契约
为了让这件事落到实处,在SKILL.md中应使用编号强制分段,将三层结构固定下来:
① USAGE段:以 $ toolname [OPTIONS] [ARGUMENTS] 开头,参数用方括号包裹,必选参数不加括号,可选参数采用 [--flag VALUE] 格式;
② OPTIONS段:每行一个选项,格式如 -f, --flag ,后面缩进两格添加说明(不超过15字),禁用“用于”“可以”等模糊动词;
③ EXAMPLES段:仅保留3个真实场景的命令行,每行以 $ 开头,不加注释、不换行、不附带输出结果。
为什么必须按此顺序?因为help2man这类工具会跳过没有USAGE段的文本,直接生成空man页——下游解析器并不会与你协商。
第二步:绑定三层结构化输出
在结构指令末尾追加一个自查动作,让Claude生成后先自行检查一遍:
方法一:强制检查项。“生成完成后执行三查:1. USAGE段是否以 $ 开头且包含空格分隔的token;2. 所有 --long-option 是否都对应 -s 短选项;3. EXAMPLES段是否恰好3行,且每行以 $ 起始、无中文字符。”
方法二:失败回退机制。“若任一检查失败,清空全部输出,仅返回ERROR: [具体失败项],不尝试修复。”
务必把校验指令写在SKILL.md末尾,不能塞入YAML元数据——只有正文内容才会参与上下文加载。
第三步:注入校验型终止指令
最后一步,对接批量生成。准备一个CSV文件,列名为:tool_name、version、usage_line、option_list、example_1、example_2、example_3。然后编写Python脚本,逐行读取数据,将字段值映射到模板中对应的占位符(例如{{usage_line}}),拼成完整提示词,调用Claude API时带上SKILL_NAME参数指定加载该Skill。
完成这一步后,你就可以用一条命令批量生成12个CLI工具的man page初稿,无需再手动复制粘贴任何提示词片段。
第四步:对接CSV驱动批量生成
准备好CSV文件和模板脚本,剩下的就是自动化执行。整体系统的本质是将“如何编写提示词”本身结构化和可复用化——这才是让你从重复劳动中彻底解放的关键。
