К основному содержанию
скилл CX Codex

nginx-c-module-design — скилл для Claude Code: правила проектирования

Скилл для тех, кто пишет C-модули nginx: помогает решить, что выносить в директивы, как их называть и где размещать. Пригодится на этапе проектирования публичного интерфейса модуля.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add pproenca/dot-skills --skill nginx-c-module-design -a claude-code
Открыть на GitHub

Что делает nginx-c-module-design

Скилл содержит 46 правил в 8 категориях, расставленных по приоритету влияния на конфигурацию. Первые две категории — критические: что вообще выносить в директивы, а что зашивать в код, и как называть получившееся. Дальше идут типы директив, выбор контекста (http, server, location), значения по умолчанию, проверка значений и тексты ошибок, проектирование переменных и совместимость при переименованиях.

Правила разложены по файлам в references/, у каждого свой префикс: expose-, naming-, type-, scope-, default-, valid-, var-, compat-. Агент подтягивает нужный файл, когда вы правите ngx_command_t или спорите о названии директивы. Сам скилл про решения — что и почему; механика реализации, производительность и отладка вынесены в отдельные скиллы.

Полезно там, где конфигурацию читают админы, а не автор модуля. Например, правило про обязательное раскрытие путей к внешним ресурсам: если путь зашит в бинарник, поменять его без пересборки не выйдет — это повод проверить свой модуль до релиза.

Какие задачи решает

  • решить, какие значения вынести в директивы, а какие оставить в коде
  • выбрать имя директивы без самодельных сокращений
  • определить контекст: http, server или location
  • подобрать безопасное значение по умолчанию для нового модуля
  • переименовать директиву, не сломав чужие конфиги

Примеры запросов агенту

  • Помоги спроектировать директивы для нового nginx-модуля: что вынести в конфиг, а что захардкодить
  • Проверь названия моих директив по правилам naming-* и предложи, как переименовать
  • В каком контексте объявить директиву таймаута — http, server или location?

Как установить nginx-c-module-design

1Через Skills CLI (Vercel)

npx skills add pproenca/dot-skills --skill nginx-c-module-design -a claude-code

2Вручную: положить файлы

~/.claude/skills/nginx-c-module-design/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/nginx-c-module-design/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора45

expo-react-native-coder Скилл с 50 правилами и шаблонами кода для разработки мобильных приложений на Expo и React Native. Пригодится при сборке экранов, навигации и авторизации. CX Codex +1 409установок react-testing-library Скилл с 43 правилами для тестов на React Testing Library. Помогает агенту писать и ревьюить тесты, которые проверяют поведение, а не внутренности компонента. CX Codex +1 402установок react-optimise Скилл для оптимизации React-приложений: React Compiler, размер бандла, рендеринг, загрузка данных, Core Web Vitals. Пригодится, когда приложение тормозит или бандл разросся. CX Codex +1 396установок rails-hotwire Скилл с правилами Hotwire для Rails: Turbo Drive, Frames, Streams, морфинг и контроллеры Stimulus. Пригодится при написании и рефакторинге интерактивных страниц. CX Codex +1 370установок nginx-c-modules Скилл подкладывает агенту 49 правил по разработке C-модулей nginx: работа с пулами памяти, жизненный цикл запроса, конфигурация. Пригодится, когда пишете или правите handler, filter или upstream. CX Codex +1 349установок dockerfile-optimise Скилл с 48 правилами из официальной документации Docker: кэш слоёв, multi-stage сборки, безопасность. Пригодится при написании и рефакторинге Dockerfile. CX Codex +1 344установок uniwind Скилл с 45+ правилами по Uniwind — Tailwind-биндингам для React Native. Пригодится при настройке проекта, темах и миграции с NativeWind. CX Codex +1 341установок ast-grep Скилл с набором правил по написанию и отладке ast-grep-запросов: поиск по AST, линтинг и переписывание кода. CX Codex +1 332установок

Похожие

nginx-config-optimizer patricio0312rev Скилл собирает конфиги Nginx: reverse proxy, балансировка, кэш, SSL и лимиты запросов. Пригодится, когда нужно поднять или переписать конфиг сервера. CX Codex +1 433установок nginx sanjeed5 Правило для Cursor задаёт, как писать конфиги NGINX: модульные include-файлы, современный TLS, кэш и лимиты. Пригодится, если агент правит nginx.conf в вашем проекте. ★ 3 579звёзд репо powershell-module-architect VoltAgent Community Субагент проектирует и рефакторит PowerShell-модули, профили и библиотеки автоматизации. Подойдёт для совместимости PowerShell 5.1 и 7+. 183установок golang-cli-cobra-viper Claude MPM Team Скилл для сборки консольных утилит на Go: структура команд через Cobra и конфигурация из флагов, переменных окружения и файлов через Viper. CX Codex +1 425установок microsoft-extensions-configuration Aaronontheweb Скилл для Claude и других ИИ-редакторов: подсказывает, как привязывать конфигурацию из appsettings.json к типизированным классам и проверять её на старте приложения. CX Codex +1 577установок rag-blueprint NVIDIA RAG Скилл помогает разворачивать, настраивать и диагностировать NVIDIA RAG Blueprint. Он пригодится для управления сервисами RAG в Docker, Kubernetes или библиотечном режиме. CX Codex +1 3 300установок

