From xonovex-skill-c99-opinionated
Use when editing systems or embedded C99 code in projects that follow the opinionated caller-owns-memory, data-oriented style. An overlay on c99-guide: covers only the opinionated decisions, not the generic C99 idioms it shares with c99-guide. Triggers on `.c`/`.h` files in systems/embedded/DOD projects and on prompts about caller-owns-memory, SoA/SIMD variants, alignment, index/handle references, caller-owned string views/builders, physical design, plugin architecture, strict file naming, even when the user doesn't say 'opinionated'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/xonovex-skill-c99-opinionated:c99-opinionated-guideThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **Overlay on c99-guide** - This guide carries only the opinionated decisions. For the shared C99 idioms — `const`-correctness, designated initializers (ZII), `inline`-over-macros, compound literals, fixed-width types, value-oriented APIs, and baseline error/return patterns — follow **c99-guide**
SOURCES.mdeval-queries.jsonevals.jsonreferences/alignment.mdreferences/build-warnings-policy.mdreferences/caller-owns-memory.mdreferences/composability.mdreferences/cross-language-api.mdreferences/file-naming.mdreferences/handles-and-indices.mdreferences/hot-reload.mdreferences/implementation-variants.mdreferences/physical-design.mdreferences/plugin-architecture.mdreferences/safety-validations.mdreferences/string-handling.mdreferences/testing-patterns.mdconst-correctness, designated initializers (ZII), inline-over-macros, compound literals, fixed-width types, value-oriented APIs, and baseline error/return patterns — follow c99-guide-Werror for correctness but relax the unused-symbol family for libraries, keep an ASan/UBSan debug build, run static analysis, see references/build-warnings-policy.md_* suffixes + parity tests; layout rationale in data-oriented-design-guide, see references/implementation-variants.md_Alignas/aligned allocation; the why is in data-oriented-design-guide (SIMD) and lock-free-guide (false sharing), see references/alignment.md*_type.h, *_impl.h, *_aos.h, *_soa.h, *_simde.h, see references/file-naming.mdstrlen/strtok terminator rescans, see references/string-handling.md-Werror on the unused-symbol family is wrong: header reflection/mapping tables and interface-mandated parameters are surface a TU may not reference — relax -Wno-unused-{parameter,variable,but-set-variable,function}, keep -Wunused-value and correctness warnings-std=c99 usually keeps the GNU dialect — set C_EXTENSIONS OFF, then _XOPEN_SOURCE=700 or POSIX calls become implicit-declaration errorsstatic inline in a header gives each TU its own internal-linkage copy (safe, but bloats if the compiler never inlines it); a plain inline definition has external linkage and needs exactly one TU to emit the external definition — don't mix the two storage classes for the same functionunsigned overflow is defined; signed overflow is undefined behavior — never rely on signed wrapalignof/alignas interact subtly with malloc (always returns max-align) vs custom allocatorsstrlen/strcmp/strtok rescan to the terminator on every call, so a loop over them is silently O(n²) (the GTA Online JSON-load case) — carry length in a view and never rescanGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Resolves in-progress git merge or rebase conflicts by analyzing history, understanding intent, and preserving both changes where possible. Runs automated checks after resolution.
npx claudepluginhub xonovex/platform --plugin xonovex-skill-c99-opinionated