coding-principles
Language-agnostic coding principles for maintainability, readability, and quality. Use when implementing features, refactoring…
Applies language-agnostic and backend technical decision criteria, anti-pattern detection, debugging, and quality gates. Use when reviewing general/backend implementation choices, code smells, failures, or implementation completeness.
Claude Code
$ npx -y skills add shinpr/claude-code-workflows --skill ai-development-guide --agent claude-code
Codex
$ npx skills add shinpr/claude-code-workflows --skill ai-development-guide -a codex -y
Cursor
$ npx skills add shinpr/claude-code-workflows --skill ai-development-guide -a cursor -y
Gemini CLI
$ npx skills add shinpr/claude-code-workflows --skill ai-development-guide -a gemini-cli -y
GitHub Copilot
$ npx skills add shinpr/claude-code-workflows --skill ai-development-guide -a github-copilot -y
OpenCode
$ npx skills add shinpr/claude-code-workflows --skill ai-development-guide -a opencode -y
Windsurf
$ npx skills add shinpr/claude-code-workflows --skill ai-development-guide -a windsurf -y
name: ai-development-guide description: Applies technical decision criteria, anti-pattern detection, debugging, and quality gates for backend and frontend code. Use when implementing, reviewing, or diagnosing code, code smells, failures, or implementation completeness.
Inspect until the evidence identifies the lowest-total-complexity solution that delivers the required user, operator, or maintainer value while keeping the system correct and maintainable.
Judge total complexity across every activated surface: user decisions, settings, modes, concepts, outputs, persistent state, and implementation paths, together with their UX, runtime, implementation, testing, documentation, and maintenance cost. Compare only dimensions that differ between viable approaches. Prefer reuse or no new mechanism when it delivers the same required value and proof at lower total complexity.
Pause the affected decision and review the design when detecting the following patterns:
1. **Duplicating one responsibility across independently maintained locations** - Review whether the duplicated logic has one change reason and should have one owner 2. **Multiple responsibilities mixed in a single file** - Violates Single Responsibility Principle (SRP) 3. **Defining same content in multiple files** - Violates DRY principle 4. **Making changes without checking dependencies** - Potential for unexpected impacts 5. **Disabling code with comments** - Should use version control 6. **Error suppression** - Hiding problems creates technical debt 7. **Bypassing safety mechanisms (type systems, validation, contracts)** - Circumventing language's correctness guarantees
Make all errors visible and traceable with full context. Prioritize primary code reliability over fallback implementations. Excessive fallback mechanisms mask errors and make debugging difficult.
**Review Triggers** (require design review):
Another handler may remain when it covers a distinct failure mode with a documented recovery owner, state outcome, and observable signal.
**Before Implementing Any Fallback**: 1. Identify the accepted requirement, boundary contract, project policy, or Design Doc entry that defines this fallback 2. Document the business justification 3. Make activation observable at the boundary that owns diagnosis or recovery through one existing UI, log, or metric channel; when logging is that channel, log once with sensitive data redacted 4. Add new monitoring or alerting only when an operational requirement or project policy requires it
AVOID: Silent fallback that hides errors
<handle error>:
return DEFAULT_VALUE // Error hidden, debugging impossible
PREFERRED: Explicit failure with context
<handle error>:
<attach operation context>
IF this boundary owns diagnosis: <log once>
<propagate error> // Re-throw exception, return Error, return errorClaude Code can explore a codebase deeply. On non-trivial work, the harder problem is convergence.
Language-agnostic coding principles for maintainability, readability, and quality. Use when implementing features, refactoring…
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.