用途:将 flow walk 产生的视觉证据(截图、GIF、视频)上传到公开 S3 桶,返回可嵌入 Markdown 的 URL,用于 GitHub issue 和 PR。使用公开桶是因为 GitHub 在私有仓库中不渲染仓库相对路径或 raw.githubusercontent.com 图片,分支托管链接也会随分支失效。
主要能力:支持 png、jpg、jpeg、gif、webp、mp4、webm、pdf、txt;按内容寻址生成键名 <owner>/<repo>/<YYYY>/<MM>/<sha256前16位>-<basename>;默认输出 URL 和 Markdown 图片/链接语法,--url-only 只输出 URL;上传后验证公开 URL 返回 HTTP 200 才打印。
使用方式:脚本位于技能目录,如 .flowchad/skills/evidence-upload/scripts/upload_evidence.sh。接口:upload_evidence.sh [--repo owner/repo] [--prefix path] [--alt text] [--url-only] [--dry-run] FILE...。--repo 默认取 git remote get-url origin。配置仅读环境变量 EVIDENCE_AWS_ACCESS_KEY_ID、EVIDENCE_AWS_SECRET_ACCESS_KEY、EVIDENCE_BUCKET、EVIDENCE_REGION、EVIDENCE_PUBLIC_BASE_URL,缺失时退出码 2。.flowchad/config.yml 的 evidence.backend 接受 s3(默认)或 none。退出码:0 全部成功,1 部分失败,2 用法或配置错误。
适用场景:flow-walk 完成后上传截图和 GIF;flow-reproduce 附加复现证据;flow-report 嵌入证据 URL;任何从发现创建 GitHub issue 或 PR 评论的命令。
限制:上传内容公开可读,禁止上传密钥、令牌、客户 PII 或生产数据,建议使用 staging 或合成数据并先裁剪或脱敏;上传者无法删除对象。上传失败不阻塞走查,但需记录原因、回退到本地路径并说明证据仅本地。脚本用 curl --aws-sigv4 签名 PUT,需 curl ≥ 7.75,不依赖 AWS CLI。