@towles/tool 0.0.128 → 0.0.129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@towles/tool",
3
- "version": "0.0.128",
3
+ "version": "0.0.129",
4
4
  "description": "One off quality of life scripts that I use on a daily basis.",
5
5
  "homepage": "https://github.com/ChrisTowles/towles-tool#readme",
6
6
  "bugs": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tt",
3
- "description": "Core dev workflow commands: interview-me, write-prd, prd-to-issues, tdd, improve-architecture, refine-text, task.",
4
- "version": "0.0.109",
3
+ "description": "Core dev workflow commands and skills: interview-me, write-prd, prd-to-issues, tdd, improve-architecture, refine-text, task, parallel-slots, towles-tool.",
4
+ "version": "0.0.129",
5
5
  "author": {
6
6
  "name": "Chris Towles"
7
7
  }
@@ -10,6 +10,13 @@ Core workflow automation commands for Claude Code.
10
10
  | `/tt:improve` | Explore codebase and suggest improvements |
11
11
  | `/tt:refine` | Fix grammar/spelling in files |
12
12
 
13
+ ## Skills
14
+
15
+ | Skill | Description |
16
+ | ------------------- | --------------------------------------------------------------------------------- |
17
+ | `tt:towles-tool` | `tt` CLI reference: git/gh helpers, journaling, dependency checks. |
18
+ | `tt:parallel-slots` | Fan out parallel Claude Code agents across slot clones of any repo, via `gh` CLI. |
19
+
13
20
  ## Installation
14
21
 
15
22
  ```bash
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: parallel-slots
3
+ description: Use when the user wants to dispatch parallel Claude Code agents across slot clones of a repo, asks to "fan out", "run N in parallel", "use the slots", or wants to coordinate multiple isolated working copies of the same repo. Explains the slot directory layout, when to fan out vs. stay in primary, and the `gh`-driven workflow that ties slots together.
4
+ user_invocable: true
5
+ ---
6
+
7
+ # Parallel slots
8
+
9
+ The slot pattern lets you run independent Claude Code sessions on the same repo without stepping on each other. Mirrors Boris Cherny's "5 terminal tabs, each a separate git checkout" workflow.
10
+
11
+ ## Layout
12
+
13
+ ```
14
+ ~/code/<scope>/<repo>-repos/
15
+ <repo>-primary/ # interactive work
16
+ <repo>-slot-1/ # parallel agent slot
17
+ <repo>-slot-2/
18
+ <repo>-slot-3/
19
+ <repo>-slot-4/
20
+ <repo>-slot-5/
21
+ ```
22
+
23
+ Each slot is a full clone of the same GitHub remote, not a worktree. They check out branches independently. Use the `gh` CLI for all GitHub-side operations (issue → branch, PR create, PR merge, status). If the repo ships a tmux sidebar (e.g. AgentBoard in towles-tool), it watches every slot and surfaces completion via the stop-hook sweep.
24
+
25
+ ## When to fan out
26
+
27
+ Fan out (use slots) when:
28
+
29
+ - Three or more independent tasks would benefit from running simultaneously (e.g. one PR, one bug, one refactor).
30
+ - A task is risky and you want a clean, throwaway slot that won't pollute primary's working tree.
31
+ - You're iterating on the agent harness itself and want to leave primary stable.
32
+
33
+ Stay in primary when:
34
+
35
+ - The work is sequential or all the changes need to land in the same commit.
36
+ - You're reading/exploring; spinning a slot just adds overhead.
37
+
38
+ ## Dispatch flow
39
+
40
+ 1. Pick a free slot (any slot whose sidebar pane is idle).
41
+ 2. `cd` into it and confirm the working tree is clean.
42
+ 3. Branch off from a GitHub issue: `gh issue develop <issue-number> --checkout` — creates a remote branch tied to the issue and switches the slot to it. If there's no issue, name the branch and use `gh pr checkout <pr>` later if you need to hop onto a colleague's PR.
43
+ 4. Hand the task to Claude in that slot — either via the repo's sidebar TUI or by running `tt auto-claude` with a prompt.
44
+ 5. Watch the sidebar pane for completion. The stop-hook prints results back to it.
45
+
46
+ ## Coordination rules
47
+
48
+ - Never run two agents on the _same_ branch in two slots — push/pull races destroy work.
49
+ - Branch names should be unique per slot for the duration of the run.
50
+ - If a slot's working tree is dirty when you arrive, treat it as in-progress work — investigate before resetting.
51
+ - Pre-commit hooks (format + lint + typecheck) run in every slot, so `--no-verify` is forbidden.
52
+
53
+ ## Verifying a slot's output
54
+
55
+ Before merging from a slot, run that repo's verify command (`/verify` in towles-tool) inside it. Don't trust the slot's own self-report; the agent that wrote the change is not the right reviewer.
56
+
57
+ ## Shipping from a slot
58
+
59
+ Open the PR with `gh pr create` (use `--fill` to seed title/body from commits, or pass `--title`/`--body` explicitly). Merge with `gh pr merge --rebase --admin` — the standard merge style.
60
+
61
+ ## Cleanup
62
+
63
+ After a slot's branch is merged: confirm with `gh pr status` that the slot's PR is merged, then prune the local branch. Use `compound-engineering:ce-clean-gone-branches` to bulk-prune across multiple slots in one pass.
64
+
65
+ ## Anti-patterns
66
+
67
+ - Spinning all 5 slots on the same task "for redundancy". You'll spend the time merging conflicts.
68
+ - Treating slots as long-lived workspaces. They are scratch checkouts — keep them transient.
69
+ - Editing files in primary while a slot has them open. Stay in one or the other for any given file.