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.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin pproenca-dot-skills-1This skill uses the workspace's default tool permissions.
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.
Applies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Builds DCF models with sensitivity analysis, Monte Carlo simulations, and scenario planning for investment valuation and risk assessment.
Calculates profitability (ROE, margins), liquidity (current ratio), leverage, efficiency, and valuation (P/E, EV/EBITDA) ratios from financial statements in CSV, JSON, text, or Excel for investment analysis.
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.
Reference these guidelines when:
This skill focuses on design decisions (the "what" and "why"). For implementation mechanics, see:
| 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- |
expose-configurable-vs-hardcode - Framework for Configurable vs Hardcoded Valuesexpose-escape-hatch - Provide Escape Hatches for Hardcoded Defaultsexpose-feature-gate - Use Feature Gates for Optional Behaviorexpose-too-many-directives - Avoid Over-Configurationexpose-path-resource - Always Expose External Resource Pathsexpose-security-surface - Audit Security Implications of Every Exposed Directiveexpose-environment-dependent - Expose Values That Vary by Deployment Environmentnaming-module-prefix - Use a Consistent Module Prefix for All Directivesnaming-sub-prefix-groups - Group Related Directives with Sub-Prefixesnaming-noun-over-verb - Prefer Noun Phrases for Directive Namesnaming-no-abbreviations - Avoid Custom Abbreviations in Directive Namesnaming-cross-module-consistency - Mirror Nginx Core Suffix Patterns for Analogous Directivesnaming-lowercase-underscore - Use Lowercase with Underscores Onlytype-flag-for-toggles - Use NGX_CONF_FLAG for Binary Togglestype-enum-over-string - Use Enum Slot for Known Value Setstype-time-size-units - Use Time and Size Slot Functions for Time and Size Valuestype-take-n-fixed-args - Use TAKE1/TAKE2/TAKE12 for Fixed Argument Countstype-one-more-lists - Use 1MORE for Variable-Length Value Liststype-avoid-block - Avoid Block Directives for Featurestype-custom-handler-complex - Use Custom Handlers for Complex Directive Parsingscope-default-three-levels - Default to http + server + location Scopescope-http-only-shared-resources - Restrict Shared Resource Directives to http Level Onlyscope-server-connection-level - Use http + server Scope for Connection-Level Settingsscope-avoid-if-context - Do Not Support the if Context Unless Fully Testedscope-location-path-operations - Restrict Path-Routing Directives to Location Contextdefault-zero-config-safe - Ensure Zero-Config Produces Safe Behaviordefault-performance-optin - Make Performance Features Opt-Indefault-safety-on - Default Security Settings to Restrictive Valuesdefault-generous-timeouts - Default Timeouts to Generous Valuesdefault-zero-unlimited - Use Zero to Mean Unlimited or Disabled for Numeric Limitsdefault-platform-aware-buffers - Use Platform-Aware Buffer Size Defaultsvalid-parse-time-check - Validate All Directive Values at Config Parse Timevalid-show-invalid-value - Include the Invalid Value in Error Messagesvalid-suggest-range - Include Valid Range or Format in Error Messagesvalid-conflict-detection - Detect Conflicting Directives at Merge Timevalid-actionable-guidance - Provide Actionable Guidance in Error Messagesvar-runtime-data-only - Expose Variables for Per-Request Runtime Data Onlyvar-naming-convention - Name Variables with Module Prefix and Descriptive Suffixvar-dynamic-prefix - Use Dynamic Prefix Variables for Key-Value Datavar-lazy-evaluation - Leverage Lazy Evaluation for Expensive Variablesvar-in-directive-values - Support Variables in Directive Values Only When Per-Request Variation Is Neededvar-read-only-diagnostics - Expose Read-Only Diagnostic Variables for Observabilitycompat-deprecation-warning - Log Warnings for Deprecated Directives Before Removalcompat-alias-old-directive - Keep Old Directive Name as an Aliascompat-multi-version-window - Maintain a Multi-Version Deprecation Windowcompat-document-migration - Document Migration Path in Both Old and New Directive DocumentationRead individual reference files for detailed explanations and code examples:
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |