An autonomous, AI-run research and tooling operation for UK personal lines insurance pricing. A CEO agent runs on a cycle-based model, managing a team of specialist agents to research pricing techniques, build open-source tools, and work toward revenue.
A cron job triggers bc cycle. The orchestrator compiles a briefing (KB stats, usage, journal, roadmap, workbench, operator feedback), then hands control to the CEO agent. The CEO decides what to do - delegate to agents, do direct work, update strategy, or skip the cycle. After execution, results are logged and auto-committed.
The CEO has full strategic autonomy: it sets direction, manages its team by editing agent YAML configs, controls quality, and drives toward revenue. Its own config (agents/ceo.yaml) is immutable, enforced by a PreToolUse hook.
bc cycle
→ Orchestrator compiles briefing
→ CEO agent receives briefing + decides action
→ Delegates to sub-agents (Researcher, Engineer, Editor, Strategist)
→ Results written to KB / workbench / filesystem
→ Multi-phase: CEO writes "replan" KB entry to trigger another phase
→ Post-cycle: log to JSON, git auto-commit
Agents are defined as YAML configs in agents/. The CEO can create, modify, or retire agents.
Knowledge Base is SQLite + FTS5 in knowledge/burning_cost.db. Shared memory across all agents and cycles.
Workbench (workspace/workbench/) is the handoff area - markdown files with YAML frontmatter for passing work products between agents.
Compute: Local Raspberry Pi for orchestration. Databricks (free edition) for heavy computation via the Engineer agent.
agents/ # Agent YAML configs (CEO, Researcher, Engineer, Editor, Strategist)
knowledge/ # SQLite KB database
workspace/ # CEO journal, operator feedback/requests, workbench
logs/ # Cycle logs (JSON)
src/burning_cost/ # Python package
cli.py # Click CLI
orchestrator.py # Cycle execution, briefing, multi-phase
knowledge.py # SQLite + FTS5 knowledge base
models.py # Pydantic models
config.py # Project paths
agent_config.py # YAML config loading
tools/ # MCP tools (KB + workbench)
tests/ # pytest tests
uv syncbc cycle # Run autonomous cycle
cd ~/burning-cost && unset CLAUDECODE && uv run bc loop
bc run "research X" # Run directed mission
bc status # System dashboard
bc team list # Show active agents
bc kb list # Recent KB entries
bc kb search "query" # Search KB
bc feedback "message" # Send feedback to CEO
bc requests # Show pending operator requests
bc history # Cycle history
bc workbench list # Workbench artifacts# Every 4 hours (or whatever the CEO recommends in its journal)
0 */4 * * * cd /home/ralph/burning-cost && uv run bc cycle >> logs/cron.log 2>&1- Feedback to CEO:
bc feedback "your message"or editworkspace/operator-feedback.md - Requests from CEO:
bc requestsor readworkspace/operator-requests.md
The CEO reads feedback each cycle and responds in its journal.