testing
Testing
This skill provides guidance on testing philosophy and practices, emphasizing tests as specifications and API design through TDD.
Core Philosophy
Tests as Executable Specifications
Tests are not just verification tools — they are executable specifications that document how the system should behave. A well-written test suite serves as living documentation.
Tests as API Consumers
Tests are the first users of your code's APIs. This is why TDD is valuable: you design the API by thinking about the consumer first, before thinking about implementation.
When writing tests:
- Consider what interface would be most convenient for the caller
- Let the test drive the API design
- If the test is awkward to write, the API is awkward to use
More from booch/config_files
sdlc
Software development lifecycle guidance. This skill should be used when planning development work, conducting code reviews, or establishing development workflows. Use proactively when reviewing code, preparing commits, creating pull requests, refactoring, or discussing development process and best practices. (user)
13security
Security guidelines for secure coding and code review. This skill should be used when architecting/designing systems, writing code, or reviewing code. Use proactively when discussing vulnerabilities, OWASP, injection attacks, XSS, CSRF, SQL injection, authentication, authorization, access control, encryption, secrets management, input validation, or secure coding practices. (user)
9design
Software design principles and patterns. This skill should be used when making architectural decisions, designing classes or modules, or evaluating code structure. Use proactively when discussing SOLID principles, coupling, cohesion, connascence, refactoring structure, class design, module boundaries, dependency injection, or the Four Rules of Simple Design. (user)
7skill-creator
Create effective AI skills. This skill should be used when user wants to create a new skill (or update an existing skill) that extends an AI with specialized capabilities, knowledge, workflows, or tool integrations.
7code-quality
Code quality guidelines including naming, structure, and maintainability. This skill should be used when writing or reviewing code to ensure it meets quality standards. Use proactively when discussing naming conventions, code smells, readability, Sandi Metz rules, method length, class size, comments, refactoring for clarity, or maintainability concerns. (user)
6