190 Commits

Author SHA1 Message Date
Steve Yegge
42e393627d docs: Update docs to reflect molecule-first paradigm (gt-nam3)
- Add molecule-first paradigm note at top of architecture.md
- Update all spawn examples to include --molecule flag
- Add "Config vs Molecule" section with cognition principle
- Add policy-to-molecule escalation note in federation-design.md
- Update role templates (mayor, witness) with molecule usage

Key message: Gas Town spawns workers on molecules, not just issues.
The issue is seed data; the molecule defines the workflow.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:44:43 -08:00
Steve Yegge
39758e6cf3 docs: add beads-hygiene plugin spec
Detects and fixes cross-pollution between Gas Town's two-level beads
architecture (town-level vs rig-level). Workers sometimes get confused
about which database they're in, creating issues at the wrong level.

The plugin scans for:
- Prefix mismatches (wrong prefix for location)
- Cross-level dependency references
- Agent identity/context confusion
- Misfiled issues that should be moved

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 13:37:49 -08:00
Steve Yegge
c84d832c98 docs: Add pluggable molecules design documentation
- Add Pluggable Molecules section to architecture.md explaining
  directory-based plugins for extensible workflows
- Create molecules.md with full design for code-review molecule
- Document plugin CLAUDE.md format with frontmatter
- Describe phased execution (discovery/structural/tactical/synthesis)
- Include implementation plan and usage examples

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 09:23:57 -08:00
Steve Yegge
f43c01de4e docs: update public positioning for Gas Town
- Rewrite vision.md with enterprise cognitive processing framing
- Expand README with comprehensive project overview
- Remove internal strategic references from merge-queue-design.md
- Position Gas Town as "IDE of 2026" for AI agent orchestration

Key messaging:
- Enterprise-grade cognitive processing machine
- Molecules as structured workflow guardrails
- Nondeterministic idempotence for crash recovery
- Beads as unified control/data plane
- Hierarchical auditability and observability

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 00:21:18 -08:00
Steve Yegge
3e77fadb49 Strengthen molecule documentation: data/control plane blur, operational molecules
Key additions:
- Explain that beads is BOTH data and control plane (intentional blur)
- Add 'Operational Molecules' section with mol-polecat-work, mol-rig-activate, mol-graceful-shutdown examples
- Emphasize 'nondeterministic idempotence' as THE key property enabling autonomous operation
- Show that molecules aren't just for work - they're for any multi-step cognitive process

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 20:11:48 -08:00
Steve Yegge
c442ae1cd4 Merge branch 'main' of github.com:steveyegge/gastown 2025-12-19 18:00:15 -08:00
Steve Yegge
89520a5854 Merge remote-tracking branch 'origin/polecat/Scabrous'
# Conflicts:
#	docs/architecture.md
#	docs/harness.md
#	internal/beads/builtin_molecules.go
#	internal/cmd/mail.go
#	internal/cmd/molecule.go
#	internal/cmd/mq.go
#	internal/git/git.go
#	internal/mail/router.go
2025-12-19 17:59:36 -08:00
Steve Yegge
40691126e4 Add bootstrap documentation for new Gas Town installations
Documents the full process for bootstrapping a Gas Town from a harness
repository, including Go installation, gt binary build, rig population,
and beads initialization.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 17:55:23 -08:00
Steve Yegge
178bebee40 refactor: update lifecycle mail targets from daemon/ to deacon/ (gt-5af.5)
Update all code and documentation to use deacon/ instead of daemon/
for lifecycle mail targets:

- internal/cmd/handoff.go: getManager() returns deacon/ for Mayor/Witness
- internal/daemon/lifecycle.go: ProcessLifecycleRequests uses deacon/ inbox
- docs/architecture.md: update all references in lifecycle docs
- scripts/mayor-respawn-daemon.sh: use BD_IDENTITY=deacon for mail commands

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 17:26:16 -08:00
Steve Yegge
4b72a83803 docs: comprehensive molecule architecture and vision
- Add detailed Molecules section to architecture.md covering:
  - Core concepts (molecule, atom, bond, polymer, instance)
  - Prose-based format with ## Step: definitions
  - Composition via Includes directive
  - Nondeterministic idempotence explanation
  - Step states and recovery mechanism
  - Built-in molecules (engineer-in-box, quick-fix, research)
  - Molecule vs template distinction

