A personal collection of opinionated Claude Code skills for my projects. Each skill encodes how I want AI assistance to behave in a specific technical context — the conventions, patterns, and rules I've settled on so I don't have to repeat them in every project.
Skills are loaded by referencing this repo from a project's .claude/settings.json. Once wired up, Claude Code loads the relevant skill when context matches (e.g., opening a .go file triggers go-foundations).
| Skill |
What it enforces |
go-foundations |
Module structure, dependency injection, error handling, context propagation, and test conventions for all Go projects |
go-gin-api |
Handler structure, middleware chain, validation, auth patterns, and versioning for Gin HTTP APIs |
go-gorm |
Model definitions, querying, transactions, relation preloading, and N+1 prevention with GORM |
go-gin-swagger |
Swaggo annotation requirements on every Gin handler — drift caught by make swagger-check |
| Skill |
What it enforces |
flutter-project-structure |
Feature-first folder layout, module boundaries, and lib/ organization for new and existing Flutter apps |
flutter-state-management |
Riverpod patterns: provider types, async data handling, side effects, and DI — Riverpod is the default, always |
flutter-openapi-client |
Dio-based API client setup, OpenAPI code generation, auth token handling, retries, and error mapping |
flutter-testing |
Unit tests for providers/repos, widget tests, golden tests, and integration tests — proposed alongside every production change |
| Skill |
What it enforces |
db-foundations |
Schema design, indexing, query writing, and migration conventions — adapts syntax to the configured engine (Postgres, MySQL, SQLite, SQL Server) |
skills/
go/ # Go-specific skills
flutter/ # Flutter/Dart skills
database/ # Database skills
docs/
features/ # Feature specs and decisions
stack.md # Project metadata
- Create a folder under the relevant category:
skills/<category>/<skill-name>/
- Add a
SKILL.md with frontmatter (name, description, argument-hint) and the rules
- Reference it from target projects via
.claude/settings.json