zig
SKILL.md
Critical Patterns
Error Handling (REQUIRED)
// ✅ ALWAYS: Use error unions
fn readFile(path: []const u8) ![]u8 {
const file = try std.fs.cwd().openFile(path, .{});
defer file.close();
return try file.readToEndAlloc(allocator, max_size);
}
// Usage with catch
const content = readFile("config.txt") catch |err| {
std.log.err("Failed: {}", .{err});
return err;
};
Memory Management (REQUIRED)
// ✅ ALWAYS: Use allocators explicitly
const allocator = std.heap.page_allocator;
var list = std.ArrayList(u8).init(allocator);
defer list.deinit();
try list.append(42);
Comptime (REQUIRED)
// ✅ Use comptime for compile-time computation
fn Vec(comptime T: type, comptime N: usize) type {
return struct {
data: [N]T,
pub fn init() @This() {
return .{ .data = undefined };
}
};
}
const Vec3f = Vec(f32, 3);
Decision Tree
Need error handling? → Use error unions with try/catch
Need cleanup? → Use defer
Need compile-time? → Use comptime
Need optional value? → Use ?T (optional type)
Need C interop? → Use @cImport
Commands
zig build # Build project
zig run src/main.zig # Build and run
zig test src/main.zig # Run tests
zig fmt src/ # Format code
Resources
- Best Practices: best-practices.md
- Comptime: comptime.md
- Memory: memory.md
Weekly Installs
4
Repository
poletron/custom-rulesFirst Seen
Jan 26, 2026
Security Audits
Installed on
github-copilot4
cline3
gemini-cli3
codex3
continue3
cursor3