push 是 kntnt/skills 技能库中的一个技能,其主要用途是在完成提交操作后推送当前分支,即“先提交、再推送”的组合流程。
用途方面,该技能本身并不重新实现提交流程,而是复用同一技能库中的 commit 技能,在其基础上追加推送当前分支的步骤,因此适合用于把提交与推送作为连续动作的开发工作流。
主要能力方面,根据资料,其执行流程分为若干步骤:第一步跟随 commit 技能($HERE/../commit/SKILL.md),并使用相同的 Formal Invocation;若外层 Contextual Instruction 中含有与 commit 相关的指引,则仅在显式添加 -- 之后追加该指引,否则不传入 Contextual Instruction;若 commit 因为“没有内容可提交”而停止,则继续后续步骤;完成条件为工作树干净,或 commit 以 clean 状态停止。第二步运行 uv run "$LIBRARY/scripts/ship.py" plan push,完成条件为 stdout 输出 JSON 计划,或命令以退出码 2 结束。若退出码为 2,则输出计划中的 reason 并停止。若 commit 尚未进行确认等待,则展示计划并等待,除非带有 --yes 参数;若用户要求查看每一次提交,则重新运行 plan --full push 并展示该计划;完成条件为用户确认、设置了 --yes,或 commit 已完成确认。第三步运行 uv run "$LIBRARY/scripts/ship.py" apply push,完成条件为 stdout 中包含 pushed。
使用方式方面,用户通过 /push 触发该技能,并把 /push 之后输入的所有内容(原样、任意行数)作为 stdin 传给 uv run "$HERE/scripts/invoke.py",其中 $HERE 是存放该 SKILL.md 的目录。若调用退出码为 0,则执行其打印的内容;若为其他退出码,则仅在错误属于已知构造错误、且能在保持用户请求与授权的前提下修正时,才记录已产生的效果、通过同一 shim 提交修正后的调用并从失败边界继续,否则将打印内容原样展示给用户并停止。资料同时说明:不修复用户提供的输入,也不对确切的帮助请求、未满足的依赖、无关失败,或来源与有效修正方式未知的失败进行自动重试。参数 <message> 和 --yes 的含义与 commit 一致,step 1 会原样传递它们。
适用场景方面,适用于已经配置该技能库及相关脚本(scripts/invoke.py、scripts/ship.py 等)并希望把提交与推送合并为一个动作的开发环境。
限制方面,资料未提供该技能支持的具体平台、收费方式、价格、性能或效果数据;其运行依赖 $HERE、$LIBRARY 等环境路径与 uv 工具,相关资料中未给出这些路径的完整配置说明。