Skip to content

[AI][Fix #25] 为 version_manager.py 补上 SKILL.md 所调用的 backup action#30

Open
josephmqiu wants to merge 1 commit into
perkfly:mainfrom
josephmqiu:fix/25-version-manager-backup-action
Open

[AI][Fix #25] 为 version_manager.py 补上 SKILL.md 所调用的 backup action#30
josephmqiu wants to merge 1 commit into
perkfly:mainfrom
josephmqiu:fix/25-version-manager-backup-action

Conversation

@josephmqiu

Copy link
Copy Markdown

Important

🤖 AI 声明:本 PR 由 AI 模型 Claude Fable 5(Anthropic,运行于 Claude Code)编写并在本地测试,经 @josephmqiu 授权提交。

Fixes #25

问题

SKILL.md 的「进化模式:追加文件」流程(中文版第 318 行 / 英文版第 587 行)在更新前调用:

python3 ${CLAUDE_SKILL_DIR}/tools/version_manager.py --action backup --slug {slug} --base-dir ./exes

version_manager.py 的 argparse choices 只有 list / rollback / cleanupbackup action 从未实现——存档步骤每次都以退出码 2 失败,versions/ 目录里没有任何东西可供 rollback 恢复。

改动

  • 新增 backup():从 meta.json 读取当前版本号,把 SKILL.md / memories.md / persona.md 复制到 versions/{current_version}/,并输出实际存档的文件列表(与 skill_writer.update_skill() 已有的存档逻辑保持一致)
  • argparse choices 加入 "backup"main() 增加对应分发;meta.json 缺失时报错并以退出码 1 退出
  • 模块 docstring 补充用法示例

不改动任何现有 action 的行为。

本地测试

$ python3 tools/version_manager.py --action backup --slug xiaomei --base-dir <test>/exes
已存档当前版本(v1)到 .../xiaomei/versions/v1,文件:memories.md, persona.md

$ python3 tools/version_manager.py --action list --slug xiaomei --base-dir <test>/exes
xiaomei 的历史版本:
  v1  存档时间: 2026-07-02 01:58  文件: memories.md, persona.md

$ python3 tools/version_manager.py --action rollback --slug xiaomei --version v1 --base-dir <test>/exes
已回滚到 v1,恢复文件:memories.md, persona.md

backup → list → rollback 全链路首次可以跑通。

🤖 Generated with Claude Code

https://claude.ai/code/session_01Qxv8G25EYkYzQyY6FdJ6qH

SKILL.md's evolution flow (zh line 318 / en line 587) invokes
'version_manager.py --action backup' before applying updates, but the
action was never implemented (argparse choices only had
list/rollback/cleanup), so the archive step always exited with code 2
and rollback had nothing to restore.

Implements backup(): reads the current version from meta.json, copies
SKILL.md/memories.md/persona.md into versions/{current_version}/, and
reports what was archived. Mirrors the archive logic already present in
skill_writer.update_skill().

Fixes perkfly#25

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qxv8G25EYkYzQyY6FdJ6qH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[AI审查][Bug] SKILL.md 进化流程调用了不存在的 version_manager.py --action backup,存档步骤必然失败

1 participant