http://localhost:8010/_root/docs/prd/deployment/deployment-PRD.html?annotate=1这一页是给机器跑的,你不用看。回正文:deployment-PRD.html
所有命令都从仓库根跑:cd "/Users/jack/yummy-repos/Video Picker Git"。
统一 runner 是 tools/ops/deployment_prd_check.py(磁盘上已存在、已实测能跑):
不带参数跑全部,带 F 编号只跑一条;收据行 TOTAL: 0 failures 才算过。
写作当下(改 SKILL.md 之前)的实测基线是 TOTAL: 4 failures(F1-F4 红)——
红的含义是"扩建还没做",扩建完成的判定就是它归零。
| 编号 | 功能 | 检查 |
|---|---|---|
| F1 | 分流表写进 SKILL.md(四条车道关键词齐) | python3 tools/ops/deployment_prd_check.py F1 → PASS,收据 TOTAL: 0 failures |
| F2 | 官网上生产道收编(唯一入口+违规红线+入口脚本还能跑) | python3 tools/ops/deployment_prd_check.py F2 → PASS |
| F3 | 三道闸接线(cf_write_gate·双签·ui-test-gate) | python3 tools/ops/deployment_prd_check.py F3 → PASS |
| F4 | 接缝双向声明(四个邻居互相点名) | python3 tools/ops/deployment_prd_check.py F4 → PASS |
| F5 | 重扫过闸(发布域无未声明重叠) | python3 tools/ops/deployment_prd_check.py F5 → PASS(内部调 build_registry.py,不带 --proposed) |
| F6 | 两道硬门出货(validate_skill + verify_skill_zip 均 exit 0) | python3 tools/ops/deployment_prd_check.py F6 → PASS |
| F7 | Hao + Rohan 共管面写进 SKILL.md(清单+"写动作要他们点头") | python3 tools/ops/deployment_prd_check.py F7 → PASS |
下面每条命令写之前都已核实点名的工具真的在磁盘上;标注的是本 PRD 写作当下(改 SKILL.md 之前)实测跑出来的结果, 只作为"这条命令确实能跑、不是编的"的证据——改完 SKILL.md 之后重跑,期望输出才是判定标准。
cd "/Users/jack/yummy-repos/Video Picker Git" && for kw in "worker" "tunnel" "deploy-netlify.sh" "sshops"; do grep -qi "$kw" skills/cloudflare-publish/SKILL.md && echo "OK: $kw" || echo "MISSING: $kw"; done
期望输出:四行,全部 OK: 关键词。
写这份 PRD 时实测:OK: sshops,其余三个都是 MISSING——扩建工作要把这三条也写进 SKILL.md。
cd "/Users/jack/yummy-repos/Video Picker Git" && grep -q "deploy-netlify.sh" skills/cloudflare-publish/SKILL.md && grep -qi "netlify deploy --prod" skills/cloudflare-publish/SKILL.md && echo PASS || echo FAIL
期望输出:PASS(两个关键词都要出现——一个是唯一正确入口,一个是被点名为违规的裸命令)。
写这份 PRD 时实测:FAIL(两个关键词现在都不在 SKILL.md 里)。
补充:唯一正确入口脚本本身的语法完整性(这份 PRD 不改它,只验证它还在、还能跑):
bash -n "/Users/jack/yummy-repos/website/scripts/deploy-netlify.sh"; echo "exit=$?"
期望输出:exit=0。写这份 PRD 时实测已经是 exit=0。
cd "/Users/jack/yummy-repos/Video Picker Git" && for gate in "cf_write_gate" "双签" "ui-test-gate"; do grep -q "$gate" skills/cloudflare-publish/SKILL.md && echo "OK: $gate" || echo "MISSING: $gate"; done
期望输出:三行,全部 OK: 门名。
写这份 PRD 时实测:三个全部 MISSING。
cd "/Users/jack/yummy-repos/Video Picker Git" && for n in remote-server-ops share-and-feedback wefunder-campaign-deploy combine-web-pages; do a=$(grep -qi "$n" skills/cloudflare-publish/SKILL.md && echo Y || echo N) b=$(grep -qi "cloudflare-publish" "skills/$n/SKILL.md" && echo Y || echo N) echo "$n: cloudflare-publish提到它=$a 它提到cloudflare-publish=$b" done
期望输出:四行,每行两个 Y。
写这份 PRD 时实测:remote-server-ops 和 share-and-feedback 两边都已经是 Y Y;
wefunder-campaign-deploy 和 combine-web-pages 那两行是 cloudflare-publish提到它=N——
它们已经在自己描述里提过 cloudflare-publish,但 cloudflare-publish 还没提过它们,缺的是这一半。
cd "/Users/jack/yummy-repos/Video Picker Git" && python3 skills/skill-hub/scripts/build_registry.py --roots skills --out reports/skill-registry && python3 -c "
import json
d = json.load(open('reports/skill-registry/registry.json'))
bad = [e for e in d['edges'] if 'cloudflare-publish' in (e['a'], e['b']) and e['tier']=='OVERLAP' and not e['declared_seam']]
print('undeclared OVERLAP:', bad)
print('PASS' if not bad else 'FAIL')
"
期望输出:最后一行 PASS(undeclared OVERLAP: [])。
写这份 PRD 时实测(不带 --proposed):确实是 PASS——已经放弃的
website-publish-governor 新技能提案不会再被这条命令翻出来(它只在专门传
--proposed 参数重放那次扫描时才会出现,日常重扫不要加这个参数)。
cd "/Users/jack/yummy-repos/Video Picker Git" && python3 skills/yummy-skill-creator/scripts/validate_skill.py skills/cloudflare-publish; echo "validate_skill exit=$?" python3 skills/yummy-skill-creator/scripts/verify_skill_zip.py skills/cloudflare-publish skills/cloudflare-publish.skill; echo "verify_skill_zip exit=$?"
期望输出:两行都是 exit=0(改完 SKILL.md 要重新打包出 .skill,
再跑这条——旧 .skill 内容跟改完的源目录不一致,verify_skill_zip 会先报非零)。
注意参数顺序是先文件夹、后 .skill:verify_skill_zip.py <skill 文件夹> <.skill 文件>——
脚本自己的 --help 就是这么写的。
cd "/Users/jack/yummy-repos/Video Picker Git" && python3 tools/ops/deployment_prd_check.py F7
期望输出:PASS F7,收据 TOTAL: 0 failures。
检查的是:Hao、Rohan 两个名字,设备远程升级(Mender),以及"写动作要他们点头"的规矩,
都要能在扩建后的 SKILL.md 里搜到。写这份 PRD 时实测:FAIL(都还没写进去)。