Files
GameList/AGENTS.md
2026-02-02 14:40:38 +01:00

2.2 KiB
Raw Blame History

Codex Agent Guide — CoopGameChooser

This repo is a tiny, purpose-built web app for a closed Discord group to:

  1. submit game suggestions blindly
  2. reveal all suggestions with authors
  3. vote 010 blindly
  4. reveal totals sorted by score

Tech constraints:

  • .NET 10
  • ASP.NET Core Minimal API
  • Static HTML/CSS/JS (no Razor Pages, no Blazor, no HTMX)
  • SQLite via EF Core
  • Username+Password identity (account stored in database)
  • Single active “session” (one room) unless extended later
  • Runs on IIS (Windows Server)

This file tells Codex how to work in this repo. Also see the other related files: API.md, IIS.md, SPEC.md


Operating Principles

Non-negotiables

  • Server-side enforcement of phase rules (clients must not be trusted).
  • Blindness:
    • Suggest phase: player can only read/write their own suggestions.
    • Vote phase: player can only read/write their own votes.
    • Results phase: only aggregated totals are shown.
  • Minimal moving parts: prefer Program.cs + a few small files over frameworks.

Repo Layout Target

  • Program.cs — Minimal host wiring (services, middleware, endpoint maps)
  • Endpoints/ — Minimal API route files split by area (state, suggest, vote, results, admin) + helpers
  • Contracts/ — DTOs and request records
  • Data/ — EF Core DbContext and migrations
  • Domain/ — Plain models: Player, Suggestion, Vote, AppState, Phase enum
  • wwwroot/
    • index.html — app shell; loads phase-specific views
    • app.js — main client script (ES module)
    • js/ — shared frontend modules (e.g., API client)
    • styles.css — minimal styling

Do not introduce MVC controllers, Razor Pages, Blazor, or SPA frameworks.


Security Notes

  • Cookie must be HttpOnly and SameSite=Strict
  • Use HTTPS in production
  • No client-side trust for blindness

Codex Working Style

  • Implement API first, UI second
  • Keep changes small and testable
  • Prefer clarity over abstraction
  • Avoid introducing new dependencies unless they remove complexity.
  • After every iteration, do a git commit with a brief summary of the changes as a commit message.
  • Keep endpoint logic in Endpoints/ and shared helpers/DTOs in their folders to avoid Program.cs bloat.