Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Keep symphony-alpha's vibe seed (the throwaway, fully seeded data behind just vibe-up and the vibe skill's seeded Vercel environments) in step with main.
$ npx skills add closedloop-ai/claude-plugins --skill vibe-seed-refresh -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install closedloop-ai/claude-plugins vibe-seed-refresh --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/closedloop-ai/claude-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/code/skills/vibe-seed-refresh .claude/skills/vibe-seed-refresh && 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 "vibe-seed-refresh" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refresh into .claude/skills/vibe-seed-refresh/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-seed-refresh", 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/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refreshType 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 closedloop-ai/claude-plugins --skill vibe-seed-refresh -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install closedloop-ai/claude-plugins vibe-seed-refresh --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/code/skills/vibe-seed-refresh .agents/skills/vibe-seed-refresh && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vibe-seed-refresh" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refresh into .agents/skills/vibe-seed-refresh/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-seed-refresh", 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 closedloop-ai/claude-plugins --skill vibe-seed-refresh -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install closedloop-ai/claude-plugins vibe-seed-refresh --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/code/skills/vibe-seed-refresh .cursor/skills/vibe-seed-refresh && 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 "vibe-seed-refresh" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refresh into .cursor/skills/vibe-seed-refresh/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-seed-refresh", 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/closedloop-ai/claude-plugins.git --path plugins/code/skills/vibe-seed-refresh--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 closedloop-ai/claude-plugins --skill vibe-seed-refresh -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install closedloop-ai/claude-plugins vibe-seed-refresh --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/code/skills/vibe-seed-refresh .gemini/skills/vibe-seed-refresh && 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 "vibe-seed-refresh" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refresh into .gemini/skills/vibe-seed-refresh/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-seed-refresh", 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 closedloop-ai/claude-plugins vibe-seed-refreshInstalls 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 closedloop-ai/claude-plugins --skill vibe-seed-refresh -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/code/skills/vibe-seed-refresh .github/skills/vibe-seed-refresh && 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 "vibe-seed-refresh" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refresh into .github/skills/vibe-seed-refresh/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-seed-refresh", 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 closedloop-ai/claude-plugins --skill vibe-seed-refresh -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install closedloop-ai/claude-plugins vibe-seed-refresh --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/code/skills/vibe-seed-refresh .opencode/skills/vibe-seed-refresh && 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 "vibe-seed-refresh" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/vibe-seed-refresh into .opencode/skills/vibe-seed-refresh/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vibe-seed-refresh", 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.
vibe-seed-refreshKeep symphony-alpha's vibe seed (the throwaway, fully seeded data behind just vibe-up and the vibe skill's seeded Vercel environments) in step with main.
Vibe Seed Refresh is an agent skill from closedloop-ai/claude-plugins. Keep symphony-alpha's vibe seed (the throwaway, fully seeded data behind just vibe-up and the vibe skill's seeded Vercel environments) in step with main. Checks fresh main for seed drift (models marked todo, models with no coverage file, a failing seed, a red Vibe Seed Walk run on main); when drift exists it creates a ClosedLoop ticket and marks it INPROGRESS, has workers fix the seed in a fresh worktree and open a PR, monitors it with gh-monitor-pr until green, enables auto-merge into the merge queue, keeps…
Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Pull requests and Git worktrees. It works with Vercel. The repository describes itself as: Open-source Claude Code plugins for multi-agent software delivery. Plan-first SDLC workflow, code review, LLM quality judges, and self-learning — grounded in your codebase… The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 476b54c. 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:
justnodeghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use 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 no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vibe Seed Refresh loads about 1.5k tokens when it runs. Until then it costs about 180 tokens; SKILL.md has 789 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 closedloop-ai/claude-plugins at commit 476b54c, republished under its Apache-2.0 licence (© closedloop-ai). 789 words, ~1,531 tokens.
.claude/skills/vibe-seed-refresh/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The vibe seed fills a throwaway database and Desktop profile from code in
symphony-alpha: locally for just vibe-up, and in each seeded vibe session's
Vercel environment. Every Prisma model has a coverage file saying whether the
seed fills it (seeded), deliberately leaves it empty (skipped, with a
reason), or still owes it data (todo). Engineers add todo when they add a
model; this skill pays that debt and repairs anything else that drifted.
Run in Codex Desktop ($vibe-seed-refresh). It relies on the
gh-monitor-pr skill, which wakes this thread when the PR needs attention, so
each wake-up resumes from the state file instead of polling.
This thread can live for days across monitor wake-ups, so its context is for
state and decisions only. Under all circumstances you never read source,
search the codebase, edit files, read logs or diffs, or run seeds, builds,
tests, git, or gh yourself. You read and write the state file, call the
ClosedLoop MCP for the ticket and loop, start and stop gh-monitor-pr, and
dispatch workers with short briefs. Workers return a short status (DONE,
BLOCKED, or DRIFT / CLEAN from the check worker).
Workers are this plugin's agents (../../agents/<name>.md; in Codex spawn a
subagent with the file's body as its instructions, in Claude Code use
code:<name>). Every worker uses closedloop-graph first, per
../vibe/references/closedloop-graph.md; say so in each brief.
| Worker | Job |
|---|---|
vibe-seed-check-worker | refresh the check worktree to fresh main and report drift |
vibe-seed-fix-worker | fix the seed in the fix worktree until the checks pass; also fixes CI failures and review comments later |
vibe-seed-pr-worker | commit, push, open the PR from the template; later merge main, re-enqueue, report PR state |
Keep state in ~/.codex/vibe-seed-refresh/state.json:
{ "phase", "ticket", "loopId", "branch", "worktree", "pr", "lastCheck", "drift" }.
Read it first on every run and every wake-up. Phases, in order:
checking, fixing, pr-open, queued, merged, done. A missing file
means checking.
Dispatch vibe-seed-check-worker with the symphony-alpha checkout path: the
repo from node ../vibe/scripts/vibe-sessions.mjs repo, the checkout the
vibe preflight remembered (if none is remembered, run
../vibe/scripts/vibe-preflight.sh once; it finds and remembers it). Quote
the path in every brief; it can contain spaces. It
returns CLEAN with the main SHA, or DRIFT with the drift list. On CLEAN,
record lastCheck, report "Seed is current with main (<sha>)", and stop.
On DRIFT:
get-me for the assignee and list-projects for the current
week's project (the date-range name covering today). Use search for an
open ticket titled "Vibe seed refresh" in that project and reuse it if one
is open.create-document (type: ISSUE, status: IN_PROGRESS, assigned
to you, title "Vibe seed refresh: <short drift summary>", body listing every
drift item), then create-loop on it.fixing and the drift list.Dispatch vibe-seed-fix-worker with the checkout path, the ticket slug, and
the drift list. It creates the fix worktree from fresh main
(fix/<iss-slug>-vibe-seed), fixes the seed, and runs every check until they
pass. Save its worktree and branch in state and post a loop event with its
summary. On BLOCKED, post the reason as a loop event, tell Daniel, and stop.
Dispatch vibe-seed-pr-worker in open mode with the worktree and ticket. It
returns the PR URL. Link it (ClosedLoop create_branch_artifact with the ticket's project UUID as
projectId, the branch as branchName, and the ticket's UUID as
sourceArtifactId; then a loop event),
start the monitor per the gh-monitor-pr skill with the PR URL and
--stall-after 1800, save phase pr-open, and end the turn.
Read state. Dispatch vibe-seed-pr-worker in status mode for a one-line PR
state, then act on it:
vibe-seed-fix-worker
in follow-up mode with the PR URL. It fixes, pushes, replies on review
threads with the fixing commit, and resolves them. A failure unrelated to
the diff gets one re-run; a second failure gets a loop event and a note to
Daniel instead of more re-runs.vibe-seed-pr-worker in sync mode (merge main, re-run the
fix worker's checks through it, push).vibe-seed-pr-worker in enqueue
mode (gh pr merge --squash --auto); save phase queued.vibe-seed-fix-worker in follow-up mode to
diagnose per docs/runbooks/merge-queue-operations.md, then enqueue again.merged and continue to section 6.End every wake-up turn after acting; the monitor wakes the thread again.
complete-loop with the PR URL and branch, then
update-document to DONE.gh-monitor-pr.vibe-seed-pr-worker in cleanup mode (remove the fix worktree
without forcing, delete the local branch).done, then reset the state file to checking for the next run.© closedloop-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in plugins/code/skills/vibe-seed-refresh of closedloop-ai/claude-plugins.
Open the folder on GitHubat commit 476b54c
Vibe Seed Refresh 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 |
|---|---|---|---|---|---|---|
| Vibe Seed Refresh this skillclosedloop-ai/claude-plugins | 122 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Cap Feature Building WorkflowCapSoftware/Cap | 23k | — | ~2.5k | Automated safety check: Warn | Custom licence | |
| Om Auto Fix Issuego-musicfox/go-musicfox | 2.6k | 1 repos | ~5k | Automated safety check: Notes | GPL-3.0 | |
| Codewhale Landing Workflowcodewhale-hq/Codewhale | 41k | — | ~1.6k | Automated safety check: Pass | MIT |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
CapSoftware/Cap
Builds a Cap feature in an isolated Git worktree with disposable dev resources, verification, a recorded demo and a neutral pull request, started with /building.
go-musicfox/go-musicfox
Fix or implement a tracker issue end to end from a single command — takes an issue id or a plain problem description (filed first via om-prepare-issue), classifies, then drives the bug autofix chain…
codewhale-hq/Codewhale
Decides how verified work should reach main, directly, in a worktree or on an integration branch, while keeping contributor credit and respecting merge gates.
dyad-sh/dyad
Deep multi-agent code review run locally — a fleet of parallel finder agents reviews the diff from independent angles, then adversarial verifier agents reproduce each finding before it is reported.
closedloop-ai/claude-plugins
Run Codex to review a plan file and return structured feedback with a verdict.
closedloop-ai/claude-plugins
Check if critic reviews are still valid before re-running Phase 2.5 critics.
closedloop-ai/claude-plugins
Check if cross-repo coordinator results can be reused, avoiding redundant Sonnet agent launches.
closedloop-ai/claude-plugins
Check for a cached plan-evaluation.json result before launching the plan-evaluator agent.
closedloop-ai/claude-plugins
This skill should be used when needing to locate files within the Claude Code plugins cache directory (~/.claude/plugins/cache).
closedloop-ai/claude-plugins
Start a detached GitHub pull-request monitor that wakes the exact launching Codex Desktop or CLI root through the managed Codex App Server when review, CI, conflict, merge-queue, closure, readiness…
Works with
Categories
Keep symphony-alpha's vibe seed (the throwaway, fully seeded data behind just vibe-up and the vibe skill's seeded Vercel environments) in step with main. Vibe Seed Refresh is an agent skill from closedloop-ai/claude-plugins. Keep symphony-alpha's vibe seed (the throwaway, fully seeded data behind just vibe-up and the vibe skill's seeded Vercel environments) in step with main.
Vibe Seed Refresh fits situations like: asked to refresh the vibe seed; update the seeded db.
Run `npx skills add closedloop-ai/claude-plugins --skill vibe-seed-refresh -a claude-code`. Or copy the skill folder (plugins/code/skills/vibe-seed-refresh in closedloop-ai/claude-plugins) into .claude/skills/vibe-seed-refresh in your project. Claude Code loads it when a task matches its description.
Run `npx skills add closedloop-ai/claude-plugins --skill vibe-seed-refresh -a codex`. Or copy the skill folder (plugins/code/skills/vibe-seed-refresh in closedloop-ai/claude-plugins) into .agents/skills/vibe-seed-refresh 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 closedloop-ai/claude-plugins --skill vibe-seed-refresh -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vibe-seed-refresh, .gemini/skills/vibe-seed-refresh, .github/skills/vibe-seed-refresh and .opencode/skills/vibe-seed-refresh in your project.
Going by SKILL.md and its folder, Vibe Seed Refresh needs the command-line tools its instructions call (just, node and gh).
SKILL.md contains no URLs. Its commands use 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.
Vibe Seed Refresh is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.5k tokens (SKILL.md is roughly 6.1k 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 Vibe Seed Refresh: Finishing a Development Branch (obra/superpowers, 296k stars), Pre-Release PR Triage (jamiepine/voicebox, 57k stars), Cap Feature Building Workflow (CapSoftware/Cap, 23k stars) and Om Auto Fix Issue (go-musicfox/go-musicfox, 2.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
closedloop-ai (a GitHub organization) maintains it in closedloop-ai/claude-plugins, which has 122 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 7, 2026.
Source: closedloop-ai/claude-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.