mcpField
N
nginx-c-module-design

nginx-c-module-design

github.com/pproenca開発218356 回インストール11 週間前に更新
リポジトリ

nginx-c-module-design について

nginx Cモジュール作者向けの設定ディレクティブ設計ガイドです。ディレクティブの公開範囲、命名、スコープ、デフォルト値、検証、互換性を扱う46のルールを影響度順に整理しています。

主な機能

  1. 018カテゴリにわたる46のルール
  2. 02影響度順に並んだガイダンス
  3. 03ディレクティブの公開範囲と命名
  4. 04型、スコープ、デフォルト値
  5. 05検証と互換性に関する指針

活用シーン

  1. 01ディレクティブとして公開する値の選定
  2. 02ディレクティブ名と引数型の決定
  3. 03ディレクティブのスコープとデフォルト値の設定
  4. 04ディレクティブの廃止や改名の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pproenca/dot-skills --skill nginx-c-module-design

インストール後、Claude Code で/nginx-c-module-designを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
assets/templates/
_template.md
references/
_sections.md
compat-alias-old-directive.md
compat-deprecation-warning.md
compat-document-migration.md
compat-multi-version-window.md
default-generous-timeouts.md
default-performance-optin.md
default-platform-aware-buffers.md
default-safety-on.md
default-zero-config-safe.md
default-zero-unlimited.md
expose-configurable-vs-hardcode.md
expose-environment-dependent.md
expose-escape-hatch.md
expose-feature-gate.md
expose-path-resource.md
expose-security-surface.md
expose-too-many-directives.md
naming-cross-module-consistency.md
naming-lowercase-underscore.md
naming-module-prefix.md
naming-no-abbreviations.md
naming-noun-over-verb.md
naming-sub-prefix-groups.md
scope-avoid-if-context.md
scope-default-three-levels.md
scope-http-only-shared-resources.md
scope-location-path-operations.md

詳細

nginx.org C モジュールのディレクティブ設計に関するベストプラクティス

nginx C モジュールの作成者向けの包括的なディレクティブ設計ガイドです。明確で一貫性があり、管理者にとって使いやすい設定インターフェースの作成に重点を置いています。8 つのカテゴリにわたる 46 のルールを収録し、何を公開するか、どのように命名するか、安全に進化させるにはどうすればよいかについて、影響度に応じて優先順位を付けています。

適用するタイミング

以下を判断するときに、これらのガイドラインを参照してください。

  • 設定可能なディレクティブとして公開する値と、ハードコードする値を決めるとき
  • 新しいディレクティブに名前を付け、引数の型を選ぶとき
  • スコープ(http、server、location)を決めるとき
  • デフォルト値と検証動作を設定するとき
  • 実行時データ用の nginx 変数を設計するとき
  • 既存のディレクティブを非推奨にしたり、名前を変更したりするとき

関連スキル

このスキルでは設計上の判断(「何を」と「なぜ」)に焦点を当てます。実装の詳細については、以下を参照してください。

  • nginx-c-modules — C の実装:メモリプール、リクエストのライフサイクル、設定の解析、ハンドラー、フィルター
  • nginx-c-perf — パフォーマンス:バッファー、接続、ロック、キャッシュ、タイムアウト
  • nginx-c-debug — デバッグ:クラッシュの診断、GDB、トレース、サニタイザー

優先度別のルールカテゴリ

優先度カテゴリ影響度プレフィックス
1公開するかどうかの判断重大expose-
2命名規則重大naming-
3ディレクティブの型高type-
4スコープ設計高scope-
5デフォルト値中〜高default-
6検証とエラーメッセージ中valid-
7変数設計中var-
8進化と互換性低〜中compat-

クイックリファレンス

1. 公開するかどうかの判断(重大)
2. 命名規則(重大)
3. ディレクティブの型(高)
4. スコープ設計(高)
5. デフォルト値(中〜高)
6. 検証とエラーメッセージ(中)
7. 変数設計(中)
  • var-runtime-data-only - リクエストごとの実行時データのみを変数として公開する
  • var-naming-convention - モジュールのプレフィックスと説明的なサフィックスを使って変数に名前を付ける
  • var-dynamic-prefix - キーと値のデータには動的なプレフィックス変数を使用する
  • var-lazy-evaluation - コストの高い変数には遅延評価を活用する
  • var-in-directive-values - リクエストごとに値を変える必要がある場合にのみ、ディレクティブ値での変数の使用をサポートする
  • var-read-only-diagnostics - 可観測性のため、読み取り専用の診断変数を公開する
8. 進化と互換性(低〜中)

使用方法

詳しい説明やコード例については、個別のリファレンスファイルをお読みください。

リファレンスファイル

ファイル説明
references/_sections.mdカテゴリーの定義と順序
assets/templates/_template.md新しいルール用のテンプレート
metadata.jsonバージョンとリファレンス情報

コメント