|
18e8fef…
|
lmata
|
1 |
--- |
|
18e8fef…
|
lmata
|
2 |
name: project-setup |
|
18e8fef…
|
lmata
|
3 |
description: Wire any project repo for scuttlebot IRC coordination — creates .scuttlebot.yaml, adds gitignore entry, and documents the issue channel workflow in the project's bootstrap file. Use when onboarding a new project to the scuttlebot coordination backplane. |
|
18e8fef…
|
lmata
|
4 |
--- |
|
18e8fef…
|
lmata
|
5 |
|
|
18e8fef…
|
lmata
|
6 |
# Project Setup for Scuttlebot Coordination |
|
18e8fef…
|
lmata
|
7 |
|
|
18e8fef…
|
lmata
|
8 |
Use this skill to wire a project repo into the scuttlebot coordination backplane. |
|
18e8fef…
|
lmata
|
9 |
This sets up per-project IRC channels and the issue-based workflow so agents |
|
18e8fef…
|
lmata
|
10 |
working in the repo automatically coordinate through scuttlebot. |
|
18e8fef…
|
lmata
|
11 |
|
|
18e8fef…
|
lmata
|
12 |
## What this skill does |
|
18e8fef…
|
lmata
|
13 |
|
|
18e8fef…
|
lmata
|
14 |
1. Creates `.scuttlebot.yaml` in the project root (gitignored) |
|
18e8fef…
|
lmata
|
15 |
2. Adds `.scuttlebot.yaml` to `.gitignore` |
|
18e8fef…
|
lmata
|
16 |
3. Adds an IRC coordination section to the project's bootstrap doc |
|
18e8fef…
|
lmata
|
17 |
|
|
18e8fef…
|
lmata
|
18 |
## Channel hierarchy |
|
18e8fef…
|
lmata
|
19 |
|
|
18e8fef…
|
lmata
|
20 |
Every project uses three channel tiers: |
|
18e8fef…
|
lmata
|
21 |
|
|
18e8fef…
|
lmata
|
22 |
| Tier | Channel | Purpose | Lifecycle | |
|
18e8fef…
|
lmata
|
23 |
|------|---------|---------|-----------| |
|
18e8fef…
|
lmata
|
24 |
| General | `#general` | Cross-project coordination, operator chatter | Always joined | |
|
18e8fef…
|
lmata
|
25 |
| Project | `#<project-name>` | Project-specific coordination, status, discussion | Joined at relay startup via `.scuttlebot.yaml` | |
|
18e8fef…
|
lmata
|
26 |
| Issue | `#issue-<N>` | Solo work channel for a specific GitHub issue | `/join` when starting, `/part` when done | |
|
18e8fef…
|
lmata
|
27 |
|
|
18e8fef…
|
lmata
|
28 |
## Per-repo config: `.scuttlebot.yaml` |
|
18e8fef…
|
lmata
|
29 |
|
|
18e8fef…
|
lmata
|
30 |
Created in the project root, gitignored. The relay reads this at startup and |
|
18e8fef…
|
lmata
|
31 |
merges its channels into the session channel set. |
|
18e8fef…
|
lmata
|
32 |
|
|
18e8fef…
|
lmata
|
33 |
```yaml |
|
18e8fef…
|
lmata
|
34 |
# .scuttlebot.yaml — per-repo scuttlebot relay config (gitignored) |
|
18e8fef…
|
lmata
|
35 |
channel: <project-name> |
|
18e8fef…
|
lmata
|
36 |
``` |
|
18e8fef…
|
lmata
|
37 |
|
|
18e8fef…
|
lmata
|
38 |
That's it. One field. The relay handles the rest. |
|
18e8fef…
|
lmata
|
39 |
|
|
18e8fef…
|
lmata
|
40 |
Optional additional channels: |
|
18e8fef…
|
lmata
|
41 |
|
|
18e8fef…
|
lmata
|
42 |
```yaml |
|
18e8fef…
|
lmata
|
43 |
channel: <project-name> |
|
18e8fef…
|
lmata
|
44 |
channels: |
|
18e8fef…
|
lmata
|
45 |
- ops |
|
18e8fef…
|
lmata
|
46 |
- deployments |
|
18e8fef…
|
lmata
|
47 |
``` |
|
18e8fef…
|
lmata
|
48 |
|
|
18e8fef…
|
lmata
|
49 |
## Issue channel workflow |
|
18e8fef…
|
lmata
|
50 |
|
|
18e8fef…
|
lmata
|
51 |
When an agent picks up a GitHub issue, it should: |
|
18e8fef…
|
lmata
|
52 |
|
|
18e8fef…
|
lmata
|
53 |
1. `/join #issue-<N>` — join the issue channel (auto-created if it doesn't exist) |
|
18e8fef…
|
lmata
|
54 |
2. Work in that channel — all activity mirrors there |
|
18e8fef…
|
lmata
|
55 |
3. `/part #issue-<N>` — leave when the issue is closed or work is complete |
|
18e8fef…
|
lmata
|
56 |
|
|
18e8fef…
|
lmata
|
57 |
This gives operators per-issue observability. Multiple agents on different issues |
|
18e8fef…
|
lmata
|
58 |
work in isolation. An operator can watch `#kohakku` for project-level activity or |
|
18e8fef…
|
lmata
|
59 |
drill into `#issue-42` for a specific task. |
|
18e8fef…
|
lmata
|
60 |
|
|
18e8fef…
|
lmata
|
61 |
## Bootstrap doc section |
|
18e8fef…
|
lmata
|
62 |
|
|
18e8fef…
|
lmata
|
63 |
Add this to the project's `bootstrap.md` (or equivalent conventions doc): |
|
18e8fef…
|
lmata
|
64 |
|
|
18e8fef…
|
lmata
|
65 |
```markdown |
|
18e8fef…
|
lmata
|
66 |
## IRC Coordination |
|
18e8fef…
|
lmata
|
67 |
|
|
18e8fef…
|
lmata
|
68 |
This project uses scuttlebot for agent coordination via IRC. |
|
18e8fef…
|
lmata
|
69 |
|
|
18e8fef…
|
lmata
|
70 |
### Channels |
|
18e8fef…
|
lmata
|
71 |
|
|
18e8fef…
|
lmata
|
72 |
- `#general` — cross-project coordination (always joined) |
|
18e8fef…
|
lmata
|
73 |
- `#<project-name>` — project coordination (auto-joined via `.scuttlebot.yaml`) |
|
18e8fef…
|
lmata
|
74 |
- `#issue-<N>` — per-issue work channel (join/part dynamically) |
|
18e8fef…
|
lmata
|
75 |
|
|
18e8fef…
|
lmata
|
76 |
### Issue workflow |
|
18e8fef…
|
lmata
|
77 |
|
|
18e8fef…
|
lmata
|
78 |
When you start working on a GitHub issue: |
|
18e8fef…
|
lmata
|
79 |
|
|
18e8fef…
|
lmata
|
80 |
1. Join the issue channel: send `/join #issue-<N>` where N is the issue number |
|
18e8fef…
|
lmata
|
81 |
2. Do your work — activity is mirrored to both the project channel and the issue channel |
|
18e8fef…
|
lmata
|
82 |
3. When done, part the issue channel: send `/part #issue-<N>` |
|
18e8fef…
|
lmata
|
83 |
|
|
18e8fef…
|
lmata
|
84 |
### Setup |
|
18e8fef…
|
lmata
|
85 |
|
|
18e8fef…
|
lmata
|
86 |
The `.scuttlebot.yaml` file in the project root configures the relay to auto-join |
|
18e8fef…
|
lmata
|
87 |
the project channel. This file is gitignored — each developer/agent creates their |
|
18e8fef…
|
lmata
|
88 |
own. The relay config at `~/.config/scuttlebot-relay.env` provides the server |
|
18e8fef…
|
lmata
|
89 |
URL, token, and transport settings. |
|
18e8fef…
|
lmata
|
90 |
``` |
|
18e8fef…
|
lmata
|
91 |
|
|
18e8fef…
|
lmata
|
92 |
## Step-by-step setup |
|
18e8fef…
|
lmata
|
93 |
|
|
18e8fef…
|
lmata
|
94 |
### For a new project |
|
18e8fef…
|
lmata
|
95 |
|
|
18e8fef…
|
lmata
|
96 |
Given a project named `myproject` in a repo at `/path/to/myproject`: |
|
18e8fef…
|
lmata
|
97 |
|
|
18e8fef…
|
lmata
|
98 |
1. Create `.scuttlebot.yaml`: |
|
18e8fef…
|
lmata
|
99 |
```yaml |
|
18e8fef…
|
lmata
|
100 |
channel: myproject |
|
18e8fef…
|
lmata
|
101 |
``` |
|
18e8fef…
|
lmata
|
102 |
|
|
18e8fef…
|
lmata
|
103 |
2. Add to `.gitignore`: |
|
18e8fef…
|
lmata
|
104 |
``` |
|
18e8fef…
|
lmata
|
105 |
.scuttlebot.yaml |
|
18e8fef…
|
lmata
|
106 |
``` |
|
18e8fef…
|
lmata
|
107 |
|
|
18e8fef…
|
lmata
|
108 |
3. Add the IRC Coordination section to the project's bootstrap doc. |
|
18e8fef…
|
lmata
|
109 |
|
|
18e8fef…
|
lmata
|
110 |
4. Start a relay from the project directory — it will auto-join `#general` and `#myproject`. |
|
18e8fef…
|
lmata
|
111 |
|
|
18e8fef…
|
lmata
|
112 |
### For an existing project |
|
18e8fef…
|
lmata
|
113 |
|
|
18e8fef…
|
lmata
|
114 |
Same steps. The relay picks up `.scuttlebot.yaml` on next startup. No server-side |
|
18e8fef…
|
lmata
|
115 |
config needed — channels are created on demand by Ergo when the first user joins. |
|
18e8fef…
|
lmata
|
116 |
|
|
18e8fef…
|
lmata
|
117 |
## What NOT to put in `.scuttlebot.yaml` |
|
18e8fef…
|
lmata
|
118 |
|
|
18e8fef…
|
lmata
|
119 |
- Tokens or credentials (use `~/.config/scuttlebot-relay.env`) |
|
18e8fef…
|
lmata
|
120 |
- Server URL (use the global relay config) |
|
18e8fef…
|
lmata
|
121 |
- Transport settings (use the global relay config) |
|
18e8fef…
|
lmata
|
122 |
|
|
18e8fef…
|
lmata
|
123 |
The per-repo file is only for channel routing. Everything else is global. |