Skip to main content

Interactive sprint board generator for BMAD projects

Project description

bmad-sprint-board

Interactive sprint board generator for BMAD projects. Produces a self-contained HTML file with a kanban board, list view, workflow guide, and changelog — all from your epics.md and sprint-status.yaml.

Zero dependencies. Pure Python standard library.

Install

pip install bmad-sprint-board

Or install from source:

pip install git+https://github.com/Isaqdn03/bmad-sprint-board.git

Or for development:

git clone https://github.com/Isaqdn03/bmad-sprint-board.git
cd bmad-sprint-board
pip install -e .

Usage

CLI

From your project root (directory containing _bmad-output/):

# Generate sprint-board.html
bmad-board

# Generate and open in browser
bmad-board --open

# Custom output directory
bmad-board -o ./docs

# Explicit project name (otherwise auto-detected from sprint-status.yaml)
bmad-board --project "My Project"

# Explicit project root
bmad-board --root /path/to/project

Python API

from pathlib import Path
from bmad_sprint_board.sprint_board import generate_sprint_board

path = generate_sprint_board(
    project_root=Path("/path/to/project"),
    output_dir=Path("./output"),        # optional
    project_name="My Project",          # optional, auto-detected
)
print(f"Board at: {path}")

Required Directory Structure

your-project/
  _bmad-output/
    planning-artifacts/
      epics.md                          # Epic and story definitions
    implementation-artifacts/
      sprint-status.yaml                # Story statuses
    sprint-board.html                   # Generated output
    .sprint-board-snapshot.json         # Auto-generated for changelog

epics.md format

Standard BMAD epics markdown:

## Epic 0: First Epic Title

Description of the epic.

### Story 0.1: First Story Title

Story content with acceptance criteria...

### Story 0.2: Second Story Title

More content...

## Epic 1: Second Epic Title
...

sprint-status.yaml format

project: My Project
last_updated: 2026-03-26

development_status:
  epic-0: in-progress
  0-1-first-story: done
  0-2-second-story: in-progress
  epic-1: backlog
  1-1-next-story: backlog

Valid statuses: backlog, ready-for-dev, in-progress, review, done

Auto-Regeneration with Claude Code

Add a hook so the board auto-regenerates whenever sprint-status.yaml is edited during a Claude Code session.

.claude/hooks/regenerate-sprint-board.sh

#!/bin/bash
input=$(cat)
file_path=$(echo "$input" | jq -r '.tool_input.file_path // empty' 2>/dev/null)

if [[ "$file_path" == *"sprint-status.yaml" ]]; then
  project_dir=$(echo "$input" | jq -r '.cwd // empty' 2>/dev/null)
  cd "$project_dir" 2>/dev/null || exit 0
  bmad-board 2>/dev/null || true
fi
exit 0
chmod +x .claude/hooks/regenerate-sprint-board.sh

.claude/settings.json

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": ".claude/hooks/regenerate-sprint-board.sh",
            "timeout": 30
          }
        ]
      }
    ]
  }
}

BMAD skills (bmad-create-story, bmad-dev-story, bmad-code-review) auto-update sprint-status.yaml. With this hook, the board stays in sync automatically.

Features

  • Kanban board — 5-column drag-free visual board (backlog, ready, in-progress, review, done)
  • List view — Compact epic/story list with status badges
  • Workflow view — Visual guide to the BMAD implementation pipeline
  • Story detail panel — Click any story to see full content with rendered markdown
  • Epic filtering — Filter by epic or search by story name
  • Changelog — Shows what changed since last generation
  • Dark theme — GitHub-inspired dark UI
  • Self-contained — Single HTML file with embedded CSS/JS, no external dependencies
  • Zero dependencies — Pure Python stdlib, no PyYAML or other packages needed

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bmad_sprint_board-1.0.0.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bmad_sprint_board-1.0.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file bmad_sprint_board-1.0.0.tar.gz.

File metadata

  • Download URL: bmad_sprint_board-1.0.0.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for bmad_sprint_board-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cb9aaca92f0fe3cf11fe744b5ba336890b6b0a5d779f5029088a7e41fce008b2
MD5 de550f85af7bd6d83ee0fb1041df3558
BLAKE2b-256 58970ac5e361ef6f5b13b2dd20dc77c71d4f67069c72d0f37fcf6bd5650f21b9

See more details on using hashes here.

File details

Details for the file bmad_sprint_board-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bmad_sprint_board-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16e7f634aaf29f5ae7ff096d267f4a35696670d9ffe10143991d3d626007e98a
MD5 230f12df881dabeda4fe5a29deba48f3
BLAKE2b-256 6958779ed81d78ae67bd3e1ac8f9eab99f1eb80fa86a0a9f65f7a94a3104a17a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page