Commit Graph

1262 Commits

Author SHA1 Message Date
Steve Yegge
eba8d8d112 bd sync: 2025-12-25 14:31:41 2025-12-25 14:31:41 -08:00
Steve Yegge
2670d384e2 bd sync: 2025-12-25 14:19:24 2025-12-25 14:19:33 -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
786b349e19 bd sync: 2025-12-25 14:07:41 2025-12-25 14:07:41 -08:00
Steve Yegge
6f003d85a5 refactor: Remove deprecated gt deacon pending command
The functionality now lives exclusively in gt spawn pending.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 13:55:43 -08:00
Steve Yegge
35c9eecdc2 bd sync: 2025-12-25 13:54:51 2025-12-25 13:54:51 -08:00
Steve Yegge
d3164f72a6 refactor: Move pending spawn tracking to gt spawn pending (hq-466n)
- Moved pending.go from deacon/ to polecat/ package
- Changed storage location from deacon/pending.json to spawn/pending.json
- Added 'gt spawn pending' subcommand for listing/clearing pending spawns
- Deprecated 'gt deacon pending' (still works, shows deprecation notice)

This decouples pending spawn observation from the Deacon role - anyone
can now observe pending polecats (Mayor, humans, debugging, etc.).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 13:50:26 -08:00
Steve Yegge
0ba7b13c64 bd sync: 2025-12-25 13:42:06 2025-12-25 13:42:17 -08:00
Steve Yegge
b4a90ead72 feat: Add gt crew start command as alias for gt start crew
Users naturally expect "gt crew start <name>" to work alongside
"gt start crew <name>". This adds the alias, handling all input
formats: "name", "rig/name", and "rig/crew/name".

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 13:41:49 -08:00
Steve Yegge
1dd506ee8b bd sync: 2025-12-25 13:40:13 2025-12-25 13:40:13 -08:00
Steve Yegge
6830de20ae bd sync: 2025-12-25 13:26:47 2025-12-25 13:26:58 -08:00
Steve Yegge
dbf11f2b6e bd sync: 2025-12-25 12:49:47 2025-12-25 13:26:58 -08:00
Steve Yegge
9afd6c5572 feat: Set BD_ACTOR env var when spawning agents (gt-rhfji)
When gt spawns agents (polecats, crew, patrol roles), it now sets the
BD_ACTOR env var so that bd commands (like `bd hook`) know the agent
identity without coupling to gt.

Updated spawn points:
- gt up (mayor, deacon, witness via ensureSession/ensureWitness)
- gt deacon start
- gt witness start
- gt start refinery
- gt mayor start
- Daemon deacon restart
- Daemon lifecycle restart
- Handoff respawn
- Refinery manager start

BD_ACTOR uses slash format (e.g., gastown/witness, gastown/crew/max)
while GT_ROLE may use dash format internally.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 13:26:38 -08:00
Steve Yegge
77a43886a3 feat: Support gt start rig/crew/name shortcut for crew start 2025-12-25 13:20:48 -08:00
Steve Yegge
3c2522965a fix: Add explicit message when crew already exists in gt start crew 2025-12-25 13:18:34 -08:00
Steve Yegge
be05c6b2ab feat: Add gt start crew command for one-step crew creation and start
- Add `gt start crew <name>` subcommand that creates crew if needed and
  starts it detached with Claude running
- Make `gt crew restart` idempotent - creates crew if not found
- Supports rig/name format (e.g., gastown/joe) and --rig flag

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:49:42 -08:00
Steve Yegge
82e69a0243 bd sync: 2025-12-25 12:42:07 2025-12-25 12:42:07 -08:00
Steve Yegge
4aa58c14da bd sync: 2025-12-25 12:41:08 2025-12-25 12:41:41 -08:00
Steve Yegge
09d6aae841 bd sync: 2025-12-25 12:38:08 2025-12-25 12:41:41 -08:00
Steve Yegge
68aa592145 docs: Propagate Rig/Cook/Run lifecycle terminology
Updated the following docs to reference the Rig/Cook/Run lifecycle:
- propulsion-principle.md: Added lifecycle overview, updated steam metaphor table
- sling-design.md: Added see-also reference to molecular-chemistry.md
- molecules.md: Added lifecycle summary diagram, formula context
- architecture.md: Added Rig/Cook/Run overview, added Formula to concepts table

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:30:17 -08:00
Steve Yegge
c0ecd31699 bd sync: 2025-12-25 12:30:02 2025-12-25 12:30:02 -08:00
Steve Yegge
7084cb4714 bd sync: 2025-12-25 12:21:37 2025-12-25 12:21:44 -08:00
Steve Yegge
030c0a01b1 bd sync: 2025-12-25 12:19:35 2025-12-25 12:21:44 -08:00
Steve Yegge
2e8dfcbe75 feat: Add gt deacon trigger-pending command (gt-t5uk)
Implements auto-triggering of polecats after spawn:
- New pending.go in deacon package tracks pending spawns
- CheckInboxForSpawns reads POLECAT_STARTED messages
- TriggerPendingSpawns polls WaitForClaudeReady and nudges when ready
- PruneStalePending removes spawns older than 5 minutes

