com um clique
database
Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションの実行方法
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションの実行方法
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
SwiftUI のレイアウト落とし穴・ベストプラクティス・非推奨パターンと、 iOS / watchOS アプリの実機配布 (Provisioning / App Group / Code Signing / Apple Watch Developer Mode / Xcode 15+ Debug dylib) トラブルシューティング のガイド。コード生成・修正時に既知のレイアウトバグを防ぎ、 App Group + watchOS + Apple Watch の実機インストール失敗を 7 段階フレームワークで診断・解消する。 Use when: SwiftUI のコードを書く・修正するとき。 レイアウト崩れを修正するとき。safeAreaInset や ViewThatFits を使うとき。 マルチデバイス対応するとき。iOS + watchOS アプリの実機ビルド / 配布で provisioning / App Group / Manual Signing / Apple Watch の UDID / Xcode 自動署名の 罠に詰まったとき。Apple Watch に "Could not install at this time" が出たとき。 Triggers: "SwiftUI", "layout", "safeAreaInset", "ViewThatFits", "GeometryReader", "レイアウト", "崩れ", "表示バグ", "iPhone SE", "ATT", "ATTrackingManager", "requestTrackingAuthorization", "AdMob", "広告", "Provisioning Profile", "App Group", "Manual Signing", "Code Signing", "Apple Watch", "watchOS", "Install できない", "Could not install at this time", "Bundle ID 紐付け", "Xcode Automatic Signing", "embedded.mobileprovision", "Spaceship", "App Store Connect API", "WKCompanionAppBundleIdentifier", "Dev
アプリ名・サービス名の命名を、5つの専門エージェントチームで多角的に評価・決定するスキル。 ブランディング、商標/法的リスク、デジタルプレゼンス(SEO/ASO/SNS)、国際展開(多言語/発音)の 4観点から候補を提案・調査・議論し、コンテキストファイルと議事録で次回セッションへ引き継ぐ。 Use when: アプリ名を決めたい、サービス名を変更したい、プロダクト名を検討したい、 ネーミングブレスト、名前の商標チェック、アプリ名のリネーム。 Triggers: "アプリ名", "サービス名", "プロダクト名", "ネーミング", "名前を決め", "リネーム", "rename", "app name", "naming", "ブランド名", "商標チェック"
仕様書・要件定義からソフトウェアアーキテクチャを設計するスキル。 5人の専門エージェント(Architecture Lead・Module Designer・Dependency Analyst・ Platform Expert・Devil's Advocate)が協議しながら、 モジュール分割・依存関係・データフロー・インターフェース設計を行う。 成果物は構造化されたアーキテクチャ設計書(Markdown)。 Use when: 仕様書からどう設計するか迷っている時、モジュール分割の方針を決めたい時、 技術スタックに合ったアーキテクチャパターンを選びたい時、 設計書を作成したい時。 Triggers: "アーキテクチャ設計", "arch design", "仕様書から設計", "モジュール分割", "設計書を作りたい", "アーキテクチャを考えて", "コンポーネント設計", "依存関係を設計", "どう設計する", "design the architecture", "design from spec"
App Store / Google Play 用のプロモーションスクリーンショットを Pencil (.pen) で生成する Agent Team スキル。creative-director が戦略を立て、screenshot-designer が Pencil で デザインを構築し、copy-writer がコピーを提供し、spec-validator が技術仕様を数値検証し、 quality-reviewer が最終品質を確認する。5エージェント体制で高品質なスクリーンショットを生成。 Use when: App Store スクリーンショットを作りたい、プロモーション画像を作成したい、 スクショのデザインをしたい。 Triggers: "スクリーンショット作成", "App Store 画像", "プロモーションスクショ", "screenshot creator", "スクショ作って", "App Store 素材"
ブランチ作成、コミット、PR作成までのGitワークフローを支援する
エージェントを長時間稼働させて大きな実装タスクを完遂するためのスキル。 TODO ファイル (.md) を管理しながら、高レベル TODO → 細かい TODO に分解 → 実装 → サブエージェントによるレビュー → 不足分の TODO 追加 のサイクルを回す。 コンテキストが大きくなっても TODO ファイルが状態の真実の源泉として機能するため、 長時間・大規模な変更でも迷子にならずに着実に完遂できる。 team-plan や team-implement とは異なり、1人のメインエージェントが逐次的に実装し、 各段階をレビューエージェントが品質検証する。 Use when: 大きな実装タスクを段階的に進めたい、エージェントに長時間任せたい、 実装中に TODO を追加しながら進めたい、各ステップの品質をサブエージェントにレビューさせたい、 長時間の実装を構造化したい、放置しても安心して任せられる実装フローが欲しい。 Triggers: "long-run", "段階的に実装", "TODO駆動で実装", "大きな実装", "ステップバイステップで実装", "レビューしながら実装", "long run implement", "実装を進めて", "大規模実装", "iterative implement", "長時間実装", "エージェントに任せて", "放置で実装"
| name | database |
| description | Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションの実行方法 |
Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションに関するガイド。
手動でマイグレーションSQLファイルを作成しない
drizzle/ ディレクトリに直接 .sql ファイルを作成してはいけないpnpm db:generate で自動生成する手動でDBを直接操作しない
sqlite3 コマンドで直接 ALTER TABLE などを実行しないdrizzle/meta/_journal.json を手動で編集しない
drizzle-kit が自動管理するファイルschema.ts から始めるpnpm db:generate で生成するpackages/server/src/db/schema.ts を編集する。
// 例: sessions テーブルに新しいカラムを追加
export const sessions = sqliteTable('sessions', {
id: text('id').primaryKey(),
// ... 既存のカラム
newColumn: text('new_column'), // 追加
});
cd packages/server
pnpm db:generate
これで drizzle/XXXX_<random_name>.sql が自動生成される。
開発環境では、サーバー起動時に自動適用される:
pnpm dev
または手動で適用:
pnpm db:migrate
サーバーを起動して、エラーがないことを確認。
packages/server/
├── drizzle.config.ts # Drizzle Kit 設定
├── drizzle/ # マイグレーションファイル (自動生成)
│ ├── 0000_init.sql
│ ├── 0001_xxx.sql
│ └── meta/ # マイグレーションメタデータ (自動管理)
│ ├── _journal.json
│ └── XXXX_snapshot.json
└── src/
└── db/
├── schema.ts # スキーマ定義 (これを編集)
└── index.ts # DB接続・マイグレーション実行
すべてのコマンドは packages/server ディレクトリから実行する。
| コマンド | 説明 |
|---|---|
pnpm db:generate | スキーマからマイグレーションファイルを自動生成 |
pnpm db:migrate | マイグレーションを適用 |
pnpm db:push | スキーマを直接DBに反映 (開発用のみ) |
pnpm db:studio | Drizzle Studio (DB GUI) を起動 |
アプリケーション起動時に initializeDatabase() が呼ばれ、未適用のマイグレーションが自動実行される。
// packages/server/src/db/index.ts
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
export function initializeDatabase(): void {
migrate(db, { migrationsFolder: './drizzle' });
}
drizzle/meta/_journal.json にエントリがあるか確認rm .brandize/brandize.db && pnpm devrm packages/server/.brandize/brandize.db
pnpm dev # 再起動で再作成
| テーブル | 説明 | 主要カラム |
|---|---|---|
projects | プロジェクト管理 | id, name, description, working_dir |
sessions | 会話セッション | id, project_id, title, type, topic |
messages | メッセージ履歴 | id, session_id, role, content |
logos | ロゴ生成履歴 | id, project_id, brand_name, svg |
worktrees | Git worktree 管理 | id, project_id, branch_name, path |
project_configs | プロジェクト設定 | id, project_id, brand_name, etc. |