Рядом в теме «DevOps и инфраструктура»

Всё по теме «DevOps и инфраструктура» →

Вопросы о nginx-c-module-design

Как установить nginx-c-module-design в Claude?

Выполните npx skills add pproenca/dot-skills --skill nginx-c-module-design -a claude-code. После этого файл скилла окажется в ~/.claude/skills/nginx-c-module-design/SKILL.md.

Что делает nginx-c-module-design?

Даёт агенту набор правил по проектированию директив C-модулей nginx: что раскрывать в конфигурации, как называть директивы, какой контекст выбирать, какие ставить значения по умолчанию и как проверять ввод.

Чем этот скилл отличается от nginx-c-modules?

Здесь только решения по интерфейсу конфигурации — что и почему. Реализация на C, работа с пулами памяти, парсинг конфига и обработчики лежат в скилле nginx-c-modules.

Исходный текст

SKILL.md · MIT
---
name: nginx-c-module-design
description: nginx C module directive design guidelines for creating admin-friendly configuration interfaces. This skill should be used when designing nginx module directives — deciding what to expose vs hardcode, naming conventions, scope placement, default values, variable design, and validation patterns. Triggers on tasks involving ngx_command_t design, directive naming, configuration API design, nginx module public interface, or directive deprecation.
---

# nginx.org C Module Directive Design Best Practices

Comprehensive directive design guide for nginx C module authors, focused on creating clear, consistent, and admin-friendly configuration interfaces. Contains 46 rules across 8 categories, prioritized by impact to guide decisions about what to expose, how to name it, and how to evolve it safely.

## When to Apply

Reference these guidelines when:
- Deciding which values to expose as directives vs hardcode
- Naming new directives and choosing argument types
- Selecting scope placement (http, server, location)
- Setting default values and validation behavior
- Designing nginx variables for runtime data
- Deprecating or renaming existing directives

## Companion Skills

This skill focuses on **design decisions** (the "what" and "why"). For implementation mechanics, see:
- **nginx-c-modules** — C implementation: memory pools, request lifecycle, config parsing, handlers, filters
- **nginx-c-perf** — Performance: buffers, connections, locks, caching, timeouts
- **nginx-c-debug** — Debugging: crash diagnosis, GDB, tracing, sanitizers

## Rule Categories by Priority

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Exposure Decisions | CRITICAL | `expose-` |
| 2 | Naming Conventions | CRITICAL | `naming-` |
| 3 | Directive Types | HIGH | `type-` |
| 4 | Scope Design | HIGH | `scope-` |
| 5 | Default Values | MEDIUM-HIGH | `default-` |
| 6 | Validation & Error Messages | MEDIUM | `valid-` |
| 7 | Variable Design | MEDIUM | `var-` |
| 8 | Evolution & Compatibility | LOW-MEDIUM | `compat-` |

## Quick Reference

### 1. Exposure Decisions (CRITICAL)

- [`expose-configurable-vs-hardcode`](references/expose-configurable-vs-hardcode.md) - Framework for Configurable vs Hardcoded Values
- [`expose-escape-hatch`](references/expose-escape-hatch.md) - Provide Escape Hatches for Hardcoded Defaults
- [`expose-feature-gate`](references/expose-feature-gate.md) - Use Feature Gates for Optional Behavior
- [`expose-too-many-directives`](references/expose-too-many-directives.md) - Avoid Over-Configuration
- [`expose-path-resource`](references/expose-path-resource.md) - Always Expose External Resource Paths
- [`expose-security-surface`](references/expose-security-surface.md) - Audit Security Implications of Every Exposed Directive
- [`expose-environment-dependent`](references/expose-environment-dependent.md) - Expose Values That Vary by Deployment Environment

### 2. Naming Conventions (CRITICAL)

- [`naming-module-prefix`](references/naming-module-prefix.md) - Use a Consistent Module Prefix for All Directives
- [`naming-sub-prefix-groups`](references/naming-sub-prefix-groups.md) - Group Related Directives with Sub-Prefixes
- [`naming-noun-over-verb`](references/naming-noun-over-verb.md) - Prefer Noun Phrases for Directive Names
- [`naming-no-abbreviations`](references/naming-no-abbreviations.md) - Avoid Custom Abbreviations in Directive Names
- [`naming-cross-module-consistency`](references/naming-cross-module-consistency.md) - Mirror Nginx Core Suffix Patterns for Analogous Directives
- [`naming-lowercase-underscore`](references/naming-lowercase-underscore.md) - Use Lowercase with Underscores Only

