• 日本語
  • 貢献

    新しいルールの追加

    1 — GritQL ファイルの作成

    grit/ ディレクトリに .grit ファイルを作成します。

    touch grit/my-new-rule.grit

    最小限のルール:

    // [Rationale] このパターンが禁止されている理由を説明する一文。
    //
    // ✗ 不適切なパターン
    // ✓ 適切な代替パターン
    `pattern to match $variable` where {
      register_diagnostic(
        message = "違反内容と代替案を説明します。(※英語で記入することを推奨します)",
        severity = "error" // または "warn"
      )
    }

    2 — AGENTS.md へのドキュメントの追加

    AGENTS.md## Lint Rules セクションに ### rule-name を追加します。

    チェック対象、根拠、✗/✓ の例、および例外条件を含めてください。

    3 — ドキュメントページの追加

    既存のルールページの構造に従って、docs/rules/my-new-rule.mdx を作成してください。

    4 — サイドバーへの登録

    rspress.config.tssidebar['/rules/'] にエントリを追加してください。

    5 — テスト

    pnpm test

    ルールの命名規則

    kebab-case を使用してください。名前は、禁止 または 推奨 を表します。

    プレフィックス使用場面
    no-*特定のパターンを禁止no-null-type
    prefer-*代替型を推奨prefer-union-over-enum
    enforce-*構造的/アーキテクチャ上のルールenforce-pure-src

    GritQL クイックリファレンス

    パターンマッチ

    `code $variable { $body }` where { ... }

    診断情報の登録

    register_diagnostic(
      (message = "Human-readable message."),
      (severity = "error" | "warn" | "info"),
    );

    条件

    // ファイルパスが一致する必要があります
    $file_path.matches("^src/"),
    
    // キャプチャされた変数が正規表現に一致する必要があります
    $path.matches(".*(storybook|demo).*"),
    
    // カンマで結合 (AND)
    $file_path.matches("^src/"),
    $path.matches(".*(storybook).*"),

    重要度ガイド

    重要度使用条件
    errorこのコードベースでは、パターンは常に間違っています。曖昧さはありません。
    warnパターンは通常は間違っていますが、正当な例外があります。
    info情報提供のための注意喚起。問題ではありません。