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

68 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.