diff --git a/docs/superpowers/specs/2026-05-06-project-structure-cleanup-design.md b/docs/superpowers/specs/2026-05-06-project-structure-cleanup-design.md new file mode 100644 index 0000000..22a6ad8 --- /dev/null +++ b/docs/superpowers/specs/2026-05-06-project-structure-cleanup-design.md @@ -0,0 +1,38 @@ +# Design Spec: Project Structure Cleanup and Standardization + +Standardize the Go project structure, consolidate database packages, and remove redundant files to improve maintainability and idiomatic code patterns. + +## 1. Database Package Consolidation + +### Current State +- `internal/db` contains `sqlc` generated code in package `database`. +- `internal/db/sqlite/sqlite.go` is in a separate package for DB initialization. +- Imports are scattered between `mal/internal/db` (often aliased) and `mal/internal/db/sqlite`. + +### Changes +- **Package Renaming:** Change package `database` to `db` in all `internal/db/*.go` files. +- **sqlc configuration:** Update `sqlc.yaml` to use `package: db`. +- **Flattening:** Move `internal/db/sqlite/sqlite.go` to `internal/db/sqlite.go`. +- **Import Cleanup:** Update all consumers to use `mal/internal/db` directly. + +## 2. Redundant File Removal + +### Changes +- Delete all `.go` files in `tmp/scripts/` (`fix_json.go`, `fix_proxy.go`, `test_jikan.go`, etc.). +- Remove the empty directory `internal/db/sqlite` after moving the file. + +## 3. Asset Build Optimization + +### Changes +- Investigate `dist/` duplication. +- Update `package.json` build scripts if necessary to ensure `dist/` has a flat, clean structure matching what `NewRouter` expects. + +## 4. Verification Plan + +### Automated Checks +- `go build ./...`: Verify all Go imports and package renames. +- `bun run typecheck`: Verify TS/JS integrity. +- `sqlc generate`: Verify that regeneration doesn't break the new package naming. + +### Manual Checks +- Verify server starts and database migrations apply correctly.