ai-development-guide
Applies language-agnostic and backend technical decision criteria, anti-pattern detection, debugging, and quality gates. Use when…
Language-agnostic coding principles for maintainability, readability, and quality. Use when implementing features, refactoring code, or reviewing code quality.
Claude Code
$ npx -y skills add shinpr/claude-code-workflows --skill coding-principles --agent claude-code
Codex
$ npx skills add shinpr/claude-code-workflows --skill coding-principles -a codex -y
Cursor
$ npx skills add shinpr/claude-code-workflows --skill coding-principles -a cursor -y
Gemini CLI
$ npx skills add shinpr/claude-code-workflows --skill coding-principles -a gemini-cli -y
GitHub Copilot
$ npx skills add shinpr/claude-code-workflows --skill coding-principles -a github-copilot -y
OpenCode
$ npx skills add shinpr/claude-code-workflows --skill coding-principles -a opencode -y
Windsurf
$ npx skills add shinpr/claude-code-workflows --skill coding-principles -a windsurf -y
name: coding-principles description: Language-agnostic coding principles for maintainability, readability, and quality. Use when implementing features, refactoring code, or reviewing code quality.
1. **Maintainability over Speed**: Prioritize long-term code health over initial development velocity 2. **Simplicity First**: Choose the simplest solution that meets requirements (YAGNI principle) 3. **Design Convergence**: Deliver the current required outcome with the least new design surface. Selecting persistent state, public or cross-boundary contracts, behavioral modes, reusable abstractions, or component splits carries enough surface to justify the full convergence process first. 4. **Explicit over Implicit**: Make intentions clear through code structure and naming 5. **Delete over Comment**: Remove unused code instead of commenting it out
Existing code relates to a change in two ways. Code that depends on it — callers, consumers, configuration — is reached through references to the changed code. Code that already holds the same responsibility may share no name or reference with it; reach it through position and role (sibling features, files with the same role in the same layer, shared layers) and through the input it takes and the purpose it serves, then compare their logic to judge whether the responsibility is the same.
When alternatives coexist, choose the pattern from responsibility, contract, lifecycle and repository usage rather than proximity or global popularity alone. Record the evidence only when it changes the choice.
Expand to all known consumers for a changed public, shared, serialized or persistent contract whose compatibility depends on them. Stop when the candidates that could change implementation or proof have been read and judged; a search with no match shows only that the search found nothing. Resolve versions from applicable manifests and usage; record a specific limitation only when required compatibility evidence remains unavailable.
Claude Code can explore a codebase deeply. On non-trivial work, the harder problem is convergence.
Applies language-agnostic and backend technical decision criteria, anti-pattern detection, debugging, and quality gates. Use when…
Determines which of PRD, ADR, UI Spec, Design Doc, and Work Plan a change requires, and where each is stored. Use when deciding…
Records where resources outside the repository live (design source, design system, API schema, IaC source, secret store) and how…
Applies React/TypeScript-specific technical decision criteria, anti-pattern detection, debugging, and frontend quality gates. Use…
Implementation strategy selection framework. Use when planning implementation strategy, selecting development approach, or…
Defines integration/E2E skeleton annotations, lane and file contracts, and route-parity review criteria. Use when generating or…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.