


フロントエンドの規則リポジトリで規則を書き、公開前に検査を通す
アクセシビリティ・性能・SEO・セキュリティなどのフロントエンド規則を集めたリポジトリを、AIが直す時に使う。各規則に必要なメタデータ、書く順番、測れるしきい値を決め、共有のUIはデザインシステムに置き、公開前に全部の検査を通す。
このAIルールを使うには
## 規則を変える前に、編集すべきソースと生成物を見分ける
フロントエンド規則リポジトリを、ソースコンテンツ、スキーマ、API、レビューツール、表示ページ、生成インデックスからなる製品として扱う。変更前に、どの層が動作を所有するかを特定し、その層と直接の利用側を調べる。
- コンテンツパッケージ、共有型とスキーマ、アプリケーションの接点、ツールサーバー、生成物の関係を整理する。
- 利用できる場合は、記憶から指針を作り出さず、リポジトリのレビュー・規則検索ツールを使う。
- 修正を推奨する前に調査対象のコードを確認し、アクセシビリティ、性能、SEO、セキュリティ、プライバシー、国際化、テストに関する主張をする前に規則群を検索する。
- 広範な監査は、タスクが広範な監査を求める場合だけ行う。
- 編集可能なソースと、生成成果物および表示用の投影結果を区別する。
互換性の指針は、宣言されたブラウザ方針とパッケージが裏付けるデータから導く。記憶している対応表に頼ったり、生成された表示を暗黙に正本として扱ったりしない。
## どの規則にも必要なメタデータを決める
各規則には、解析、検索、採点、レビュー、表示に対応する安定したメタデータ契約が必要である。必須項目は、一貫して強制できる小さな集合に保つ。
必須メタデータには次を含める。
- 引用符で囲んだ人間向けタイトルと、一文の説明。
- 許可されたカテゴリ、優先度、難易度。
- 単位を明示した整数の工数見積もり。
- 規則を確認、修正、説明するための実行可能な指示。
有用な任意メタデータには、サブカテゴリ、簡潔な要点、ユーザーまたは事業への影響、根拠資料、補足資料、関連規則、ツール、タグ、コードレビュー用指示、自動レビューのコンテキストがある。
カテゴリと列挙値は正本の許可一覧に照らして検証する。構文上意味を持つ句読点を含む値は引用符で囲む。役立ちそうに聞こえるだけの項目は追加せず、解析器、UI、検索層、ジェネレーターが利用する場合だけ追加する。
指示には、調べる対象と期待する是正内容を明記しなければならない。実行可能なレビュー戦略を示さない「この規則を確認する」のような仮置き文は拒否する。
## 根拠、追加の資料、関連規則へのリンクを分けて置く
権威ある根拠は構造化されたソースメタデータに置く。任意の読み物とツールは資料メタデータに、規則間の移動情報は関連規則メタデータに置く。ある役割を別の役割で代用しない。
- 各規則に、少なくとも2種類の異なる役割を持つ関連資料を2件以上付け、そのうち少なくとも1件を一次的な権威ある資料にする。
- パイプラインが対応する場合、根拠には安定した識別子を使う。
- 一般的な「関連項目」や「参考資料」の行を本文に入れない。
- 名前のあるツールが実質的に役立ち、資料またはツールのメタデータにも存在する場合は、最初の意味ある言及箇所からリンクする。
本文中のリンクは、具体的な主張または実装判断を支えるものにする。目安は規則ごとに2〜5件、導入部は0〜1件、主要指針全体は1〜3件とする。内部規則へのリンクは通常0〜1件に保ち、特に関連の深い題材だけ2件にする。
「詳しく読む」のようなラベルではなく、内容を表すリンク文言を使う。安全に導出できる項目はビルドツールに推論させてよいが、弱い根拠や無関係な根拠を推論で正当化してはならない。
## 規則の本文は、コード例を理由より前に、検証を最後に置く
人、エージェント、検証器が同じ情報を見つけられるよう、各規則を安定した順序で書く。
1. 平易で短い導入。
2. 現実的なコード例または例の集合。
3. 規則が重要な理由の説明。
4. 必要な実装指針。
5. 最後の検証セクション。
例を理由説明より前に置き、検証を最後の最上位セクションにする。ベストプラクティス、よくある誤り、フレームワーク例、ツール、しきい値、例外、ブラウザ対応、標準、実装注記などの任意セクションはその間に置く。
有効な但し書きや誤検出が存在する場合だけ例外を追加する。自動検査と手動検査の両方に意味がある場合だけ検証を分ける。互換性または適合性によって実装判断が変わる場合は、目に見える標準または対応注記を加える。
一般論より合否を判定できる指示を優先する。技術者が規則を検証する方法、根拠として認めるもの、検査を不合格にする条件を述べる。
## フロントエンド規則に、合否を測れるしきい値を付ける
規則をテストできる場合は、測定可能なしきい値を使う。
- `LCP <= 2.5s`、`CLS <= 0.1`、アセット容量上限などの性能予算。
- コントラスト比、操作対象の大きさ、キーボード操作、拡大、再配置などのアクセシビリティ基準。
- インデックス登録可否、状態コード、正規URLの動作などのSEO状態。
- 通信方式と応答ヘッダーの条件などのセキュリティ要件。
影響に応じて優先度を割り当てる。最高位はサイト停止、セキュリティ、法的問題に限定し、体験低下、ベストプラクティス、任意の仕上げには低い段階を使う。
例は失敗の形が分かる程度に現実的でなければならない。重要な例外と対応上の制約を含めるが、すべての規則へ任意セクションをすべて追加しない。
検証を後続の編集作業ではなく規則の一部として扱う。再現可能な検査のない推奨は不完全である。
## 共有のUI部品は、各ページではなくデザインシステムに置く
タイポグラフィ、アイコン、意味に基づく色、再利用可能なコンポーネントなど、アプリケーション横断の関心事は共有デザインシステムに置く。アプリケーションは共有契約を利用しながら、フレームワーク固有の連携を配線する。
- ページ固有の派生版を作る前に、既存コンポーネントを再利用する。
- 共有機能は、最初に要望が出たページだけでなく、関係するすべての接点に適用する。
- カード全体をリンクにするパターンでも、副次的な操作部品を操作可能に保つ。
- ブランドアイコンとフレームワーク用アイコンのエクスポートを集約し、利用側がデザインシステムの境界を迂回しないようにする。
- 任意の不透明度修飾子より、意図した完全なコントラストを持つ意味的なテーマ変数を優先する。
- CSSリセットがリッチテキストのリスト記号を消す場合は、明示的に復元する。
不一致を隠すためにサーバーとクライアントのハイドレーション警告を抑止してはならない。クライアント専用状態をマウント後まで遅らせるなど、状態の境界を修正する。
ブラウザ由来の保護は、ブラウザでの変更操作とフォームに適用する。ブラウザの課題に応答できないプログラム用APIエンドポイントへ、クライアント側のボット検査を適用しない。
## 新しいツールを、定義からテストまで全部つなぐ
新しいツールまたはパッケージ横断機能は、その定義、エクスポート、登録、振り分け、実装、テスト、文書が一致したときだけ完成する。
呼び出し可能なツールでは次を行う。
1. 具体的な名前、説明、入力スキーマを定義する。
2. パッケージ境界でエクスポートする。
3. サーバーのツールカタログへ登録する。
4. 振り分け経路へ接続する。
5. 検出、検証、ルーティング、動作をテストする。
集約エクスポートはパッケージ境界だけで使う。内部の集約エクスポートは移動手順を増やし、所有関係を隠す。複数パッケージが使う共有依存関係のバージョンは一元管理し、スクリプトを目的別に整理して、保守された索引を付ける。
バージョン固有のライブラリ契約を守る。たとえば、導入済み検証器の現在のエラー形式を使い、状態を持つクエリクライアントはリポジトリ承認済みファクトリーで作り、非同期設定ラッパーは返されたすべてのプロパティを保つ順序に維持する。
起動時に読み込まれる設定を変更した後は、サービスを再起動する。実行中のプロセスが変更を読み込むまでは、編集成功を根拠として扱わない。
## 公開前に全部の検査を通し、1つも飛ばさない
規則またはその基盤を変更した後は、リポジトリ正本の品質検査手順を実行する。
- 必須メタデータ、カテゴリ値、資料の品質、規則構造を検証する。
- 実行可能な指示、根拠、例、本文の深さ、検証、しきい値、適用対象となる条件付きセクションを採点する。
- 整形、静的検査、型検査、パッケージ検査、集中テスト、変更した接点が必要とする全体ビルドを実行する。
- インデックスまたはスキルを再生成し、生成物が同期されていることを確認する。
コミット前検査を迂回してはならない。検証を省略する経路を使わず、文書、危険な型変換、複雑度、インポート境界、未使用コード、カバレッジの失敗を修正する。
自動採点を意味上の正しさの証明ではなく、品質ゲートとして扱う。ソースファイルだけでなく、表示結果とツール向け結果も確認する。
公開前に、必須の指示が実行可能で、根拠が権威あるもので、例が推奨内容と一致し、検証が最後にあり、生成差分が残っていないことを確認する。全手順が合格した後だけ公開する。
