vivshaw/loam-code
Portable coding standards and language-specific patterns for coding agents
Use when writing or refactoring code. Includes context-dependent sub-skills to empower different coding styles across languages and runtimes.
Use when invalid data causes failures deep in execution - validates at every layer data passes through to make bugs structurally impossible rather than temporarily fixed
Use when writing, reviewing, or modifying Go code - covers naming, error handling and wrapping, doc comments, declarations and scope, API and interface design, concurrency and goroutine lifetimes, and table-driven testing
Use when writing, reviewing, or modifying Python code - covers the Ruff/Mypy/uv toolchain, naming, type annotations, idioms and comprehensions, errors and exceptions, dataclasses, imports and module layout, async, and pytest
Use when writing, reviewing, or modifying Rust code - covers error handling with thiserror+miette, type system patterns, async and serde conventions, testing crates, dependency pinning, and module organization
Use when writing TypeScript code, reviewing TS implementations, or making decisions about type declarations, function styles, or naming conventions - comprehensive house style covering type vs interface rules, function declarations, immutability patterns, type safety enforcement, and the static analysis toolchain (tsconfig, Oxlint, Oxfmt, knip, dpdm)
Use when writing database access code, creating schemas, or managing transactions with PostgreSQL - enforces transaction safety with TX_ naming, read-write separation, type safety for UUIDs/JSONB, and snake_case conventions to prevent data corruption and type errors
Use when writing or modifying React components, planning React features, or working with .jsx/.tsx files - provides modern React patterns with TypeScript, hooks usage, component composition, and common pitfalls to avoid
Use when writing tests for serialization, validation, normalization, or pure functions - provides property catalog, pattern detection, and library reference for property-based testing
Use every time you write or edit code comments, or perform code review
Use when committing changes, splitting work into commits, or writing commit messages - covers atomic commits, bisect-able history, separating concerns, and message style
Use when writing or reviewing tests - covers test philosophy, condition-based waiting, mocking strategy, and test isolation