Community研究与数据分析github.com

teefayb/claude-code-setup-demo

安全地更改存储数据的形状(添加、重命名或删除 Link 上的字段),包括对现有数据文件的版本化升级。当任务需要新增或修改存储字段时使用。

claude-code-setup-demo 是什么?

该技能用于安全地修改存储在 JSON 文件中的数据模型,支持添加、重命名或删除 Link 实体上的字段。它明确区分了“增量变更”(添加带有默认值的可选字段,无需版本号升级)和“破坏性变更”(重命名、删除、新增必填字段或更改类型,需要数据文件版本号升级)。对于破坏性变更,技能会自动将旧的 schema 保留为 `dataFileV1Schema`,并在 `store.ts` 中增加 `upgradeV1toV2` 函数,使得读取旧文件时自动升级,但不会就地覆写文件,而是在下一次 `save()` 时写入新版本。该技能适用于任何使用 JSON 文件持久化数据的开发项目,主要支持 Claude Code 环境。它还要求运行测试确保新旧格式的兼容性,并最终通过 `npm run check` 和 `npm run build` 验证。

兼容平台✓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. 仅当任务要求时才更新用户界面。
  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.

相关技能