Community研究與資料分析github.com

teefayb/claude-code-setup-demo

安全地改變儲存資料的形狀(在 Link 上新增、重新命名或移除欄位),包括對現有資料檔案進行版本化升級。當任務需要新增或變更儲存欄位時使用。

claude-code-setup-demo 是什麼?

此技能專為需要安全修改 JSON 檔案中儲存資料結構的開發者設計。它提供了一套清晰、可重現的步驟,用於對資料模型進行新增或破壞性變更,同時確保與團隊成員機器及伺服器上已有的舊檔案完全相容。該技能會根據變更類型(新增或破壞性)自動引導操作流程:新增變更只需在 schema 中加入可選或具有預設值的欄位;破壞性變更則需遞增資料檔案版本、保留舊 schema,並在 store 中實作升級函數。它支援 Claude Code 等 AI 代理平台,並包含嚴格的測試要求,以確保新欄位能正確進行序列化與反序列化,且破壞性變更能無縫升級現有資料。最後,它會要求執行建置檢查,並在摘要中清楚說明變更類型及其對現有檔案的影響。

相容平台✓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 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

變更資料模型:$ARGUMENTS

儲存的資料存在於隊友電腦和伺服器上已經存在的 JSON 檔案中, 因此每次變更都必須能夠讀取舊檔案而不會發生錯誤。

步驟

  1. 讀取 src/lib/links/schema.ts、src/lib/links/store.ts 和 data/seed.json。
  2. 判斷變更是新增性的(新的可選欄位,有預設值)還是破壞性的(重新命名、移除、新的必填欄位、型別變更)。
    • 新增性:在 linkSchema 中使用 .optional() 或 .default(...) 加入該欄位,如果使用者可以設定,則也加入 linkInputSchema。無需遞增版本。
    • 破壞性:遞增資料檔案 version 常數(例如 1 → 2)。將舊 schema 保留為 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.

相關技能