Review: Scaffold SvelteKit adapter-node + TypeScript + ESLint (v2)

review-1087-2026-04-25-v2 Review

review ready

Verdict: READY

Re-review of board item #1087 — forgejo_admin/westside-admin#6 — column: backlog (gate: backlog→todo). Supersedes review-1087-2026-04-25 (NEEDS_REFINEMENT).

Changes Since v1

  • Arch label changed from arch:sveltekit-serverarch:sveltekit-ssr (canonical entry in convention-architecture-ids Data Flow Components table).
  • Issue body Context now explicitly flags westside-app as NOT a transferable scaffold (adapter-static + plain JS + no ESLint), points to westside-contracts as a better reference if adapter-node, and instructs use of npm create svelte@latest.
  • Added /health route to Scope, AC, Test Expectations, and Checklist (needed by Dockerfile ticket #7 HEALTHCHECK).
  • Lineage now lists explicit blocked tickets (#1, #2, #3, #4, #5, #7, #8) — confirms downstream sequencing.
  • Constraints narrowed the version-pin scope to packages actually shared with westside-app.

Template Completeness

Type=Task, reviewed against template-issue:
  • [x] Type
  • [x] Lineage
  • [x] Repo
  • [x] User Story
  • [x] Context
  • [x] Scope
  • [x] Acceptance Criteria
  • [x] Test Expectations
  • [x] Constraints
  • [x] Checklist
  • [x] Related

Traceability

  • [x] story:admin-row-crud — story note story-westside-admin-admin-row-crud (id 1616) verified, listed in project-westside-admin user-stories
  • [x] arch:sveltekit-ssr — canonical entry in convention-architecture-ids (Data Flow Components: "SvelteKit server-side rendering"). Per the convention's Mermaid-derived component model, this label points to a diagram component, not a standalone arch note. The backing diagram notes (arch-deployment-westside-admin, arch-dataflow-westside-admin) are linked from the issue Related section.
  • [x] type:infra — appropriate for scaffolding
  • [x] Forgejo issue — #6 open, body well-formed

File Targets

N/A — Task type. Scope enumerates files to be CREATED in an empty repo. Repo confirmed exists (forgejo_admin/westside-admin, default branch main, public). All scaffold paths are conventional SvelteKit + adapter-node.

Repo Placement

OK. Issue on forgejo_admin/westside-admin; scope entirely in that repo. Does not touch pal-e-deployments, pal-e-platform, or basketball-api.

Dependencies

None upstream — first foundational ticket. Explicitly blocks #1 (Drizzle), #2 (Auth/hooks.server.ts), #3 (Tenant helper), #4 (Players list), #5 (Players edit), #7 (Dockerfile), #8 (Woodpecker). Anti-scope is explicit (no Drizzle, no auth, no Dockerfile, no CI here). Sequencing is correct.

Acceptance Criteria

7 AC, all agent-verifiable via shell commands (npm install, npm run check, npm run build, npm run dev, node build/index.js, curl /health, ESLint+Prettier). Borderline on the 5-AC threshold but each maps 1:1 to a single command — no compound verification, no ambiguity. Test Expectations adds a build sanity check.

Blast Radius

None. New empty repo, no consumers. Version-pin constraint is now scoped to packages actually shared with westside-app.

Decomposition Assessment

1 repo, ~10–11 files of scaffolding, 7 AC, all conventional npm create svelte + adapter swap + /health + ESLint config. Estimated agent time: 5–10 minutes. AC count is one over the 5-AC trigger but the work is highly cohesive (one repo, one PR, one commit) and decomposing scaffolding would create more overhead than it saves. No decomposition needed.

Recommendation

No action needed. All v1 concerns resolved:
  • arch label is now canonical and matches the convention
  • westside-app misleading reference is explicitly disclaimed in Context
  • /health route requirement is explicit (unblocks #7)
  • Blocker list is explicit (improves planning for downstream tickets)
Ready to advance backlog → todo.
  • review-1087-2026-04-25 — v1 (NEEDS_REFINEMENT)
  • story-westside-admin-admin-row-crud
  • convention-architecture-ids
  • board-westside-admin