Guidelines
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
TigerStyle Zig coding guidelines — distilled from TigerBeetle's production codebase.
$ npx skills add jiacai2050/zigcli --skill zig-tiger-style -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jiacai2050/zigcli zig-tiger-style --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jiacai2050/zigcli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/zig-tiger-style .claude/skills/zig-tiger-style && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "zig-tiger-style" agent skill from https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-style into .claude/skills/zig-tiger-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zig-tiger-style", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-styleType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jiacai2050/zigcli --skill zig-tiger-style -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jiacai2050/zigcli zig-tiger-style --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jiacai2050/zigcli.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/zig-tiger-style .agents/skills/zig-tiger-style && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "zig-tiger-style" agent skill from https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-style into .agents/skills/zig-tiger-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zig-tiger-style", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jiacai2050/zigcli --skill zig-tiger-style -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jiacai2050/zigcli zig-tiger-style --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jiacai2050/zigcli.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/zig-tiger-style .cursor/skills/zig-tiger-style && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "zig-tiger-style" agent skill from https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-style into .cursor/skills/zig-tiger-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zig-tiger-style", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jiacai2050/zigcli.git --path .agents/skills/zig-tiger-style--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jiacai2050/zigcli --skill zig-tiger-style -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jiacai2050/zigcli zig-tiger-style --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jiacai2050/zigcli.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/zig-tiger-style .gemini/skills/zig-tiger-style && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "zig-tiger-style" agent skill from https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-style into .gemini/skills/zig-tiger-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zig-tiger-style", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jiacai2050/zigcli zig-tiger-styleInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jiacai2050/zigcli --skill zig-tiger-style -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jiacai2050/zigcli.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/zig-tiger-style .github/skills/zig-tiger-style && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "zig-tiger-style" agent skill from https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-style into .github/skills/zig-tiger-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zig-tiger-style", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jiacai2050/zigcli --skill zig-tiger-style -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jiacai2050/zigcli zig-tiger-style --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jiacai2050/zigcli.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/zig-tiger-style .opencode/skills/zig-tiger-style && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "zig-tiger-style" agent skill from https://github.com/jiacai2050/zigcli/tree/main/.agents/skills/zig-tiger-style into .opencode/skills/zig-tiger-style/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zig-tiger-style", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
zig-tiger-styleTigerStyle Zig coding guidelines — distilled from TigerBeetle's production codebase.
Zig Tiger Style is an agent skill from jiacai2050/zigcli. TigerStyle Zig coding guidelines — distilled from TigerBeetle's production codebase. Use this skill whenever the user is writing, reviewing, or refactoring Zig code, asking about Zig idioms, best practices, assertions, memory layout, naming conventions, or code style. Also trigger when the user asks how to structure Zig structs, handle errors, write safe loops, or design Zig APIs. Even if the user just says "write me some Zig" or pastes Zig code for review, consult this skill first.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Refactoring. The repository describes itself as: A toolkit for building command lines programs in Zig. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ae972e7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are zig).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.commatklad.github.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Zig Tiger Style loads about 2.4k tokens when it runs. Until then it costs about 126 tokens; SKILL.md has 981 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jiacai2050/zigcli at commit ae972e7, republished under its MIT licence (© jiacai2050). 981 words, ~2,388 tokens.
.claude/skills/zig-tiger-style/SKILL.md (or your agent's skills folder).Distilled from TigerBeetle's TIGER_STYLE.md. Design goal priority: Safety > Performance > Developer Experience.
Use only simple, explicit control flow. No recursion unless provably bounded.
Split compound conditions into nested if/else branches — ensure both the positive and negative
spaces are handled or asserted.
State invariants positively:
// preferred
if (index < length) { ... } else { ... }
// avoid
if (index >= length) { ... }Every if branch should prompt the question: does a corresponding else also need to be handled?
Assertions detect programmer errors — not expected runtime errors. The only correct response to corrupt state is to crash. Assertions downgrade catastrophic correctness bugs into liveness bugs.
A function must not operate blindly on data it has not checked; assert arguments at the entry point.
Pair assertions: for any property you want to enforce, add assertions on at least two different code paths (e.g. just before writing to disk, and immediately after reading back).
Split compound assertions:
// preferred
assert(a);
assert(b);
// avoid
assert(a and b);Use a single-line if to assert an implication: if (a) assert(b);
Assert relationships between compile-time constants to verify design integrity before the program even runs:
comptime assert(@sizeOf(Header) == 128);
comptime assert(config.pipeline_max <= config.batch_max);Assert both the positive space (what you expect to be true) and the negative space (what you expect to be false) — the boundary between valid and invalid is where bugs hide.
Initialize large structs in-place via an out pointer to eliminate intermediate copies and guarantee pointer stability:
// preferred
fn init(target: *LargeStruct) !void {
target.* = .{ ... };
}
// avoid
fn init() !LargeStruct {
return LargeStruct{ ... };
}_.u32, i64, etc.), avoid architecture-dependent usize when possibleif/switch in the "parent" function; extract pure logic into helpers.ifs up and fors down".Solve performance in the design phase — the biggest wins (1000x) come from architecture, not post-hoc profiling.
Do back-of-the-envelope sketches across the four resources (network, disk, memory, CPU) and their two characteristics (bandwidth, latency).
Optimize slowest resources first: network → disk → memory → CPU, weighted by access frequency.
Batching is the primary tool: amortize network, disk, memory, and CPU costs.
Distinguish control plane from data plane; batching lets both coexist safely and fast.
Extract hot-path loops into standalone functions with primitive arguments (no self) so the
compiler can cache fields in registers and humans can spot redundant work:
// hot loop extracted, no self
fn process_batch(items: []const Item, result: []Output) void { ... }Be explicit. Do not rely on the compiler to do the right thing.
Always pass options explicitly at library call sites — never rely on defaults:
// preferred
@prefetch(a, .{ .cache = .data, .rw = .read, .locality = 3 });
// avoid
@prefetch(a, .{});In general, functions are camelCase, types are PascalCase, variables are lowercase_with_underscores.
One exception to those rules is functions that return types. They are PascalCase:
pub fn ArrayList(comptime T: type) type {
return ArrayListAligned(T, null);
}Normally, file names are lowercase_with_underscore. However, files that expose a type directly should be PascalCase.
Do not abbreviate variable names (except primitive integer loop indices in sorts/matrices).
Acronyms are fully capitalized: VSRState, not VsrState.
Append units and qualifiers to names, ordered by descending significance, so the most important word comes first:
latency_ms_max // not max_latency_ms
latency_ms_min // aligns nicely with the above
message_size_maxChoose related names with the same character count so they align visually:
source // same length as target
target
source_offset
target_offsetName helper/callback functions with the caller's name as a prefix:
read_sector() → read_sector_callback()
Callbacks go last in the parameter list (mirrors invocation order).
Infuse names with meaning: gpa: Allocator and arena: Allocator are far more informative
than allocator: Allocator.
Functions that take two u64 arguments must use a named options: struct parameter to prevent argument confusion.
// Struct order: fields → type definitions → methods
time: Time,
process_id: ProcessID,
const ProcessID = struct { cluster: u128, replica: u8 };
const Tracer = @This();
pub fn init(gpa: std.mem.Allocator, time: Time) !Tracer { ... }main function goes at the top of the file — readers see the most important thing first.//, capital letter, ending with a period (or colon
when introducing something). Inline end-of-line comments may be phrases without punctuation.Always run zig fmt.
Use 4 spaces of indentation (more visually obvious than 2 at a distance).
Hard limit of 100 columns per line, no exceptions. Add a trailing comma and let zig fmt
handle the wrapping.
Always add braces to if statements unless the whole thing fits on one line:
// single-line ok without braces
if (ok) return;
// multi-line always needs braces
if (condition) {
do_something();
}@divExact(a, b) // asserts no remainder
@divFloor(a, b) // rounds toward negative infinity
div_ceil(a, b) // rounds toward positive infinityindex (0-based), count (1-based), and size (= count × unit) are distinct types with
clear conversion rules:
index → count: add 1count → size: multiply by the unit sizescripts/*.zig instead of *.sh — cross-platform, type-safe, more reliable.Before submitting, verify:
zig fmt has been run_ discards)if/elsecomptime assert© jiacai2050, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/zig-tiger-style of jiacai2050/zigcli.
Open the folder on GitHubat commit ae972e7
Zig Tiger Style next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Zig Tiger Style this skilljiacai2050/zigcli | 134 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Guidelinesakash-network/node | 1.1k | 20 repos | ~577 | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Component Refactoringlangflow-ai/langflow | 155k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Ponytail Lazy Developer ModeDietrichGebert/ponytail | 160k | 1 repos | ~873 | Automated safety check: Pass | MIT | |
| ast-grep Structural Searchcode-yeongyu/oh-my-openagent | 70k | — | ~3.3k | Automated safety check: Pass | MIT |
akash-network/node
Behavioral guidelines to reduce common LLM coding mistakes. An agent skill from akash-network/node.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
langflow-ai/langflow
Refactor high-complexity React components in Langflow frontend.
DietrichGebert/ponytail
Makes the agent pick the laziest solution that works: skip unneeded work, reuse what exists, prefer the standard library and platform features, and keep diffs small.
code-yeongyu/oh-my-openagent
Searches and rewrites code by syntax-tree shape across 25 languages with ast-grep, for codemods, structural queries and YAML lint rules, using a Python wrapper script.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
Categories
TigerStyle Zig coding guidelines — distilled from TigerBeetle's production codebase. Zig Tiger Style is an agent skill from jiacai2050/zigcli. TigerStyle Zig coding guidelines — distilled from TigerBeetle's production codebase.
Zig Tiger Style fits situations like: the user is writing; refactoring Zig code; asking about Zig idioms; naming conventions.
Run `npx skills add jiacai2050/zigcli --skill zig-tiger-style -a claude-code`. Or copy the skill folder (.agents/skills/zig-tiger-style in jiacai2050/zigcli) into .claude/skills/zig-tiger-style in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jiacai2050/zigcli --skill zig-tiger-style -a codex`. Or copy the skill folder (.agents/skills/zig-tiger-style in jiacai2050/zigcli) into .agents/skills/zig-tiger-style in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jiacai2050/zigcli --skill zig-tiger-style -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zig-tiger-style, .gemini/skills/zig-tiger-style, .github/skills/zig-tiger-style and .opencode/skills/zig-tiger-style in your project.
SKILL.md names no scripts, command-line tools or credentials: Zig Tiger Style is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: github.com and matklad.github.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Zig Tiger Style is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Zig Tiger Style: Guidelines (akash-network/node, 1.1k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars), Component Refactoring (langflow-ai/langflow, 155k stars) and Ponytail Lazy Developer Mode (DietrichGebert/ponytail, 160k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jiacai2050 (a GitHub user) maintains it in jiacai2050/zigcli, which has 134 GitHub stars. The repository was last updated on October 9, 2026.
Source: jiacai2050/zigcli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.