obra/clank.
17 skills★ 40View on GitHub ↗
- 100/100
Commenting Intent
Comment WHY code exists and non-obvious decisions, not WHAT code does (mechanics)
- 100/100
Creating Skills
TDD for process documentation - test with subagents before writing, iterate until bulletproof
- 100/100
Designing Before Coding
Design in pseudocode first, iterate approaches, then translate to code
- 100/100
Domain-Focused Naming
Name code by what it does in the domain, not how it's implemented or its history
- 100/100
Encapsulating Complexity
Hide implementation details behind interfaces - work at domain level (what), not implementation level (how)
- 100/100
Exploring Alternatives
Try 2-3 different approaches before implementing - don't settle for first design you think of
- 100/100
Installing Skills System
Fork, clone to ~/.clank, run installer, edit CLAUDE.md
- 100/100
Keeping Routines Focused
Each routine does one thing and does it well - extract when routines have multiple responsibilities
- 100/100
Localizing Variables
Declare variables in smallest possible scope, initialize close to first use, minimize span and live time
- 100/100
Maintaining Consistent Abstractions
Class interfaces present one cohesive abstraction - don't mix domain logic with serialization, persistence, or unrelated concerns
- 100/100
Naming Variables
Choose names that fully and accurately describe what the variable represents
- 100/100
Reducing Complexity
Managing complexity is software's primary technical imperative - all other goals are secondary
- 100/100
Refactoring Safely
Refactor with tests first, one change at a time, never mix refactoring with bug fixes or new features
- 100/100
Simplifying Control Flow
Flatten nested conditionals with early returns or table-driven methods - keep nesting depth under 3 levels
- 100/100
Single Purpose Variables
Use each variable for exactly one purpose - no hybrid coupling or hidden meanings
- 100/100
Validating Inputs
Check all external inputs for validity - garbage in, nothing out, never garbage out
- 100/100
Writing Evergreen Comments
Write comments explaining WHAT and WHY, never temporal context or history