規約 Standards
レビュワーは同じ規約を手作業でコメントごとに強制しています。このスキルはそれらのコメントを掘り起こして文書化された規約にし、その後diffを規約と照合します。各規約は、エージェントがコードを書くときに従うルールと、レビュワーがdiffに適用するレンズをペアにします。番号付きの各§は、その背後にあるレビューコメントを引用するため、誰でもルールをそれを強制したレビュワーまで遡ることができます。
基本原則
- 証拠第一。 §が成立するには、少なくとも3つの異なる変更と2人の異なるレビュワーからのレビューコメントが必要です。なぜなら、1つの変更に対する多くのコメントや、1人からのコメントは、単一のレビュワーの好みだからです。
- すべてのルールには理由がある。 理由があれば、ルールの周りのコードが形を変えた後でもエージェントを導きます。
- 1つの規約は1箇所に。 2つのコピーは乖離し、エージェントは最初に読んだ方に従います。
- チェックは§に勝る。 リンター、型、テストで捕捉できる規約はそれらのツールに属します。なぜなら、チェックは毎回実行されるからです。
- エージェントが既に行うことは削除する。 プロンプトなしで守られるルールは、ロードのたびにコンテキストを消費し、何も変えません。
- スクリプトはショートカット。 各出力ファイルには
references/schemas/にスキーマがあるため、スクリプトがないか失敗した場合は、同じファイルを手動で作成します。 gitが唯一の必須依存関係。ghやglabのようなフォージのCLIはレビューコメントを追加し、git logがなければ代わりになります。
コマンド
| コマンド | 説明 | 出力 | リファレンス |
|---|---|---|---|
mine | レビューコメントを取得し、規約ごとにラベル付けし、頻度×重大度でクラスタをランク付け | .standards/clusters.json | references/mine.md |
write | ランク付けされたクラスタをリポジトリ内の規約スキルに変換し、各§に理由と証拠を付与 | 規約スキル | references/write.md |
review | diffがトリガーするすべてのレンズを適用し、§を引用して結果を報告 | 返信内の所見 | references/review.md |
prune | 各ルールをハーネス全体でA/Bテストし、エージェントがプロンプトなしで従うものを削除 | prune.json | references/prune.md |
doctor | 乖離を検出:一致しないグロブ、存在しない引用ファイル、発動しないレンズ、古いプルーンデータ | .standards/doctor.json | references/doctor.md |
ルーティング
standards [コマンド] [スコープ] として呼び出します。スコープはパスまたはグロブ、生成されたインデックスからのエリアスラッグ、または§番号(§2、§2.3)です。解決方法は references/scope.md に従います。mine はパスのみを受け取ります。エリアは write の後にのみ存在するからです。
- 引数なし。 以下のメニューを表示し、選択を待ちます。コマンドを自動実行しないでください。各コマンドは履歴を読み取り、リポジトリを編集するか、多くのエージェント実行を消費するためです。
- コマンドなしのスコープ。 確認せずにそのスコープの
reviewを実行します。reviewは読み取りのみを行うためです。 - 明示的または明確に暗示されたコマンド。 そのリファレンスを読み込み、ステップバイステップで従います。
- 2つのコマンドが該当する場合。 どちらかを1回尋ね、両方の名前とそれぞれが何をするかを示します。その後、回答に従います。
- 何もない状態からの規約。
mineから始めます。writeにはclusters.jsonが必要だからです。mineが終了したらwriteを提案します。 - スキル自体に関する質問。 コマンドを実行せずに、このファイルから回答します。
メニュー
standards: 何をしましょうか?
mine レビューコメントを掘り起こしてランク付けされた規約に
write ランク付けされた規約から規約を書き出す
review 規約に対してdiffをレビュー
prune 各ルールをテストし、エージェントが既に従うものを削除
doctor 規約の乖離をチェック
すべてのコマンドはオプションのスコープ(パス、エリア、§)を受け付けます。
生成された規約が存在する場合は、メニューの下に§番号とスラッグでエリアを一覧表示します。
パイプライン
mine が write にデータを供給し、write が review で適用されるものを生成します。prune と doctor はその後、規約を保守します。
作業ファイルはターゲットリポジトリのルートにある .standards/ にあります。そのフォルダはバージョン管理から除外してください。レビューコメントはコードと人を引用するためです。prune.json は例外です。生成された規約の隣に配置されます。doctor がそこで読み取るためです。
リファレンス内の <skill-dir> は、このファイルを保持するフォルダです。<skill-dir>/scripts/ 内のスクリプトは mine を高速化し、JavaScriptランタイムの標準ライブラリのみを必要とします。
判断モデル
mine、prune、doctor は多くの小さな型付き質問をします。判断モデルとは、型付き質問(セットから1つを選ぶ、yes/noの確率、スコア)に校正された確率で回答する高速モデルです。環境が判断モデルを提供する場合は、それを使って質問ファイルに回答してください。そうでない場合は、自分で回答してください。環境独自の指示が、どのモデルを使用するかを決定します。
生成された規約
- デフォルトの出力は、各§ファイルにリンクするワンライナーのインデックスを持つ1つのスキルです。テンプレート:インデックス および セクション。
- エリアごとに1つのスキルもオプションであり、references/write.md の形状実験によってリポジトリごとに決定されます。
- 生成された規約はこのスキルと同じルールに従います:仕様のフロントマターのみ、URLなし、日付なし、すべてのルールに理由あり。