- Create vision.md capturing the broader strategic vision:
  - Git as blockchain foundation
  - Work as universal protocol
  - Entity chains (work history = CV)
  - Skill vectors and capability matching
  - Federation and world chain concept
  - The OS metaphor for work
  - Phase roadmap from v1 to platform of platforms

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 15:55:58 -08:00
Steve Yegge
4d0492fdf6 feat(tmux): add per-rig color themes and dynamic status line (gt-vc1n)
Add tmux status bar theming for Gas Town sessions:

- Per-rig color themes auto-assigned via consistent hashing
- 10 curated dark themes (ocean, forest, rust, plum, etc.)
- Special gold/dark theme for Mayor
- Dynamic status line showing current issue and mail count
- Mayor status shows polecat/rig counts

New commands:
- gt theme --list: show available themes
- gt theme apply: apply to running sessions
- gt issue set/clear: agents update their current issue
- gt status-line: internal command for tmux refresh

Status bar format:
- Left: [rig/worker] role
- Right: <issue> | <mail> | HH:MM

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 14:17:39 -08:00
Steve Yegge
8de4010d2c Merge polecat/Dementus: harness design documentation (gt-cr9) 2025-12-19 12:50:46 -08:00
Steve Yegge
8f0723d846 fix(docs): correct mermaid diagram to show polecats as worktrees not clones
The rig-level mermaid diagram incorrectly labeled polecats as git clone
when they are actually git worktrees from Mayor's clone. This now matches
the ASCII diagram which correctly describes them as worktrees.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:49:29 -08:00
Steve Yegge
848e2dbf90 docs: update paths from ~/ai/ to ~/gt/ (gt-dq3)
- Update mermaid diagram in architecture.md
- Add Harness section to Core Concepts
- Update federation-design.md examples
- Add PGT/GGT historical context section to harness.md

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:46:16 -08:00
Steve Yegge
7112c42ee9 docs: document GGT harness separation from PGT (gt-dq3)
Created docs/harness.md documenting the GGT harness at ~/gt/ and its
separation from the legacy PGT harness at ~/ai/. Updated architecture.md
and federation-design.md to use ~/gt/ consistently.

Key changes:
- Created harness.md with full harness structure documentation
- Added Harness section to Core Concepts in architecture.md
- Updated mermaid diagrams from ~/ai/ to ~/gt/
- Documented cleanup steps for legacy ~/ai/ artifacts

🤝 Handoff: The ~/ai/ directory has GGT leftovers that can be cleaned:
- rm -rf ~/ai/gastown/mayor/ (old GGT clone)
- rm ~/ai/.beads/redirect (old beads redirect)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:08:33 -08:00
Steve Yegge
1e6a363757 docs: add harness design documentation (gt-cr9)
Create comprehensive harness documentation covering:
- What a harness is (installation directory vs town concept)
- Harness structure and creation with gt install
- Beads redirect patterns for complex setups
- Multi-system sharing (PGT/GGT coexistence)
- Configuration files (town.json, rigs.json, state.json)
- Harness templates for organizations
- Migration between harnesses

Update architecture.md to:
- Rename "Town" section to "Harness (Town)" with clearer explanation
- Add cross-references to new harness.md
- Update directory structure section with "Harness Level" heading
- Expand CLI commands section with more gt install options

Update install.go help text to reference harness.md.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:02:04 -08:00
Steve Yegge
0ea6d9d9cb docs: add Gas Town harness configuration guide (gt-l1o)
Document what a harness is (private repo containing GT installation),
why you would want one (work on public projects privately), and how to
configure beads redirects for multi-rig workflows.

