用途:在正式发版前,或操作者询问项目是否可发布时,运行 jackin❯ 的发布就绪门禁。发版本身应使用 jackin-release,它会把本技能作为第一道门禁。
主要能力与流程:按顺序运行各门禁,并汇总为每行一个门禁的报告。CI 门禁用 gh run list --workflow=ci.yml --branch=main --limit=1 --json conclusion --jq '.[0].conclusion',仅 success 为绿;若自上个 tag 起 docker/construct/** 或 docs/** 有变更,还需 construct.yml / docs.yml 在 main 上为绿。静态门禁:cargo fmt --check;cargo clippy --all-targets --all-features -- -D warnings,任一违规即红。测试门禁:cargo nextest run --all-features;cargo nextest run -p jackin --features e2e --profile docker-e2e,任一失败即红。文档链接门禁:遍历 docs/content/docs/ 下的内部链接,目标文件不存在且指向已发布页面则红,无法访问的外部 URL 仅警告。TODO 新鲜度:读取 TODO.md 与 todo/,标记引用已完成工作或无近期活动的条目,仅警告不阻塞。安全例外:读取 SECURITY_EXCEPTIONS.md,逐条向操作者确认是否仍有效,确认前阻塞。直接提交审计:git log <last-tag>..HEAD --oneline --no-merges,对每个提交用 gh pr list --state merged --search "<sha>" 匹配 PR,无 PR 仅警告。
报告格式:每行一个门禁,✓ 绿、✗ 红(阻塞)、⚠ 警告、- 跳过。红门禁停止发布,警告交由操作者决定接受或修复。
限制与常见错误:不要用 cargo test --locked 或 cargo clippy -- -D warnings 等被删减标志的命令,仓库真实门禁带 --all-targets --all-features 并使用 nextest;不要把警告当阻塞、把红当警告;docker/ 或 docs/ 变更时不要跳过对应 CI 工作流;不要自造文档链接检查,应遍历真实的 docs/content/docs/ 目录。仅在用户明确要求时使用本技能。