specsfy-specialist-data-modeling について
プロダクトの永続データモデルを分析・更新するスキルです。仕様作成やデータベース構造の変更を行うチーム向けに、既存コードとmigrationを確認してから、技術や項目を推測せずに実体、関係、データ規則を記録します。
主な機能
- 01コードから実体と関係を特定
- 02項目とライフサイクル規則を記録
- 03整合性、保持、migrationの確認
- 04データ操作と認可のシナリオ導出
- 05migration結果の検証を要求
活用シーン
- 01新しい仕様に向けた永続データの整理
- 02テーブル、モデル、migrationの変更
- 03データのライフサイクルと削除規則の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ promovaweb/ specsfy --skill specsfy-specialist-data-modelingインストール後、Claude Code で/specsfy-specialist-data-modelingを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamlreferences/standards.md
詳細
製品データをモデル化する
データベースやライブラリを憶測で選ばずに、永続データを理解し、発展させるには、このスキルを使用してください。変更を提案する前に、技術スタック、現在のシステム、マイグレーション、スキーマ、モデル、契約、テストを確認してください。
作業
- コードで確認できるエンティティ、その役割、関係を特定します。
- 各情報のフィールド、型、必須性、由来、ライフサイクル、および参照・変更できるユーザーを記録します。
- 該当する場合は、一意性、整合性、保持、削除、履歴、マイグレーションについて説明します。
- spec のデータセクションを更新し、確認済みの回答を
$specsfy-aux-databaseと.specsfy/DATABASE.mdに反映します。 - 作成、読み取り、更新、削除、認可、無効なデータに関するシナリオを導き出します。実装では、検出されたデータベースのスペシャリストを使用します。
フィールド、関係、技術を捏造しないでください。現在のシステムから必要なデータが判断できない場合は、製品で何を保存する必要があるかをユーザーに確認してください。
使用する場面
- テーブル、スキーマ、モデル、マイグレーション、永続データの契約を変更する場合に使用します。
- spec を作成する前に、関係とライフサイクルを把握する場合にも使用します。
- プロジェクトの情報なしに、データベースライブラリを選ぶ目的では使用しないでください。
フロー
- 既存の技術スタック、マイグレーション、スキーマ、モデル、テストを確認します。
- 確認できたエンティティ、関係、フィールド、状態を分類します。
- 一意性、保持、削除、履歴のルールを記録します。
- 提案を現在の契約およびクエリと照合します。
- 確認結果をプロジェクトのデータベーススキルに反映します。
- データベースに関わる変更には、バージョン管理されたファイルを含む
[MIGRATION]タスクを必須とし、テスト用データベースで適用を確認します。
規約
- 各フィールドに型、由来、必須性、ライフサイクルを記録します。
- 各関係にカーディナリティと読み込み方法を記載します。
- すべてのマイグレーションで既存データを保持するか、必要な変換を説明します。
アンチパターン
- 製品での用途を確認せずにフィールドを作成する。
- クエリ、ファクトリー、テストを確認せずに関係を変更する。
- 既存の技術スタックを読む前に技術を選ぶ。
検証
- 永続モデルに関係するテストとバリデーターを実行します。
- データベースのコピーでマイグレーションを確認し、適用後のスキーマを比較します。
- タスクを完了する前に、ファイル、適用コマンド、マイグレーション状態の確認クエリを確認します。
- プロジェクトから検証可能な出力を得るまで、モデルの完成を宣言しないでください。
関連スキル
- プロジェクトの永続データマップを維持するには
$specsfy-aux-databaseを使用します。 - Postgres 固有の詳細には
$specsfy-specialist-postgresを使用します。 - Laravel のマイグレーションとモデルには
$specsfy-specialist-laravelを使用します。
モデリング、マイグレーション、永続データの契約に関する情報源については、references/standards.md を参照してください。
コメント
Markdown 対応