alunduil / alunduil/blog.alunduil.com

ADR-first greenfield: deciding the load-bearing architecture before the first feature

Abierto
#328 2 comentarios 0 reacciones 0 asignados Ver en GitHub
idea
Lenguaje dominante
Astro
Estrellas
1
Forks
1
Merge medio
6 h 34 min
PR fusionados (30 d)
118

Descripción

## Spark

The busiest repo in the 2026-07-05→07-12 digest window was brand new: partir.qua.world, a Haskell game engine / GUI client (13 commits, 17 PRs, 25 issues in one week). What stands out isn't the volume — it's the sequencing. Toolchain first (GHC 9.10, Travis→Actions; #30/#37), then a pure `Partir.World.*` domain extraction (#38), then a wall of architecture-decision issues opened *before* feature work.

## Why it could be interesting

A methodology piece: resolving the load-bearing architecture up front, ADR by ADR, on a greenfield repo — effect system (#43), world-store ECS vs pure `Map` (#41), fixed-timestep vs FRP substrate (#40), build system buck2 vs Bazel vs native cabal/rebar3 (#60), publication/packaging (#36). Most "how I start a project" posts show scaffolding; this shows the decision graph you resolve before the first feature, and why front-loading those choices is cheaper than retrofitting them into a running system.

## Open questions

- [ ] How-to (a repeatable greenfield checklist) or explanation (why ADR-first beats decide-as-you-go)?
- [ ] Is Haskell+games too niche a vehicle, or is the specificity the appeal?
- [ ] Does this overlap "Personal repos as a fleet" (#128) enough to be one post, or is greenfield-bootstrap a distinct angle from fleet-standardization?
- [ ] Failure mode to address: ADR-first can slide into analysis-paralysis. Where's the line?

## Source material

- qua-world/partir.qua.world: #30/#5 (GHC 9.10 modernization) · #37/#6 (Travis→Actions) · #38/#10 (pure `Partir.World.*` domain) · #39/#8 (`Partir/Client/GLUT` namespace) · ADRs #40 (simulation-stepping FRP) · #41 (world-store ECS) · #43 (effect system) · #46 (client/server) · #60 (build system) · #36 (publication) · #47–#49 (Yarn dialogue → NPC-client pipeline)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.