Files
EpicNext-Cms/docs/superpowers/plans/2026-07-12-admin-events-polls-banners-prefixes.md
T

2.1 KiB

Admin Events Polls Banners Prefixes Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Port four complete admin modules from habbo-next into EpicNext with safe schema ownership and ACL enforcement.

Architecture: Add CMS-owned tables and Prisma models first, then validators/actions, then locale-free admin routes and navigation. Existing safe-action, audit, admin-list, UI primitives, and semantic theme systems are reused.

Tech Stack: Next.js 16, Prisma 7, MariaDB SQL migrations, Zod, React Hook Form, Vitest.

Global Constraints

  • Never modify emulator-owned poll tables.
  • Preserve the local package.json modification.
  • Remove [locale] routing assumptions.
  • Use EpicNext semantic colors and ACL permission constants.

Task 1: Schema and ACL

  • Add failing migration/schema contract tests for all CMS tables and permission slugs.
  • Add Prisma models and an idempotent numbered migration.
  • Generate Prisma and run schema/migration tests.
  • Commit with feat: add schema for admin content modules.

Task 2: Validators and actions

  • Port event/poll validators and add invalid-input tests.
  • Port events, polls, banners, and prefixes actions using existing safe-action/audit APIs.
  • Run action import contracts, typecheck, and targeted tests.
  • Commit with feat: add admin content module actions.

Task 3: Routes and UI

  • Port the 24 module files without locale routing and add the missing date-time picker primitive.
  • Add route/import contract tests and adapt query/API differences found by typecheck.
  • Add navigation entries and permission visibility.
  • Run targeted tests and typecheck; commit with feat: add admin content module pages.

Task 4: Verification

  • Run Prisma generation, full test suite, typecheck, and production build.
  • Verify migration idempotency and ensure package.json is unstaged.
  • Push the verified commits to origin/main.