Skip to content

tantshirt/AUTO-BMAD-DEV-CYCLE-

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Johnny BMAD

Automate your BMAD implementation phase with AI-powered orchestration

npm version Node.js License

Inspired by Ralph β€” because every BMAD project deserves an assistant who never sleeps.

Quick Start β€’ Documentation β€’ Configuration β€’ Contributing


✨ Overview

Johnny BMAD orchestrates multiple AI agent sessions to automate your BMAD implementation workflow. From sprint planning through code review and commit, Johnny handles the entire story lifecycle β€” letting you focus on what matters most.

🎯 What It Does

  • βœ… Automates story creation β€” Generates implementation stories from epics
  • βœ… Orchestrates development β€” Coordinates Dev, Review, and SM agents
  • βœ… Manages iterations β€” Handles dev-review cycles automatically
  • βœ… Tracks progress β€” Saves state for seamless resumption
  • βœ… Multi-provider support β€” Works with Claude, OpenAI, GLM, and more
  • βœ… Smart commits β€” Auto-commits with proper story-based messages

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ (or Bun)
  • BMAD project with _bmad/ folder structure
  • At least one LLM provider configured (CLI tool or API key)
  • Git (optional, for auto-commits)

Installation

npm install -g @webeleon/johnny-bmad

Basic Usage

cd your-bmad-project
johnny-bmad

That's it! Johnny will:

  1. Check your sprint status
  2. Let you pick an epic
  3. For each story: create β†’ implement β†’ review β†’ commit
  4. Repeat until the epic is complete

First-Time Setup

On first run, Johnny will guide you through:

  1. Detecting CLI tools (Claude, Codex, Kimi, etc.)
  2. Configuring API providers (OpenAI, GLM, custom)
  3. Discovering available models
  4. Selecting models for each agent role

πŸ“– Usage Guide

Command-Line Options

Option Short Description
--resume -r Auto-resume from saved state without prompting
--verbose -v Enable debug output for troubleshooting
--max-iterations N -m N Max dev-review cycles per story (default: 10)
--yolo -y Auto-complete stories when max iterations reached
--batch -b Create all stories first, then review (no implementation) [EXPERIMENTAL]
--dev-only -d Skip story creation, implement existing stories only [EXPERIMENTAL]
--sm-model MODEL -s Model for SM agent (default: opus)
--story-model MODEL -t Model for Story Creator (default: opus)
--dev-model MODEL Model for Dev agent (default: sonnet)
--review-model MODEL -R Model for Reviewer (default: opus)
--reconfigure Force run model configuration onboarding
--refresh-models Refresh model cache (discover available models)
--help -h Show help message

Common Workflows

Sequential Development (Default)

johnny-bmad

Creates stories one at a time, implements them immediately, reviews, and commits.

Resume Interrupted Session

johnny-bmad --resume

Picks up where you left off using saved state from .johnny-bmad-state.json.

Batch Story Creation

johnny-bmad --batch

Note: currently an experimental stub β€” it will print a warning and exit.

Development-Only Mode

johnny-bmad --dev-only

Note: currently an experimental stub β€” it will print a warning and exit.

Limited Iterations with Auto-Complete

johnny-bmad -m 3 --yolo

Limits to 3 dev-review cycles per story, auto-completes if stuck (no prompts).

Custom Model Configuration

johnny-bmad --dev-model openai:gpt-4 --review-model opus

Uses GPT-4 for development, Claude Opus for reviews.

Verbose Debugging

johnny-bmad -v --dev-model sonnet

Enables detailed logging for troubleshooting.


πŸ—οΈ How It Works

Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Johnny BMAD Orchestrator                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚   SM Agent (opus)                 β”‚
        β”‚   β€’ Check sprint status            β”‚
        β”‚   β€’ Validate epic readiness        β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                    User selects epic
                            β”‚
                            β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚           Story Implementation Loop              β”‚
        β”‚                                                  β”‚
        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
        β”‚  β”‚  Story Creator (opus)                     β”‚  β”‚
        β”‚  β”‚  β€’ Generate story from epic               β”‚  β”‚
        β”‚  β”‚  β€’ Define acceptance criteria             β”‚  β”‚
        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
        β”‚                    β”‚                            β”‚
        β”‚                    β–Ό                            β”‚
        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
        β”‚  β”‚  Dev Agent (sonnet)                       β”‚  β”‚
        β”‚  β”‚  β€’ Implement story requirements            β”‚  β”‚
        β”‚  β”‚  β€’ Write code and tests                   β”‚  β”‚
        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
        β”‚                    β”‚                            β”‚
        β”‚                    β–Ό                            β”‚
        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
        β”‚  β”‚  Reviewer (opus)                         β”‚  β”‚
        β”‚  β”‚  β€’ Code review                            β”‚  β”‚
        β”‚  β”‚  β€’ Verify acceptance criteria             β”‚  β”‚
        β”‚  β”‚  β€’ Output: REVIEW_PASSED / REVIEW_FAILED  β”‚  β”‚
        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
        β”‚                    β”‚                            β”‚
        β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”‚
        β”‚         β”‚                     β”‚                β”‚
        β”‚      PASSED              FAILED                β”‚
        β”‚         β”‚                     β”‚                β”‚
        β”‚         β–Ό                     β–Ό                β”‚
        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”‚
        β”‚  β”‚ Git      β”‚        β”‚ Loop back    β”‚        β”‚
        β”‚  β”‚ Commit   β”‚        β”‚ to Dev       β”‚        β”‚
        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β”‚
        β”‚                                              β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                    Epic Complete βœ“

