npx claudepluginhub qmu/workaholic --plugin coreThis skill is limited to using the following tools:
sh/adopt-worktree.shsh/check-workspace.shsh/check-worktrees.shsh/detect-context.shsh/eject-worktree.shsh/list-all-worktrees.shDetect development context from the current git branch pattern to route unified commands to the appropriate workflow.
bash ${CLAUDE_PLUGIN_ROOT}/skills/branching/sh/detect-context.sh
| Context | Branch Pattern | JSON |
|---|---|---|
drive | drive-* | {"context": "drive", "branch": "<branch>"} |
trip | trip/* (no tickets in todo) | {"context": "trip", "branch": "<branch>", "trip_name": "<name>"} |
trip_drive | trip/* (with tickets in todo) | {"context": "trip_drive", "branch": "<branch>", "trip_name": "<name>"} |
trip_worktree | Other (with trip worktrees) | {"context": "trip_worktree", "branch": "<branch>"} |
unknown | main, master, or other | {"context": "unknown", "branch": "<branch>"} |
Lightweight check for the existence of worktrees. Used by commands that should warn the user before proceeding when worktrees are available.
bash ${CLAUDE_PLUGIN_ROOT}/skills/branching/sh/check-worktrees.sh
{
"has_worktrees": true,
"count": 2,
"trip_count": 1,
"drive_count": 1
}
has_worktrees: Boolean indicating if any worktrees existcount: Total number of worktrees foundtrip_count: Number of trip/* branch worktreesdrive_count: Number of drive-* branch worktreesUnlike list-trip-worktrees.sh, this script does not query GitHub API for PR status. It is designed for fast, non-blocking guard checks.
Check whether the working directory has unstaged, untracked, or staged changes. Used by commands that should warn the user before proceeding when the workspace is not clean.
bash ${CLAUDE_PLUGIN_ROOT}/skills/branching/sh/check-workspace.sh
{
"clean": false,
"untracked_count": 2,
"unstaged_count": 3,
"staged_count": 0,
"summary": "3 unstaged, 2 untracked"
}
clean: Boolean indicating if the workspace has no changesuntracked_count: Number of untracked filesunstaged_count: Number of unstaged modifications or deletionsstaged_count: Number of staged changessummary: Human-readable description of changes (empty string when clean)Unlike context detection, this script does not inspect branch patterns. It only reports workspace cleanliness.
Take an existing branch and create a worktree for it at .worktrees/<branch-name>/. Handles the case where the user is currently on that branch by switching to main first.
bash ${CLAUDE_PLUGIN_ROOT}/skills/branching/sh/adopt-worktree.sh <branch-name>
Output: {"worktree_path": "<path>", "branch": "<branch>", "switched_from": true|false}
Error cases: branch not found, worktree already exists, uncommitted changes.
Collapse a worktree back to a regular branch in the main working tree. Preserves the branch (unlike cleanup-worktree.sh which deletes it).
bash ${CLAUDE_PLUGIN_ROOT}/skills/branching/sh/eject-worktree.sh <worktree-path>
Output: {"ejected": true, "branch": "<branch>", "main_repo": "<path>"}
Error cases: not a valid worktree, main tree has uncommitted changes.
List all active worktrees with type detection (trip, drive, other). No GitHub API calls.
bash ${CLAUDE_PLUGIN_ROOT}/skills/branching/sh/list-all-worktrees.sh
Output:
{
"count": 2,
"worktrees": [
{"name": "drive-20260320-123456", "branch": "drive-20260320-123456", "worktree_path": "/path/.worktrees/drive-20260320-123456", "type": "drive"},
{"name": "trip-20260319-040153", "branch": "trip/trip-20260319-040153", "worktree_path": "/path/.worktrees/trip-20260319-040153", "type": "trip"}
]
}