Getting Started - GuitarAlchemist/ga GitHub Wiki

Getting Started

Prerequisites

  • .NET 10 SDK -- download
  • Node.js 18+ -- for React frontend
  • MongoDB -- for data persistence (or use Aspire orchestration)
  • Git with submodule support

Clone

git clone --recurse-submodules https://github.com/GuitarAlchemist/ga.git
cd ga

If you already cloned without submodules:

git submodule update --init --recursive

Setup

# One-time setup (prereqs, NuGet, npm, build)
pwsh Scripts/setup-dev-environment.ps1

# Install pre-commit hooks (format + build enforcement)
pwsh Scripts/install-git-hooks.ps1

Build

# Full solution
dotnet build AllProjects.slnx -c Debug

Test

# Full test suite
dotnet test AllProjects.slnx

# Backend only (faster)
pwsh Scripts/run-all-tests.ps1 -BackendOnly -SkipBuild

# Playwright E2E
pwsh Scripts/run-all-tests.ps1 -PlaywrightOnly

# Single test
dotnet test --filter "FullyQualifiedName~GrothendieckServiceTests"

Run

# Start everything via Aspire (MongoDB, API, Chatbot, dashboards)
pwsh Scripts/start-all.ps1 -Dashboard

# Daily restart without rebuild
pwsh Scripts/start-all.ps1 -NoBuild -Dashboard

Frontend Development

cd ReactComponents/ga-react-components
npm ci
npm run dev     # Development server
npm run build   # Production build

Code Quality

# Format (pre-commit hook enforces this)
dotnet format AllProjects.slnx

# Verify without changes (CI uses this)
dotnet format AllProjects.slnx --verify-no-changes

Contributing

  1. All contributions are governed by the Demerzel framework
  2. Run dotnet format before committing (pre-commit hook enforces this)
  3. All agents must comply with the 11-article operational constitution
  4. New agents require governance review and persona definitions