Resolve multi-dependency fan-in by merging dependency PRs into a common base and updating issue dependencies
Merges multiple dependency pull requests into a common base branch and updates the target issue's dependencies.
npx claudepluginhub open-horizon-labs/bottleThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Use this skill when an issue has 2+ open dependencies and scheduler cannot auto-stack because there is no single base branch.
/oh-join <issue-number>
<issue-number>: target GitHub issue (for example 1178 or #1178)For target issue #X:
Depends on: dependenciesLoad issue and dependencies
gh issue view <issue-number> --json number,title,body,state,url
Depends on: lines.blocked (not a join case).Discover open PRs for dependency issues
gh pr list --state open --json number,title,headRefName,baseRefName,body,url
issue/<N> or issue-<N>Closes #N / Fixes #N / Resolves #Nblocked and list missing deps.Determine common base branch
baseRefName across dependency PRs.blocked and report conflicting bases.Readiness checks for each dependency PR For each dep PR:
gh pr checks <pr-number> --fail-on-error
gh pr view <pr-number> --json reviewDecision,isDraft,mergeable
CHANGES_REQUESTED
If any fail: stop with blocked and report specific PR reasons.Merge dependency PRs in deterministic order and close their issues
(issue #D, PR #P) in order:
gh pr merge <pr-number> --squash
gh issue close <dep-issue-number> --comment "Closed via oh-join after merging PR #<pr-number> into <base-branch>."
Closes #N.signal_completion(status: "error", error: "...")Update target issue dependencies
Depends on: to one explicit scheduler-readable base dependency.issue/<B> or issue-<B>; then set: **Depends on:** #<B>main/master), stop with blocked and do NOT rewrite dependencies to none.~~#N~~) form — remove them completely.<!-- oh-join -->
Joined deps: #A (PR #PA), #B (PR #PB)
Base branch: <branch>
Updated: <ISO timestamp>
gh issue edit <issue-number> --body-file <temp-file>
Completion signaling
signal_completion(status: "success", message: "Merged dep PRs #... into <base>; updated issue #<issue-number> dependencies")
signal_completion(status: "blocked", blocker: "<reason>")
signal_completion(status: "error", error: "<reason>")
Depends on: #<base-issue> when base is an issue branch.You MUST call signal_completion as your final action.
If the tool is unavailable, end with one line:
COMPLETION: status=success message=<...>COMPLETION: status=blocked blocker=<...>COMPLETION: status=error error=<...>Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.