rule-writing について
rule-writing は、調査契約に基づいて lint ルールを実装する開発スキルです。検出器の設計、敵対的テスト、ルール登録、検証を案内し、不確かなケースは対象外にします。
主な機能
- 01検出条件と対象外を計画
- 02有効・無効ケースの敵対的テストを追加
- 03契約で定めた動作を実装
- 04生成されたルール登録を更新
- 05対象テストとパッケージチェックを実行
活用シーン
- 01調査契約に基づくルール実装
- 02境界ケースや誤検出のテスト追加
- 03引き継ぎ前のルール検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ millionco/ react-doctor --skill rule-writingインストール後、Claude Code で/rule-writingを入力して読み込まれたか確認します。
詳細
ルールを書く
rule-research の契約を実装します。まだ契約がない場合は、編集前に簡潔な契約を定義します。
検出器を計画する
診断条件、必要な構文とバインディング、サポート対象外のケース、敵対的テストを明記します。ユーザーがすでに実装を依頼している場合は、この計画を簡潔にまとめます。
ヘルパーを追加する前に、再利用できるものがないか検索します。
bunx @rayhanadev/truffler "<symbol-or-behavior>" \
packages/oxlint-plugin-react-doctor/src/plugin \
--kind function,interface,type,constant --limit 20
docs/HOW_TO_WRITE_A_RULE.md、近くにあるルール、ユーティリティ、テストを読みます。
実装とテスト
- 検出器の擬似コードを書きます。
- 有効・無効の敵対的テストを追加します。
- 契約でサポートする動作のみを実装します。
- 新しいユーティリティを作成する前に、既存のユーティリティを再利用します。
- リポジトリのコマンドを使って、生成された登録を更新します。
- 対象を絞ったテストとパッケージのチェックを実行します。
- 実際のコードからのフィードバックで誤検出が見つかる可能性がある場合は、
rde-evalを使用します。 - 完成した変更を
rule-validateに引き継ぎます。
次の点を考慮します。
- インポートのエイリアスとシャドーイングされたバインディング
- 即時実行されないネストされた関数
- JavaScript と TypeScript の透過的なラッパー
- 動的な計算プロパティ
- インポートされた値、または解決されていない値
- フレームワークの回避手段
- 診断の主張に必要な制御フロー上の経路
- レビューや評価で見つかったリグレッション
判断が確かでないケースは対象外にします。メッセージは、検出器が証明できる条件に合わせます。
リポジトリのチェックを実行する
@antfu/ni のコマンドを使用します。
nr test
nr lint
nr typecheck
nr format
nr smoke:json-report
作業中は対象を絞ったコマンドを使用します。実行した各コマンドを記録します。
実装内容を報告する
変更したルール、テスト、登録、再利用または追加したユーティリティ、報告する動作、意図的に対象外とした内容、検証結果を報告します。最後に rule-validate への引き継ぎで締めくくります。
コメント
Markdown 対応