Przejdź do treści
Biblioteka skilli
Programowanie · Automatyzacja

github-sync

/github-sync

Przegląda zmiany Git z sesji, streszcza je do zatwierdzenia, a następnie robi commit i push na GitHub.

Repozytorium
open-skills ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
05.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 05.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Przegląda zmiany Git z sesji, streszcza je do zatwierdzenia, a następnie robi commit i push na GitHub.

Wyzwalacze z opisu

sync to githubcommit and pushpush this sessionwrap up and pushsave this session to git
Oryginalny opis (EN)

Review the session's git changes, summarize them for approval, then commit and push to GitHub. Trigger when the user runs /github-sync or says "sync to github", "commit and push", "push this session", "wrap up and push", "save this session to git". For commit-only (no push) or partial staging, do not use this skill.

Jak działa

  1. Step 1 — Gather changes
  2. Step 2 — Build the change assessment
  3. Step 3 — Propose an ordered commit plan
  4. Step 4 — Wait for approval
  5. Step 5 — Commit and push
  6. Step 6 — Confirm
  7. Rules
Sekcje z nagłówków SKILL.md, w oryginale · 94 linii, 1 126 słów
Podgląd SKILL.md
---
name: github-sync
description: Review the session's git changes, summarize them for approval, then commit and push to GitHub. Trigger when the user runs /github-sync or says "sync to github", "commit and push", "push this session", "wrap up and push", "save this session to git". For commit-only (no push) or partial staging, do not use this skill.
disable-model-invocation: true
visibility: public
self-improvable: true
triggers:
  - "/github-sync"
  - "sync to github"
  - "commit and push"
  - "push this session"
  - "wrap up and push"
  - "save this session to git"
next-skills:
  - skill: insight-retro
    phrase: "/insight-retro"
    why: "After the push lands, run a retrospective on what shipped this session"
  - skill: handoff
    phrase: "/handoff"
    why: "Hand the remaining work off to a fresh session now that committed state is the baseline"
---

# /github-sync — Cluster, Commit, and Push

Review the session's git changes, cluster them into an ordered commit plan, get explicit approval over the exact full commit messages, then commit and push — staging only approved paths, with message-exactness and attribution-trailer checks before every push.

> **Structured execution spec:** [`protocol.yon`](protocol.yon). Read it for the canonical rules and step sequence; this file is explanation. The two must stay in sync — if you edit one, update the other and refresh the `@STAMP` date.

## Step 1 — Gather changes

Run in parallel: `git diff --stat HEAD`, `git diff HEAD`, `git status`, `git log --oneline -5` (for commit-style reference).

## Step 2 — Build the change assessment

From the diff and conversation history, identify what changed and which changes are intended for sync. Cluster by intent, operation, app/package, and blast radius. Default to split commits when changes are meaningfully independent; use one commit only when changes are tightly coupled, and state why.

Always route unrelated or unsafe-to-stage work into `Excluded Changes`: worktree/submodule dirty markers (`.claude/worktrees/*`), generated artifacts not requested for commit, unrelated local edits, ambiguous files, `.env` files, binaries, credentials, debug artifacts.

## Step 3 — Propose an ordered commit plan

Present a complete ordered commit plan before asking for approval:

```
## Commit Plan

Commit N: <message>
Why this group:
Files to stage:
Verification:
Full commit message:
```text
<exact subject>

<exact body, if any>
```

Excluded Changes:
- <path> — <reason>
```

Commit messages match recent repo style; subject lines concise (≤72 chars when practical); no unsolicited attribution trailer. The sole exception is a `Signed-off-by` line when current repository policy or CI explicitly requires DCO. In that case, read the configured commit identity, never invent one, and include the exact line in the `Full commit message` block for approval. The block is the exact message to be committed: if the commit will have a body or required DCO line, include every line; if it will be subject-only, show only the subject. Before asking for approval, scan every proposed full message block and STOP if it contains `Co-Authored-By`, `Generated-by`, `Assisted-by`, "generated with AI", assistant/tool attribution text, any similar attribution or ownership trailer, or a `Signed-off-by` line without an explicit repository DCO requirement. The `Verification` line states what was run, what should run before/after, or that this sync is message-only. Then ask:

> Ready to commit and push this plan? Reply **yes** to proceed, or tell me what to change.

## Step 4 — Wait for approval

Do NOT proceed until the user explicitly says yes. Approval applies only to the exact plan shown, including the exact full commit message blocks. Stop and ask for a revised plan if any drift appears before push: branch changes, changed files differ from the plan, new dirty files, commit order changes, any commit subject/body/trailer line changes, staged files mismatch, attribution text appears, or push fails.

