关于 imperatives
imperatives 是一项 Agent 技能,可从 Markdown 指令文件中提取原子化要求并输出为 JSONL,再通过子 Agent 补充关键词提取遗漏的隐含规则,适用于整理结构化策略语句。
主要功能
- 01基于关键词提取要求
- 02子 Agent 检查隐含规则
- 03输出带字段的 JSONL
- 04支持文件 glob 与输出路径
- 05按级别和工具范围汇总
适用场景
- 01将工作区规则转为结构化记录
- 02查找关键词匹配遗漏的要求
- 03为 policy-algebra 或 distill 整理指令数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ camacho/ ai-skills --skill imperatives安装后在 Claude Code 中输入/imperatives确认已加载。
附带文件scripts/extract-imperatives.ts
详细介绍
/imperatives
将 Markdown 指令文件中的原子级指令(MUST/SHOULD/MAY)提取为 JSONL。
用法
/imperatives # default: ai-workspace/rules/*.md + AGENTS.md
/imperatives .claude/rules/*.md # specific globs
/imperatives --output imperatives.jsonl # write to file
步骤
-
解析文件。 默认值:
ai-workspace/rules/*.md和AGENTS.md。将 glob 展开为绝对路径。若未匹配到任何文件 → 报错并停止。 -
第一遍——脚本提取(快速、确定性)。
node --import tsx "${SKILL_DIR}/scripts/extract-imperatives.ts" <files...> --output /tmp/imperatives-pass1.jsonl${SKILL_DIR}= 此技能的基础目录(显示在上方“此技能的基础目录:”标题中)。基于关键词:捕获 RFC 2119 术语和祈使动词。覆盖率约为 80%,用时少于 1 秒。 -
第二遍——子 Agent 推理(捕获隐含指令)。 对每个文件,派发一个子 Agent,识别正则表达式遗漏的指令——上下文规则、隐含约束和嵌入叙述中的义务。
子 Agent 提示词:
阅读
<file>。以下是脚本已为此文件提取的指令:<pass 1 JSONL lines where source.file matches>找出正则表达式遗漏的其他指令陈述。请留意:
- 叙述中隐含的义务(例如,“工作流是菜单,而不是流水线”意味着绝不能强制规定顺序)
- 上下文约束(例如,使某个陈述具有指令性质的章节上下文)
- 未被关键词模式触发的条件规则
对于找到的每条新指令,输出一行 JSON(使用相同的 schema——id、level、polarity、subject、predicate、when、source、tool_scope、tags、raw)。 不要重复第一遍中已有的条目。如果没有找到,则不输出任何内容。
对大多数文件使用
subagent_type: "explorer"(Haiku)。如果某个文件在第一遍中未提取到任何指令,或包含密集叙述(超过 50 行且没有关键词匹配),则将该文件升级为 Sonnet 进行深入推理。 -
合并两遍结果。 拼接第一遍和第二遍的输出。按
raw文本去重。将最终输出写入--output <path>,或直接内联呈现。 -
呈现摘要。 以表格形式报告:
- 总数(第一遍基准数量 + 第二遍新增数量)
- 按
level和tool_scope分类统计 - 两遍处理后不含任何指令的文件
- 单独标出第二遍新增项
-
下游调用方。 如果由
/policy-algebra或/distill调用,则直接返回 JSONL 路径——跳过摘要。
故障模式
| 条件 | 行为 |
|---|---|
| 未匹配到任何文件 | 显示错误消息。停止。 |
| 文件不存在 | 脚本在 stderr 上发出警告,并继续处理其余文件。 |
| 没有指令 | 报告数量为零。这不是错误。 |
| 脚本退出状态非零 | 向用户显示 stderr。 |
跨工具说明
- Codex / Cursor:直接运行脚本——它与工具无关。