Workflow Details

  1. Sprint Status Check β€” SM agent validates current sprint state
  2. Epic Selection β€” User chooses which epic to implement
  3. Story Loop β€” For each story in the epic:
    • Create β€” Story Creator generates implementation story
    • Implement β€” Dev agent writes code
    • Review β€” Reviewer validates implementation
    • Iterate β€” If review fails, loop back to Dev (max 10 iterations)
    • Commit β€” On pass, commit with feat(STORY-ID): title format
  4. State Persistence β€” Progress saved to .johnny-bmad-state.json
  5. Resume β€” Can resume from any interruption point

βš™οΈ Configuration

Multi-Provider Support

Johnny BMAD supports multiple LLM providers through CLI tools and API keys:

Provider Type Detection Example Models
Claude CLI claude --version opus, sonnet, haiku
OpenAI Codex CLI codex --version gpt-5.3-codex
Kimi CLI kimi --version moonshot-v1-8k, 32k, 128k
OpenAI API API key gpt-4, gpt-4-turbo, gpt-3.5-turbo
GLM API API key glm-4, glm-4-plus, glm-4v
Custom API User-configured User-defined

Configuration Files

  • ~/.johnny-bmad/providers.json β€” Global API keys (shared across projects)
  • .johnny-bmad/models.json β€” Per-project model selection
  • .johnny-bmad-models-cache.json β€” Model cache (1-hour TTL)

Model ID Format

Models can be specified in two ways:

Short name (auto-detects provider):

johnny-bmad --dev-model sonnet  # Uses Claude
johnny-bmad --dev-model gpt-4   # Uses OpenAI

Full ID (explicit provider):

johnny-bmad --dev-model claude:opus
johnny-bmad --dev-model openai:gpt-4
johnny-bmad --dev-model glm:glm-4

State Management

Progress is automatically saved to .johnny-bmad-state.json in your project directory. This enables:

  • Resume functionality β€” Continue after interruption
  • Progress tracking β€” Current epic, story index, iteration counts
  • Completion history β€” Track completed stories

To resume:

johnny-bmad --resume

πŸ› οΈ Development

Setup

git clone https://github.com/webeleon/johnny-bmad.git
cd johnny-bmad
bun install  # or npm install

Available Commands

bun run dev          # Watch mode development
bun run build        # Build to dist/
bun test             # Run unit tests
npx .                # Test built package locally

Project Structure

src/
β”œβ”€β”€ index.ts              # CLI entry point
β”œβ”€β”€ orchestrator.ts       # Main workflow orchestration
β”œβ”€β”€ config.ts             # State persistence
β”œβ”€β”€ types.ts              # TypeScript interfaces
β”œβ”€β”€ agents/               # AI agent implementations
β”‚   β”œβ”€β”€ sm.ts             # Scrum Master agent
β”‚   β”œβ”€β”€ story-creator.ts  # Story creation agent
β”‚   β”œβ”€β”€ dev.ts            # Development agent
β”‚   └── reviewer.ts       # Review agent
β”œβ”€β”€ claude/               # Claude CLI integration
β”‚   β”œβ”€β”€ cli.ts            # Process spawning
β”‚   └── prompts.ts        # Prompt templates
β”œβ”€β”€ providers/            # Multi-provider system
β”‚   β”œβ”€β”€ registry.ts       # Provider registry
β”‚   β”œβ”€β”€ api-provider.ts   # API provider base
β”‚   β”œβ”€β”€ cli-provider.ts   # CLI provider base
β”‚   β”œβ”€β”€ cache.ts          # Model cache
β”‚   └── providers/        # Built-in providers
β”œβ”€β”€ config/               # Configuration management
β”‚   └── models.ts         # Model config save/load
β”œβ”€β”€ onboarding.ts         # First-run setup
β”œβ”€β”€ git/                  # Git operations
β”‚   └── commit.ts         # Commit handling
└── utils/                # Utilities
    β”œβ”€β”€ logger.ts         # Colored logging
    β”œβ”€β”€ files.ts          # BMAD file parsing
    └── user-input.ts     # Interactive prompts

Testing

# Run all tests
bun test

# Watch mode
bun test --watch

# Test CLI parsing
bun run src/index.ts --help

🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit with clear messages (git commit -m 'Add amazing feature')
  5. Push to your branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Code Style

  • Use async/await with Promises
  • Prefer const declarations
  • Use TypeScript strict mode
  • Include .js extensions in ESM imports
  • Follow existing patterns for consistency

πŸ“š Additional Resources

  • BMAD Framework β€” Learn more about the BMAD methodology
  • Documentation β€” Full docs available at GitHub Pages
  • Issues β€” Report bugs or request features on GitHub Issues

πŸ’¬ Support

Have questions? Need help? Join our community:


πŸ“„ License

MIT License β€” see LICENSE file for details.


Made with ❀️ by Webeleon

⬆ Back to Top

About

Automate bmad implementation phase

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.7%
  • JavaScript 3.3%