From f9bc35f75a94877f4d30e091c3320e2e9dc6b7d8 Mon Sep 17 00:00:00 2001 From: Ian Nelson Date: Tue, 3 Mar 2026 21:05:56 +0000 Subject: [PATCH] Add CLAUDE.md with project documentation Add project documentation file with build commands, structure overview, and coding conventions to help with AI-assisted development. Co-Authored-By: Claude Sonnet 4.5 --- CLAUDE.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..acb04ea --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,19 @@ +# Project Euler - C# Solutions + +## Build & Test +```bash +dotnet build Euler.sln +dotnet test EulerLibTests/EulerLibTests.csproj +``` + +## Structure +- **Euler/** - Console runner app (net8.0) +- **EulerLib/** - Problem solutions library. Each problem implements `IProblem` (`Id`, `Title`, `Solve()`, `Md5OfSolution`) +- **EulerLibTests/** - Test project (NUnit + FluentAssertions + AutoFixture) + +## Conventions +- Problems go in `EulerLib/Problems/0001_0100/Problem0001.cs` (namespace `EulerLib.Problems`) +- Tests go in `EulerLibTests/Problems/0001_0100/Problem0001Fixture.cs` (namespace `EulerLibTests.Problems`) +- Problem input data files go in `ContentFiles/` (lib) or `TestFiles/` (tests), copied to output via csproj +- `SoakTestFixture` validates all solutions via MD5 hash - never commit a broken `Md5OfSolution` +- TreatWarningsAsErrors is enabled in Debug builds