luckykuang/infoq-scaffold-ai/push-cli
Claude Code and agent skill by luckykuang/infoq-scaffold-ai
- community
Checking that the SKILL.md file is still in the repository.
预览或执行 GitHub 分支推送、PR 创建与校验回流、受控合并。适用于推送代码、提交 PR、修复 PR 校验失败或合并 PR;远程写入默认预览,显式 --execute 才执行,合并还需 --yes。
Install
npx vskill@latest install luckykuang/infoq-scaffold-ai/push-cliSKILL.md
InfoQ 推送与 PR 闭环
本技能负责从本地改动到默认分支的受控推送链路。push、submit-pr、merge 默认 dry-run,只有显式 --execute 才执行写操作。预览不会创建分支、提交、tag 或远程写入;仍会读取 GitHub 状态并要求相应前置条件。--execute 与 --dry-run 互斥,未知参数和缺失参数值显式失败。 参数按子命令校验:check 会实际运行矩阵,不接受 --dry-run;--json 仅适用于 status。origin 的唯一 fetch/push URL 必须指向同一 GitHub 仓库,gh 请求显式绑定该目标,不受 GH_REPO 或默认 remote 选择影响。
硬边界
- 禁止直推默认分支:默认分支只接受 PR 合并。
- 处于默认分支时,
submit-pr --execute会用fetch --no-tags从origin/<default>拉取最新提交并新建工作分支(auto/<yyyymmdd-hhmmss>),后续提交与推送都发生在该分支;预览只展示计划。 - 禁止
--force、--all、--tags等危险推送形式;只有显式--force-with-lease才允许改写已推送分支,远端不存在该分支时拒绝。 - PR 必须通过 GitHub 校验;校验未全绿时禁止合并。
- 合并是独立步骤,必须显式
--execute --yes;--admin绕过分支保护一律禁止。--yes单独使用仍是预览。 - 凭证只使用已登录的 GitHub CLI 会话(
gh auth setup-git);禁止在仓库中写入 token,禁止静默切换到其他凭证方式。
执行顺序
- 判定范围:确认是快速推送、完整 PR 提交、只看校验状态,还是修复校验失败。
- 探测:
ensure校验 gh 登录、仓库信息与写权限;status查看当前分支、脏文件与已打开的 PR,并 fetch 默认分支以计算落后数量。它们不远程写入;status会更新本地远程跟踪引用。 - 本地校验:
check运行仓库校验矩阵(docs/ci/full;ci覆盖本机 CI 核心检查,full追加 docs 门禁)。 - 提交与推送:先预览
submit-pr,确认目标与影响后加--execute;它在工作分支上校验、提交并推送。预览不会实际运行校验矩阵,不能把预览视为检查通过。 - PR 与校验:
submit-pr创建或复用 PR,然后watch轮询 GitHub 校验;失败时输出失败 check 名称与失败日志摘要。 - 修复回流:根据失败日志修改代码 → 重新
submit-pr(同一个 PR 会被复用),直到校验全绿。 - 合并:先预览
merge --pr <number> --yes,满足门禁并获得合并授权后用--execute --yes执行,删除远端分支。 - 发布衔接:合并完成后使用
release-cli做版本与 Release 发布。
默认命令
校验矩阵
--profile docs:node tools/validate_utf8.mjs、node tools/check_readme_sync.mjs、node tools/check_release_version.mjs、node tools/check_doc_links.mjs、node skills/compress-cli/scripts/agents_check.mjs check,并在存在 active change 时运行node tools/openspec_check.mjs <change-id>。--profile ci:覆盖.github/workflows/ci.yml的本机核心步骤:UTF-8、README、版本、文档链接 + 固定 Maven 安装器回归 + release-cli/bump/version/assets/policy 五组回归 + React/Vue lint/test/build +node tools/backend_mvn.mjs -- -B -ntp -DskipTests=false clean package -P dev与同命令的-P prod,分别覆盖完整业务单测和生产配置回归。不包含 agents_check / openspec_check,也不代替远端 OS 矩阵、安全扫描或运行态验收。Maven 安装器回归需要访问 Maven Central 与可用 Java;生产前端构建须先按docs/RELEASING.md准备受控或显式隔离构建输入。--profile full:docs 矩阵(含 agents_check / active openspec_check)+ CI 矩阵;用于发布前完整本地门禁。- 任一命令失败即为硬失败;禁止把失败标记为通过后继续推送。
证据目录
tmp/push-cli/<run-id>/push.log 保存 CLI 摘要;check-*.log 保存实际运行的本地矩阵输出。watch 失败 check、链接与日志摘要输出到终端,需调用方另存到 tmp/;CLI 不保存独立 PR 元数据文件或全部终端错误输出。
护栏
push拒绝脏工作区;submit-pr允许脏工作区并需要--message才提交。两者拒绝 detached HEAD 并检查未完成的 Git 操作标记。openspec/changes/是本地脚手架,禁止提交。- 校验失败不得通过放宽断言、跳过校验或降低阈值来"变绿"。
- 合并前确认:PR 为 open、非 draft、base 为默认分支、状态为 MERGEABLE、存在已完成校验;CLI 接受 SUCCESS/NEUTRAL/SKIPPED,并通过
--match-head-commit绑定本次读取的 head SHA。必需检查与分支保持最新的要求由 GitHub 分支保护配置,发布者需核验,CLI 不读取仓库保护规则。 - 合并失败或校验过期(分支又落后于默认分支)时必须重新提交,不允许降低保护。
- 任何远程写操作失败都要保留命令与错误摘要,不做静默重试。
参考
- 推送与 PR 流程细则:
references/push-flow.md - 仓库协作文档:
CONTRIBUTING.md、docs/AI-COLLABORATION.md - 版本与发布:
skills/release-cli/SKILL.md
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/push-cli/SKILL.md
Popularity
- Repository stars
- 70
- Repository forks
- 24
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/luckykuang/infoq-scaffold-ai/push-cli)