## Step 5 — Commit and push

Once approved:

1. For each commit in approved order, stage only the listed file paths — no blind `git add .`. Use a deletion-aware, path-limited form such as `git add -A -- <approved-paths>` so approved removals enter the index as well.
   - When deriving staging paths from Git output, use unquoted or NUL-safe path output such as `git -c core.quotePath=false ls-files ...`; default quoted paths can break Unicode or space-containing paths when passed back to `git add`.
   - Before staging byte-sealed evidence (for example, files covered by a SHA-256 manifest), inspect its effective attributes with `git check-attr -a -- <path>`. If text conversion would alter the declared bytes, STOP and request approval for a scoped `.gitattributes` correction. After staging, verify the declared hash against the staged blob before committing.
2. Run `git diff --cached --name-status --no-renames`. Confirm the resulting logical path list exactly matches that commit's `Files to stage`. Normal name-status output may collapse an approved deletion/addition pair into one rename record, so it is display-only for this comparison.
3. If it does not match, STOP. Unstage or revise only with explicit user approval.
4. Commit with only the exact approved `Full commit message` block. Do not invent, shorten, expand, template, or append any subject, body, or trailer line that was not visible in the approved plan.
5. Run the exact-message check: `git log -1 --format=%B`. Verify the message exactly matches the approved `Full commit message` block.
6. Run the attribution-trailer check against the same output. Verify the message contains no co-author, generated-by, assisted-by, assistant/tool/AI attribution, or similar attribution or ownership trailer. A `Signed-off-by` line is clean only when repository policy requires DCO and that exact line appeared in the approved message.
7. If the message differs or contains unsolicited attribution or an unapproved sign-off, STOP. Do not push. Remove it with `git commit --amend` using only the clean approved message, then rerun both checks. Repeat until exact and clean.
8. Run `git status --short --branch`. Confirm the remaining dirty state matches `Excluded Changes` plus expected post-commit state.
9. After all approved commits are clean, `git push`.

If push fails, report the error and stop — do not retry automatically.

## Step 6 — Confirm

```
Committed:
- <short hash> — <subject>
Pushed to: <branch> → <remote>
Remaining unstaged changes: <none or list>
Verification: <tests/builds run, or intentionally skipped>
Done.
```

## Rules

- NEVER commit without explicit user approval.
- NEVER assume all dirty changes belong in one commit; NEVER use vague groups (`misc`, `updates`, `session changes`).
- NEVER stage files not listed in the approved plan, or `.env` files, binaries, or debug artifacts.
- NEVER commit a subject, body, or trailer line that was not shown in the approved `Full commit message` block.
- NEVER force-push.
- NEVER add `Co-Authored-By`, `Generated-by`, `Assisted-by`, assistant/tool/AI attribution, or similar attribution or ownership trailers. Add `Signed-off-by` only when current repository policy or CI explicitly requires DCO, using the configured commit identity and showing the exact line in the approved full message. Any unsolicited or unapproved trailer must be removed before push.
- NEVER push a commit until the exact-message check confirms the committed message is byte-for-byte the approved full message and the attribution-trailer check confirms the message is clean.
- Message-only verification is the default unless the user requested tests/builds or they were already part of the session.
- If new dirty files appear, branch state changes, staged files mismatch, or the approved plan no longer matches reality: STOP and ask for a revised plan.
- If nothing to commit, say so and stop.

> **Human output.** This skill's handler-facing output obeys the human-output
> contract (`human-output/SKILL.md`).

> **Self-improvement.** On completion, run the Self-Improvement Protocol (`self-improve/SKILL.md`): if this run surfaced a concrete, blocking-or-recurring weakness in this skill, propose a specific fix for the handler to approve. Conservative — silent otherwise. Never auto-apply.
Pliki w paczce (2)
  • SKILL.md 8 KB
  • protocol.yon 13 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · allemaar/open-skills100Apache-2.0
bmad-labs/skills100MIT

Migawka bazy z 28.10.2026 · wersja paczki 77862541d667 (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

  • 92commit
    Zapisuje zmiany w Git przez staging i commit, a opcja --push dodatkowo wysyła je do zdalnego repozytorium.
  • 90git-commit-push
    Zapisuje commit i wypycha bieżące zmiany do repozytorium, sprawdzając wcześniej, co trafi do historii.
  • 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.
  • 92commit
    Tworzy commity w Git: stage'uje i zapisuje zmiany, a z opcją --push także wypycha je do zdalnego repozytorium.
  • 100git-pushing
    Dodaje wszystkie zmiany, tworzy commit conventional i wypycha go na zdalną gałąź, gdy użytkownik prosi o push albo o zapis pracy na GitHubie.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.