ai-development-guide
Applies technical decision criteria, anti-pattern detection, debugging, and quality gates for backend and frontend code. Use when…
Language-agnostic testing principles for choosing which tests a change needs, test quality, and proof ownership, including frontend and browser E2E tests. Use when writing tests, deciding test scope, or reviewing test quality.
Claude Code
$ npx -y skills add shinpr/claude-code-workflows --skill testing-principles --agent claude-code
Codex
$ npx skills add shinpr/claude-code-workflows --skill testing-principles -a codex -y
Cursor
$ npx skills add shinpr/claude-code-workflows --skill testing-principles -a cursor -y
Gemini CLI
$ npx skills add shinpr/claude-code-workflows --skill testing-principles -a gemini-cli -y
GitHub Copilot
$ npx skills add shinpr/claude-code-workflows --skill testing-principles -a github-copilot -y
OpenCode
$ npx skills add shinpr/claude-code-workflows --skill testing-principles -a opencode -y
Windsurf
$ npx skills add shinpr/claude-code-workflows --skill testing-principles -a windsurf -y
name: testing-principles description: Language-agnostic testing principles for choosing which tests a change needs, test quality, and proof ownership, including frontend and browser E2E tests. Use when writing tests, deciding test scope, or reviewing test quality.
Tests here guarantee accepted behavior, and the next agent reads every existing test as a requirement to preserve. A brittle, duplicated, or implementation-shaped test therefore becomes a false requirement: it gets worked around, and the workaround leaves debt in the implementation. Keep the set of tests whose proof is worth its maintenance.
Mock-based tests are sufficient when data access is only a dependency of the behavior under test. Verify against the project's real database engine or its accepted equivalent when the subject is a query, repository implementation, schema constraint, or migration compatibility. Resolve the test environment from repository configuration; when no representative environment exists and adding one is outside the approved work, report the missing verification decision.
Cross-check data-access code against the schema source named in the Design Doc or repository configuration. Schema-source verification is required to prove table, column, type, constraint, or dialect compatibility; successful mocks prove behavior only at the mocked boundary.
A capability probe passes when it uses the consumer's boundary and asserts the exact property that consumer needs. Command success, import success, or object existence is setup evidence.
Follow the repository's established test paths, runner routing, and naming. When establishing an approved new convention, separate test types only when their setup, runner, or environment differs.
Claude Code can explore a codebase deeply. On non-trivial work, the harder problem is convergence.
Applies technical decision criteria, anti-pattern detection, debugging, and quality gates for backend and frontend code. Use when…
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…
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.