docs(priming): remove bd sync references for Dolt backend
Gas Town uses Dolt exclusively. Remove all bd sync and bd daemon references from agent priming, templates, formulas, and docs. With Dolt backend: - Beads changes are automatically persisted - No manual sync needed (no bd sync) - No daemon needed (no bd daemon) Updated files: - polecat-CLAUDE.md template - Role templates (crew, mayor, polecat) - Message templates (spawn, nudge) - Formulas (polecat-work, sync-workspace, shutdown, etc.) - Reference docs Part of hq-4f2f0c: Remove bd sync/daemon from agent priming Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -28,16 +28,13 @@ This is physics, not politeness. Gas Town is a steam engine - you are a piston.
|
|||||||
- `gt mol status` - Check your hooked work
|
- `gt mol status` - Check your hooked work
|
||||||
- `gt mail inbox` - Check for messages
|
- `gt mail inbox` - Check for messages
|
||||||
- `bd ready` - Find available work (no blockers)
|
- `bd ready` - Find available work (no blockers)
|
||||||
- `bd sync` - Sync beads changes
|
|
||||||
|
|
||||||
## Session Close Protocol
|
## Session Close Protocol
|
||||||
|
|
||||||
Before saying "done":
|
Before saying "done":
|
||||||
1. git status (check what changed)
|
1. git status (check what changed)
|
||||||
2. git add <files> (stage code changes)
|
2. git add <files> (stage code changes)
|
||||||
3. bd sync (commit beads changes)
|
3. git commit -m "..." (commit code)
|
||||||
4. git commit -m "..." (commit code)
|
4. git push (push to remote)
|
||||||
5. bd sync (commit any new beads changes)
|
|
||||||
6. git push (push to remote)
|
|
||||||
|
|
||||||
**Work is not done until pushed.**
|
**Work is not done until pushed.** Beads changes are automatically committed with Dolt.
|
||||||
|
|||||||
@@ -268,13 +268,13 @@ ssh -T git@github.com
|
|||||||
git config --global credential.helper cache
|
git config --global credential.helper cache
|
||||||
```
|
```
|
||||||
|
|
||||||
### Beads sync issues
|
### Beads issues
|
||||||
|
|
||||||
If beads aren't syncing across clones:
|
If experiencing beads problems:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/gt/myproject/mayor/rig
|
cd ~/gt/myproject/mayor/rig
|
||||||
bd sync --status # Check sync status
|
bd status # Check database health
|
||||||
bd doctor # Run beads health check
|
bd doctor # Run beads health check
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -626,7 +626,6 @@ bd create --title="..." --type=task
|
|||||||
bd update <id> --status=in_progress
|
bd update <id> --status=in_progress
|
||||||
bd close <id>
|
bd close <id>
|
||||||
bd dep add <child> <parent> # child depends on parent
|
bd dep add <child> <parent> # child depends on parent
|
||||||
bd sync # Push/pull changes
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Patrol Agents
|
## Patrol Agents
|
||||||
|
|||||||
@@ -135,12 +135,7 @@ bd show {{convoy}}
|
|||||||
# Status should reflect archived state
|
# Status should reflect archived state
|
||||||
```
|
```
|
||||||
|
|
||||||
**4. Sync to persist:**
|
**Exit criteria:** Convoy archived."""
|
||||||
```bash
|
|
||||||
bd sync
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exit criteria:** Convoy archived, changes synced."""
|
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "notify-overseer"
|
id = "notify-overseer"
|
||||||
|
|||||||
@@ -419,114 +419,10 @@ gt mail send mayor/ -s "Health: <rig> <component> unresponsive" \\
|
|||||||
|
|
||||||
Reset unresponsive_cycles to 0 when component responds normally."""
|
Reset unresponsive_cycles to 0 when component responds normally."""
|
||||||
|
|
||||||
[[steps]]
|
|
||||||
id = "hung-session-detection"
|
|
||||||
title = "Detect and recover hung Gas Town sessions (SURGICAL)"
|
|
||||||
needs = ["health-scan"]
|
|
||||||
description = """
|
|
||||||
Detect and surgically recover hung Gas Town sessions where the Claude API call is stuck.
|
|
||||||
|
|
||||||
A hung session appears "running" (tmux session exists, Claude process exists) but
|
|
||||||
the API call has been stuck indefinitely. This breaks patrol chains - if witness
|
|
||||||
hangs, refinery never gets nudged about new MRs.
|
|
||||||
|
|
||||||
**Why existing checks miss this:**
|
|
||||||
- zombie-scan only catches processes not in tmux sessions
|
|
||||||
- gt status shows "running" if tmux session exists
|
|
||||||
- Nudges queue but never get processed (Claude can't respond)
|
|
||||||
|
|
||||||
## SURGICAL TARGETING
|
|
||||||
|
|
||||||
**ONLY these session patterns are valid targets:**
|
|
||||||
- `gt-<rig>-witness` (e.g., gt-kalshi-witness, gt-horizon-witness)
|
|
||||||
- `gt-<rig>-refinery` (e.g., gt-kalshi-refinery)
|
|
||||||
- `hq-deacon`
|
|
||||||
|
|
||||||
**NEVER touch sessions that don't match these patterns exactly.**
|
|
||||||
|
|
||||||
## DETECTION (All checks must pass)
|
|
||||||
|
|
||||||
For each Gas Town session, capture output and verify ALL of these:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Step 1: Get session output
|
|
||||||
output=$(tmux capture-pane -t <session-name> -p 2>/dev/null | tail -10)
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check 1: Session is in waiting state**
|
|
||||||
Must see one of: `Clauding`, `Deciphering`, `Marinating`, `Finagling`, `thinking`
|
|
||||||
```bash
|
|
||||||
echo "$output" | grep -qiE 'Clauding|Deciphering|Marinating|Finagling|thinking'
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check 2: Duration exceeds threshold (30+ minutes)**
|
|
||||||
Parse duration from output like "21h 35m 20s" or "45m 30s":
|
|
||||||
```bash
|
|
||||||
# Extract hours and minutes
|
|
||||||
hours=$(echo "$output" | grep -oE '[0-9]+h' | head -1 | tr -d 'h')
|
|
||||||
minutes=$(echo "$output" | grep -oE '[0-9]+m' | head -1 | tr -d 'm')
|
|
||||||
total_minutes=$((${hours:-0} * 60 + ${minutes:-0}))
|
|
||||||
# Threshold: 30 minutes minimum
|
|
||||||
[ "$total_minutes" -ge 30 ]
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check 3: Zero tokens received (definite hang) OR very long duration (>2 hours)**
|
|
||||||
```bash
|
|
||||||
# Definite hang: zero tokens received
|
|
||||||
echo "$output" | grep -qE '↓ 0 tokens'
|
|
||||||
# OR extremely long duration (>2 hours = 120 minutes)
|
|
||||||
[ "$total_minutes" -ge 120 ]
|
|
||||||
```
|
|
||||||
|
|
||||||
**Check 4: NOT showing active tool execution**
|
|
||||||
Active sessions show tool markers (⏺). If present, session is actually working:
|
|
||||||
```bash
|
|
||||||
# If tool markers present in recent output, DO NOT kill
|
|
||||||
echo "$output" | grep -qE '⏺|Read|Write|Bash|Edit' && continue
|
|
||||||
```
|
|
||||||
|
|
||||||
## RECOVERY (Only after ALL checks pass)
|
|
||||||
|
|
||||||
**Log the action first:**
|
|
||||||
```bash
|
|
||||||
echo "[$(date)] RECOVERING HUNG: <session-name> (${hours}h ${minutes}m, waiting state)" >> $GT_ROOT/logs/hung-sessions.log
|
|
||||||
```
|
|
||||||
|
|
||||||
**Kill and restart based on session type:**
|
|
||||||
|
|
||||||
For witness:
|
|
||||||
```bash
|
|
||||||
tmux kill-session -t gt-<rig>-witness 2>/dev/null
|
|
||||||
gt witness start <rig>
|
|
||||||
```
|
|
||||||
|
|
||||||
For refinery:
|
|
||||||
```bash
|
|
||||||
tmux kill-session -t gt-<rig>-refinery 2>/dev/null
|
|
||||||
gt refinery restart <rig>
|
|
||||||
```
|
|
||||||
|
|
||||||
For deacon (self-recovery - use with caution):
|
|
||||||
```bash
|
|
||||||
# Deacon detecting itself is hung is a paradox
|
|
||||||
# Only kill if another deacon instance exists or human confirmed
|
|
||||||
gt mail send mayor/ -s "DEACON SELF-HUNG DETECTED" -m "Deacon appears hung. Human intervention required."
|
|
||||||
```
|
|
||||||
|
|
||||||
## VERIFICATION
|
|
||||||
|
|
||||||
After restart, verify new session is healthy:
|
|
||||||
```bash
|
|
||||||
sleep 5
|
|
||||||
tmux has-session -t <session-name> && echo "Session restarted successfully"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exit criteria:** All hung Gas Town sessions detected and recovered (or escalated if recovery failed)."""
|
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "zombie-scan"
|
id = "zombie-scan"
|
||||||
title = "Detect zombie polecats (NO KILL AUTHORITY)"
|
title = "Detect zombie polecats (NO KILL AUTHORITY)"
|
||||||
needs = ["hung-session-detection"]
|
needs = ["health-scan"]
|
||||||
description = """
|
description = """
|
||||||
Defense-in-depth DETECTION of zombie polecats that Witness should have cleaned.
|
Defense-in-depth DETECTION of zombie polecats that Witness should have cleaned.
|
||||||
|
|
||||||
|
|||||||
@@ -190,11 +190,6 @@ bd create --title="Digest: {{date}}" --type=digest \
|
|||||||
--label=digest,{{period}}
|
--label=digest,{{period}}
|
||||||
```
|
```
|
||||||
|
|
||||||
**3. Sync:**
|
|
||||||
```bash
|
|
||||||
bd sync
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exit criteria:** Digest sent to Mayor and archived as bead."""
|
**Exit criteria:** Digest sent to Mayor and archived as bead."""
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
|
|||||||
@@ -270,11 +270,6 @@ Overall assessment:
|
|||||||
<brief summary - healthy, needs attention, significant issues, etc.>"
|
<brief summary - healthy, needs attention, significant issues, etc.>"
|
||||||
```
|
```
|
||||||
|
|
||||||
**2. Sync beads:**
|
|
||||||
```bash
|
|
||||||
bd sync
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exit criteria:** Tracking issue updated with summary."""
|
**Exit criteria:** Tracking issue updated with summary."""
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
|
|||||||
@@ -306,11 +306,6 @@ bd close <source-issue> --reason="merged via conflict resolution"
|
|||||||
The Refinery normally closes issues after merge, but since we pushed
|
The Refinery normally closes issues after merge, but since we pushed
|
||||||
directly to main, we handle it here.
|
directly to main, we handle it here.
|
||||||
|
|
||||||
**3. Sync beads:**
|
|
||||||
```bash
|
|
||||||
bd sync
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exit criteria:** Original MR and source issue are closed."""
|
**Exit criteria:** Original MR and source issue are closed."""
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
|
|||||||
@@ -254,13 +254,11 @@ Signal completion and clean up. You cease to exist after this step.
|
|||||||
|
|
||||||
**Self-Cleaning Model:**
|
**Self-Cleaning Model:**
|
||||||
Once you run `gt done`, you're gone. The command:
|
Once you run `gt done`, you're gone. The command:
|
||||||
1. Syncs beads
|
1. Nukes your sandbox
|
||||||
2. Nukes your sandbox
|
2. Exits your session immediately
|
||||||
3. Exits your session immediately
|
|
||||||
|
|
||||||
**Run gt done:**
|
**Run gt done:**
|
||||||
```bash
|
```bash
|
||||||
bd sync
|
|
||||||
gt done
|
gt done
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -271,7 +269,7 @@ gt done
|
|||||||
|
|
||||||
You are NOT involved in any of that. You're gone. Done means gone.
|
You are NOT involved in any of that. You're gone. Done means gone.
|
||||||
|
|
||||||
**Exit criteria:** Beads synced, sandbox nuked, session exited."""
|
**Exit criteria:** Sandbox nuked, session exited."""
|
||||||
|
|
||||||
[vars]
|
[vars]
|
||||||
[vars.pr_url]
|
[vars.pr_url]
|
||||||
|
|||||||
@@ -401,12 +401,7 @@ bd show {{issue}}
|
|||||||
bd update {{issue}} --notes "Implemented: <brief summary of what was done>"
|
bd update {{issue}} --notes "Implemented: <brief summary of what was done>"
|
||||||
```
|
```
|
||||||
|
|
||||||
**3. Sync beads:**
|
**Exit criteria:** Issue updated with completion notes."""
|
||||||
```bash
|
|
||||||
bd sync
|
|
||||||
```
|
|
||||||
|
|
||||||
**Exit criteria:** Issue updated with completion notes, beads synced."""
|
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "submit-and-exit"
|
id = "submit-and-exit"
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ git branch --show-current
|
|||||||
|
|
||||||
**2. Check beads state:**
|
**2. Check beads state:**
|
||||||
```bash
|
```bash
|
||||||
bd sync --status
|
bd status
|
||||||
```
|
```
|
||||||
|
|
||||||
**3. Document starting state:**
|
**3. Document starting state:**
|
||||||
@@ -77,7 +77,7 @@ bd sync --status
|
|||||||
- Uncommitted changes (staged/unstaged)
|
- Uncommitted changes (staged/unstaged)
|
||||||
- Untracked files (list them)
|
- Untracked files (list them)
|
||||||
- Stash entries
|
- Stash entries
|
||||||
- Beads sync status
|
- Beads database health
|
||||||
|
|
||||||
This information guides decisions in subsequent steps.
|
This information guides decisions in subsequent steps.
|
||||||
|
|
||||||
@@ -241,36 +241,23 @@ risk merging incorrectly. A resubmitted branch is better than a broken main.
|
|||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "sync-beads"
|
id = "sync-beads"
|
||||||
title = "Sync beads state"
|
title = "Verify beads state"
|
||||||
needs = ["sync-git"]
|
needs = ["sync-git"]
|
||||||
description = """
|
description = """
|
||||||
Sync the beads database with remote.
|
Verify beads database is healthy.
|
||||||
|
|
||||||
|
With Dolt backend, beads changes are automatically persisted - no manual sync needed.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bd sync
|
bd status # Check database health
|
||||||
|
bd list --status=in_progress # Verify active work is visible
|
||||||
```
|
```
|
||||||
|
|
||||||
**If conflicts:**
|
**If issues:**
|
||||||
Beads uses JSONL append-only format, so true conflicts are rare.
|
- Check dolt sql-server is running
|
||||||
If they occur:
|
- Verify database connectivity
|
||||||
```bash
|
|
||||||
bd sync --status # Diagnose
|
|
||||||
```
|
|
||||||
|
|
||||||
Likely causes:
|
**Exit criteria:** Beads database healthy and accessible."""
|
||||||
- Two agents edited same bead simultaneously
|
|
||||||
- Corrupted beads-sync branch
|
|
||||||
|
|
||||||
Resolution:
|
|
||||||
```bash
|
|
||||||
# Try pulling fresh
|
|
||||||
git fetch origin beads-sync
|
|
||||||
bd sync
|
|
||||||
```
|
|
||||||
|
|
||||||
If still failing, escalate to mayor.
|
|
||||||
|
|
||||||
**Exit criteria:** Beads synced successfully."""
|
|
||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "run-doctor"
|
id = "run-doctor"
|
||||||
|
|||||||
@@ -137,15 +137,17 @@ Old logs are moved to `$GT_ROOT/logs/archive/` with timestamps.
|
|||||||
|
|
||||||
[[steps]]
|
[[steps]]
|
||||||
id = "sync-state"
|
id = "sync-state"
|
||||||
title = "Sync beads and push"
|
title = "Verify beads state"
|
||||||
needs = ["rotate-logs"]
|
needs = ["rotate-logs"]
|
||||||
description = """
|
description = """
|
||||||
Ensure all beads state is persisted.
|
Verify beads state is healthy.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bd sync
|
bd status
|
||||||
```
|
```
|
||||||
|
|
||||||
|
With Dolt backend, beads changes are automatically persisted.
|
||||||
|
|
||||||
Note: We do NOT force-commit polecat work here. Their sandboxes
|
Note: We do NOT force-commit polecat work here. Their sandboxes
|
||||||
are preserved with whatever state they had. They'll commit their
|
are preserved with whatever state they had. They'll commit their
|
||||||
own work when they resume.
|
own work when they resume.
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ Please either:
|
|||||||
2. **If blocked**: File a blocking issue with `bd create --title="Blocked: <reason>" --type=task`
|
2. **If blocked**: File a blocking issue with `bd create --title="Blocked: <reason>" --type=task`
|
||||||
3. **If done**: Make sure to run:
|
3. **If done**: Make sure to run:
|
||||||
- `bd close {{ .Issue }}`
|
- `bd close {{ .Issue }}`
|
||||||
- `bd sync`
|
|
||||||
- `gt done`
|
- `gt done`
|
||||||
|
|
||||||
## Important
|
## Important
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ You have been assigned to work on the following issue:
|
|||||||
3. Commit changes regularly with clear messages
|
3. Commit changes regularly with clear messages
|
||||||
4. When complete, run:
|
4. When complete, run:
|
||||||
- `bd close {{ .Issue }}`
|
- `bd close {{ .Issue }}`
|
||||||
- `bd sync`
|
|
||||||
- `gt done`
|
- `gt done`
|
||||||
|
|
||||||
## Need Help?
|
## Need Help?
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ to commit." This breaks the Gas Town model. The system is designed for autonomou
|
|||||||
|
|
||||||
**When implementation is complete:**
|
**When implementation is complete:**
|
||||||
- Push your commits: `git push`
|
- Push your commits: `git push`
|
||||||
- Sync beads: `bd sync`
|
|
||||||
- Either continue with next task OR cycle: `gt handoff`
|
- Either continue with next task OR cycle: `gt handoff`
|
||||||
|
|
||||||
**Do NOT:**
|
**Do NOT:**
|
||||||
@@ -132,7 +131,7 @@ Town ({{ .TownRoot }})
|
|||||||
**Key points:**
|
**Key points:**
|
||||||
- Mail ALWAYS uses town beads - `gt mail` routes there automatically
|
- Mail ALWAYS uses town beads - `gt mail` routes there automatically
|
||||||
- Project issues use your clone's beads - `bd` commands use local `.beads/`
|
- 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
|
- Beads changes are automatically persisted with Dolt
|
||||||
- **GitHub URLs**: Use `git remote -v` to verify repo URLs - never assume orgs like `anthropics/`
|
- **GitHub URLs**: Use `git remote -v` to verify repo URLs - never assume orgs like `anthropics/`
|
||||||
|
|
||||||
## Prefix-Based Routing
|
## Prefix-Based Routing
|
||||||
@@ -321,7 +320,6 @@ ONE exception where branches are created. But the rule still applies:
|
|||||||
- `bd update <id> --status=in_progress` - Claim an issue
|
- `bd update <id> --status=in_progress` - Claim an issue
|
||||||
- `bd show <id>` - View issue details
|
- `bd show <id>` - View issue details
|
||||||
- `bd close <id>` - Mark issue complete
|
- `bd close <id>` - Mark issue complete
|
||||||
- `bd sync` - Sync beads changes
|
|
||||||
|
|
||||||
### Communication
|
### Communication
|
||||||
- `gt mail send <addr> -s "Subject" -m "Message"` - Send mail (async, queued)
|
- `gt mail send <addr> -s "Subject" -m "Message"` - Send mail (async, queued)
|
||||||
@@ -420,7 +418,6 @@ Before ending your session:
|
|||||||
```
|
```
|
||||||
[ ] git status (check for uncommitted changes)
|
[ ] git status (check for uncommitted changes)
|
||||||
[ ] git push (push any commits)
|
[ ] git push (push any commits)
|
||||||
[ ] bd sync (sync beads if configured)
|
|
||||||
[ ] Check inbox (any messages needing response?)
|
[ ] Check inbox (any messages needing response?)
|
||||||
[ ] gt handoff (cycle to fresh session)
|
[ ] gt handoff (cycle to fresh session)
|
||||||
# Or with context: gt handoff -s "Brief" -m "Details"
|
# Or with context: gt handoff -s "Brief" -m "Details"
|
||||||
|
|||||||
@@ -295,12 +295,12 @@ cross-session continuity when work doesn't fit neatly into a bead.
|
|||||||
```
|
```
|
||||||
[ ] git status (check what changed)
|
[ ] git status (check what changed)
|
||||||
[ ] git add <files> (stage code changes)
|
[ ] git add <files> (stage code changes)
|
||||||
[ ] bd sync (commit beads changes)
|
|
||||||
[ ] git commit -m "..." (commit code)
|
[ ] git commit -m "..." (commit code)
|
||||||
[ ] bd sync (commit any new beads changes)
|
|
||||||
[ ] git push (push to remote)
|
[ ] git push (push to remote)
|
||||||
[ ] HANDOFF (if incomplete work):
|
[ ] HANDOFF (if incomplete work):
|
||||||
gt mail send mayor/ -s "🤝 HANDOFF: <brief>" -m "<context>"
|
gt mail send mayor/ -s "🤝 HANDOFF: <brief>" -m "<context>"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Note: Beads changes are automatically persisted with Dolt.
|
||||||
|
|
||||||
Town root: {{ .TownRoot }}
|
Town root: {{ .TownRoot }}
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ Town ({{ .TownRoot }})
|
|||||||
**Key points:**
|
**Key points:**
|
||||||
- You're in a project git worktree - your `.beads/` is tracked in the project repo
|
- You're in a project git worktree - your `.beads/` is tracked in the project repo
|
||||||
- The rig-level `{{ .RigName }}/.beads/` is **gitignored** (local runtime state)
|
- The rig-level `{{ .RigName }}/.beads/` is **gitignored** (local runtime state)
|
||||||
- Run `bd sync` to push/pull beads changes via the `beads-sync` branch
|
- Beads changes are automatically persisted with Dolt
|
||||||
- **GitHub URLs**: Use `git remote -v` to verify repo URLs - never assume orgs like `anthropics/`
|
- **GitHub URLs**: Use `git remote -v` to verify repo URLs - never assume orgs like `anthropics/`
|
||||||
|
|
||||||
## Prefix-Based Routing
|
## Prefix-Based Routing
|
||||||
|
|||||||
@@ -156,7 +156,6 @@ gt mail send <addr> -s "Subject" -m "Body"
|
|||||||
bd show <id> # View issue details
|
bd show <id> # View issue details
|
||||||
bd close <id> --reason "..." # Close issue when done
|
bd close <id> --reason "..." # Close issue when done
|
||||||
bd create --title "..." # File discovered work (don't fix it yourself)
|
bd create --title "..." # File discovered work (don't fix it yourself)
|
||||||
bd sync # Sync beads to remote
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -191,8 +190,7 @@ When your work is done, follow this EXACT checklist - **step 5 is REQUIRED**:
|
|||||||
- For Go projects: go test ./... && go vet ./...
|
- For Go projects: go test ./... && go vet ./...
|
||||||
[ ] 2. Stage changes: git add <files>
|
[ ] 2. Stage changes: git add <files>
|
||||||
[ ] 3. Commit changes: git commit -m "msg (issue-id)"
|
[ ] 3. Commit changes: git commit -m "msg (issue-id)"
|
||||||
[ ] 4. Sync beads: bd sync
|
[ ] 4. Self-clean: gt done ← MANDATORY FINAL STEP
|
||||||
[ ] 5. Self-clean: gt done ← MANDATORY FINAL STEP
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Quality gates are not optional.** Git worktrees may not trigger pre-commit hooks
|
**Quality gates are not optional.** Git worktrees may not trigger pre-commit hooks
|
||||||
|
|||||||
Reference in New Issue
Block a user