diff --git a/CLAUDE.md b/CLAUDE.md index 5cde57c6..643036e4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -159,6 +159,8 @@ Explicit field mapping (no spread) · `serialize*()` from server.ts · `deserial **Styling:** Tailwind + shadcn/ui · `cn()` for conditionals · Glassmorphism: `backdrop-blur-sm`, `shadow-lg shadow-primary/5` +**Bash:** No inline comments in commands · Commands should be clean and self-explanatory + ## Testing Co-located: `src/**/__tests__/*.test.ts` or `src/**/*.test.ts` diff --git a/package.json b/package.json index 88edc209..00312c36 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "@simplifying/tsconfig": "workspace:*", "husky": "^9.1.1", "prisma": "^5.17.0", - "tsx": "^4.21.0", "turbo": "^2.7.3", "typescript": "5.5.3" } diff --git a/packages/uploads/package.json b/packages/uploads/package.json index 4c8b764e..670fff8c 100644 --- a/packages/uploads/package.json +++ b/packages/uploads/package.json @@ -20,7 +20,6 @@ }, "dependencies": { "@simplifying/api-client": "workspace:*", - "@simplifying/errors": "workspace:*", "@simplifying/prisma": "workspace:*" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f5c3d29..0f53a861 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,9 +29,6 @@ importers: prisma: specifier: ^5.17.0 version: 5.17.0 - tsx: - specifier: ^4.21.0 - version: 4.21.0 turbo: specifier: ^2.7.3 version: 2.7.3 @@ -251,7 +248,7 @@ importers: version: 0.0.8(react@18.3.1) '@sentry/nextjs': specifier: ^10.26.0 - version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) + version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) '@simplifying/api-client': specifier: workspace:* version: link:../../packages/api-client @@ -554,7 +551,7 @@ importers: devDependencies: '@sentry/nextjs': specifier: ^10.26.0 - version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) + version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) '@simplifying/tsconfig': specifier: workspace:* version: link:../tsconfig @@ -621,7 +618,7 @@ importers: version: 5.17.0(prisma@5.17.0) '@sentry/nextjs': specifier: ^10.26.0 - version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) + version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) '@simplifying/tsconfig': specifier: workspace:* version: link:../tsconfig @@ -661,7 +658,7 @@ importers: version: 5.17.0(prisma@5.17.0) '@sentry/nextjs': specifier: ^10.26.0 - version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) + version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) '@simplifying/tsconfig': specifier: workspace:* version: link:../tsconfig @@ -943,7 +940,7 @@ importers: version: 5.17.0(prisma@5.17.0) '@sentry/nextjs': specifier: ^10.26.0 - version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) + version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) '@simplifying/tsconfig': specifier: workspace:* version: link:../tsconfig @@ -1025,7 +1022,7 @@ importers: version: 5.17.0(prisma@5.17.0) '@sentry/nextjs': specifier: ^10.26.0 - version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) + version: 10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3) '@simplifying/tsconfig': specifier: workspace:* version: link:../tsconfig @@ -1198,9 +1195,6 @@ importers: '@simplifying/api-client': specifier: workspace:* version: link:../api-client - '@simplifying/errors': - specifier: workspace:* - version: link:../errors '@simplifying/prisma': specifier: workspace:* version: link:../prisma @@ -1246,6 +1240,15 @@ importers: specifier: ^4.0.16 version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@24.10.7)(@vitest/ui@4.0.16)(happy-dom@20.5.3)(jiti@2.4.2)(jsdom@27.4.0)(msw@2.11.6(@types/node@24.10.7)(typescript@5.5.3))(terser@5.27.2)(tsx@4.21.0) + tools/ai-review: + devDependencies: + typescript: + specifier: 5.5.3 + version: 5.5.3 + vitest: + specifier: ^4.0.16 + version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@24.10.7)(@vitest/ui@4.0.16)(happy-dom@20.5.3)(jiti@2.4.2)(jsdom@27.4.0)(msw@2.11.6(@types/node@24.10.7)(typescript@5.5.3))(terser@5.27.2)(tsx@4.21.0) + packages: '@aashutoshrathi/word-wrap@1.2.6': @@ -11725,7 +11728,7 @@ snapshots: '@sentry/core@10.26.0': {} - '@sentry/nextjs@10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3)': + '@sentry/nextjs@10.26.0(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@15.5.9(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.90.3)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.38.0 @@ -16308,6 +16311,7 @@ snapshots: get-tsconfig: 4.13.0 optionalDependencies: fsevents: 2.3.3 + optional: true turbo-darwin-64@2.7.3: optional: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 253953d1..efd769c5 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,7 @@ packages: - "packages/*" - "apps/*" + - "tools/*" onlyBuiltDependencies: - '@prisma/client' diff --git a/tools/ai-review/package.json b/tools/ai-review/package.json new file mode 100644 index 00000000..780b80fc --- /dev/null +++ b/tools/ai-review/package.json @@ -0,0 +1,14 @@ +{ + "name": "@simplifying/ai-review", + "version": "0.0.1", + "private": true, + "type": "module", + "scripts": { + "test": "vitest", + "test:run": "vitest run" + }, + "devDependencies": { + "typescript": "5.5.3", + "vitest": "^4.0.16" + } +} diff --git a/tools/ai-review/vitest.config.ts b/tools/ai-review/vitest.config.ts new file mode 100644 index 00000000..c60e5819 --- /dev/null +++ b/tools/ai-review/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + include: ["scripts/__tests__/**/*.test.ts"], + }, +});