Skillshub nginx-c-module-design

nginx.org C Module Directive Design Best Practices

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/pproenca/dot-skills/nginx-c-module-design" ~/.claude/skills/comeonoliver-skillshub-nginx-c-module-design && rm -rf "$T"
manifest: skills/pproenca/dot-skills/nginx-c-module-design/SKILL.md
source content

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

PriorityCategoryImpactPrefix
1Exposure DecisionsCRITICAL
expose-
2Naming ConventionsCRITICAL
naming-
3Directive TypesHIGH
type-
4Scope DesignHIGH
scope-
5Default ValuesMEDIUM-HIGH
default-
6Validation & Error MessagesMEDIUM
valid-
7Variable DesignMEDIUM
var-
8Evolution & CompatibilityLOW-MEDIUM
compat-

Quick Reference

1. Exposure Decisions (CRITICAL)

2. Naming Conventions (CRITICAL)

3. Directive Types (HIGH)

4. Scope Design (HIGH)

5. Default Values (MEDIUM-HIGH)

6. Validation & Error Messages (MEDIUM)

7. Variable Design (MEDIUM)

8. Evolution & Compatibility (LOW-MEDIUM)

How to Use

Read individual reference files for detailed explanations and code examples:

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information