Files
gastown/.beads/formulas/mol-polecat-lease.formula.json
2025-12-25 11:47:06 -08:00

37 lines
1.8 KiB
JSON

{
"formula": "mol-polecat-lease",
"description": "Semaphore tracking a single polecat's lifecycle.\n\nUsed 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.\n\n## Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| polecat | Yes | Name of the polecat |\n| issue | Yes | The issue assigned to the polecat |",
"version": 1,
"variables": [
{
"name": "polecat",
"required": true,
"description": "Name of the polecat"
},
{
"name": "issue",
"required": true,
"description": "The issue assigned to the polecat"
}
],
"steps": [
{
"id": "boot",
"title": "Boot",
"description": "Spawned. Verify it starts working.\n\nCheck if the polecat is alive and working:\n```bash\ngt peek {{polecat}}\n```\n\nIf idle for too long, nudge:\n```bash\ngt nudge {{polecat}} \"Please start working on your assigned issue.\"\n```\n\nTimeout: 60s before escalation to Mayor."
},
{
"id": "working",
"title": "Working",
"needs": ["boot"],
"description": "Actively working. Monitor for stuck.\n\nThe polecat is processing its assigned issue ({{issue}}).\nMonitor via peek. Watch for:\n- Progress on commits\n- Status updates in beads\n- SHUTDOWN mail when done\n\nWait for SHUTDOWN signal from the polecat."
},
{
"id": "done",
"title": "Done",
"needs": ["working"],
"description": "Exit received. Ready for cleanup.\n\nThe polecat has completed its work and sent SHUTDOWN.\nPerform cleanup:\n```bash\ngt session kill {{polecat}}\ngt worktree prune {{polecat}}\n```\n\nUpdate beads state and close the lease."
}
]
}