crew-sling-work

star 0

Assign work to a Gas Town agent's hook using gt sling — the unified dispatch command. Use when you want to "sling work", "assign this bead", "dispatch this issue", "hand work to a polecat/crew/dog", "kick off a formula", or choose a merge strategy (mr, direct, local) for how completed work lands. Covers target resolution, auto-spawning polecats, passing instructions via --args, and formula slinging.

gagecane By gagecane schedule Updated 6/7/2026

name: crew-sling-work description: > Assign work to a Gas Town agent's hook using gt sling — the unified dispatch command. Use when you want to "sling work", "assign this bead", "dispatch this issue", "hand work to a polecat/crew/dog", "kick off a formula", or choose a merge strategy (mr, direct, local) for how completed work lands. Covers target resolution, auto-spawning polecats, passing instructions via --args, and formula slinging. allowed-tools: "Bash(gt *), Bash(bd *)" version: "1.0.0" author: "Gas Town"

Crew Sling Work — Dispatching Work in Gas Town

gt sling is THE command for assigning work. It attaches a bead (or formula) to an agent's hook and starts it immediately. Per the propulsion principle: if it's on your hook, you run it.

When to use this skill

  • "Sling gt-abc to crew" / "assign this issue to a polecat"
  • "Dispatch this work to greenplace" / "hand this to a dog"
  • "Run the release formula" / "kick off code-review on this bead"
  • You need to control how the work lands (merge queue vs direct vs local)

Instructions

Step 1: Identify the bead and the target

You need two things: a bead ID (the work) and a target (who runs it).

bd ready              # find dispatchable work
bd show <id>          # confirm the bead is the right one

⚠️ Invariant: gt sling <bead> <rig> only works if <bead> lives in <rig>'s beads DB. A bead's prefix determines its DB (see routes.jsonl): e.g. gc-/hq- → town root, gu- → the gastown_upstream rig. A bead filed from a town-root crew session gets the gc- prefix and routes to the town DB, so slinging it to a rig polecat will hard-fail. File rig-scoped work in the rig so it gets the rig prefix: bd new --repo <rig> "..." (or run bd new from the rig dir). Reserve town-root beads for cross-rig/town coordination.

Target resolution (most common forms):

Target Meaning
gt sling <bead> Self — current agent's hook
gt sling <bead> crew A crew worker in the current rig
gt sling <bead> <rig> Auto-spawn a polecat in that rig
gt sling <bead> <rig>/<Name> A specific polecat
gt sling <bead> <rig> --crew <name> A named crew member
gt sling <bead> mayor The Mayor
gt sling <bead> deacon/dogs Auto-dispatch to an idle dog

Step 2: Choose the merge strategy

The strategy is stored on the auto-convoy and controls how finished work lands.

gt sling <bead> <rig> --merge=mr       # merge queue (DEFAULT, recommended)
gt sling <bead> <rig> --merge=direct   # push branch straight to main
gt sling <bead> <rig> --merge=local    # keep on feature branch, no merge

Use --merge=mr unless you have a specific reason. It routes through the Refinery (see the crew-merge-queue skill).

Step 3: Sling it

gt sling <bead> <target>

Expected output: a confirmation line naming the hooked bead and target, plus an auto-convoy ID (e.g. Auto-convoy gu-w0n). Single-issue slings auto-create a convoy for dashboard visibility unless you pass --no-convoy.

Step 4: Pass instructions (optional)

The executor is an LLM, so natural-language args are interpreted directly.

gt sling <bead> <rig> --args "focus on the SQL injection paths"

# Multi-line / shell-quoting-safe: use --stdin
gt sling <bead> <rig> --stdin <<'EOF'
Focus on:
1. SQL injection in query builders
2. XSS in template rendering
EOF

--args is stored on the bead and surfaced via gt prime when the agent starts.

Step 5: Verify the work was placed

gt convoy list           # the auto-convoy should appear
bd show <bead>           # status moves toward in_progress once the agent primes

Examples

Example 1 — sling a bead to a crew worker, merge via queue (default) User says: "Assign gu-77vjo to crew"

gt sling gu-77vjo crew

Result: bead hooked on a crew worker, auto-convoy created, lands via merge queue.

Example 2 — auto-spawn a polecat in a rig with focused instructions User says: "Send the auth refactor to greenplace, focus on token expiry"

gt sling gp-abc greenplace --create --args "focus on token expiry edge cases"

Result: polecat spawned in greenplace, bead hooked, instructions stored.

Example 3 — sling a formula (wisp) User says: "Run code-review on gt-abc"

gt sling code-review --on gt-abc crew

Result: formula cooked + wisped onto the target, work begins.

Sling vs hook vs handoff

Command Behavior
gt hook <bead> Just attach — no action
gt sling <bead> Attach + start now (keep current context)
gt handoff <bead> Attach + restart with fresh context

Troubleshooting

Error: target rig has no polecat / "agent not found" Cause: the polecat doesn't exist yet. Solution: add --create to spawn one: gt sling <bead> <rig> --create.

Sling blocked on unread mail Cause: target agent has unread mail and sling guards against it. Solution: clear mail, or override with --force if you know it's safe.

Work slung but agent idle / not running Cause: agent needs a nudge or hasn't primed. Solution: confirm the hook with gt hook (as the target) and that the agent session is alive; the bead runs when the agent primes.

Formula convoy stalls at step 1 / never self-advances Cause: the formula's DAG steps are crew-owned (Owner=<rig>/crew/<name>) and no polecat driver was attached. The dispatcher does not auto-sling crew-owned task steps to polecats, so a bd ready crew-owned step sits unclaimed and the convoy waits forever. Two dispatches of the same formula can differ: one attaches a mol-polecat-work driver and progresses, the other does not. Solution: after gt formula run, verify a driver was dispatched — bd show <next-step> showing Owner=...crew/<name> with no Assignee means crew-owned. Either hand-execute the ready steps yourself or re-run the formula so a driver attaches. Don't key a completion watch loop purely on "N/N complete" for crew-owned DAGs; add a no-progress stall branch. This is NOT a polecat push-failure — the worktree is clean (gt polecat git-state <rig>/<pc>).

Wrong merge strategy chosen Cause: omitted --merge, got the default mr. Solution: re-sling with the intended --merge=direct or --merge=local, or update the convoy's strategy.

Error: "bead <id> is not present in target rig <rig> beads database" Cause: the bead lives in a different DB than the target rig. A bead's prefix pins it to one DB (e.g. a gc- bead filed from a town-root crew session lives in the town DB), and gt sling <bead> <rig> requires the bead to already live in <rig>'s DB. A town-root bead can never be slung to a rig polecat. Solution: recreate the bead in the rig DB (bd new --repo <rig> "...", or run bd new from the rig dir) so it gets the rig prefix, then sling; close the town-root original as a duplicate.

Install via CLI
npx skills add https://github.com/gagecane/gastown --skill crew-sling-work
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator