docs(crew): Work off main, no feature branches

Crew workers are trusted maintainers who push directly to main:
- Own their clones (no isolation needed)
- Fast work cycles (10-15 min) make branch overhead wasteful
- Branches go stale with context cycling
- Polecats use branches/MRs; crew does not need review

Also updated two-level beads docs (removed stale rig-level references).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-20 18:35:02 -08:00
parent 5f206348a5
commit bc4cec1494
2 changed files with 53 additions and 17 deletions

View File

@@ -67,20 +67,37 @@ go test ./...
- `gt mail send mayor/ -s "Subject" -m "Message"` - To Mayor
- `gt mail send gastown/crew/max -s "Subject" -m "Message"` - To yourself (handoff)
## Beads Database
## Git Workflow: Work Off Main
**Two-level beads architecture** - understand this to avoid confusion:
**Crew workers push directly to main. No feature branches.**
| Level | Location | sync-branch | Prefix | Purpose |
|-------|----------|-------------|--------|---------|
| Town | `~/gt/.beads/` | NOT set | `hq-*` | Mayor mail, HQ coordination |
| Rig | `crew/max/.beads/` (this clone) | `beads-sync` | `gt-*` | Project issues |
Why:
- You own your clone - no isolation needed
- Work is fast (10-15 min) - branch overhead exceeds value
- Branches go stale with context cycling - main is always current
- You're a trusted maintainer, not a contributor needing review
Workflow:
```bash
git pull # Start fresh
# ... do work ...
git add -A && git commit -m "description"
git push # Direct to main
```
If push fails (someone else pushed): `git pull --rebase && git push`
## Two-Level Beads Architecture
| Level | Location | Prefix | Purpose |
|-------|----------|--------|---------|
| Town | `~/gt/.beads/` | `hq-*` | ALL mail and coordination |
| Clone | `crew/max/.beads/` | `gt-*` | Project issues only |
**Key points:**
- You're in a **gastown.git clone** - your `.beads/` is tracked in the gastown repo
- The rig-level `~/gt/gastown/.beads/` is **gitignored** (local runtime state)
- Your beads sync via `beads-sync` branch to coordinate with other clones
- Run `bd sync` to push/pull beads changes
- Mail ALWAYS uses town beads - `gt mail` routes there automatically
- Project issues use your clone's beads - `bd` commands use local `.beads/`
- Run `bd sync` to push/pull beads changes via the `beads-sync` branch
Issue prefix: `gt-`

View File

@@ -33,14 +33,14 @@ Town ({{ .TownRoot }})
## Two-Level Beads Architecture
| Level | Location | sync-branch | Prefix | Purpose |
|-------|----------|-------------|--------|---------|
| Town | `~/gt/.beads/` | NOT set | `hq-*` | Mayor mail, HQ coordination |
| Rig | `crew/{{ .Polecat }}/.beads/` | `beads-sync` | project prefix | Project issues |
| Level | Location | Prefix | Purpose |
|-------|----------|--------|---------|
| Town | `~/gt/.beads/` | `hq-*` | ALL mail and coordination |
| Clone | `crew/{{ .Polecat }}/.beads/` | project prefix | Project issues only |
**Key points:**
- You're in a project git clone - your `.beads/` is tracked in the project repo
- The rig-level `{{ .RigName }}/.beads/` is **gitignored** (local runtime state)
- Mail ALWAYS uses town beads - `gt mail` routes there automatically
- Project issues use your clone's beads - `bd` commands use local `.beads/`
- Run `bd sync` to push/pull beads changes via the `beads-sync` branch
## Your Workspace
@@ -50,6 +50,26 @@ You work from: {{ .WorkDir }}
This is a full git clone of the project repository. You have complete autonomy
over this workspace.
## Git Workflow: Work Off Main
**Crew workers push directly to main. No feature branches.**
Why:
- You own your clone - no isolation needed
- Work is fast (10-15 min) - branch overhead exceeds value
- Branches go stale with context cycling - main is always current
- You're a trusted maintainer, not a contributor needing review
Workflow:
```bash
git pull # Start fresh
# ... do work ...
git add -A && git commit -m "description"
git push # Direct to main
```
If push fails (someone else pushed): `git pull --rebase && git push`
## Key Commands
### Finding Work
@@ -91,7 +111,6 @@ When your context fills up, cycle to a fresh session:
gt mail send {{ .RigName }}/crew/{{ .Polecat }} -s "🤝 HANDOFF: Work in progress" -m "
## Current State
Working on: <issue-id or description>
Branch: <current branch>
Status: <what's done, what remains>
## Next Steps