Files
gastown/.beads/formulas/mol-polecat-lease.formula.toml
Steve Yegge 60556534da Add TOML versions of formulas (gt-xmyha)
Converted all .formula.json files to .formula.toml using bd formula convert.
TOML provides better ergonomics:
- Multi-line strings without \n escaping
- Human-readable diffs
- Comments allowed

Original JSON files retained for backwards compatibility.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 22:00:00 -08:00

71 lines
1.5 KiB
TOML

description = """
Semaphore tracking a single polecat's lifecycle.
Used by Witness to track polecat lifecycle during patrol. The Witness bonds this proto for each active polecat, creating a lease that tracks the polecat from spawn through work to cleanup.
## Variables
| Variable | Required | Description |
|----------|----------|-------------|
| polecat | Yes | Name of the polecat |
| issue | Yes | The issue assigned to the polecat |"""
formula = "mol-polecat-lease"
version = 1
[[steps]]
description = """
Spawned. Verify it starts working.
Check if the polecat is alive and working:
```bash
gt peek {{polecat}}
```
If idle for too long, nudge:
```bash
gt nudge {{polecat}} \"Please start working on your assigned issue.\"
```
Timeout: 60s before escalation to Mayor."""
id = "boot"
title = "Boot"
[[steps]]
description = """
Actively working. Monitor for stuck.
The polecat is processing its assigned issue ({{issue}}).
Monitor via peek. Watch for:
- Progress on commits
- Status updates in beads
- SHUTDOWN mail when done
Wait for SHUTDOWN signal from the polecat."""
id = "working"
needs = ["boot"]
title = "Working"
[[steps]]
description = """
Exit received. Ready for cleanup.
The polecat has completed its work and sent SHUTDOWN.
Perform cleanup:
```bash
gt session kill {{polecat}}
gt worktree prune {{polecat}}
```
Update beads state and close the lease."""
id = "done"
needs = ["working"]
title = "Done"
[vars]
[vars.issue]
description = "The issue assigned to the polecat"
required = true
[vars.polecat]
description = "Name of the polecat"
required = true