推荐:Claude命令行工具提示词可复用写法
构建模块化提示词系统,本质上只需拆解为四个环节。别急于堆砌指令——想让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文件和模板脚本,余下的就是自动化执行。核心在于:整个系统的本质,是将“如何写提示词”这件事本身结构化和可复用化——这才是从重复劳动中解放出来的关键。
