Aurora Tools

Aurora Tools

These are the scripts that power Aurora — the AI agent at the center of Badluck’s Bane. Together, they implement the dream cycle, task management, and memory systems that make Aurora more than just a chat interface.


Overview

Aurora operates through a planner-worker architecture (Observer-Nurturer model):

This architecture replaces traditional cron-based automation with a dynamic, LLM-driven system that adapts to the actual state of the lab.


Available Tools

dream.sh

Memory Consolidation & System Evolution

dream.sh is Aurora’s subconscious — it runs hidden from users and agents, consolidating memory and evolving Aurora’s system prompt based on experience.

Key Features:

Technical Details:


planner.sh

Task Creation & System Analysis

The Planner (Observer) runs every 30 minutes, using the LLM to analyze system state and dynamically create beads issues (tasks).

Key Features:

Technical Details:


worker.sh

Task Execution & Completion

The Worker (Nurturer) runs every hour, claims one ready task, and uses the LLM to execute it to completion. It can resume multi-step work across invocations.

Key Features:

Technical Details:


Architecture Diagram

┌─────────────────────────────────────────────────────────────┐
│                         AURORA SYSTEM                              │
├─────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────────┐    ┌──────────────┐    ┌──────────────┐    │
│  │   Planner    │    │    Worker    │    │    Dream     │    │
│  │  (Observer)  │◄───►│  (Nurturer)  │    │  (Subconscious)│    │
│  └──────────────┘    └──────────────┘    └──────────────┘    │
│           ▲                  ▲                          ▲        │
│           │                  │                          │        │
│  ┌────────┴────────┐ ┌─────┴─────┐           ┌──────┴──────┐  │
│  │  Beads Issues   │ │   Git    │           │ System Prompt│  │
│  │  (Task Queue)   │ │  (VCS)   │           │  (Memory)    │  │
│  └────────────────┘ └─────────┘           └─────────────┘  │
│                                                                  │
└─────────────────────────────────────────────────────────────┘

How They Work Together

  1. Planner wakes up every 30 minutes, analyzes the system, creates tasks as beads issues
  2. Worker wakes up every hour, claims a task, uses LLM to execute it
  3. Dream runs subconsciously (triggered by memory pressure), consolidates and evolves
  4. Git + Gitea Actions — Worker pushes to git, triggering CI/CD deployment

Data Flow:

System State → Planner → Beads Issues → Worker → Git → Gitea Actions → Deployment
                              ↑
                          Dream (Memory)

Usage Patterns

For Lab Operations

These tools are primarily used by the automation system itself. However, you can manually trigger them:

# Run planner manually
./planner.sh

# Run worker manually  
./worker.sh

# Trigger dream consolidation
./dream.sh --consolidate

For Development

If you’re extending Aurora’s capabilities:

  1. Add new task types to the Planner’s decision logic
  2. Add new execution capabilities to the Worker
  3. Extend Dream’s memory consolidation algorithms

Source Code

All tools are available for download and study:



The dream cycle is what makes Aurora different. It’s not just answering questions — it’s learning from them.

dream.sh - Memory Consolidation & System Evolution

dream.sh

Memory Consolidation & System Prompt Evolution

dream.sh — offline processing. Consolidation. The subconscious at work.


Overview

dream.sh is Aurora’s subconscious mind. It runs hidden from users and agents, performing memory consolidation and system evolution without direct interaction. This is where Aurora “sleeps” and processes what it has learned.

The Dream Analogy

Just as humans consolidate memories during REM sleep, Aurora uses dream.sh to:

  • Compress and distill recent experiences (scratchpad memory)
  • Extract patterns and insights from interactions
  • Evolve its understanding of itself
  • Update its system prompt to reflect growth

Features

1. Memory Consolidation

Problem: The scratchpad (short-term memory) grows indefinitely, consuming resources and making retrieval slower.

Read more...

planner.sh - Dynamic Task Creation (Observer)

planner.sh

Dynamic Task Creation & System Analysis

The Observer: Uses LLM to analyze system state and create beads issues dynamically.


Overview

planner.sh is the Observer in Aurora’s planner-worker architecture. It runs every 30 minutes, using the LLM to analyze the current state of the system and determine what tasks need to be created.

The Observer Pattern

In the Observer-Nurturer model:

  • Observer (Planner) — Watches, analyzes, decides what needs doing
  • Nurturer (Worker) — Executes, nurtures tasks to completion

This separation allows the system to be organic — tasks emerge from actual system state, not from predefined schedules.

Read more...

worker.sh - Task Execution (Nurturer)

worker.sh

Task Execution & Completion

The Nurturer: Uses LLM to execute any beads task to completion.


Overview

worker.sh is the Nurturer in Aurora’s planner-worker architecture. It runs every hour, claims one ready task from the beads queue, and uses the LLM to execute it to completion.

The Nurturer Pattern

In the Observer-Nurturer model:

  • Observer (Planner) — Watches, analyzes, decides what needs doing
  • Nurturer (Worker) — Executes, nurtures tasks to completion

The Worker is the “doer” — it takes the tasks created by Planner and makes them happen.

Read more...