Skip to content

Infraestructura base: monorepo pnpm + TanStack Start + MongoDB en Docker + console-runner - #2

Merged
brauliodiez merged 4 commits into
mainfrom
harness/1-infra-monorepo
Oct 17, 2026
Merged

brauliodiez merged 4 commits into
mainfrom
harness/1-infra-monorepo

Conversation

@brauliodiez

Copy link
Copy Markdown
Member

Closes #1

Primera entrega del proyecto: el terreno de trabajo. Nada de producto — el front es
un «Hola Mundo» deliberado. 25 tareas de la spec, 7 grupos, 59 requisitos EARS.

Qué entrega

  • Monorepo pnpm + Turborepo: apps/web, console-runner (en la raíz, por decisión
    explícita) y packages/db. Node y pnpm fijados; package-lock.json eliminado.
  • apps/web: TanStack Start + TypeScript estricto + Tailwind 4 + shadcn
    (new-york / neutral), con la página «Hola Mundo» dentro de un Card con un
    Button. Sólo tokens por defecto: ni tema oscuro ni dirección visual (van en su
    propia tarea, con su fase de diseño).
  • MongoDB local en Docker Compose (mongo:8, volumen nombrado, healthcheck) con
    db:up / db:down / db:reset desde el package.json raíz.
  • packages/db (@memora/db): el único sitio del repo que importa el driver
    oficial de Mongo. Resuelve MONGODB_URI y expone cliente, ping y dropDatabase.
  • console-runner: menú interactivo con comprobar conexión, limpiar base de datos
    (real, tras confirmación que por defecto dice no), cargar datos de prueba
    (imprime TODO a propósito) y salir.
  • CI en pull requests a main: typecheck, format:check, test, build — los
    cuatro gates declarados en harness.config.yml.

Verificación

20 tests (db 11 · runner 7 · web 2) y los cuatro gates en verde, con el demonio de
Docker apagado
: la suite es hermética. Que el gate de typecheck se pone rojo de
verdad se probó mutando un tipo — importante, porque por decisión explícita no hay
linter
y typecheck es el gate que carga el peso. La verificación manual real
(db:up → runner → dev → la página carga → db:down) está registrada en
progress.md.

Decisiones que conviene saber

  • El front no consume @memora/db todavía: en un «Hola Mundo» no hay nada que
    leer, y cablearlo dejaría una dependencia sin usar o rompería la suite hermética.
    Esta entrega demuestra runner → Mongo, no front → Mongo.
  • apps/web está escrito a mano y no es la salida del CLI oficial: su styles.css
    traía paleta propia y un @import remoto de Google Fonts, incompatibles con «sólo
    tokens por defecto» y con una suite sin red.
  • shadcn add no generó las variables CSS (la cadena de estilos habría quedado rota en
    silencio) ni la dependencia class-variance-authority que su propio button.tsx
    importa; ambas cosas se arreglaron, los valores vienen del registro oficial.

Pendientes conocidos, no bloqueantes

Capturados como seguimiento: el default: false de la confirmación destructiva no
tiene test de regresión, el puerto de Mongo se publica en 0.0.0.0, los alias de
components.json apuntan a rutas que no existen, y Ctrl+D (EOF) en un prompt deja a
Node con exit 13 (Ctrl+C, que es lo especificado, funciona limpio).

🤖 Generated with Claude Code

https://claude.ai/code/session_01FoSJwPZyTcTEfarL8vJrcX

brauliodiez and others added 3 commits October 17, 2026 21:08
PRD y brief funcional de Memora incluidos.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FoSJwPZyTcTEfarL8vJrcX
Lemony-Checkpoint: .claude/hooks/lib/lemony.sh checkpoint ok --task-id=1 --auto-commit=off
Lemony-Checkpoint: .claude/hooks/lib/lemony.sh checkpoint ok --task-id=1 --auto-commit=off
@brauliodiez

Copy link
Copy Markdown
Member Author

Review: APPROVE — full pass, fresh context, at dcce210.

The verdict and its stale-approve record are posted on the task issue, which is where the merge gate reads the APPROVE record from: #1 (comment)

Headline: all four declared gates re-run green cache-bypassed (20 tests), CI green on its first-ever execution (Declared gates pass 31s), 58/59 requirements PASS with R48 PARTIAL on test coverage by an approved design decision, and 11 of 13 mutation probes killed — both survivors in the untested prompt layer of console-runner/src/main.ts. Six advisory/hardening findings, none blocking. Merge remains the human's call.

@brauliodiez
brauliodiez merged commit 0c2c92d into main Oct 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Infraestructura base: monorepo pnpm + TanStack Start + MongoDB en Docker + console-runner

1 participant