This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This file contains instructions for Claude Code to help it understand the context and requirements of the project. It is not intended to be modified by contributors. Human contributors should follow the guidelines in the CONTRIBUTING.md file. These guidelines derive from that document.
When working on implementation tasks in specs/*/tasks.md:
- ALWAYS use
/test-first <behavior>for TEST tasks - NEVER write tests manually and proceed to implementation
- STOP and ASK FOR APPROVAL after writing each test
- The user will review the test in their IDE before you implement
- Each TEST task in tasks.md specifies the exact
/test-firstcommand to use - The skill enforces the approval gate automatically - you cannot bypass it
Why this is mandatory:
- Tests correctly specify desired behavior before implementation
- Scope control - only code required by tests is written
- No speculative code
- User reviews test in IDE, not in CLI output
If a task says /test-first when ... - YOU MUST USE THAT COMMAND. Do not write the test file manually.
Claude Code skills automate common workflows and enforce mandatory engineering practices. Use these skills proactively rather than manually following documented procedures:
- Skills Overview - Quick reference for all available skills
- Detailed Skills Documentation - Complete documentation for all skills
/test-first <behavior>- TDD workflow with mandatory approval before implementation (docs)/tidy-first <change>- Separate structural (refactoring) from behavioral (feature) changes (docs)/adr <title>- Create Architecture Decision Records (docs)
/spec:requirements,/spec:design,/spec:tasks,/spec:implement,/spec:status- Complete specification-driven development workflow (docs)
When to use skills:
- Use
/test-firstwhen adding new behavior or fixing bugs - Use
/tidy-firstwhen code needs refactoring before/during feature work - Use
/adrwhen documenting architectural decisions - Use
/spec:*commands for full feature development from requirements to implementation
For comprehensive guidance on working with this codebase, Claude should read the following files as needed:
- Build and Development Commands - Build scripts, test commands, and Docker setup
- Project Structure - Organization of the codebase and testing framework
- Code Style - C# conventions and architectural patterns
- Design Principles - Responsibility-Driven Design and architectural guidance
- Testing - TDD practices, test structure, and testing guidelines
- Generated Tests - Test generator templates, configuration, and regeneration workflow
- Documentation - XML documentation standards and licensing requirements
- Dependency Management - Package management with Directory.Packages.props