Closes: gt-346, gt-5qc, gt-l1o

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 12:01:23 -08:00
Steve Yegge
e8c139c598 Add Beads as Universal Data Plane to architecture docs
- Document molecule concept (composable workflow beads)
- Add OS metaphor mapping (daemon=kernel, molecules=templates, etc.)
- Table of bead categories: work, mail, MR, molecules, timed, pinned, resources
- Created beads: gt-aqm (epic), gt-4nn (molecules), gt-caz/8h4/b3p (P2)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 18:12:38 -08:00
Steve Yegge
815b62d2a3 docs: unify daemon and agent lifecycle protocol
- ONE daemon for all Gas Town (not per-rig)
- Daemon pokes Mayor and all Witnesses (heartbeat)
- Unified gt handoff command for all agent types
- Lifecycle hierarchy: daemon → mayor/witnesses, witness → polecats/refinery
- Context-aware defaults: polecats shutdown, others cycle

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 11:51:13 -08:00
Steve Yegge
ca67f7e779 docs: add polecat shutdown protocol, update streaming model
- Add "Polecat Shutdown Protocol (Bottom-Up)" section
- Clarify polecats are ephemeral (no idle pool)
- Add gt handoff command documentation
- Deprecate gt wake/sleep (polecats not pooled)
- Emphasize bottom-up lifecycle: polecat requests shutdown, Witness executes

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 11:41:44 -08:00
Steve Yegge
3b1ce3afe1 refactor: Mayor's per-rig clone is canonical for beads and worktrees
- Mayor has <rig>/mayor/rig/ clone (decentralized, discoverable)
- Rig .beads/ symlinks to mayor/rig/.beads (Mayor is beads authority)
- Polecats are worktrees from Mayor's clone (not Refinery)
- Updated architecture.md with new structure

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 20:00:28 -08:00
Steve Yegge
691971a16a feat: crew attach auto-detection, worktree polecats, beads mail
- gt crew at: auto-detect crew from cwd, run gt prime after launch
- Polecats now use git worktrees from refinery (faster than clones)
- Updated architecture.md for two-tier beads mail model
- Town beads (gm-*) for Mayor mail/coordination
- Rig .beads/ symlinks to refinery/rig/.beads

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 19:51:36 -08:00
Steve Yegge
41609e8def feat: add gt rig add command with container-based structure
- Implement AddRig with container-based approach (rig root is NOT a clone)
- Create internal/cmd/rig.go with add/list/remove subcommands
- Clone repo into refinery/rig/, mayor/rig/, crew/main/
- Initialize rig-level .beads/ with derived prefix
- Update docs/architecture.md to match implementation
- File gt-jpt epic for town-level beads redesign

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 19:14:37 -08:00
Steve Yegge
53a70ea747 docs: add merge queue design document
Comprehensive design for the Beads-based merge queue:
- Merge-request schema (type, fields, ID convention)
- Queue ordering (dependencies, priority, age)
- Engineer processing loop with failure handling
- CLI commands (gt mq submit/list/status/integration)
- Integration branches for batch work
- HOP framing (validation layer, entity chains)
- Configuration options and observability

Closes gt-yls.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 13:44:13 -08:00
Steve Yegge
640022acdf feat: add crew worker CLAUDE.md prompting template
- Create prompts/roles/crew.md template for crew workers
- Document crew worker role as overseer's personal workspace
- Include mail-to-self handoff instructions for context cycling
- Document gt crew refresh command usage
- Explain no witness monitoring (user-managed lifecycle)
- Include conditional beads usage when BEADS_DIR configured
- Update docs/prompts.md with crew role documentation

Closes: gt-cik.8

Generated with Claude Code

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 20:45:57 -08:00
Steve Yegge
0c9c3f5563 docs: expand federation section with Outpost architecture
- Replace stub "Future: Federation" with comprehensive section
- Add Outpost interface and Worker interface definitions
- Document Cloud Run workers with persistent connections
- Document SSH/VM outposts for long-running work
- Add configuration example (outposts.yaml)
- Add architecture diagram showing outpost hierarchy
- Add Key Design Decision #14: Outpost Abstraction

