feat: Remove gt spawn completely - gt sling is THE command (gt-1py3y)
Fully remove gt spawn from the codebase: - Delete spawn.go, create polecat_spawn.go with just sling helpers - Remove all gt spawn references from docs and CLAUDE.md - Update code comments to reference gt sling gt sling now handles ALL work dispatch: - Existing agents: gt sling <bead> mayor/crew/witness - Auto-spawn: gt sling <bead> <rig> - No-tmux: gt sling <bead> <rig> --naked - With args: gt sling <bead> --args "..." 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -699,7 +699,7 @@ pending → in_progress → completed
|
||||
When a molecule is attached to an issue:
|
||||
|
||||
```bash
|
||||
gt spawn --issue gt-xyz --molecule mol-shiny
|
||||
gt sling gt-xyz <rig> --molecule mol-shiny
|
||||
```
|
||||
|
||||
1. Molecule is validated (steps, dependencies)
|
||||
@@ -756,7 +756,7 @@ bd mol show mol-shiny
|
||||
bd mol bond mol-shiny --var feature_name="auth"
|
||||
|
||||
# Spawn polecat with molecule
|
||||
gt spawn --issue gt-xyz --molecule mol-shiny
|
||||
gt sling gt-xyz <rig> --molecule mol-shiny
|
||||
```
|
||||
|
||||
### Why Molecules?
|
||||
@@ -1957,7 +1957,7 @@ gt capture <polecat> "<cmd>" # Run command in polecat session
|
||||
### Session Management
|
||||
|
||||
```bash
|
||||
gt spawn --issue <id> --molecule mol-shiny # Spawn polecat with workflow
|
||||
gt sling <id> <rig> --molecule mol-shiny # Spawn polecat with workflow
|
||||
gt handoff # Polecat requests shutdown (run when done)
|
||||
gt session stop <p> # Kill polecat session (Witness uses this)
|
||||
```
|
||||
|
||||
@@ -221,4 +221,4 @@ echo "Bootstrap complete!"
|
||||
After bootstrapping:
|
||||
1. Start a Mayor session: `gt mayor attach`
|
||||
2. Check for work: `bd ready`
|
||||
3. Spawn workers with molecules: `gt spawn --issue <id> --molecule mol-shiny`
|
||||
3. Spawn workers with molecules: `gt sling <id> <rig> --molecule mol-shiny`
|
||||
|
||||
@@ -127,7 +127,7 @@ bd list --has-external-block
|
||||
|
||||
**Manual (launch):**
|
||||
```bash
|
||||
gt spawn --continue gt-mol-root
|
||||
gt sling gt-mol-root
|
||||
# Spawns polecat, which reads handoff mail and continues
|
||||
```
|
||||
|
||||
@@ -153,7 +153,7 @@ Deacon patrol checks parked molecules:
|
||||
### Phase 2: Gas Town Integration (gt-* issues)
|
||||
|
||||
1. **gt park command**: Set blocked_by, clear assignee, handoff, shutdown
|
||||
2. **gt spawn --continue**: Resume parked molecule
|
||||
2. **gt sling**: Resume parked molecule
|
||||
3. **Patrol step**: Check parked molecules for unblocked
|
||||
|
||||
### Phase 3: Automation (future)
|
||||
@@ -213,7 +213,7 @@ gt park --step=gt-mol.3 --waiting="beads:mol-run-assignee"
|
||||
# Polecat shutting down.
|
||||
|
||||
# Later, after beads ships:
|
||||
gt spawn --continue gt-mol-root
|
||||
gt sling gt-mol-root
|
||||
# Resuming molecule gt-mol-root...
|
||||
# Reading handoff context...
|
||||
# Continuing from step gt-mol.3
|
||||
|
||||
@@ -267,7 +267,7 @@ Execute registered plugins whose gates are open.
|
||||
## Limitations
|
||||
|
||||
- **No polecat spawning**: Plugins cannot spawn polecats. If a plugin tries
|
||||
to use `gt spawn`, behavior is undefined. This may change in the future.
|
||||
to use `gt sling`, behavior is undefined. This may change in the future.
|
||||
|
||||
- **No cross-plugin dependencies**: Plugins don't declare dependencies on
|
||||
each other. If ordering matters, mark both as `parallel: false`.
|
||||
|
||||
@@ -63,7 +63,7 @@ Highest priority override. Set this to use a specific account:
|
||||
|
||||
```bash
|
||||
export GT_ACCOUNT=yegge
|
||||
gt spawn gastown # Uses yegge account
|
||||
gt sling <bead> gastown # Uses yegge account
|
||||
```
|
||||
|
||||
### Command Interface
|
||||
@@ -100,13 +100,13 @@ gt account status
|
||||
|
||||
```bash
|
||||
# Override for a specific spawn
|
||||
gt spawn --account=yegge gastown
|
||||
gt sling <bead> gastown --account=yegge
|
||||
|
||||
# Override for crew attach
|
||||
gt crew at --account=ghosttrack max
|
||||
|
||||
# With env var (highest precedence)
|
||||
GT_ACCOUNT=yegge gt spawn gastown
|
||||
GT_ACCOUNT=yegge gt sling <bead> gastown
|
||||
```
|
||||
|
||||
### Implementation Details
|
||||
@@ -119,7 +119,7 @@ GT_ACCOUNT=yegge gt spawn gastown
|
||||
|
||||
#### How Spawning Works
|
||||
|
||||
When `gt spawn` or `gt crew at` runs Claude Code:
|
||||
When `gt sling` or `gt crew at` runs Claude Code:
|
||||
|
||||
```go
|
||||
func resolveAccountConfigDir() string {
|
||||
|
||||
@@ -426,7 +426,7 @@ Unlike polecats, crew workers have no Witness oversight:
|
||||
### Phase 3: Spawn & Lifecycle
|
||||
1. Port spawn injection prompts
|
||||
2. Add lifecycle templates (nudge, escalation)
|
||||
3. Integrate with `gt spawn` command
|
||||
3. Integrate with `gt sling` command
|
||||
|
||||
### Phase 4: CLI & Validation
|
||||
1. Implement `gt prime` with role detection
|
||||
|
||||
@@ -361,7 +361,7 @@ Putting it all together:
|
||||
|
||||
```
|
||||
1. Human files issue in Beads
|
||||
2. Mayor dispatches: gt spawn --issue <id>
|
||||
2. Mayor dispatches: gt sling --issue <id>
|
||||
3. Polecat created with:
|
||||
- Fresh worktree
|
||||
- mol-polecat-work pinned to hook
|
||||
|
||||
Reference in New Issue
Block a user