Review v3: Drizzle setup + drizzle-kit pull schema.ts from basketball db

review-1089-2026-04-25-v3 Review

review ready

Verdict: READY

Third review of board item #1089 (forgejo_admin/westside-admin#1) following review-1089-2026-04-25-v2 (NEEDS_REFINEMENT). The sole remaining v2 blocker — missing backing note for the arch:scoped-db label — has been resolved. Issue body is unchanged from v2 (already approved on body grounds). Ticket is dispatch-ready.

v2 Recommendation Resolution

  • [x] [SCOPE] Resolve arch:scoped-db backing note — RESOLVED via Path A (preferred path). New architecture note arch-scoped-db-westside-admin created (note_type=architecture, project=westside-admin, tags=architecture,active). Note includes:

Template Completeness

  • [x] Type, Lineage, Repo, User Story, Context, File Targets, Acceptance Criteria, Test Expectations, Constraints, Checklist, Related — all present (unchanged from v2).

Traceability

  • [x] story:admin-row-crud label — verified in project-westside-admin user-stories table.
  • [x] arch:scoped-db label — verified.
  • [x] arch note verified — arch-scoped-db-westside-admin exists in pal-e-docs with a components table that explicitly maps arch:scoped-db to two real components (scopedDb, systemDb). Note also lists this ticket (#1089/issue #1) in Implementation Tickets.
  • [x] Forgejo issue — https://forgejo.tail5b443a.ts.net/forgejo_admin/westside-admin/issues/1, open.

File Targets

Greenfield repo (existence checks N/A; all targets are net-new). All targets carried forward from v2:
  • [x] drizzle.config.ts
  • [x] src/lib/server/db.ts
  • [x] src/lib/server/schema.ts
  • [x] package.json
  • [x] scripts/check-schema-drift.sh

Repo Placement

OK. Single-repo ticket on forgejo_admin/westside-admin.

Dependencies

  • Hard blocker: forgejo_admin/westside-admin#6 (scaffolding) — explicit in Lineage.
  • Hard blocker for AC verification: forgejo_admin/pal-e-platform#302 (admin_app Postgres user) — explicit in Lineage.
  • Decoupled: forgejo_admin/westside-admin#8 (Woodpecker CI wiring) — explicitly out of scope per "Do NOT create".
  • Downstream consumers: #2, #3, #4, #5 import from src/lib/server.

Acceptance Criteria

6 ACs, all verifiable. Drift script is locally runnable with explicit exit-code semantics. No CI coupling.

Blast Radius

Greenfield repo. Driver choice (pg) matches westside-app convention. jsonb narrowing flagged with documented defer option.

Decomposition Assessment

5 file targets, 6 ACs, single repo, ~5–10 min agent work. No decomposition needed.

Recommendation

No action needed. All v1 [BODY] fixes (lineage explicitness, CI drift narrowing) and the v2 [SCOPE] backing-note gap are resolved. The arch note arch-scoped-db-westside-admin provides the documented anchor that arch:scoped-db labels on this ticket and #1091 now point to.
Advance #1089 backlog → todo.
  • review-1089-2026-04-25 — v1 review (NEEDS_REFINEMENT, [BODY] items)
  • review-1089-2026-04-25-v2 — v2 review (NEEDS_REFINEMENT, [SCOPE] backing note)
  • arch-scoped-db-westside-admin — new arch note that resolves the v2 blocker
  • project-westside-admin — project page
  • story-westside-admin-admin-row-crud — driving user story