Also reopened gt-u1j.6 and gt-u1j.12 (mail tasks) since beads
mail support (bd-kwro) is not yet complete.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 18:07:15 -08:00
Steve Yegge
fdbbd82457 docs: add federation architecture design document
Comprehensive analysis of Gas Town federation via "Outposts" abstraction:
- LocalOutpost: current tmux model
- SSHOutpost: full Gas Town clone on VM
- CloudRunOutpost: elastic container workers

Key insights:
- Persistent HTTP/2 connections solve Cloud Run cold start
- ~$0.017 per 5-min worker session vs $50-200/mo VM
- Git remains source of truth for code and beads
- Local-first, remote for overflow/burst

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 18:04:10 -08:00
Steve Yegge
86625df15d docs: eliminate Swarm ID concept, adopt stream model
Key Decision #11 renamed from "Beads as Swarm State" to "Work is a Stream
(No Swarm IDs)". Work flows through the system as a continuous stream:

- The epic IS the grouping (no separate swarm ID)
- The merge queue IS the coordination (no batch boundaries)
- Workers process issues independently (add/remove anytime)
- Dependencies provide sequencing (multi-wave emerges naturally)

Updated sections:
- Introduction: Added key insight about stream model
- Work Dispatch: Renamed from "Swarm Dispatch", updated diagram
- Multi-Wave Work Processing: Renamed from "Multi-Wave Swarms"
- Key Decision #11: Full rewrite explaining stream model
- Various terminology updates throughout

This aligns with the vision that Gas Town manages work as a stream,
not as discrete batches requiring explicit start/end boundaries.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 17:27:51 -08:00
Steve Yegge
18c17d8538 docs: add crew/ directory to rig structure
Crew workspaces are the overseer's (human's personal workspaces within
a rig. Unlike polecats which are witness-managed and ephemeral, crew
workers are:
- Persistent (not auto-garbage-collected)
- User-managed (overseer controls lifecycle)
- Long-lived identities (dave, emma, fred)
- Gas Town integrated (mail, handoff mechanics)
- Tmux optional

See gt-cik for implementation epic.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
EOF
)
2025-12-16 16:49:49 -08:00
Steve Yegge
195f9006e9 docs: add multi-wave swarm and daemon lifecycle design
Key Design Decisions added:
- #11: Beads as Swarm State (No Separate Database)
- #12: Agent Session Lifecycle (Daemon Protection)
- #13: Resource-Constrained Worker Pool

New section: Multi-Wave Swarms
- Wave orchestration via dependency graph
- Witness multi-wave loop pseudocode
- Long-running autonomy through daemon persistence

This eliminates the need for SQLite/manifest storage for swarms.
Beads epics and dependencies encode all swarm state.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 01:52:10 -08:00
Steve Yegge
9fb82dd3b4 docs: add GGT prompt architecture design
Comprehensive prompt system documentation including:
- Full PGT prompt inventory (roles, mail, spawn, lifecycle)
- Gap analysis (Witness has no prompts!)
- GGT architecture recommendations (directory structure, template engine)
- Complete Witness prompt design (new role!)
- Implementation plan with phases

Related: gt-59p

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 00:48:10 -08:00
Steve Yegge
693ffe5b77 docs: add beads config, ASCII layout, and direct landing to architecture
- Add beads multi-agent configuration table (daemon/worktree/sync-branch)
- Add ASCII directory layout for non-mermaid rendering
- Document direct landing workflow (bypass merge queue)
- Add design decisions 9 (direct landing) and 10 (daemon awareness)
- Add CLI commands for gt land and merge queue

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 00:30:25 -08:00
Steve Yegge
ddebc4087a docs: add Mermaid architecture diagrams
- System overview: Town hierarchy with Overseer, Mayor, Rigs, Agents
- Communication flows: Mail-based agent communication
- Swarm dispatch sequence: Full workflow from Overseer to completion
- Worker cleanup sequence: Witness verification with escalation path
- Session cycling sequence: Mail-to-self handoff pattern
- Rig structure: Visual of container with agent directories
- Merge queue flow: Polecat branches → Refinery → main

