Files
CraftKit/plugins/git/skills/export/SKILL.md
T

2.2 KiB

name, description
name description
export 从 Git 提交范围、时间范围或当前工作区预览并导出变更文件,保留相对目录并生成分类清单。适用于制作代码交付快照;提交、推送、部署或无审查地导出环境配置不应触发本 Skill。

导出 Git 变更

使用 scripts/export.py 先预演文件分类,再经用户确认写入目标目录。导出不会修改工作区、暂存区、提交或来源文件。

选择模式和快照

  • range:两个 Git 引用之间发生变化的文件。
  • time:指定提交时间范围内曾发生变化的文件。
  • worktree:当前 staged、unstaged,以及用户明确要求时的 untracked 文件。

还必须确认内容快照:工作区、HEAD 或指定提交。时间范围只决定“选择哪些文件”,不自动决定“取哪个版本”。详细参数见 模式说明。

环境配置边界

  • 环境配置、本地配置、机器配置、.craftkit/local/** 和 .craftkit/cache/** 默认标记为 protected,不导出。
  • .env.example 等不含真实值的公开模板可作为普通候选,但仍执行内容扫描。
  • 只有当前项目适用的 AGENTS.md、.craftkit/agents/ 或 .craftkit/standards/ 明确要求交付该配置,并且用户看到预览后再次确认,才可同时传入 --allow-protected 和 --policy-evidence <项目内文档>。
  • 私钥和检测到的凭据始终标记为 blocked;项目规范和用户确认都不能解除。
  • .craftkit/agents/**、.craftkit/standards/**、.craftkit/knowledge/**、.craftkit/handoff/** 和 .craftkit/project.json 属于普通共享资产。

两阶段执行

  1. 不带 --apply 运行,查看 exported、protected、blocked、deleted 和 missing 分类。
  2. 展示目标目录、快照引用、规范证据和全部分类;不得只展示将导出的文件。
  3. 用户确认后,以相同参数增加 --apply。目标已存在时默认停止;覆盖必须另外确认并使用 --force。
  4. 检查目标目录中的 export-manifest.json,抽查路径与内容来源。

脚本只调用本地 Git,不执行 fetch、commit、push 或部署。