Commit, Push, and PR
EveryInc/compound-engineering-plugin
Commits staged changes, pushes a branch, and opens or updates a GitHub pull request, including writing its description.
Session wrap-up: commit pending changes, push, write structured state for the next session to resume from.
$ npx skills add UniClipboard/UniClipboard --skill wrap -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UniClipboard/UniClipboard wrap --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/wrap .claude/skills/wrap && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "wrap" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrap into .claude/skills/wrap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wrap", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrapType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add UniClipboard/UniClipboard --skill wrap -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UniClipboard/UniClipboard wrap --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/wrap .agents/skills/wrap && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "wrap" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrap into .agents/skills/wrap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wrap", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UniClipboard/UniClipboard --skill wrap -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UniClipboard/UniClipboard wrap --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/wrap .cursor/skills/wrap && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "wrap" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrap into .cursor/skills/wrap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wrap", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/UniClipboard/UniClipboard.git --path .agents/skills/wrap--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add UniClipboard/UniClipboard --skill wrap -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UniClipboard/UniClipboard wrap --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/wrap .gemini/skills/wrap && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "wrap" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrap into .gemini/skills/wrap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wrap", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install UniClipboard/UniClipboard wrapInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add UniClipboard/UniClipboard --skill wrap -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/wrap .github/skills/wrap && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "wrap" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrap into .github/skills/wrap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wrap", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UniClipboard/UniClipboard --skill wrap -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UniClipboard/UniClipboard wrap --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/wrap .opencode/skills/wrap && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "wrap" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/wrap into .opencode/skills/wrap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "wrap", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
wrapSession wrap-up: commit pending changes, push, write structured state for the next session to resume from.
Wrap is an agent skill from UniClipboard/UniClipboard. Session wrap-up: commit pending changes, push, write structured state for the next session to resume from. Eliminates 'glue sessions' that exist only to commit/push, and preserves debug context across sessions.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Real-time clipboard sync across all your devices — local-first, peer-to-peer, and end-to-end encrypted. No account. No cloud dependency. No central server. The licence is AGPL-3.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9c76e0f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PROJECT_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Wrap loads about 1.9k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 569 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from UniClipboard/UniClipboard at commit 9c76e0f, republished under its AGPL-3.0 licence (© UniClipboard). 569 words, ~1,868 tokens.
.claude/skills/wrap/SKILL.md (or your agent's skills folder).A session-ending skill that wraps up the current work into a clean state for the next session. It replaces the pattern of opening a new "glue session" just to commit and push, and it replaces ad-hoc $handoff prose with a structured, machine-readable state file that $continue-task can consume.
Before (observed in 29 of 50 recent sessions):
Session N: [does the work] → ends without committing
Session N+1: "commit and push" → 1 prompt, done ← wasted session
Session N+2: "继续" → spends 3-8 min rebuilding contextAfter:
Session N: [does the work] → $wrap → committed, pushed, state saved
Session N+1: $continue-task → full context in 10 seconds$wrap — full wrap-up: commit + push + state file$wrap --no-push — commit + state file, skip push$wrap --no-commit — state file only (for when changes aren't ready to commit)PROJECT_KEY=$(pwd | sed 's|^/||; s|/|-|g')
STATE_FILE="${CODEX_HOME:-$HOME/.codex}/project-state/${PROJECT_KEY}/active-task.json"This stores task state under the user's Codex home, outside the tracked repository.
git status --short
git rev-parse --abbrev-ref HEAD
git log --oneline -5
git diff --stat # unstaged changes
git diff --cached --stat # staged changes
gh pr list --head $(git rev-parse --abbrev-ref HEAD) --json number,url,title --jq '.[0]' 2>/dev/nullSkip if --no-commit or if working tree is clean.
If there are changes:
Show the user what will be committed:
Uncommitted changes:
M crates/uc-core/src/types.rs
M crates/uc-daemon/src/api.rs
A crates/uc-core/src/new_module.rsAsk the user:
Commit these changes?
A) Yes, commit all
B) Let me pick which files
C) Skip commit (just save state)On commit, draft a message from the diff context:
git add <files>
git commit -m "$(cat <<'EOF'
<type>(<scope>): <message>
EOF
)"Skip if --no-push or if no remote tracking branch.
git pushIf a PR exists for this branch, note the PR URL in the state file.
Build a structured state file. The state file has two parts:
active-task.json) — machine-readable, consumed by $continue-taskactive-task-context.md) — human-readable handoff detail{
"version": 1,
"created_at": "2026-06-21T14:30:00Z",
"project": "/Users/mark/MyProjects/uniclipboard",
"branch": "active-clipboard-state",
"pr": {
"number": 1117,
"url": "https://github.com/UniClipboard/UniClipboard/pulls/1117"
},
"task": {
"summary": "Implement ActiveClipboardState for cross-device LWW register",
"status": "in_progress",
"done": [
"PR1-PR6: core state machine, reconcile, sync",
"PR7: mobile cutover"
],
"next": [
"PR8: pull store-only LWW starvation workaround",
"Add dual-node e2e test for PR8"
],
"blocked_on": null
},
"debug": {
"active": false,
"symptom": null,
"hypotheses_tried": [],
"hypotheses_ruled_out": [],
"evidence": [],
"current_hypothesis": null
},
"pending_actions": {
"needs_push": false,
"needs_pr": false,
"needs_rebase": false,
"uncommitted_files": []
},
"context_refs": [
".planning/2026-06-19-issue-1017-active-clipboard.md",
"docs/architecture/active-clipboard-state.md"
]
}This replaces the freeform $handoff document. Written to the same directory.
# Active Task: <summary>
**Branch:** `<branch>`
**PR:** #<number> (<url>)
**Last updated:** <timestamp>
## What's done
<bulleted list from task.done>
## What's next
<bulleted list from task.next>
## Key decisions made
<non-obvious decisions from this session that the next agent needs to know>
## Debug state (if active)
### Symptom
<what's broken>
### Hypotheses tried
| # | Hypothesis | Result | Evidence |
|---|-----------|--------|----------|
| 1 | ... | Ruled out | ... |
| 2 | ... | Partially confirmed | ... |
### Current hypothesis
<what to test next>
## Files changed this session
<git diff --stat output>
## Suggested skills
<relevant skills for the next session>✅ Session wrapped.
Branch: active-clipboard-state
Committed: 3 files (feat(core): add ActiveClipboardState reconcile)
Pushed: ✓
PR: #1117
State saved: ~/.codex/project-state/<project-key>/active-task.json
Next session: $continue-task to pick up where you left off.Derive from the conversation context:
summary: One line describing the overall task (not just the last thing done)done: What was accomplished in this session AND prior sessions (cumulative)next: Specific next steps, not vague ("implement X" not "continue working")blocked_on: If waiting on something external (CI, user decision, another PR)Only populate if the session involved debugging:
hypotheses_tried: Each hypothesis with its result and evidencehypotheses_ruled_out: Explicitly mark what was disproven (prevents next session from retrying)evidence: Key observations (log snippets, test results, measurements)current_hypothesis: What to test nextList files that the next session should read for context:
.planning/docs/$wrap supersedes $handoff for the common case (end of session)$handoff remains available for when you want a standalone document without committing/pushing$wrap is called, it creates both the structured state AND the markdown context (no need for separate $handoff)The state file is overwritten by each $wrap call. $continue-task clears it after successful resume. Old state files are not cleaned up automatically — they're small (< 5KB) and serve as history.
© UniClipboard, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/wrap of UniClipboard/UniClipboard.
Open the folder on GitHubat commit 9c76e0f
Wrap next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Wrap this skillUniClipboard/UniClipboard | 1.8k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Commit, Push, and PREveryInc/compound-engineering-plugin | 25k | — | ~2k | Automated safety check: Pass | MIT | |
| Commitsickn33/agentic-awesome-skills | 47k | 2 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Git Commit Pushfarm-fe/farm | 5.6k | — | ~325 | Automated safety check: Pass | MIT | |
| Commitdavila7/claude-code-templates | 32k | 3 repos | ~730 | Automated safety check: Pass | MIT | |
| Commitwindmill-labs/windmill | 18k | — | ~447 | Automated safety check: Pass | Custom licence |
EveryInc/compound-engineering-plugin
Commits staged changes, pushes a branch, and opens or updates a GitHub pull request, including writing its description.
sickn33/agentic-awesome-skills
ALWAYS use this skill when committing code changes — never commit directly without it.
farm-fe/farm
Commit and push repository changes safely. An agent skill from farm-fe/farm.
davila7/claude-code-templates
Create commit messages following Sentry conventions. An agent skill from davila7/claude-code-templates.
windmill-labs/windmill
Create a git commit with conventional commit format. An agent skill from windmill-labs/windmill.
ccusage/ccusage
Creates atomic Conventional Commits. An agent skill from ccusage/ccusage.
UniClipboard/UniClipboard
Pick and install beUI (@beui) animated React components from the shadcn registry.
UniClipboard/UniClipboard
Push the current branch and open a GitHub pull request against main.
UniClipboard/UniClipboard
定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…
UniClipboard/UniClipboard
Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues.
UniClipboard/UniClipboard
Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.
UniClipboard/UniClipboard
Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.
Session wrap-up: commit pending changes, push, write structured state for the next session to resume from. Wrap is an agent skill from UniClipboard/UniClipboard. Session wrap-up: commit pending changes, push, write structured state for the next session to resume from.
Run `npx skills add UniClipboard/UniClipboard --skill wrap -a claude-code`. Or copy the skill folder (.agents/skills/wrap in UniClipboard/UniClipboard) into .claude/skills/wrap in your project. Claude Code loads it when a task matches its description.
Run `npx skills add UniClipboard/UniClipboard --skill wrap -a codex`. Or copy the skill folder (.agents/skills/wrap in UniClipboard/UniClipboard) into .agents/skills/wrap in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UniClipboard/UniClipboard --skill wrap -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wrap, .gemini/skills/wrap, .github/skills/wrap and .opencode/skills/wrap in your project.
Going by SKILL.md and its folder, Wrap needs the command-line tools its instructions call (git and gh) and credentials named PROJECT_KEY. Our summary lists: A credential in PROJECT_KEY.
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Wrap is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Wrap: Commit, Push, and PR (EveryInc/compound-engineering-plugin, 25k stars), Commit (sickn33/agentic-awesome-skills, 47k stars), Git Commit Push (farm-fe/farm, 5.6k stars) and Commit (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
UniClipboard (a GitHub organization) maintains it in UniClipboard/UniClipboard, which has 1,847 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 7, 2026.
Source: UniClipboard/UniClipboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.