c-code-style AGENTS.md

Repository instructions for applying a specific C programming style when an AI agent writes, edits, or reviews C source and header files.

In plain words
What is it for?
Use it to guide C code changes, match the repository’s reference files, run clang-format, and check style rules that automated formatting cannot enforce.
Why use it?
It gives the agent one authoritative rule set and separates formatting that tools can fix from design and naming rules the writer must follow.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/majerle/c-code-style/agents-md
Clone the repo
git clone --depth 1 https://github.com/MaJerle/c-code-style

Made for: Codex, OpenCode.

Per session 879 This file is loaded in full into every session.
When invoked 879 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00879 $0.00879
Opus 5 $0.00439 $0.00439
Sonnet 5 $0.00176 $0.00176
Haiku 4.5 $0.00088 $0.00088

Measured yesterday against content hash 7e11bbca34bc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

c-code-style AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 77 lines

How it starts

The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Agent instructions

This repository defines a C coding style. If you (an AI coding agent) are writing, editing, or reviewing .c/.h files in a project that adopts this style guide, follow this file.

Source of truth

Read CODING_RULES.md before writing code — it is the authoritative, complete rule set. Do not assume "typical" C conventions; several rules here are deliberately non-default (e.g. (void) required on zero-parameter functions, at most 2 return points per function, stdbool.h avoided, 3-character minimum name length). template.c and template.h are worked, clang-format-verified reference examples — match their formatting and doxygen alignment exactly.

What the formatter fixes for you

clang-format (this repo ships .clang-format) handles indentation, spacing, brace placement, pointer-asterisk alignment, function-prototype alignment, and trailing commas in struct initializers. Don't hand-format these — write reasonably and run the formatter afterward (see below).

What you must apply yourself while writing

A formatter cannot infer these; apply them as you write, not after:

  • Names (variables, parameters, struct/enum members): lowercase, underscore word-separated, at least 3 characters. No __/_ prefix (reserved). static module-private functions get a prv_ prefix.
  • stdint.h types except char/float/double; avoid stdbool.h (use 1/0).
  • Don't rely on static initializers for global/static variables needing a real startup value in embedded contexts — add a module init() function.
  • All locals declared at the top of a block, grouped by type, ordered: structs/enums (and pointers) → integers (widest unsigned first) → floating point.
  • const-correct pointers/parameters; generic pointers are void*, cast internally, never cast away a void* return value.
  • Every zero-parameter function uses (void), never empty ().
  • At most 2 return points per function: one early return for parameter/argument validation, one at the end. No return in the middle — use a return-value variable instead.
  • Check pointers against NULL before dereferencing (unless provably non-NULL by construction). Set a pointer to NULL immediately after free().
  • Boolean-treated variables: if (x) / if (!x), never == 1/== 0. Counter/value variables: > 0 / == 0, never bare if (x).
  • Doxygen on every function (including static): \brief, \param[in] / \param[out] per parameter, \return if non-void. Written at the function's definition (the .c file body), never duplicated at the header declaration. Description text aligned to column 22 (match template.c). Backtick any identifier/constant/literal in prose.

Read the full file on GitHub · 77 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 77 lines · 879 tokens per session scan A 7e11bbca34bc

Subscribe to this mod's changes

c-code-style AGENTS.md is an instructions file published in the GitHub repository MaJerle/c-code-style (1,340 stars, last pushed 27d ago), licensed MIT. It adds 879 tokens to every session, about $0.0044 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.