This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
./build.ps1./build-linux.ps1# Build
dotnet build --configuration Release
# Run tests (no tests currently exist)
dotnet test
# Publish executable
dotnet publish Source/VisualPairCoding/VisualPairCoding.AvaloniaUI/VisualPairCoding.AvaloniaUI.csproj \
--configuration Release \
--output ./artifacts \
--runtime win-x64 \
--self-contained true \
-p:PublishSingleFile=trueThis is a Visual Pair Coding timer application built with Clean Architecture:
VisualPairCoding.Interfaces/ → Core contracts and interfaces
VisualPairCoding.BL/ → Business logic and domain models
VisualPairCoding.Infrastructure/ → External concerns (file I/O, JSON serialization)
VisualPairCoding.AvaloniaUI/ → Cross-platform UI using Avalonia
- PairCodingSession (BL/PairCodingSession.cs): Core session logic, timer management, participant rotation
- SessionConfiguration (Infrastructure/): Handles saving/loading session configuration as JSON
- UI Forms:
- EnterNamesWindow: Initial participant setup
- RunSessionForm: Main timer display (always-on-top)
- NewturnForm: Full-screen transition between drivers
- .NET 9.0
- Avalonia UI 11.2.3 (cross-platform desktop UI)
- Newtonsoft.Json for serialization
- Solution file:
Source/VisualPairCoding/VisualPairCoding.sln - Version management:
Scripts/Set-Version-Number.ps1replaces$$VERSION$$placeholder during CI builds - No unit tests currently exist
- Application supports command-line startup with config file path