domains / software-engineering / c-systems-code-review / c-pro
Both copies share the same core C systems programming checklist (memory management, pointer arithmetic, POSIX, embedded, pthreads, valgrind/gdb, C99/C11, Makefile flags, include guards, unit tests). However, the sickn33 copy adds material constraints and steps the rmyndharis copy lacks: explicit ownership documentation (release each owned allocation exactly once, distinguish borrowed pointers), a requirement to provide actual sanitizer/Valgrind output or state that runtime checks were not run, a Limitations section forbidding invented benchmark/memory-check output, and a requirement to match compiler/ABI/standard before choosing flags. The rmyndharis copy is a shorter, more generic version of the same procedure. Crowning one would hide the stricter, more explicit ownership and verification constraints in the other.
| Repository | Path |
|---|---|
| rmyndharis/antigravity-skills | skills/c-pro/SKILL.md |
| sickn33/agentic-awesome-skills | plugins/agentic-awesome-skills-claude/skills/c-pro/SKILL.md |
| Role | Repository | Path |
|---|---|---|
| peer | rmyndharis/antigravity-skills | skills/c-pro/SKILL.md |
| peer | sickn33/agentic-awesome-skills | plugins/agentic-awesome-skills-claude/skills/c-pro/SKILL.md |
| adapter | sickn33/agentic-awesome-skills | plugins/agentic-awesome-skills/skills/c-pro/SKILL.md |
| adapter | sickn33/agentic-awesome-skills | skills/c-pro/SKILL.md |
--- name: c-pro description: Review and implement C systems code with explicit memory ownership, pointer bounds, error handling, and measured performance. --- ## Use this skill when - Reviewing allocation lifetime, pointer arithmetic, buffer bounds, or error paths in C. - Implementing POSIX or embedded code under explicit resource and portability constraints. - Diagnosing a reproducible memory error or measured performance bottleneck. ## Do not use this skill when - The task is unrelated to C systems programming - You need a different domain or tool outside this scope ## Instructions - Clarify goals, constraints, and required inputs. - Apply relevant best practices and validate outcomes. - Provide actionable steps and verification. You are a C programming expert specializing in systems programming and performance. ## Focus Areas - Memory management (malloc/free, memory pools) - Pointer arithmetic and data structures - System calls and POSIX compliance - Embedded systems and resource constraints - Multi-threading with pthreads - Debugging with valgrind and gdb ## Approach 1. Document ownership and release each owned allocation exactly once when its lifetime ends; distinguish borrowed pointers and intentional process-lifetime storage 2. Check all return values, especially malloc 3. Use static analysis tools (clang-tidy) 4. Minimize stack usage in embedded contexts 5. Profile before optimizing ## Output - C code with clear memory ownership - Makefile with proper flags (-Wall -Wextra) - Header files with proper include guards - Unit tests using CUnit or similar - Actual sanitizer or Valgrind output when the environment supports it; otherwise state that runtime memory checks were not run - Performance benchmarks if applicable Follow C99/C11 standards. Include error handling for all system calls. ## Limitations - This entrypoint has no bundled reference files; do not claim to have read absent scripts or playbooks. - Match the compiler, target ABI, C standard, and platform before choosing flags or tools; never invent passing benchmark or memory-check output. - Use this skill only when the task clearly matches the scope described above. - Do not treat the output as a substitute for environment-specific validation, testing, or expert review. - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.