Imported from gencau/test-practices-agent-configurations (
dataset/repos/vladimirkhil§si/AGENTS.md). Install upstream withnpx skills add gencau/test-practices-agent-configurations --skill vladimirkhil§si. Copyright stays with the author.
AGENTS.md
This file provides guidance for AI agents working with the SI (SIGame) codebase.
Project Overview
SI is a suite of applications for playing trivia/quiz games. The project consists of several main components:
- SIGame - The main game client (WPF application) for online play
- SIQuester - Question package editor
- SImulator - Offline version of SIGame for local play without server
Solution Structure
The workspace contains three main solution files:
SIGame.sln- Main game solutionSIQuester.sln- Question editor solutionSImulator.sln- Simulator solution
Key Directories
src/- Source codesrc/Common/- Shared libraries (SIPackages, SIEngine, Utils, etc.)src/SICore/- Core game logicsrc/SIGame/- Game clientsrc/SIQuester/- Question editorsrc/SImulator/- Simulator
test/- Unit tests mirroring src structuretools/- Build and deployment scriptsdeploy/- Deployment configurationsassets/- Schema files (XSD)
Technology Stack
- Language: C# (.NET)
- UI Framework: WPF (Windows Presentation Foundation)
- Target Framework: .NET 6.0+
- Build System: MSBuild / dotnet CLI
Building the Project
# Build SIGame
dotnet build SIGame.sln
# Build SIQuester
dotnet build SIQuester.sln
# Build SImulator
dotnet build SImulator.sln
Running Tests
# Run all tests
dotnet test
# Run specific test project
dotnet test test/Common/SIEngine.Tests/SIEngine.Tests.csproj
Code Style Guidelines
- Follow standard C# naming conventions
- Use meaningful variable and method names
- Keep methods focused and single-purpose
- Add XML documentation for public APIs
- Use async/await for I/O operations
Package Format
The SI package format (.siq) is a ZIP archive containing:
content.xml- Package structure and metadata- Media files (images, audio, video)
Schema definitions are in assets/ directory.
Common Tasks
Adding a New Feature
- Identify the appropriate project/layer
- Create necessary models in SIData if needed
- Implement logic in SICore/SIEngine
- Add UI in the appropriate client (SIGame/SIQuester)
- Write unit tests
Modifying Game Logic
- Core game state and rules are in
src/SICore/ - Engine mechanics are in
src/Common/SIEngine/
Working with Packages
- Package handling is in
src/Common/SIPackages/ - Package format schemas in
assets/
Resource Management
The project uses .resx files for localization.
Designer File Generation
Resources.Designer.cs files are generated from .resx files. In Visual Studio, this is handled by the PublicResXFileCodeGenerator. For CLI or automated environments, use the following PowerShell script:
# Regenerate SICore resources
powershell -ExecutionPolicy Bypass -File tools/regenerate-designer.ps1 -ResxPath "src/SICore/SICore/Properties/Resources.resx" -DesignerPath "src/SICore/SICore/Properties/Resources.Designer.cs" -Namespace "SICore.Properties" -ClassName "Resources"
# Regenerate SIGame.ViewModel resources
powershell -ExecutionPolicy Bypass -File tools/regenerate-designer.ps1 -ResxPath "src/SIGame/SIGame.ViewModel/Properties/Resources.resx" -DesignerPath "src/SIGame/SIGame.ViewModel/Properties/Resources.Designer.cs" -Namespace "SIGame.ViewModel.Properties" -ClassName "Resources"
The regenerate-designer.ps1 script uses the standard .NET StronglyTypedResourceBuilder to ensure consistency.
Important Notes
- WPF applications are Windows-only
- Some projects may have platform-specific configurations
- Do not edit Designer.cs files directly. Always update the .resx and regenerate.