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.1.tar.gz (15.6 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.1-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bmad_sprint_board-1.0.1.tar.gz
  • Upload date:
  • Size: 15.6 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.1.tar.gz
Algorithm Hash digest
SHA256 6673ee652ef5909d56082ec8f0a4e253e5c79b6f59fa05669b798b6fd6e26538
MD5 4688f6ce67cca33f8b7535a5540a9e8e
BLAKE2b-256 a39b55bc7aa7d50d51cf200f2f19d3d091a9121c0801943637507eb77210126a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bmad_sprint_board-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 35f5dc9d3f2e637cc7cf74f117de18cad0565d487edcf151db1c55fb8cdf9c61
MD5 8b3057ebc90533b731be0afc32015d9b
BLAKE2b-256 00395ba7be139efc9a966711147d2ed56b8b569fa72438b5ded73e0c8906ee56

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