Apply SOLID, KISS, DRY, YAGNI principles to code design. Use when building new features from scratch, making design decisions, or reviewing code for principle violations.
| Condition | Pass | Fail | |-----------|------|------| | New feature from scratch | Building without existing reference | Modifying existing code | | Design trade-off | Choosing between competing approaches | Implementation path is clear | | Interface/boundary design | Defining class responsibilities or contracts | Internal implementation detail | | Dependency structure | Deciding coupling and injection strategy | No dependency decisions |
Apply when: Any condition passes Do NOT apply when: The task is purely about restructuring existing code (use refactoring) or detecting code smells (use refactoring)
| Principle | Description | Violation Sign | |-----------|-------------|----------------| | Single Responsibility | One reason to change | Class does too many things | | Open/Closed | Open for extension, closed for modification | Frequent changes to existing code | | Liskov Substitution | Subtypes must be substitutable | Type checks or conditional logic on types | | Interface Segregation | Many specific interfaces over one general | Clients implement unused methods | | Dependency Inversion | Depend on abstractions, not concretions | Direct instantiation of dependencies |
Module type (application vs library) decides which default applies — see architecture Module Type.
Use the Violation Sign column in the SOLID table above as the primary checklist. Additionally verify:
| Criterion | Pass | Fail | |-----------|------|------| | Describable | Each class/function describable in one sentence | Needs a paragraph to explain | | Simplest solution | Chosen approach is the simplest that works | Over-engineered for hypothetical needs | | Dependencies injected | High-level modules depend on abstractions | Direct instantiation of concretions |
This skill addresses design-level decisions (abstraction level, coupling, interface shape). For code-level restructuring (long methods, duplicated code, feature envy), use the refactoring skill — it has specific techniques and safe steps for each smell.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer