Skip to content
πŸ”’

Login Required

You need to be logged in to view this content. This page requires Developer access.

Aurora System + BMAD Integration Proposal ​

Date: 2025-12-17 Author: Coby Status: Draft for Discussion Audience: Graydon, Coby, Development Team


Executive Summary ​

This document proposes a hybrid architecture that combines the strengths of Aurora System (persistent infrastructure, visibility, coordination) with BMAD (structured workflows, high-quality outputs, artifact-based persistence). The goal is to enable consistent, high-quality development processes across the entire team while solving the multi-developer coordination challenge.


Current State Analysis ​

Aurora System Strengths ​

CapabilityValue
Production-grade infrastructureK8s deployment, circuit breakers, health checks, escalation tiers
Human oversight controlsSelf-task creation disabled, audit trails, created_by requirements
GraphRAG knowledge baseSemantic search over project context and decisions
Dashboard visibilityReal-time view of agent status, tasks, escalations
Context librariesStructured file-based context per agent
Founder OSComprehensive founder context tracking

BMAD Strengths ​

CapabilityValue
Structured workflowsStep-by-step processes with validation and checklists
High-quality LLMClaude (Opus 4.5) for complex reasoning, architecture, code review
Artifact-based persistencePRDs, stories, architecture docs are the "memory"
Git as source of truthEverything version-controlled, auditable, mergeable
On-demand executionNo idle resource consumption
Proven qualityEpic 1 & 2 delivered successfully using this process

Current Challenges ​

ChallengeAurora ImpactBMAD Impact
Multi-developer conflictsShared agent state can conflictEach dev has isolated session
LLM qualityOllama good but not Claude-levelClaude API costs scale with usage
Resource cost30 pods running continuouslyOnly runs when developer working
Workflow structureGeneric prompts, no structured executionFull workflow engine with validation
Persistence modelDB state + file contextGit artifacts

Problem Statement ​

The core question: How do we enable all developers to follow the same high-quality development process (that produced Epic 1 & 2 success) while maintaining visibility and coordination across the team?

What We Need ​

  1. Consistent process - Every developer follows BMAD workflows
  2. Quality outputs - Architecture decisions, code review at Claude quality level
  3. Shared visibility - Team can see project status, who's working on what
  4. No conflicts - Multiple developers can work simultaneously
  5. Artifact persistence - Decisions and context survive across sessions
  6. Cost efficiency - Don't pay for idle infrastructure

Proposed Architecture Options ​

Option A: Per-Developer Local + Shared Visibility Layer ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         Per-Developer Setup                              β”‚
β”‚                                                                          β”‚
β”‚   Coby's Machine              Graydon's Machine          Menley's Machineβ”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚  β”‚ Claude Code     β”‚        β”‚ Claude Code     β”‚        β”‚ Claude Code   β”‚β”‚
β”‚  β”‚ + BMAD          β”‚        β”‚ + BMAD          β”‚        β”‚ + BMAD        β”‚β”‚
β”‚  β”‚ + Local Ollama  β”‚        β”‚ + Local Ollama  β”‚        β”‚ + Local Ollamaβ”‚β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”‚           β”‚                          β”‚                         β”‚        β”‚
β”‚           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
β”‚                                      β”‚                                   β”‚
β”‚                                      β–Ό                                   β”‚
β”‚                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”‚
β”‚                        β”‚      Git Repository     β”‚                      β”‚
β”‚                        β”‚  - BMAD artifacts       β”‚                      β”‚
β”‚                        β”‚  - Agent definitions    β”‚                      β”‚
β”‚                        β”‚  - Source code          β”‚                      β”‚
β”‚                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚
β”‚                                     β”‚                                    β”‚
β”‚                                     β–Ό                                    β”‚
β”‚                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”‚
β”‚                        β”‚   Shared Visibility     β”‚                      β”‚
β”‚                        β”‚   (ICP or Lightweight)  β”‚                      β”‚
β”‚                        β”‚  - Sprint dashboard     β”‚                      β”‚
β”‚                        β”‚  - Story status         β”‚                      β”‚
β”‚                        β”‚  - Team activity        β”‚                      β”‚
β”‚                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚
β”‚                                                                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

How it works:

  1. Each developer runs Claude Code + BMAD locally
  2. BMAD workflows produce artifacts (PRDs, stories, architecture)
  3. Artifacts commit to shared Git repository
  4. Git webhooks update shared visibility layer
  5. Dashboard shows team-wide status

Pros:

  • No multi-developer conflicts (isolated sessions)
  • Claude quality for all developers
  • Cost-efficient (only runs when working)
  • Simple setup (just install tools)
  • Works offline with local Ollama

Cons:

  • No persistent agent "memory" across sessions
  • Each session starts fresh (but loads context from artifacts)
  • Requires discipline to commit artifacts

Option B: Aurora as Coordination Layer + BMAD for Execution ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                          β”‚
β”‚   Developer Machines                    Aurora Infrastructure            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Claude Code + BMAD  β”‚              β”‚  Coordination Services       β”‚  β”‚
β”‚  β”‚                     │◄────────────►│  - Task assignment           β”‚  β”‚
β”‚  β”‚ Executes workflows  β”‚   REST API   β”‚  - Status tracking           β”‚  β”‚
β”‚  β”‚ Produces artifacts  β”‚              β”‚  - GraphRAG (context search) β”‚  β”‚
β”‚  β”‚ High-quality LLM    β”‚              β”‚  - Escalation management     β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚  - Dashboard                 β”‚  β”‚
β”‚           β”‚                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚           β”‚                                        β”‚                    β”‚
β”‚           β–Ό                                        β”‚                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                          β”‚                    β”‚
β”‚  β”‚  Git Repository     β”‚β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                    β”‚
β”‚  β”‚  (Source of Truth)  β”‚         Syncs artifacts to GraphRAG           β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                β”‚
β”‚                                                                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

How it works:

  1. Aurora provides coordination (task queue, status, search)
  2. Developers use Claude Code + BMAD for actual work
  3. Artifacts sync to both Git and GraphRAG
  4. Aurora agents remain available for simple queries (via Ollama)
  5. Complex work routes to Claude via developer machines

Pros:

  • Leverages Aurora infrastructure investment
  • GraphRAG provides searchable project context
  • Dashboard visibility for whole team
  • Escalation system for blockers
  • Best of both worlds

Cons:

  • More complex integration
  • Need to define clear boundaries (what goes where)
  • Aurora still needs hosting (but lighter load)

Option C: ICP-Native Coordination + Local Execution ​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                          β”‚
β”‚   Developer Machines                    ICP Canisters                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Claude Code + BMAD  β”‚              β”‚  Project Registry Canister   β”‚  β”‚
β”‚  β”‚                     │◄────────────►│  - Story status              β”‚  β”‚
β”‚  β”‚ Local execution     β”‚   IC Agent   β”‚  - Sprint tracking           β”‚  β”‚
β”‚  β”‚ Claude API          β”‚              β”‚  - Developer assignments     β”‚  β”‚
β”‚  β”‚ Local Ollama        β”‚              β”‚  - Artifact index            β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚           β”‚                                        β”‚                    β”‚
β”‚           β”‚                           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚           β”‚                           β”‚  Notification Canister  β”‚      β”‚
β”‚           β”‚                           β”‚  - Story ready for reviewβ”‚      β”‚
β”‚           β”‚                           β”‚  - Blocker alerts        β”‚      β”‚
β”‚           β”‚                           β”‚  - Sprint updates        β”‚      β”‚
β”‚           β–Ό                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                                β”‚
β”‚  β”‚  Git Repository     β”‚                                                β”‚
β”‚  β”‚  (Source of Truth)  β”‚                                                β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                                β”‚
β”‚                                                                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

How it works:

  1. ICP canisters handle coordination (status, assignments, notifications)
  2. All LLM work happens locally (Claude Code + BMAD)
  3. Git remains source of truth for artifacts
  4. ICP provides decentralized, always-available coordination
  5. No central server to maintain

Pros:

  • Decentralized coordination (no single point of failure)
  • Low cost (ICP cycles are cheap for simple state)
  • Aligns with Hello World DAO's ICP focus
  • No server maintenance

Cons:

  • ICP can't run LLMs (still need local/API)
  • No background processing (no work loops)
  • Limited to coordination, not execution

ICP Feasibility Analysis ​

What ICP Can Handle ​

FeatureFeasibilityNotes
Story/task registryYesSimple CRUD, fits canister model
Sprint status trackingYesState storage is ICP's strength
Developer assignmentsYesAccess control via principals
Artifact indexYesMetadata + links to Git/IPFS
NotificationsPartialCan store, but no push (needs polling)
SearchLimitedBasic queries yes, semantic search no

What ICP Cannot Handle ​

FeatureReason
LLM inferenceNo GPU, instruction limits
Background work loopsCanisters don't run continuously
Vector search (pgvector)No native support
Real-time updatesNo WebSocket/SSE
Large file storageExpensive, use IPFS instead

If we go with ICP for coordination:

candid
// Project Registry Canister
service : {
  // Story management
  create_story : (StoryInput) -> (StoryId);
  update_story_status : (StoryId, Status) -> (Result);
  get_stories_by_sprint : (SprintId) -> (vec Story);
  assign_story : (StoryId, Principal) -> (Result);

  // Sprint tracking
  get_sprint_status : (SprintId) -> (SprintStatus);
  get_developer_workload : (Principal) -> (vec Story);

  // Artifact registry
  register_artifact : (ArtifactMetadata) -> (ArtifactId);
  search_artifacts : (Query) -> (vec ArtifactMetadata);

  // Activity feed
  log_activity : (ActivityEvent) -> ();
  get_recent_activity : (nat) -> (vec ActivityEvent);
}

Comparison Matrix ​

CriteriaAurora OnlyBMAD OnlyOption A (Local + Visibility)Option B (Aurora + BMAD)Option C (ICP + BMAD)
LLM QualityOllamaClaudeClaudeClaude + OllamaClaude
Multi-dev safetyConflictsIsolatedIsolatedIsolatedIsolated
Setup complexityHighLowLowMediumMedium
Ongoing costHigh (k8s)Low (API)LowMediumLow (cycles)
VisibilityDashboardLocal onlySharedFullBasic
Offline workNoLimitedOllamaOllamaOllama
ICP alignmentOff-chainOff-chainPartialPartialNative
Work loopsNativeOn-demandOn-demandOptionalOn-demand

Key Questions for Discussion ​

About Current Aurora System ​

  1. What specific value does the 5-minute work loop provide?

    • If agents are idle 95% of the time, is continuous polling worth the cost?
    • Could the same value be achieved with on-demand invocation?
  2. How do you envision multi-developer usage?

    • If Coby and Graydon both invoke the architect agent, whose context wins?
    • Should each developer have isolated agent instances?
  3. What's the LLM quality bar for different tasks?

    • Which tasks truly need Claude-level quality?
    • Which tasks are fine with Ollama?

About Integration ​

  1. What would you want to keep from Aurora in a hybrid model?

    • Dashboard?
    • GraphRAG?
    • Escalation system?
    • Agent personas/context libraries?
  2. Would you accept BMAD workflows as the primary execution engine?

    • With artifacts as the persistence model?
    • Claude for quality-critical tasks?
  3. What's the minimum viable shared layer?

    • Just sprint status?
    • Or full GraphRAG + dashboard?

About ICP ​

  1. How important is ICP-native vs pragmatic off-chain?

    • Is there value in dogfooding ICP for internal tools?
    • Or is off-chain acceptable for dev infrastructure?
  2. Would an ICP coordination layer be sufficient?

    • Status tracking, assignments, notifications on ICP
    • LLM execution remains local

Phase 1: Validate Hybrid Model (2-4 weeks) ​

  1. Coby continues with BMAD for Hello World DAO development
  2. Document the workflow - What artifacts are produced, how context is maintained
  3. Graydon experiments with using BMAD for a small task
  4. Compare outputs - Same task with Aurora-only vs BMAD

Phase 2: Define Integration Points (2-4 weeks) ​

  1. Identify what Aurora should handle - Visibility, coordination, search
  2. Identify what BMAD should handle - Workflow execution, artifact generation
  3. Design the bridge - How artifacts flow between systems

Phase 3: Build Shared Layer (4-8 weeks) ​

  1. Option A - Simple visibility dashboard (Git webhooks β†’ dashboard)
  2. Option B - Aurora lite (keep GraphRAG + dashboard, remove work loops)
  3. Option C - ICP canister for coordination

Phase 4: Team Rollout ​

  1. Onboard Menley with the hybrid process
  2. Document the full workflow for future developers
  3. Iterate based on feedback

Appendix: Technical Details ​

A. BMAD Artifact Flow ​

Developer starts story
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Load Story Context  β”‚ ◄── story-context.xml (generated by story-context workflow)
β”‚ - PRD requirements  β”‚
β”‚ - Architecture refs β”‚
β”‚ - Existing code     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Execute dev-story   β”‚ ◄── BMAD workflow with Claude
β”‚ - Implement tasks   β”‚
β”‚ - Write tests       β”‚
β”‚ - Update story.md   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Commit artifacts    β”‚ ◄── Git commit
β”‚ - Code changes      β”‚
β”‚ - Updated story.md  β”‚
β”‚ - Test results      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Next developer can  β”‚ ◄── Picks up from story.md status
β”‚ continue or review  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

B. Aurora Agent Runtime Summary ​

  • Language: Python (FastAPI)
  • LLM: Ollama (llama3.2, mistral)
  • Database: PostgreSQL + pgvector
  • Orchestration: Kubernetes (k3s)
  • Work pattern: 5-minute polling loop
  • State: DB tables (agent_tasks, graphrag_entities, circuit_breaker_state)

C. Proposed ICP Canister Interface ​

See project-registry.did (to be created) for full Candid interface.


Next Steps ​

  1. Graydon reviews this document and provides feedback
  2. Schedule discussion to align on preferred option
  3. Agree on Phase 1 experiment parameters
  4. Begin implementation of chosen approach

"Together, we can do anything."

Hello World Co-Op DAO