### 3. Directive Types (HIGH)

- [`type-flag-for-toggles`](references/type-flag-for-toggles.md) - Use NGX_CONF_FLAG for Binary Toggles
- [`type-enum-over-string`](references/type-enum-over-string.md) - Use Enum Slot for Known Value Sets
- [`type-time-size-units`](references/type-time-size-units.md) - Use Time and Size Slot Functions for Time and Size Values
- [`type-take-n-fixed-args`](references/type-take-n-fixed-args.md) - Use TAKE1/TAKE2/TAKE12 for Fixed Argument Counts
- [`type-one-more-lists`](references/type-one-more-lists.md) - Use 1MORE for Variable-Length Value Lists
- [`type-avoid-block`](references/type-avoid-block.md) - Avoid Block Directives for Features
- [`type-custom-handler-complex`](references/type-custom-handler-complex.md) - Use Custom Handlers for Complex Directive Parsing

### 4. Scope Design (HIGH)

- [`scope-default-three-levels`](references/scope-default-three-levels.md) - Default to http + server + location Scope
- [`scope-http-only-shared-resources`](references/scope-http-only-shared-resources.md) - Restrict Shared Resource Directives to http Level Only
- [`scope-server-connection-level`](references/scope-server-connection-level.md) - Use http + server Scope for Connection-Level Settings
- [`scope-avoid-if-context`](references/scope-avoid-if-context.md) - Do Not Support the if Context Unless Fully Tested
- [`scope-location-path-operations`](references/scope-location-path-operations.md) - Restrict Path-Routing Directives to Location Context

### 5. Default Values (MEDIUM-HIGH)

- [`default-zero-config-safe`](references/default-zero-config-safe.md) - Ensure Zero-Config Produces Safe Behavior
- [`default-performance-optin`](references/default-performance-optin.md) - Make Performance Features Opt-In
- [`default-safety-on`](references/default-safety-on.md) - Default Security Settings to Restrictive Values
- [`default-generous-timeouts`](references/default-generous-timeouts.md) - Default Timeouts to Generous Values
- [`default-zero-unlimited`](references/default-zero-unlimited.md) - Use Zero to Mean Unlimited or Disabled for Numeric Limits
- [`default-platform-aware-buffers`](references/default-platform-aware-buffers.md) - Use Platform-Aware Buffer Size Defaults

### 6. Validation & Error Messages (MEDIUM)

- [`valid-parse-time-check`](references/valid-parse-time-check.md) - Validate All Directive Values at Config Parse Time
- [`valid-show-invalid-value`](references/valid-show-invalid-value.md) - Include the Invalid Value in Error Messages
- [`valid-suggest-range`](references/valid-suggest-range.md) - Include Valid Range or Format in Error Messages
- [`valid-conflict-detection`](references/valid-conflict-detection.md) - Detect Conflicting Directives at Merge Time
- [`valid-actionable-guidance`](references/valid-actionable-guidance.md) - Provide Actionable Guidance in Error Messages

### 7. Variable Design (MEDIUM)

- [`var-runtime-data-only`](references/var-runtime-data-only.md) - Expose Variables for Per-Request Runtime Data Only
- [`var-naming-convention`](references/var-naming-convention.md) - Name Variables with Module Prefix and Descriptive Suffix
- [`var-dynamic-prefix`](references/var-dynamic-prefix.md) - Use Dynamic Prefix Variables for Key-Value Data
- [`var-lazy-evaluation`](references/var-lazy-evaluation.md) - Leverage Lazy Evaluation for Expensive Variables
- [`var-in-directive-values`](references/var-in-directive-values.md) - Support Variables in Directive Values Only When Per-Request Variation Is Needed
- [`var-read-only-diagnostics`](references/var-read-only-diagnostics.md) - Expose Read-Only Diagnostic Variables for Observability

### 8. Evolution & Compatibility (LOW-MEDIUM)

- [`compat-deprecation-warning`](references/compat-deprecation-warning.md) - Log Warnings for Deprecated Directives Before Removal
- [`compat-alias-old-directive`](references/compat-alias-old-directive.md) - Keep Old Directive Name as an Alias
- [`compat-multi-version-window`](references/compat-multi-version-window.md) - Maintain a Multi-Version Deprecation Window
- [`compat-document-migration`](references/compat-document-migration.md) - Document Migration Path in Both Old and New Directive Documentation

## How to Use

Read individual reference files for detailed explanations and code examples:

- [Section definitions](references/_sections.md) - Category structure and impact levels
- [Rule template](assets/templates/_template.md) - Template for adding new rules

## Reference Files

| File | Description |
|------|-------------|
| [references/_sections.md](references/_sections.md) | Category definitions and ordering |
| [assets/templates/_template.md](assets/templates/_template.md) | Template for new rules |
| [metadata.json](metadata.json) | Version and reference information |

© pproenca · MIT · pproenca/dot-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой