Community研究&データ分析github.com

teefayb/claude-code-setup-demo

保存されているデータの構造を安全に変更(Linkへのフィールド追加、リネーム、削除など)します。既存のデータファイルをバージョンアップグレードに対応させながら変更できます。新しいストレージフィールドが必要なタスクで使用します。

claude-code-setup-demo とは?

このスキルは、既存のJSONデータファイルのデータモデルを安全に変更するための手順を提供します。チームメイトのマシンやサーバー上にすでに存在するファイルに対して、フィールドの追加(後方互換性あり)、リネーム、削除、型変更(破壊的変更)を行う際に、古い形式のファイルを読み込めるまま新しい形式にアップグレードする仕組みを実装します。このスキルはClaude Code(および同様のエージェント)向けに設計されており、`src/lib/links/schema.ts`や`store.ts`、`data/seed.json`の読み取り、スキーマ定義の更新(Zod)、Seed JSONの更新、テスト(`store.test.ts`)の作成を自動化します。破壊的変更の場合はデータファイルのバージョン番号を上げ、旧バージョン用スキーマとアップグレード関数を追加することで、既存データを安全に移行します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/teefayb/claude-code-setup-demo/tree/HEAD/.claude/skills/change-data-model

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

データモデルの変更: $ARGUMENTS

保存データはJSONファイルとして、チームメイトのマシンやサーバー上にすでに存在します。 そのため、すべての変更は古いファイルを壊さずに読み込めるように行う必要があります。

手順

  1. src/lib/links/schema.ts、src/lib/links/store.ts、data/seed.json を読み取ってください。
  2. 変更が追加的(デフォルト値を持つ新しいオプションフィールド)か破壊的(リネーム、削除、新しい必須フィールド、型変更)かを判断してください。
    • 追加的: フィールドを linkSchema に .optional() または .default(...) で追加し、ユーザーが設定できる場合は linkInputSchema にも追加します。バージョンは上げません。
    • 破壊的: データファイルの version リテラルを(例:1 → 2)に上げてください。古いスキーマを dataFileV1Schema として保持し、store.ts に upgradeV1toV2(data) 関数を追加します。この関数は load() が v1 ファイルを読み込んだときに適用されます。読み取り時にファイルを書き換えることはせず、次の save() で v2 を書き込みます。
  3. data/seed.json を新しい形状に更新してください。
  4. タスクで要求されている場合にのみUIを更新してください。
  5. src/lib/links/store.test.ts でのテスト:
    • 新しいフィールドが createLink と listLinks を通じて正しく保存・取得できること。
    • 破壊的変更の場合: 一時データパスにv1ファイルを書き込み、listLinks() がアップグレードされたリンクを返すこと、およびその後の createLink でv2ファイルが保存されることをアサートします。
  6. npm run check と npm run build を実行してください。
  7. サマリーで、変更が追加的か破壊的か、および既存のデータファイルに何が起こるかを記述してください。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル