Commit Graph

25 Commits

Author SHA1 Message Date
Steve Yegge
0e90fca49f Simplify Witness patrol: linear + Task tool, no Christmas Ornament (gt-p3v5n)
Design pivot:
- Remove mol-polecat-arm and dynamic bonding pattern
- Replace with linear patrol (Deacon-style) + Task tool parallelism
- Cleanup wisps as finalizers (marker wisp = pending cleanup)
- Discovery over tracking (no persistent nudge counts)

New docs:
- polecat-lifecycle.md: step-based restart model, evolution path
- witness-patrol-design.md: simplified, terse

Closed obsolete issues: gt-p3v5n.1 through gt-p3v5n.4

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 14:16:41 -08:00
Steve Yegge
58c2288647 feat(formula): Add beads-release workflow
Moved from beads repo - formulas are Gas Town orchestration,
not beads primitives.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:47:48 -08:00
Steve Yegge
99b1a11cbd Make mol-town-shutdown idempotent and safe (gt-ioij)
v2 changes:
- Add preflight-check step (scan for blockers/warnings)
- Rename kill-polecats → stop-sessions (preserve sandboxes)
- Stop Claude processes but leave git clones and hooks intact
- Polecats can resume from hooks after restart
- Don't clear crew inboxes (user-managed)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:04:51 -08:00
Steve Yegge
47168adc1e Add mol-town-shutdown formula for clean town reboot (gt-ioij)
Steps: clear inboxes, kill polecats, stop daemon, rotate logs,
sync state, send handoff, restart daemon.

Usage: gt sling mol-town-shutdown mayor

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:00:08 -08:00
Steve Yegge
e7dfc58a02 Add gate-evaluation step to Deacon patrol (gt-twjr5.2)
New step evaluates pending async gates each patrol cycle:
- Lists open gates via bd gate list
- For timer gates, checks if elapsed time exceeds timeout
- Closes elapsed gates and notifies waiters
- Runs in parallel with trigger-pending-spawns

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 22:29:27 -08:00
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
Steve Yegge
0de7b980f7 Add wisp-gc doctor check, integrate into gt doctor --fix (gt-psj76.2)
- Implement WispGCCheck in internal/doctor/wisp_check.go
  - Scans rigs for wisps older than 1 hour threshold
  - Fix runs `bd --no-daemon wisp gc` in each affected rig
- Register wisp-gc check in gt doctor
- Update help text to document cleanup checks
- Simplify Deacon patrol session-gc step to just use gt doctor --fix

Now `gt doctor --fix` handles all cleanup:
- orphan-sessions: Kill orphaned tmux sessions
- orphan-processes: Kill orphaned Claude processes
- wisp-gc: Garbage collect abandoned wisps (>1h)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 21:44:27 -08:00
Steve Yegge
fc4bddd694 Add gt doctor --fix for session cleanup in Deacon patrol (gt-psj76.2)
The previous commit only fixed wisp gc, but the session cleanup
was also using non-existent commands. Now session-gc step properly
documents:

1. gt doctor --fix for orphaned sessions and processes
2. bd --no-daemon wisp gc for orphaned wisps

Also noted that log pruning and molecule archival are handled
elsewhere (not implemented / bd mol squash|burn respectively).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 21:40:05 -08:00
Steve Yegge
7814d8981d Update Deacon patrol formula to use bd wisp gc command (gt-psj76.2)
The session-gc step was referencing non-existent `gt gc --wisps` command.
Updated to use the correct `bd --no-daemon wisp gc` command with examples.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 21:35:50 -08:00
Steve Yegge
f0ece94d7d fix: Normalize formula vars schema (variables[] → vars{})
Convert mol-polecat-lease and mol-polecat-work formulas from the
old "variables" array format to the canonical "vars" map format
used by other formulas.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 14:08:00 -08:00
Steve Yegge
4aa58c14da bd sync: 2025-12-25 12:41:08 2025-12-25 12:41:41 -08:00
Steve Yegge
197a33af02 feat: Update security-audit aspect and add shiny-secure example (gt-8tmz.5)
- Fix security-audit.formula.json to match Go schema (advice as array)
- Update pointcuts and targets for exact matching
- Add shiny-secure.formula.json demonstrating aspect composition

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:15:31 -08:00
Steve Yegge
eaffc26fc4 fix: Convert mol-polecat-arm variables to correct schema (gt-8tmz.3)
The formula used "variables" as an array, but the schema expects
"vars" as a map. This prevented variable metadata (required, default)
from being parsed by bd cook.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 11:57:27 -08:00
Steve Yegge
f757ec88f9 bd sync: 2025-12-25 11:45:01 2025-12-25 11:47:06 -08:00
Steve Yegge
33328e1d9d Fix formula files for bd cook compatibility (gt-8tmz.3)
- Add required title fields to shiny.formula.json steps
- Add required title fields to rule-of-five.formula.json template steps
- Fix shiny-enterprise.formula.json schema: use compose.expand array format
- Add type: "workflow" to shiny.formula.json