The Deacon can now call `gt deacon trigger-pending` during patrol to
automatically send "Begin." to newly spawned polecats once Claude is ready.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 12:19:28 -08:00
Steve Yegge
9fdba5f66d bd sync: 2025-12-25 12:16:04 2025-12-25 12:16:04 -08:00
Steve Yegge
a756a13421 bd sync: 2025-12-25 12:15:38 2025-12-25 12:15:45 -08:00
Steve Yegge
45940e4856 bd sync: 2025-12-25 12:08:18 2025-12-25 12:15:45 -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
95d14d3fe2 bd sync: 2025-12-25 11:57:18 2025-12-25 11:57:18 -08:00
Steve Yegge
62f603bbe1 feat: Add C-b n/p keybindings for crew session cycling
When multiple crew sessions exist in the same rig, C-b n cycles to next
and C-b p cycles to previous. Sessions are sorted alphabetically and
wrap around.

Implementation:
- crew_cycle.go: Hidden `gt crew next/prev` commands for tmux to call
- crew_helpers.go: parseCrewSessionName and findRigCrewSessions helpers
- crew_at.go: Calls SetCrewCycleBindings on session creation

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 11:51:48 -08:00
Steve Yegge
0095fee81c bd sync: 2025-12-25 11:48:34 2025-12-25 11:48:34 -08:00
Steve Yegge
9446cd4806 Add mol-polecat-work, mol-polecat-lease, mol-gastown-boot formulas; fix spawn.go to use catalog ID 2025-12-25 11:47:06 -08:00
Steve Yegge
7a9d8104b0 bd sync: 2025-12-25 11:46:47 2025-12-25 11:47:06 -08:00
Steve Yegge
1edadc776b bd sync: 2025-12-25 11:46:28 2025-12-25 11:47:06 -08:00
Steve Yegge
8ae1fab126 bd sync: 2025-12-25 11:45:09 2025-12-25 11:47:06 -08:00
Steve Yegge
f757ec88f9 bd sync: 2025-12-25 11:45:01 2025-12-25 11:47:06 -08:00
Steve Yegge
8063925c9b bd sync: 2025-12-25 11:34:16 2025-12-25 11:47:06 -08:00
Steve Yegge
9370a0f62d bd sync: 2025-12-25 11:29:48 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
f808b3bd51 fix: Parse rig/name format in crew commands
All crew commands now accept "rig/name" syntax (e.g., "beads/emma")
in addition to requiring --rig flag. The rig is extracted from the
first path component.

Affected commands:
- gt crew at
- gt crew restart
- gt crew refresh
- gt crew remove
- gt crew rename
- gt crew status
- gt crew pristine

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 11:33:54 -08:00
Steve Yegge
e0a2187636 Remove deprecated builtin molecules infrastructure
- Delete builtin_molecules.go (empty stubs)
- Remove `mol export` command (exported 0 molecules)
- Clean dead code in catalog.go iterating empty BuiltinMolecules()
- Update docs to reference formula files instead of Go code

Molecules are now defined as .beads/formulas/*.formula.json files
and cooked into proto beads via `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:29:41 -08:00
Steve Yegge
18a4a6a3e1 bd sync: 2025-12-25 02:33:39 2025-12-25 02:33:39 -08:00
Steve Yegge
f86a73c2f0 feat: Add gcloud-style command grouping to gt help output
Organize 43 commands into 7 logical groups using cobra's built-in
AddGroup/GroupID feature:

- Work Management: spawn, sling, hook, handoff, done, mol, mq, etc.
- Agent Management: mayor, witness, refinery, deacon, polecat, etc.
- Communication: mail, nudge, broadcast, peek
- Services: daemon, start, stop, up, down, shutdown
- Workspace: rig, crew, init, install, git-init, namepool
- Configuration: account, theme, hooks, issue, completion
- Diagnostics: status, doctor, prime, version, help

Also renamed molecule to mol as the primary command name
(molecule is now an alias).

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 02:32:01 -08:00
Steve Yegge
cd109e9db7 Delete legacy Go-defined molecules (gt-ingm.3)
Molecules are now defined as formula files in .beads/formulas/ and
cooked into proto beads via `bd cook`. This removes:

- molecules_patrol.go (695 lines)
- molecules_session.go (544 lines)
- molecules_work.go (444 lines)
- builtin_molecules_test.go
- christmas_ornament_test.go

Updates:
- builtin_molecules.go: stub deprecated functions
- install.go: remove molecule seeding (formulas are cooked on-demand)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 02:25:57 -08:00
Steve Yegge
f443f4b83a bd sync: 2025-12-25 02:23:36 2025-12-25 02:23:36 -08:00
Steve Yegge
8f54d6c3c5 role: consolidate RoleContext into RoleInfo
Unified the two overlapping role detection structs:
- RoleContext (prime.go) is now a type alias for RoleInfo
- detectRole() now returns RoleInfo directly
- Added WorkDir field to RoleInfo
- GetRoleWithContext now populates WorkDir

This eliminates code duplication between prime.go and role.go while
maintaining backward compatibility through the type alias.
2025-12-25 02:11:48 -08:00
Steve Yegge
0280a6f945 bd sync: 2025-12-25 02:11:22 2025-12-25 02:11:48 -08:00
Steve Yegge
3a2f222cec bd sync: 2025-12-25 02:11:13 2025-12-25 02:11:48 -08:00
Steve Yegge
d9d37d508d bd sync: 2025-12-25 02:01:01 2025-12-25 02:11:48 -08:00