mcpField
I
imperatives

imperatives

github.com/camachoエージェントワークフロー296 回インストール
リポジトリ

imperatives について

imperatives は、Markdown の指示ファイルから原子的な要件を抽出して JSONL にまとめるエージェントスキルです。キーワード抽出に加え、サブエージェントで暗黙のルールも確認します。

主な機能

  1. 01キーワードによる要件抽出
  2. 02暗黙のルールをサブエージェントで確認
  3. 03フィールド付き JSONL 出力
  4. 04ファイル glob と出力先の指定
  5. 05レベルとツール範囲別の集計

活用シーン

  1. 01ワークスペースのルールを構造化
  2. 02キーワード抽出漏れの要件を確認
  3. 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

手順

  1. ファイルを解決します。 デフォルトは ai-workspace/rules/*.md と AGENTS.md です。グロブを絶対パスに展開します。一致するファイルが 0 件の場合はエラーとして終了します。

  2. パス 1 — スクリプトによる抽出(高速、決定論的)。

    node --import tsx "${SKILL_DIR}/scripts/extract-imperatives.ts" <files...> --output /tmp/imperatives-pass1.jsonl
    

    ${SKILL_DIR} = このスキルのベースディレクトリ(上の「このスキルのベースディレクトリ:」ヘッダーに表示)。キーワードベースで、RFC 2119 の用語と命令形の動詞を検出します。カバー率は約 80%で、1 秒未満です。

  3. パス 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 にエスカレーションします。

  4. パスをマージします。 パス 1 とパス 2 の出力を連結します。raw テキストで重複を除去します。最終出力を --output <path> に書き込むか、インラインで提示します。

  5. 概要を提示します。 次の内容を表にまとめて報告します。

    • 合計件数(パス 1 の基準件数 + パス 2 の追加件数)
    • level と tool_scope ごとの内訳
    • 両方のパスの後も命令文が 0 件のファイル
    • パス 2 での追加分を個別に強調表示
  6. 後続の呼び出し元。 /policy-algebra または /distill から呼び出された場合は、JSONL のパスを直接返し、概要を省略します。

失敗時の動作

条件動作
一致するファイルがないエラーメッセージを表示して終了します。
ファイルが見つからないスクリプトは stderr に警告を出し、残りのファイルの処理を続けます。
命令文が 0 件0 件と報告します。エラーではありません。
スクリプトがゼロ以外の終了コードで終了stderr の内容をユーザーに提示します。

ツール間の注意事項

  • Codex / Cursor:スクリプトを直接実行します。ツールに依存しません。

コメント