shell-engineering
Shell Engineering
Comprehensive guidelines for writing production-quality shell scripts based on Google's Shell Style Guide.
When to Use Shell
- Small utilities and simple wrapper scripts
- Scripts calling other tools with straightforward logic
- Rewrite in a structured language (Go, Python) when exceeding ~100 lines or using complex control flow
Shell Choice
- Bash is the only permitted shell for executables
- Start scripts with
#!/bin/bashwith minimal flags - Libraries must have
.shextension and not be executable - SUID/SGID are forbidden on shell scripts
File Structure
More from gonzaloserrano/dotfiles
python-engineering
Comprehensive Python engineering guidelines for writing production-quality Python code. This skill should be used when writing Python code, performing Python code reviews, working with Python tools (uv, ruff, mypy, pytest), or answering questions about Python best practices and patterns. Applies to CLI tools, AI agents (langgraph), and general Python development.
12typescript-engineering
Comprehensive TypeScript engineering guidelines based on Google's TypeScript Style Guide. This skill should be used when writing TypeScript code, performing TypeScript code reviews, or answering questions about TypeScript best practices. Applies to .ts and .tsx files, and TypeScript configuration.
11go-engineering
Comprehensive Go engineering guidelines for writing production-quality Go code. This skill should be used when writing Go code, performing Go code reviews, working with Go tools (gopls, golangci-lint, gofmt), or answering questions about Go best practices and patterns. Applies to all Go programming tasks including implementation, refactoring, testing, and debugging.
6go-code-review
Go code review skill synthesized from 4,100+ PR review comments spanning 4.5 years from the tetrateio/tetrate repository. Use this skill when reviewing Go code, providing code review feedback, or understanding common review patterns. Contains patterns for error handling, nesting reduction, thread safety, testing, naming, interface design, and more.
5