APIエンドポイントの追加・変更で、DTO、入力検証、OpenAPI仕様、MCPツールの説明や公開範囲を揃え、エージェントからも扱いやすいAPIに整えます。
- APIエンドポイントを追加したいとき
- DTOと入力検証を整えたいとき
- MCPツールとしてAPIを公開したいとき
Prismaのスキーマ変更からマイグレーション作成、各アプリでの型再生成までの手順と、モデルごとの接頭辞付きCUIDによるID規約を確認できます。
Prisma schema conventions and migration workflow
実行スコア 未検証
インストール方法を見るPrismaのスキーマを変更してからマイグレーションを作成し、データベースを使う各アプリでPrismaクライアントの型を再生成する流れを確認できます。スキーマの配置先としてpackages/db/prisma/schema/を示し、bunx prisma migrate devでマイグレーションを作る手順や、apps/app、apps/api、apps/portalでdb:generateを実行する例をまとめています。モデルのIDにはgenerate_prefixed_cuidを使い、usrやorgのような短く一意な接頭辞を付ける規約も扱います。dbgenerated()で関数を包み、::textを含める点も確認できます。
Prismaのモデルや項目を追加・変更するとき、マイグレーション後に型の再生成を忘れないよう手順を確認したい場合に向いています。新しいモデルのID形式を既存の規約に合わせたいときにも役立ちます。
記載の手順ではbunとPrisma CLIを使います。
この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Source Cursor rule: .cursor/rules/prisma.mdc.
Original file scope: **/*.prisma.
Original Cursor alwaysApply: false.
Schema changes happen in packages/db, then regenerate types in each app.
# Schema files are in packages/db/prisma/schema/
packages/db/prisma/schema/
├── schema.prisma # Main schema with datasource
├── user.prisma # User models
├── task.prisma # Task models
└── ...
# Run from packages/db
cd packages/db
bunx prisma migrate dev --name your_migration_name
# Each app needs to regenerate Prisma client types
bun run -F apps/app db:generate
bun run -F apps/api db:generate
bun run -F apps/portal db:generate
# Or from root (if configured)
bun run prisma:generate
# 1. Make schema changes in packages/db
# 2. Create migration
cd packages/db && bunx prisma migrate dev --name add_user_role
# 3. Regenerate types in ALL apps that use the db
bun run -F apps/app db:generate
bun run -F apps/api db:generate
bun run -F apps/portal db:generate
# Don't edit schema in app directories
apps/app/prisma/schema.prisma # ❌ Wrong location
# Don't forget to regenerate types
bunx prisma migrate dev # ✅ Created migration
# ... forgot to run db:generate in apps # ❌ Types out of sync
Always use prefixed CUIDs for IDs using generate_prefixed_cuid.
model User {
id String @id @default(dbgenerated("generate_prefixed_cuid('usr'::text)"))
// ... other fields
}
model Task {
id String @id @default(dbgenerated("generate_prefixed_cuid('tsk'::text)"))
// ... other fields
}
model Organization {
id String @id @default(dbgenerated("generate_prefixed_cuid('org'::text)"))
// ... other fields
}
// Don't use UUID
model User {
id String @id @default(uuid())
}
// Don't use auto-increment
model User {
id Int @id @default(autoincrement())
}
// Don't forget ::text cast
model User {
id String @id @default(dbgenerated("generate_prefixed_cuid('usr')")) // ❌ Missing ::text
}
| Entity | Prefix | Example ID |
|---|---|---|
| User | usr | usr_BJRIZLgRPuWt8MvMjkSY82f1 |
| Organization | org | org_cK9xMnPqRs2tUvWx3yZa4b5c |
| Task | tsk | tsk_dE6fGhIj7kLmNoP8qRsT9uVw |
| Control | ctl | ctl_xY0zAaBb1cDdEe2fFgGh3iIj |
| Policy | pol | pol_kK4lLmMn5oOpPq6rRsSt7uUv |
::text in the function calldbgenerated()usr_ vs org_)After schema changes:
packages/db/prisma/schema/bunx prisma migrate devapps/app with db:generateapps/api with db:generateapps/portal with db:generateまだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
APIエンドポイントの追加・変更で、DTO、入力検証、OpenAPI仕様、MCPツールの説明や公開範囲を揃え、エージェントからも扱いやすいAPIに整えます。
既存コードのデザインシステム利用状況を調べ、旧UI部品やlucide-reactのアイコンを@trycompai/design-systemの部品・Carbonアイコンへ置き換えるスキルです。
指定されたファイルのフックやAPI利用を点検し、禁止パターンをSWRやapiClientなどの指定方式へ修正するための監査手順と実装規約をまとめています。
NestJSのAPIとフロントエンドを調べ、権限チェックや監査ログのルール違反を修正するための確認項目を示します。
権限で表示や操作が変わるコンポーネントの単体テストを点検し、不足分の追加や失敗の修正を行って、管理者と閲覧専用ユーザーの動作を確かめます。
Better Authを使ったTypeScript認証の設定を支援し、データベース接続、セッション管理、メール認証、OAuth、プラグインやセキュリティ項目を整理します。