Factory Appでも利用可能: これらの規約はDroid CLIとFactory Appの両方で同じように機能します。インターフェースに関係なく、Droidは同じ
.factory/rules/ファイルを読み込みます。ルールと他の設定の比較
ルールは規範的です—Droidにすべきことを指示します。一貫して適用されるべき標準に使用してください。
ルールディレクトリの設定
基本構造
プロジェクトに.factory/rules/ ディレクトリを作成します:
AGENTS.mdでルールを参照する
AGENTS.md にセクションを追加します:
効果的なルールの記述
ルール構造
各ルールは以下であるべきです:- 具体的: 解釈の余地なく従えるほど明確
- 実行可能: 避けるべきことではなく、すべきことを指示
- スコープ化: いつ適用されるかを明記
- 正当化 (任意): 複雑なルールに対する理由の説明
テンプレート
ルールファイルの例
TypeScriptルール
.factory/rules/typescript.md を作成します:
anyを避ける
適用対象: すべてのTypeScriptファイル
ルール: anyは使用しません。型ガード付きのunknownを使うか、適切な型を定義します。
Function Patterns
Use early returns
Applies to: All functions with conditionals Rule: Return early for edge cases instead of nesting.Named exports over default
Applies to: All module exports Rule: Use named exports for better refactoring and import clarity.Component file structure
Applies to: All component files Rule: Order sections as: imports, types, component, exports.State Management
Zustand for client state
Applies to: Client-side state that isn’t server data Rule: Use Zustand stores insrc/stores/. One store per domain.
React Query for server state
Applies to: All data fetched from APIs Rule: Use React Query. Queries go insrc/queries/.
One assertion per test
Applies to: Unit tests Rule: Test one behavior per test case. Multiple assertions OK if testing same behavior.Mocking
Mock at boundaries
Applies to: All mocked dependencies Rule: Mock external APIs and services, not internal functions.Use MSW for API mocking in integration tests
Applies to: Integration tests that need API responses Rule: Use Mock Service Worker instead of mocking fetch directly.Validate environment variables
Applies to: Application startup Rule: Validate required env vars exist at startup.Input Validation
Validate all external input
Applies to: API routes, form handlers Rule: Use Zod to validate all input from users or external sources.Error Handling
Never expose internal errors
Applies to: API error responses Rule: Log detailed errors server-side; return generic messages to clients.Authentication
Check authentication on every protected route
Applies to: All API routes requiring auth Rule: Use middleware or guards. Never assume auth from client.ルールの所有者
各ルールセットの管理者を追跡するため、オーナー情報を追加します:Current Limitation: No Glob Pattern Support
回避策:- ファイルタイプごとに整理: 別々のルールファイルを作成し、コンテキストに応じて参照する
- ルールで明確なスコープを使用: 適用可能性を明確に述べる
- 複雑なワークフローにはスキルを使用: スキルはファイルタイプ固有の指示をエンコードできる
ルールの保守
新しいルールの追加
Droidを繰り返し修正している場合:- パターンを特定する
- 例を含む明確なルールを記述する
- 適切なルールファイルに追加する
- 必要に応じてAGENTS.mdを更新する
- 類似の作業をDroidに依頼してテストする
ルールのレビュー
四半期レビューチェックリスト:- リンティングで強制されるようになったルールを削除
- 変更されたルールを更新
- 新しいパターンのルールを追加
- 例がまだ正確かチェック
- AGENTS.mdの参照が最新かを確認
ルールの廃止
ルールが時代遅れになった場合:ルールの自動実行
Droidは.factory/rules/ ファイルのルールに従いますが、フック で自動実行を追加できます。
編集後にリンターを実行
ファイル編集後にリンターを自動実行するPostToolUseフックを追加します:コードスタイルの検証
Prettierやフォーマッターを自動実行します:クイックリファレンス
ファイルの場所
ルール形式
良いルールの条件
- ✅ 具体的で曖昧さがない
- ✅ コード例を含む
- ✅ いつ適用されるかを明記
- ✅ 実行可能(「Xを検討する」ではなく「Xを行う」)
- ❌ 曖昧ではない(「クリーンなコードを書く」)
- ❌ リンタールールと重複していない
- ❌ 他のルールと矛盾していない
次のステップ
セットアップチェックリスト
パワーユーザー設定を完了する
メモリ管理
意思決定とコンテキストを記録する
