Go to file
VinPropane 3924695619 NEO-125: fail-fast quest completionRewardBundle validation at startup
Register bundle JSON Schemas, parse bundle DTOs on QuestDefRow, and run
E7M2 prototype gates (presence, freeze table, cross-ref, mission_reward)
with skill catalog input from DI.
2026-06-07 15:25:58 -04:00
.cursor chore: run gdlint/gdformat on pre-push only when client .gd changes. 2026-05-31 19:42:23 -04:00
.github/workflows NEO-83: Fix Bruno CI combat-targets HP state pollution. 2026-05-25 11:28:13 -04:00
.vscode NEO-29: move AAA enforcement to test authoring time 2026-04-25 22:50:03 -04:00
bruno/neon-sprawl-server NEO-120: Add quest accept POST API, tests, and Bruno spine. 2026-06-07 12:18:51 -04:00
client NEO-123: Add capstone manual QA and onboarding quest loop docs. 2026-06-07 15:03:29 -04:00
content NEO-124: Document quest completion bundle CI and reconcile plan. 2026-06-07 15:15:53 -04:00
docs NEO-125: add implementation plan for quest bundle catalog load 2026-06-07 15:23:21 -04:00
scripts NEO-124: Add quest completion reward bundle schemas, catalog, and CI gates. 2026-06-07 15:15:52 -04:00
server NEO-125: fail-fast quest completionRewardBundle validation at startup 2026-06-07 15:25:58 -04:00
.gitignore chore: gitignore VS Code C# Dev Tools auto-generated runners 2026-05-17 19:09:10 -04:00
AGENTS.md chore: codify full-stack epic decomposition policy 2026-05-24 16:19:32 -04:00
NeonSprawl.sln NS-15 implement position state api 2026-03-29 23:08:17 -04:00
README.md chore: document git hooks and gdtoolkit setup in repo README. 2026-05-31 19:45:22 -04:00
docker-compose.yml Update README and documentation to reflect project rebranding to "Neon Sprawl". Revise links to vision plan and adjust references in tech stack and decomposition documents. Enhance README with repository layout and instructions for running the server and client. 2026-03-29 17:23:00 -04:00
gdlintrc NEO-22: Extract WASD locomotion for gdlint max-file-lines 2026-04-17 20:13:36 -04:00
neon_sprawl_vision.plan.md chore: document governing design axioms (fun, cyberpunk theme) 2026-04-04 18:46:55 -04:00

README.md

Neon Sprawl

Neon Sprawl is the working title for a crafting-focused sci-fi / cyberpunk MMORPG with gigs (combat roles) and open non-combat skills (solo-dev scope). Product intent and phase gates: neon_sprawl_vision.plan.md. Design axioms: it must be fun, and it must stay distinctly cyberpunk in theme (see Design axioms in the vision plan).

Tech stack (locked)

Area Choice
Client Godot 4.x (GDScript)
Game server C# / .NET 10 (ASP.NET Core), PostgreSQL, Protobuf (JSON OK for earliest spike)
Content JSON/YAML + JSON Schema in CI

Full rationale and constraints: docs/architecture/tech_stack.md.

Optional local LLM in Cursor (MLX on Apple Silicon): docs/dev/local-mlx-cursor.md.

Decomposition

Epic-level breakdown: docs/decomposition/README.md.

Git workflow

  • Documentation (Markdown under docs/, README files, neon_sprawl_vision.plan.md): work and commit directly on main.
  • Code and implementation (server/client source, Godot project, content/ data, Docker/build/CI config): use a branch, then merge to main when ready. Mixed doc + code changes follow the branch rule.

Repository layout (prototype scaffold)

Path Purpose
NeonSprawl.sln .NET solution
server/NeonSprawl.Server/ ASP.NET Core game server
client/ Godot 4.x project (import project.godot)
content/ JSON data + JSON Schema (skills/, schemas/)
docker-compose.yml Local PostgreSQL (docker compose up -d)

Run the server

cd server/NeonSprawl.Server && dotnet run

Then open http://localhost:5253/health (port from launchSettings.json).

Run Postgres locally

docker compose up -d

Connection (dev): host localhost, port 5432, database neon_sprawl, user neon_sprawl, password neon_sprawl_dev.

Run the client

Open the client/ folder in Godot 4.6 and run the main scene (see client/README.md).

Once per clone, from the repo root:

./scripts/install-git-hooks.sh
python3 -m venv .venv-gd
.venv-gd/bin/pip install "gdtoolkit==4.5.0"

This sets core.hooksPath=scripts/git-hooks. On push, when client/scripts/*.gd or client/test/*.gd changed in the commits being pushed, pre-push runs gdlint and gdformat --check on those trees (same as .github/workflows/gdscript.yml). Install gdtoolkit in .venv-gd (gitignored) or globally so the hook can run; otherwise pushes with GDScript changes are blocked.

Windows (PowerShell): pwsh -File scripts/install-git-hooks.ps1, then create .venv-gd and pip install "gdtoolkit==4.5.0" the same way.

More detail: client/README.md (Git hooks section).