ds-tiger-style-mode
Skill20 starsChanged 46 days agoMITView on GitHub
Activate Tiger Style enforcement for this session.
In this repository52 other files it gives its agents.
- ds-dev-skill-benchSkill
- ds-agent-reviewSkill
- ds-architecture-planSkill
- ds-arenaSkill
- ds-blast-radiusSkill
- ds-blueprintSkill
- ds-bug-reviewSkill
- ds-clarity-reviewSkill
- ds-code-quality-reviewSkill
- ds-comment-reviewSkill
- ds-data-modeSkill
- ds-data-reviewSkill
- ds-debugSkill
- ds-deslopSkill
- ds-doc-quality-reviewSkill
- ds-exploreSkill
- ds-git-modeSkill
- ds-go-reviewSkill
- ds-grill-meSkill
- ds-handoffSkill
- ds-howSkill
- ds-humanizeSkill
- ds-interaction-modeSkill
- ds-java-reviewSkill
- ds-notebook-reviewSkill
- ds-onboardingSkill
- ds-osvSkill
- ds-perf-planSkill
- ds-project-checkpointSkill
- ds-project-resumeSkill
- ds-python-reviewSkill
- ds-quality-gateSkill
- ds-reflectSkill
- ds-retroSkill
- ds-roadmapSkill
- ds-rust-reviewSkill
- ds-security-reviewSkill
- ds-semgrepSkill
- ds-shell-reviewSkill
- dsSkill
- ds-specSkill
- ds-step-modeSkill
- ds-tdd-modeSkill
- ds-test-modeSkill
- ds-test-quality-reviewSkill
- ds-tldtSkill
- ds-ts-reviewSkill
- ds-ui-modeSkill
- ds-ui-quality-reviewSkill
- ds-verify-thisSkill
- ds-zig-reviewSkill
- ds-zoom-outSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 16 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
Prefer pair assertions: enforce each property from at least two distinct code paths.
- Distinctive: line 25
No recursion unless termination is formally proven.
- Distinctive: line 26
Every loop has an explicit iteration bound.
- Distinctive: line 27
No goto. No setjmp/longjmp equivalents.
- Distinctive: line 31
No dynamic allocation after initialization.
- Distinctive: line 32
No unbounded data structures.
- Distinctive: line 36
Every error must be handled explicitly.
- Distinctive: line 37
Do not use exceptions for control flow.
- Distinctive: line 42
Treat each dependency as a liability: it adds surface area, upgrade cost, and failure modes.
- Distinctive: line 47
Before writing a non-trivial function, sketch the performance budget: network, disk, memory, compute.
- Distinctive: line 50
Avoid allocations in hot paths.
- Distinctive: line 53
Do not optimize without a measurement.
- Distinctive: line 67
No abbreviations except for loop indices and well-established domain terms.
- Distinctive: line 72
No global mutable state in hot paths.
- Distinctive: line 75
No comments that restate what the code does.
- Distinctive: line 82
If a fix cannot be done now, file a tracked issue with a deadline.
- Very specific: line 87
When flagging a violation during review, name the rule category, the file:line, what the code does, and the fix — enough for the author to …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Tiger Style is TigerBeetle's engineering philosophy. Source: https://tigerstyle.dev/ Full spec: https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/TIGER_STYLE.md
Apply these constraints to all code you write or review for the remainder of this session.
Priority Order
Safety > Performance > Developer Experience. Never trade safety for convenience. Never trade correctness for speed.
Safety Rules
Assertions
- Minimum 2 assertions per function: validate arguments on entry, validate return values and invariants before return.
- Assert at the boundary of every external call (OS, disk, network).
- Prefer pair assertions: enforce each property from at least two distinct code paths.
- Assertions are not error handling. They document invariants that MUST hold. If an assertion fails, it is a bug in your code, not the user's input.
Control Flow
- No recursion unless termination is formally proven. Use iterative equivalents.
- Every loop has an explicit iteration bound. Assert the bound is not exceeded.
- No goto. No setjmp/longjmp equivalents.
- Minimize branches. Flatten nesting. Early returns are acceptable.
Memory
- No dynamic allocation after initialization. Allocate everything upfront, statically.
- No unbounded data structures. Every queue, buffer, and collection has a fixed maximum capacity.
- Assert capacity before every append or push.
Error Handling
- Every error must be handled explicitly. No silent discard.
- Do not use exceptions for control flow.
- Propagate errors explicitly through return values, not side channels.
Dependencies
- Zero external dependencies unless strictly necessary. Justify each dependency.
- Treat each dependency as a liability: it adds surface area, upgrade cost, and failure modes.
Performance Rules
Design-time performance
- Before writing a non-trivial function, sketch the performance budget: network, disk, memory, compute.
- Batch operations to amortize per-call costs.
- Separate control plane (low-frequency, high-latency-tolerant) from data plane (high-frequency, latency-critical).
- Avoid allocations in hot paths. Prefer pre-allocated buffers.
Measurement
- Do not optimize without a measurement. State the baseline before the change.
- Profile at the system level, not the function level.
Code Structure Rules
Functions
- Maximum 70 lines per function. If longer, extract logical units.
- One purpose per function. If you cannot name it with a verb-noun pair, split it.
- Explicit is better than implicit. Pass parameters explicitly; do not rely on global or ambient state.
Naming
- snake_case for all identifiers.
- Include units in variable names:
timeout_ms,size_bytes,count_max. - Include qualifiers:
is_valid,has_error,was_committed. - No abbreviations except for loop indices and well-established domain terms.
- Big-endian naming: general concept before specific qualifier (
timestamp_created_atnotcreated_at_timestamp).
Scope
- Minimize variable scope. Declare variables as close to use as possible.
- No global mutable state in hot paths.
Comments
- No comments that restate what the code does. Code must be readable without them.
- Comments target humans and explain WHY, not WHAT — a hidden constraint, non-obvious invariant, or workaround. One line by default, only where the reason isn't clear from the code; never restate code or cite plan/ticket IDs. A comment past a few lines is rare and signals "this matters" — keep that signal meaningful.
- Assertions often replace comments: if you want to write "x must be positive here", assert it instead.
Technical Debt
- Zero tolerance. Fix problems during design and implementation.
- If a fix cannot be done now, file a tracked issue with a deadline. Do not leave TODO comments without a ticket.
- Shortcuts taken now cost exponentially more in production.
Reporting
When flagging a violation during review, name the rule category, the file:line, what the code does, and the fix — enough for the author to act.
Confirm activation with "Tiger Style active." Activating a mode only turns on this posture; it is not approval to begin work — continue with whatever the user already asked for, or wait for their next instruction.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

