tiger-patterns

Coding rules for Zig based on Tiger Style, a strict approach that emphasizes explicit checks, bounded work, predictable memory use, and consistent naming.

In plain words
What is it for?
Writing or reviewing Zig code with assertions, bounded loops, fixed post-startup memory allocation, required error handling, naming rules, and formatting limits.
Why use it?
They make code easier to review and help avoid unbounded loops, unchecked errors, unexpected allocation, and inconsistent structure.

Skill for Claude CodeCodex

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 skills/kelp/agent-plugins/tiger-patterns
Any agent
npx skills add kelp/agent-plugins --skill tiger-patterns
Clone the repo
git clone --depth 1 https://github.com/kelp/agent-plugins

Made for: Claude Code, Codex.

Per session 67 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 854 The whole file, excluding the scripts and references it only reads on demand.
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.00067 $0.00854
Opus 5 $0.00034 $0.00427
Sonnet 5 $0.00013 $0.00171
Haiku 4.5 $0.00007 $0.00085

Measured 2d ago against content hash 7515df724bb4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

tiger-patterns 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 2d ago.

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.

plugins/tiger-style/skills/tiger-patterns/SKILL.md · 125 lines

How it starts

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

Tiger Style -- Quick Reference

This project follows TigerBeetle's Tiger Style. For full rationale and worked examples, read ${CLAUDE_PLUGIN_ROOT}/docs/TIGER_STYLE_REFERENCE.md.

Safety

Assertions -- minimum two per function on average. Assert arguments, return values, pre/postconditions, invariants. Pair assertions across code paths. Assert positive space (what you expect) AND negative space (what you don't). Split compound asserts:

// WRONG
assert(a and b);
// RIGHT
assert(a);
assert(b);

Bounded loops, no recursion -- every loop has an upper bound; convert recursive algorithms to iterative. For genuinely non-terminating loops, assert:

while (true) {
    assert(self.running);
    // ...
}

Static memory -- allocate everything at init from a sized arena. After init, the allocator is read-only.

Errors -- handle every one. catch {} requires a comment explaining why dropping is safe. Brace multi-line if bodies.

Naming

  • snake_case for fn / var / file. PascalCase for types.
  • No abbreviations (except i, j, k for sort/matrix indices).
  • Acronyms keep caps: VSRState, not VsrState.
  • Units as suffixes, descending significance: latency_ms_max, bytes_per_sector.
  • Helper called by one fn: prefix with caller name: read_sector_callback().
  • Callbacks go last in parameter lists.
  • Use options: struct when args could be mixed up:
pub fn open(path: []const u8, options: struct {
    read: bool = true,
    write: bool = false,
}) !File { ... }

Function Shape

  • Hard limit: 70 lines per function.
  • Inverse hourglass: few params, simple return, meaty middle.
  • Centralize control flow -- don't duplicate branching in helpers.
  • Push ifs up, push fors down.

Variables and Aliasing

  • Smallest possible scope.
  • Minimize variables in scope.
  • Don't take aliases to variables.
  • Args > 16 bytes that shouldn't copy: pass *const T.
  • Group alloc + defer with surrounding newlines.

Read the full file on GitHub · 125 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. 2d ago First seen · 125 lines · 67 tokens per session scan A 7515df724bb4

Subscribe to this mod's changes

tiger-patterns is a skill published in the GitHub repository kelp/agent-plugins (2 stars, last pushed 9d ago), licensed MIT. It adds 67 tokens to every session and 854 once invoked, about $0.0003 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-31.

Related

Other skills, from other repositories

strategy-red-team

Red-team a PRD, roadmap, or strategy by attacking its load-bearing assumptions before reality does. Steelmans then attacks each claim, ranks failure modes by impact × likelihood × cheapness-to-test, and returns the cheapest test and kill criteria for each. Use when stress-testing a plan, pressure-testing a strategy…

phuryn/pm-skills · 78 tokens

retro

Facilitate a structured sprint retrospective — what went well, what didn't, and prioritized action items with owners and deadlines. Use when running a retrospective, reflecting on a sprint, creating action items from team feedback, or learning how to run effective retros.

phuryn/pm-skills · 52 tokens

release-notes

Generate user-facing release notes from tickets, PRDs, or changelogs. Creates clear, engaging summaries organized by category (new features, improvements, fixes). Use when writing release notes, creating changelogs, announcing product updates, or summarizing what shipped.

phuryn/pm-skills · 57 tokens

competitive-battlecard

Create sales-ready competitive battlecards comparing your product against a specific competitor — positioning, feature comparison, objection handling, and win/loss patterns. Use when preparing sales teams, creating competitive materials, or responding to 'why not competitor X?'.

phuryn/pm-skills · 52 tokens

stakeholder-map

Build a stakeholder map using a power/interest grid, identify communication strategies per quadrant, and generate a communication plan. Use when managing stakeholders, preparing for a launch, aligning cross-functional teams, or planning stakeholder engagement.

phuryn/pm-skills · 47 tokens

ms

Skill "ms" from boshu2/agentops, covering ms — metaskill search/load engine, constraints, quick start, consume — mcp-primary (mcpms) and write / admin — cli-only (verified landing in the live db).

boshu2/agentops · 65 tokens