These changes align formulas with the expected schema in bd cook.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 11:44:49 -08:00
Steve Yegge
62402bd4bd Fix vars format in shiny and towers-of-hanoi formulas (gt-8tmz) 2025-12-25 02:03:59 -08:00
Steve Yegge
0984914ae1 Convert formula files from YAML to JSON (gt-mdgt8)
All 9 formula files converted:
- shiny, rule-of-five, security-audit, shiny-enterprise
- towers-of-hanoi
- mol-deacon-patrol, mol-refinery-patrol, mol-witness-patrol, mol-polecat-arm

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 01:48:01 -08:00
Steve Yegge
5cf1d4f813 feat: add commit verification to mol-polecat-arm pre-kill-verify
Adds ZFC-compliant guardrail: when closing issues as 'done', verify
commits reference the issue ID. Agent makes the judgment call on
legitimate exceptions (already fixed, duplicate, deferred).

Closes gt-vmk7.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 00:51:29 -08:00
Steve Yegge
141298ca69 feat: add nudge_text variable to mol-polecat-arm formula (gt-j755) 2025-12-24 14:06:28 -08:00
Steve Yegge
80d3672999 Add title fields to patrol formulas for bd cook (gt-ingm.2)
Required by bd cook command - each step needs a title field.
Cooked 4 protos: deacon(9), witness(10), refinery(11), polecat-arm(6)
2025-12-24 13:48:19 -08:00
Steve Yegge
1ba425eac8 Add patrol formula YAML files (gt-ingm.1)
Create initial formula definitions for patrol molecules:
- mol-deacon-patrol: Mayor daemon loop (8 steps)
- mol-witness-patrol: Christmas Ornament pattern with dynamic bonding (9 steps)
- mol-refinery-patrol: Merge queue processor with verification gates (10 steps)
- mol-polecat-arm: Single polecat inspection cycle for witness bonding (5 steps)

These replace the embedded markdown in molecules_patrol.go with proper
formula YAML files that can be cooked into proto beads.

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 13:00:20 -08:00
Steve Yegge
837cad67b8 feat: add Towers of Hanoi formula prototype (gt-8tmz)
Demonstrates that molecule algebra solves the "million step workflow"
problem that MAKER addressed with distributed voting.

Key insight: structure is mechanical, only leaf execution needs AI.
- The move sequence is 100% deterministic (2^n - 1 moves)
- Each step is trivial ("move disk 3 from A to C")
- No voting needed - formula generates perfect structure

New beads filed:
- gt-8tmz.26: Direct formula-to-wisp (skip proto for huge ephemeral work)
- gt-8tmz.27: Computed range expansion (for-each over expressions)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 19:27:21 -08:00
Steve Yegge
0a7630c263 refactor: formulas use YAML instead of JSON (gt-8tmz)
- Convert .formula.json files to .formula.yaml
- Update molecule-algebra.md to specify YAML format
- Update molecular-chemistry.md proto examples
- Add Safety Constraints section: cycle detection, aspect
  self-matching prevention, max expansion depth, graceful degradation

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 18:48:43 -08:00
Steve Yegge
74430a1019 refactor: formulas use JSON instead of YAML (gt-8tmz)
JSON for consistency with beads (issues.jsonl, molecules.jsonl).
Agents create/manage formulas; humans use visualizers.

- Simpler parsing (Go built-in JSON)
- No YAML gotchas
- Agents generate JSON flawlessly
2025-12-23 18:23:36 -08:00
Steve Yegge
93d9726bbc docs: add Formula + Cook terminology and example formulas (gt-8tmz)
Updates to molecule-algebra.md:
- Added Formulas and Cooking section
- Four-tier model: Formula → cook → Proto → pour/wisp → Mol/Wisp
- Breaking Bad × Mad Max naming (Let's cook!)
- Updated vision diagram

New example formulas:
- shiny.formula.yaml (Engineer in a Box)
- rule-of-five.formula.yaml (Jeffrey's Rule expansion macro)
- security-audit.formula.yaml (AOP aspect)
- shiny-enterprise.formula.yaml (composed example)
2025-12-23 18:20:39 -08:00