imperatives について
imperatives は、Markdown の指示ファイルから原子的な要件を抽出して JSONL にまとめるエージェントスキルです。キーワード抽出に加え、サブエージェントで暗黙のルールも確認します。
主な機能
- 01キーワードによる要件抽出
- 02暗黙のルールをサブエージェントで確認
- 03フィールド付き JSONL 出力
- 04ファイル glob と出力先の指定
- 05レベルとツール範囲別の集計
活用シーン
- 01ワークスペースのルールを構造化
- 02キーワード抽出漏れの要件を確認
- 03policy-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です。グロブを絶対パスに展開します。一致するファイルが 0 件の場合はエラーとして終了します。 -
パス 1 — スクリプトによる抽出(高速、決定論的)。
node --import tsx "${SKILL_DIR}/scripts/extract-imperatives.ts" <files...> --output /tmp/imperatives-pass1.jsonl${SKILL_DIR}= このスキルのベースディレクトリ(上の「このスキルのベースディレクトリ:」ヘッダーに表示)。キーワードベースで、RFC 2119 の用語と命令形の動詞を検出します。カバー率は約 80%で、1 秒未満です。 -
パス 2 — サブエージェントによる推論(暗黙の命令文を検出)。 各ファイルについて、正規表現では検出されなかった命令文(文脈に依存するルール、暗黙の制約、文章に埋め込まれた義務)を特定するようサブエージェントに指示します。
サブエージェントへのプロンプト:
<file>を読んでください。このファイルについて、スクリプトがすでに抽出した命令文は以下のとおりです。source.file が一致するパス 1 の JSONL 行正規表現が見落とした命令文を追加で特定してください。以下を確認してください。
- 文章に隠れた暗黙の義務(例:「ワークフローはパイプラインではなくメニューです」は、順序を強制してはならないことを示唆します)
- 文脈に依存する制約(例:セクションの文脈によって命令となる記述)
- キーワードパターンに該当しない条件付きルール
新たに見つかった命令文ごとに、JSON 行を 1 つ出力してください(同じスキーマ — id、level、polarity、subject、predicate、when、source、tool_scope、tags、raw)。 パス 1 の項目を重複して出力しないでください。見つからなければ何も出力しないでください。
ほとんどのファイルでは
subagent_type: "explorer"(Haiku)を使用します。パス 1 で命令文が 0 件だったファイル、またはキーワードに一致しない文章が 50 行を超える密度の高いファイルは、より深い推論のため Sonnet にエスカレーションします。 -
パスをマージします。 パス 1 とパス 2 の出力を連結します。
rawテキストで重複を除去します。最終出力を--output <path>に書き込むか、インラインで提示します。 -
概要を提示します。 次の内容を表にまとめて報告します。
- 合計件数(パス 1 の基準件数 + パス 2 の追加件数)
levelとtool_scopeごとの内訳- 両方のパスの後も命令文が 0 件のファイル
- パス 2 での追加分を個別に強調表示
-
後続の呼び出し元。
/policy-algebraまたは/distillから呼び出された場合は、JSONL のパスを直接返し、概要を省略します。
失敗時の動作
| 条件 | 動作 |
|---|---|
| 一致するファイルがない | エラーメッセージを表示して終了します。 |
| ファイルが見つからない | スクリプトは stderr に警告を出し、残りのファイルの処理を続けます。 |
| 命令文が 0 件 | 0 件と報告します。エラーではありません。 |
| スクリプトがゼロ以外の終了コードで終了 | stderr の内容をユーザーに提示します。 |
ツール間の注意事項
- Codex / Cursor:スクリプトを直接実行します。ツールに依存しません。