Willem van den Ende 6d50f1246d Update AGENTS.md for C# project setup
- Rewrite AGENTS.md from C++inary to C# (.NET 8, NUnit, dotnet test)
- Add .gitignore entries (mise.toml, .local, *.log)
- Add stories/ (buy-can, change, stock user stories)
- Add CLAUDE.md
- Remove stale .pi/skills symlink
- Keep intentional failing test in TestVendingMachine.cs
2026-06-30 22:19:28 +02:00

67 lines
2.5 KiB
Markdown

# Agentic Coding Standards
This repository follows strict agentic coding practices to ensure high-quality, maintainable C# implementations.
## Zero Defects Policy
All code changes must maintain a **zero defects policy**:
- Every feature or bug fix must be validated by passing tests before merge
- Code reviews focus on correctness, clarity, and adherence to style guidelines
- No known issues or technical debt should be introduced
- When defects are discovered, they are fixed immediately before proceeding with new work
## Test-Driven Development (TDD)
We follow the **Red-Green-Refactor** cycle strictly. You must invoke `dotnet test` in each phase:
1. **Red**: Write a failing test that describes the desired behavior
2. **Green**: Write the minimum code necessary to make the test pass
3. **Refactor**: Improve the code while keeping tests passing
All development must start with a test. The repository includes one intentional failing test as a starting point for TDD workflow.
## Test Execution
Run the test suite using:
```bash
dotnet test
```
This command:
- Restores NuGet packages if needed
- Builds the solution (Vending library + test project)
- Executes all NUnit test cases
- Reports results with clear pass/fail status
The test suite must pass entirely before any code is merged.
## Code Quality Standards
### Testing Framework
- **Test Framework**: NUnit
- **Coverage**: All public API members must have test coverage
- **Organization**: Tests are located in `Vending.Tests/TestVendingMachine.cs`
### Code Style
- **Language**: C# (latest available)
- **Target Framework**: .NET 8.0
- **Style Tool**: `dotnet format` (configured via `.editorconfig` if present)
- **Enforcement**: All code should follow standard C# conventions (PascalCase for public members, camelCase for locals/parameters, etc.)
## Agent Responsibilities
When assisting with code changes, agents must:
1. Respect the zero defects policy — all code must be tested and passing
2. Follow the Red-Green-Refactor workflow — tests first, implementation second
3. Enforce code style using .NET formatting standards
4. Ensure all tests pass before considering work complete
5. Maintain clarity and maintainability in all refactoring activities
## Getting Started
1. Read the failing test in `Vending.Tests/TestVendingMachine.cs`
2. Implement the vending machine code in `Vending/` (e.g., `Vending/VendingMachine.cs`)
3. Run `dotnet test` frequently to verify progress
4. Refactor once tests pass to improve code quality
5. Repeat for each new requirement