push
/push
Dodaje do git push warstwę bezpieczeństwa z bramkami jakości i zabezpieczeniami współpracy: zwykłe i wymuszone pushe, chronione gałęzie, pokwitowanie pushu i automatyzacja PR.
- Autor
- AsiaOstrich ↗
- Repozytorium
- universal-dev-standards ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 27.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 3
Brak sygnałów. Repozytorium zmienione 27.10.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Dodaje do git push warstwę bezpieczeństwa z bramkami jakości i zabezpieczeniami współpracy: zwykłe i wymuszone pushe, chronione gałęzie, pokwitowanie pushu i automatyzacja PR.
Argumenty
/push [--force] [--target <branch>] [--skip-gates] [--no-pr]
Oryginalny opis (EN)
AI 辅助的 git push 安全层,提供质量关卡与协作护栏。 Use when: 推送 commit、强制推送、推送到受保护分支、推送 feature 分支。 Not for: 撰写 commit 内容——请用 /commit;分支与合并策略的决策——请用 /git-workflow-guide。 Keywords: git push, force push, protected branch, quality gate, push receipt, PR automation, 推送, 保护分支, 质量门禁, 强制推送.
Jak działa
- 核心标准
- 执行工作流程
- 功能说明
- 使用方式
- 参数说明
- 设置
- 下一步引导
- 相关标准
- 版本历程
- 授权
Podgląd SKILL.md
---
name: push
source: ../../../../skills/push/SKILL.md
source_version: 2.0.0
translation_version: 2.1.0
last_synced: 2026-08-17
source_hash: 3242aa64fe0d
scope: universal
description: |
AI 辅助的 git push 安全层,提供质量关卡与协作护栏。
Use when: 推送 commit、强制推送、推送到受保护分支、推送 feature 分支。
Not for: 撰写 commit 内容——请用 /commit;分支与合并策略的决策——请用 /git-workflow-guide。
Keywords: git push, force push, protected branch, quality gate, push receipt, PR automation, 推送, 保护分支, 质量门禁, 强制推送.
allowed-tools: Read, Bash(git:*), Bash(npm:*), Bash(pnpm:*), Bash(yarn:*), Bash(bun:*)
argument-hint: "[--force] [--target <branch>] [--skip-gates] [--no-pr]"
---
# 推送助手
> **语言**: [English](../../../../skills/push/SKILL.md) | 简体中文
**版本**:2.0.0
**创建日期**:2026-04-23
**适用范围**:Claude Code Skills
---
`git push` 的 AI 辅助安全层。检测保护分支、强制 force-push 护栏、执行 pre-push 质量门禁、输出结构化推送收据,并集成 PR 自动化。
## 核心标准
本 Skill 实现 [`.standards/push-standards.ai.yaml`](../../../../.standards/push-standards.ai.yaml)。
---
## 执行工作流程
调用 `/push` 后,Claude 原生依序执行以下步骤:
### Step 1:检测保护分支
执行 `git rev-parse --abbrev-ref HEAD` 获取当前分支。
比对 `protected_branches` 列表(默认:main、master、release/*、hotfix/*)。
若为保护分支:显示警告 + 待推送的 commit 列表,需用户明确确认才能继续。
### Step 2:检测 Force Push
若检测到 `--force` 或 `--force-with-lease`:
执行 `git log origin/<branch>..HEAD --oneline` 找出将被覆盖的 commits。
显示数量与作者列表。需要用户输入 `yes, force push` 才能继续。
### Step 3:执行 Pre-Push 质量门禁
依序使用 Bash tool 执行每个已设置的门禁:
- `lint`:检测并执行项目 lint 命令
- `test`:检测并执行项目测试命令
- `type-check`(可选):TypeScript 类型检查
- `ac-coverage`(可选):验收条件覆盖率
- `security-scan`(可选):安全漏洞扫描
若任何必需门禁失败:中止并显示错误信息。
### Step 4:执行推送
执行 `git push <remote> <branch> [--force]`。
若推送失败:显示 git 错误并建议修正方式。
### Step 5:发出推送收据
将结构化收据输出到 console(可选择写入 `~/.uds/push-history.jsonl`):
```json
{
"branch": "<branch>",
"commit_sha": "<sha>",
"gates_passed": ["lint", "test"],
"force_push": false,
"timestamp": "<ISO8601>",
"target_remote": "origin"
}
```
### Step 6:PR 集成
若 `auto_pr=true` **且** `repo_mode=team` **且**该分支无 open PR:
建议用户执行 `/pr-automation-assistant` 创建 Pull Request。
---
## 功能说明
### 1. 推送目标风险检测
推送前检测目标分支是否为保护分支(例如 `main`、`master`、`release/*`、`hotfix/*`)。
- 显示**警告**,列出分支名称与 commit 列表
- 需要用户明确确认才能继续
- 用户未确认则中止推送
### 2. Force-Push 护栏
检测到 `--force` 时,推送前显示影响范围。
- 计算远端将被覆盖的 commits
- 显示被覆盖 commits 的数量与作者
- 要求用户输入确认字符串(`yes, force push`)
- 在推送收据中记录 `force_push: true`
### 3. Pre-Push 质量门禁
推送前依序执行已设置的质量门禁。
| 门禁 | 说明 |
|------|------|
| `lint` | 执行 lint 检查 |
| `test` | 执行测试 |
| `type-check` | TypeScript 类型检查(可选) |
| `ac-coverage` | AC 覆盖率检查(可选) |
| `security-scan` | 安全扫描(可选) |
### 4. 推送收据
推送成功后输出结构化收据,供审计追踪使用。
```json
{
"branch": "feature/my-feature",
"commit_sha": "a1b2c3d",
"gates_passed": ["lint", "test"],
"gates_skipped": false,
"force_push": false,
"timestamp": "2026-04-23T10:00:00Z",
"target_remote": "origin"
}
```
可选择追加到 `~/.uds/push-history.jsonl` 以持久化审计追踪。
### 5. PR 自动化集成入口
推送 feature branch 后,若尚无 PR,提示用户创建 Pull Request。
- 检查该分支是否已有 open PR
- 提示用户执行 `pr-automation-assistant`
- 在 `single-owner` repo 模式或使用 `--no-pr` 旗标时跳过
---
## 使用方式
```bash
# 标准推送(自动执行质量门禁)
/push
# Force push(显示被覆盖 commits,需要确认)
/push --force
# 推送到指定的远端分支
/push --target main
# 跳过质量门禁(紧急情况)
/push --skip-gates
# 推送但不提示创建 PR
/push --no-pr
# Force push 且不提示创建 PR(例如更新个人分支)
/push --force --no-pr
```
## 参数说明
| 参数 | 说明 |
|------|------|
| `--force` | 启用 force push,含护栏确认 |
| `--target <branch>` | 明确指定目标远端分支 |
| `--skip-gates` | 跳过质量门禁(仅紧急情况) |
| `--no-pr` | 推送后不提示创建 PR |
---
## 设置
通过 `uds.project.yaml` 设置:
```yaml
push:
repo_mode: team # "team" | "single-owner"
protected_branches:
- main
- master
- "release/*"
- "hotfix/*"
push_gates:
default:
- lint
- test
optional:
- type-check
- ac-coverage
- security-scan
receipt:
output: console # "console" | "file" | "both"
file_path: "~/.uds/push-history.jsonl"
auto_pr: true # 推送到非保护分支后是否提示创建 PR
```
### 选项模式
| Option 文件 | 模式 | 说明 |
|-------------|------|------|
| [`options/push/team-mode.md`](../../../../options/push/team-mode.md) | `team` | 完整协作护栏(默认) |
| [`options/push/single-owner-mode.md`](../../../../options/push/single-owner-mode.md) | `single-owner` | 个人 repo 低摩擦模式 |
---
## 下一步引导
`/push` 完成后,AI 助手应建议:
> **推送完成。建议下一步:**
> - 执行 `/pr-automation-assistant` 创建或更新 Pull Request ⭐ **推荐** — 确保协作流程完整
> - 执行 `/checkin` 确认代码签入质量 — 下次提交前的质量确认
> - 查看 `~/.uds/push-history.jsonl` 确认推送记录 — 审计追踪
---
## 相关标准
- [Push Standards](../../../../.standards/push-standards.ai.yaml) — 核心推送安全规则
- [Git Workflow](../../../../.standards/git-workflow.ai.yaml) — 分支策略
- [Commit Message](../../../../.standards/commit-message.ai.yaml) — Commit 约定
- [PR Automation](../pr-automation-assistant/SKILL.md) — Pull Request 自动化
---
## 版本历程
| 版本 | 日期 | 变更 |
|------|------|------|
| 2.0.0 | 2026-04-28 | 还原 workflow 执行步骤(XSPEC-097 采用层解耦);移除弃用通知 |
| 1.0.0 | 2026-04-23 | 初始版本 — XSPEC-081 Phase 1 |
---
## 授权
本 Skill 采用 [MIT License](https://opensource.org/licenses/MIT) 与 [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) 双重授权发布。
**来源**:[universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
Wersje
| Repozytorium | Wynik | Licencja |
|---|---|---|
| Ta strona · AsiaOstrich/universal-dev-standards | 100 | MIT |
| AsiaOstrich/universal-dev-standards | 100 | MIT |
| hamedmp/matrix-os | 100 | AGPL-3.0 |
| AsiaOstrich/universal-dev-standards | 100 | MIT |
| Mooshieblob1/MooshieUI | 100 | AGPL-3.0 |
| tibursocampos/agent-dev-toolkit | 100 | MIT |
| technicalpickles/pickled-claude-plugins | 100 | MIT |
| openai/symphony | 100 | Apache-2.0 |
| s-hiraoku/vscode-sidebar-terminal | 100 | MIT |
Migawka bazy z 28.10.2026 · wersja paczki 12a84c5af9e8 (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 90git-commit-push
Zapisuje commit i wypycha bieżące zmiany do repozytorium, sprawdzając wcześniej, co trafi do historii. - 90dev10x:git
Pilnuje wypychania zmian i rebase: blokuje wymuszone pushe na chronionych gałęziach i prowadzi rebase bez ręcznego edytora. - 100git-commit
Pomaga pisać komunikaty commitów zgodne z Conventional Commits i wypychać kod do repozytorium, w tym git add, commit i push. - 100git-commit-push-pr
Prowadzi od niezatwierdzonych zmian do otwartego pull requesta w jednym przepływie: commit, push i utworzenie PR. - 100git-workflow
Obsługuje Conventional Commits, tworzenie PR i weryfikację bramek jakości. - 100github-sync
Przegląda zmiany Git z sesji, streszcza je do zatwierdzenia, a następnie robi commit i push na GitHub.