docs: update environment variable documentation
Update docs to reflect the centralized config.AgentEnv() function and complete environment variable coverage: reference.md: - Restructured env vars section with tables by category - Added GT_ROOT, GT_CREW, BEADS_AGENT_NAME documentation - Added "Environment by Role" quick reference table - Added doctor check documentation for env-vars validation identity.md: - Updated Environment Setup section with complete examples - Added crew environment example showing BEADS_NO_DAEMON - Mentioned centralized config.AgentEnv() function - Cross-referenced to reference.md for full details Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Steve Yegge
parent
ce231a31af
commit
65334320c7
@@ -88,15 +88,37 @@ All events include actor attribution:
|
||||
|
||||
## Environment Setup
|
||||
|
||||
The daemon sets these automatically when spawning agents:
|
||||
Gas Town uses a centralized `config.AgentEnv()` function to set environment
|
||||
variables consistently across all agent spawn paths (managers, daemon, boot).
|
||||
|
||||
### Example: Polecat Environment
|
||||
|
||||
```bash
|
||||
# Set by daemon for polecat 'toast' in rig 'gastown'
|
||||
export BD_ACTOR="gastown/polecats/toast"
|
||||
export GIT_AUTHOR_NAME="gastown/polecats/toast"
|
||||
# Set automatically for polecat 'toast' in rig 'gastown'
|
||||
export GT_ROLE="polecat"
|
||||
export GT_RIG="gastown"
|
||||
export GT_POLECAT="toast"
|
||||
export BD_ACTOR="gastown/polecats/toast"
|
||||
export GIT_AUTHOR_NAME="gastown/polecats/toast"
|
||||
export GT_ROOT="/home/user/gt"
|
||||
export BEADS_DIR="/home/user/gt/gastown/.beads"
|
||||
export BEADS_AGENT_NAME="gastown/toast"
|
||||
export BEADS_NO_DAEMON="1" # Polecats use isolated beads context
|
||||
```
|
||||
|
||||
### Example: Crew Environment
|
||||
|
||||
```bash
|
||||
# Set automatically for crew member 'joe' in rig 'gastown'
|
||||
export GT_ROLE="crew"
|
||||
export GT_RIG="gastown"
|
||||
export GT_CREW="joe"
|
||||
export BD_ACTOR="gastown/crew/joe"
|
||||
export GIT_AUTHOR_NAME="gastown/crew/joe"
|
||||
export GT_ROOT="/home/user/gt"
|
||||
export BEADS_DIR="/home/user/gt/gastown/.beads"
|
||||
export BEADS_AGENT_NAME="gastown/joe"
|
||||
export BEADS_NO_DAEMON="1" # Crew uses isolated beads context
|
||||
```
|
||||
|
||||
### Manual Override
|
||||
@@ -108,6 +130,9 @@ export BD_ACTOR="gastown/crew/debug"
|
||||
bd create --title="Test issue" # Will show created_by: gastown/crew/debug
|
||||
```
|
||||
|
||||
See [reference.md](reference.md#environment-variables) for the complete
|
||||
environment variable reference.
|
||||
|
||||
## Identity Parsing
|
||||
|
||||
The format supports programmatic parsing:
|
||||
|
||||
@@ -206,17 +206,60 @@ gt mol step done <step> # Complete a molecule step
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Gas Town sets environment variables for each agent session via `config.AgentEnv()`.
|
||||
These are set in tmux session environment when agents are spawned.
|
||||
|
||||
### Core Variables (All Agents)
|
||||
|
||||
| Variable | Purpose | Example |
|
||||
|----------|---------|---------|
|
||||
| `GT_ROLE` | Agent role type | `mayor`, `witness`, `polecat`, `crew` |
|
||||
| `GT_ROOT` | Town root directory | `/home/user/gt` |
|
||||
| `BD_ACTOR` | Agent identity for attribution | `gastown/polecats/toast` |
|
||||
| `GIT_AUTHOR_NAME` | Commit attribution (same as BD_ACTOR) | `gastown/polecats/toast` |
|
||||
| `BEADS_DIR` | Beads database location | `/home/user/gt/gastown/.beads` |
|
||||
|
||||
### Rig-Level Variables
|
||||
|
||||
| Variable | Purpose | Roles |
|
||||
|----------|---------|-------|
|
||||
| `GT_RIG` | Rig name | witness, refinery, polecat, crew |
|
||||
| `GT_POLECAT` | Polecat worker name | polecat only |
|
||||
| `GT_CREW` | Crew worker name | crew only |
|
||||
| `BEADS_AGENT_NAME` | Agent name for beads operations | polecat, crew |
|
||||
| `BEADS_NO_DAEMON` | Disable beads daemon (isolated context) | polecat, crew |
|
||||
|
||||
### Other Variables
|
||||
|
||||
| Variable | Purpose |
|
||||
|----------|---------|
|
||||
| `BD_ACTOR` | Agent identity for attribution (see [identity.md](identity.md)) |
|
||||
| `BEADS_DIR` | Point to shared beads database |
|
||||
| `BEADS_NO_DAEMON` | Required for worktree polecats |
|
||||
| `GIT_AUTHOR_NAME` | Set to BD_ACTOR for commit attribution |
|
||||
| `GIT_AUTHOR_EMAIL` | Workspace owner email |
|
||||
| `GT_TOWN_ROOT` | Override town root detection |
|
||||
| `GT_ROLE` | Agent role type (mayor, polecat, etc.) |
|
||||
| `GT_RIG` | Rig name for rig-level agents |
|
||||
| `GT_POLECAT` | Polecat name (for polecats only) |
|
||||
| `GIT_AUTHOR_EMAIL` | Workspace owner email (from git config) |
|
||||
| `GT_TOWN_ROOT` | Override town root detection (manual use) |
|
||||
| `CLAUDE_RUNTIME_CONFIG_DIR` | Custom Claude settings directory |
|
||||
|
||||
### Environment by Role
|
||||
|
||||
| Role | Key Variables |
|
||||
|------|---------------|
|
||||
| **Mayor** | `GT_ROLE=mayor`, `BD_ACTOR=mayor` |
|
||||
| **Deacon** | `GT_ROLE=deacon`, `BD_ACTOR=deacon` |
|
||||
| **Boot** | `GT_ROLE=boot`, `BD_ACTOR=deacon-boot` |
|
||||
| **Witness** | `GT_ROLE=witness`, `GT_RIG=<rig>`, `BD_ACTOR=<rig>/witness` |
|
||||
| **Refinery** | `GT_ROLE=refinery`, `GT_RIG=<rig>`, `BD_ACTOR=<rig>/refinery` |
|
||||
| **Polecat** | `GT_ROLE=polecat`, `GT_RIG=<rig>`, `GT_POLECAT=<name>`, `BD_ACTOR=<rig>/polecats/<name>` |
|
||||
| **Crew** | `GT_ROLE=crew`, `GT_RIG=<rig>`, `GT_CREW=<name>`, `BD_ACTOR=<rig>/crew/<name>` |
|
||||
|
||||
### Doctor Check
|
||||
|
||||
The `gt doctor` command verifies that running tmux sessions have correct
|
||||
environment variables. Mismatches are reported as warnings:
|
||||
|
||||
```
|
||||
⚠ env-vars: Found 3 env var mismatch(es) across 1 session(s)
|
||||
hq-mayor: missing GT_ROOT (expected "/home/user/gt")
|
||||
```
|
||||
|
||||
Fix by restarting sessions: `gt shutdown && gt up`
|
||||
|
||||
## Agent Working Directories and Settings
|
||||
|
||||
|
||||
Reference in New Issue
Block a user