All diagrams render in GitHub markdown.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 23:41:25 -08:00
Steve Yegge
ba9622d273 docs: add Overseer role, failure modes, emergency ops
- Add Overseer section documenting human operator role
- Add escalation path to worker cleanup diagram (→ Overseer)
- Add Failure Modes and Recovery section with recovery table
- Add Emergency Operations CLI commands (gt stop --all)
- Fix design decision numbering (7/8 were swapped)
- Clarify "four AI agent roles" vs Overseer

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 23:23:54 -08:00
Steve Yegge
884f6a88dc docs: add plugin architecture (agents-as-plugins)
Plugins are just more agents in the wasteland - with identities,
mailboxes, and beads access. No special framework, just directory
conventions and mail-based invocation.

Added beads:
- gt-axz: Plugin architecture epic
- gt-8dv: CLI plugin commands
- gt-pio: merge-oracle plugin (merge queue analysis)
- gt-35x: plan-oracle plugin (work decomposition)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 22:53:55 -08:00
Steve Yegge
bc6f76ccb1 docs: rig as container not clone, BEADS_DIR for issue tracking
Major architecture decision: rigs are now pure container directories,
not git clones. This prevents agent confusion by ensuring each agent
has exactly one place to work (their own /rig/ clone).

Key changes:
- Rig root is NOT a git repo - just a container
- Rig-level .beads/ holds issues for all agents in that rig
- Agents use BEADS_DIR env var to point to rig's beads
- Refinery's clone is the authoritative "main branch" view
- Added design decisions #6 (rig as container) and #7 (BEADS_DIR)

See also: beads issue bd-411u for BEADS_DIR documentation.

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 22:08:49 -08:00
Steve Yegge
07f23c86de docs: consolidate design docs into architecture.md and beads
Replaced 4 individual design docs with single master architecture doc.
Design content moved to bead descriptions (self-contained, no markdown refs).
Closed gt-cr0.

- Add docs/architecture.md: top-down Gas Town explanation
- Delete docs/{town,swarm-shutdown,polecat-beads-access,mayor-handoff}-design.md
- Update CLAUDE.md to point to architecture.md
- Update beads: gt-sd6, gt-f8v, gt-eu9, gt-gl2, gt-zx3, gt-e1y, gt-cjb, gt-082,
  gt-g2d, gt-sye, gt-vci, gt-82y, gt-l3c, gt-u82 now self-contained

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 20:52:49 -08:00
Steve Yegge
fbb8b1f040 docs: add design docs for swarm shutdown, polecat beads, and mayor handoff
- swarm-shutdown-design.md: Worker cleanup, Witness verification, session cycling
- polecat-beads-access-design.md: Per-rig beads config, worker prompting
- mayor-handoff-design.md: Mayor session cycling and handoff protocol

Closes design epics: gt-82y, gt-l3c, gt-u82

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 20:16:31 -08:00
Steve Yegge
d566d1a171 docs: update town-design.md with decentralized architecture
Architecture decision (gt-iib):
- Per-rig agents: mayor/, witness/, refinery/, polecats/ in each rig
- Visible config dir: config/ not .gastown/
- Witness role: per-rig pit boss with its own clone
- Minimal invasiveness: only .git/info/exclude modified
- Updated config file examples for new structure

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 19:22:45 -08:00
Steve Yegge
4c782bc59d Initial commit: Go port scaffolding
- Go project structure (go.mod, cmd/gt/main.go)
- Beads database initialized with gt- prefix
- Town management design doc (docs/town-design.md)
- Basic README and CLAUDE.md

Epics tracked:
- gt-u1j: Port Gas Town to Go
- gt-f9x: Town & Rig Management

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 16:38:23 -08:00