2026-04-21 19:31:25 +01:00
# Bifrost
Bifrost is the planned GameCult member, governance, and labor platform running under the Yggdrasil infrastructure umbrella. It exists to connect projects, contributors, motions, ledgers, and operational decisions in one place instead of leaving them scattered across GitHub, docs, chat, and human memory.
## Status
2026-04-21 20:08:49 +01:00
This repository now includes the first implementation slice of the ASP.NET Core app:
- Razor Pages app scaffold under `src/Bifrost.Web`
- PostgreSQL-backed EF Core domain model for members, projects, work items, motions, and ledgers
- GitHub OAuth wiring plus invite/approval-based membership gating
- initial member console pages for projects, work items, motions, ledger activity, and member approvals
- xUnit integration tests under `tests/Bifrost.Web.Tests`
2026-04-21 19:31:25 +01:00
## Chosen Stack
- ASP.NET Core 8 LTS
- Razor Pages + HTMX
- PostgreSQL
- GitHub OAuth for sign-in
- GitHub App for issue and pull request integration
## Alpha Scope
- invite-only member portal
- GitHub sign-in only
- GitHub-backed and internal work items
- app-native motions and voting
- internal ledgers for patronage, contribution, and payout eligibility
- no real payout execution in v1
## Hosting Target
- public app hostname: `bifrost.gamecult.org`
- infrastructure context: `Yggdrasil`
- deployment model: nginx + systemd + localhost Postgres, following the existing GameCult ops pattern
## Next Build Target
2026-04-21 20:08:49 +01:00
The next build target is to deepen the first implementation milestone by adding:
- database migrations and bootstrap seed/run instructions
- GitHub issue and pull request sync
- richer membership/admin role management
- work item completion and ledger approval flow
- payout proposal batch generation and review
## Local Dev Notes
2026-04-21 19:31:25 +01:00
2026-04-21 20:08:49 +01:00
- set `GitHubOAuth:ClientId` and `GitHubOAuth:ClientSecret` before using sign-in
- set `Bootstrap:AdminGitHubLogins` with at least one GitHub login for the first active admin path
- default connection string points at local PostgreSQL
- build with `dotnet build Bifrost.slnx`
- test with `DOTNET_ROLL_FORWARD=Major dotnet test Bifrost.slnx` if the machine only has the .NET 10 runtime installed
2026-04-21 19:31:25 +01:00
## Read First
Before implementation work starts in a new session, read these files in order:
1. [AGENTS.md ](E:\Projects\Bifrost\AGENTS.md )
2. [docs/bifrost-mvp-plan.md ](E:\Projects\Bifrost\docs\bifrost-mvp-plan.md )
3. [docs/context.md ](E:\Projects\Bifrost\docs\context.md )