Files
massive-cloud/.agents/skills/package-source-sha1/SKILL.md

2.0 KiB
Raw Blame History

name, description
name description
package-source-sha1 为 massive-cloud-v3 生成可复现的纯源码 ZIP 包、内容清单和 40 位 SHA-1。用户要求打包整个项目、交付源码包、排除点云/CAD/数据库/构建产物/密钥,或计算项目 ZIP 哈希时使用。

打包源码并计算 SHA-1

使用 scripts/package_source.py,不要临时拼装 find、tar 或 zip 命令。

工作流

  1. 根据项目 AGENTS.md 查看开发服务器 /home/lipan/massive-cloud-v3 的实时工作树和 git status。
  2. 先运行 --dry-run 检查纳入、排除数量和排除原因;发现异常大文件或新的数据格式时,先更新脚本规则。
  3. 运行正式打包。脚本只从 git ls-files --cached --others --exclude-standard 取候选文件,因此包含已跟踪文件和未忽略的新文件,也包含尚未提交的实际代码改动。
  4. 将 ZIP、.sha1 和 .manifest.json 一起交付。明确说明包是否包含未提交改动,并报告基线提交。
  5. 用 unzip -t 验证 ZIP;再独立运行 sha1sum 或 shasum -a 1,确认与 .sha1 一致且为 40 位小写十六进制。

固定规则

  • 保留源码、测试、SQL、配置模板、依赖清单/锁文件、容器配置、脚本和文档。
  • 排除 Git 历史、被 .gitignore 忽略的内容、真实 .env、密钥、日志、缓存、依赖目录和构建产物。
  • 排除点云、CAD/网格、数据库、表格结果、归档包、模型权重等非源码文件。
  • 不要使用 git archive:它会遗漏工作区中尚未提交的实际代码。
  • ZIP 使用固定时间戳、固定顺序和规范权限;相同文件内容应生成相同哈希。

命令

python3 scripts/package_source.py \
  --source /home/lipan/massive-cloud-v3 \
  --output /tmp/massive-cloud-v3-source.zip \
  --dry-run

python3 scripts/package_source.py \
  --source /home/lipan/massive-cloud-v3 \
  --output /tmp/massive-cloud-v3-source.zip

不要把产物写进被打包的源码目录;优先使用 /tmp,再复制到交付位置。