Files
Brian f033e70a2c feat(method): add bmad-preview-ticketing skill and tickets.py runtime (#2884)
* feat(method): add bmad-preview-ticketing skill and tickets.py runtime

Ticketing at every altitude: an initiative sliced into epics, an epic
incepted into a Breakdown of stories, spikes, and bugs, and tickets
written, refined, published, and moved on a git-backed store or a tracker
(GitHub, Jira, Linear, Notion, Trello).

- Container tickets are the spec at their altitude: Requirements with
  stable ids, Outcome, Done when, Boundaries, Breakdown.
- Thin tickets carry contribution and verification; full criteria are
  written when pulled (`refined: false` until approved).
- scripts/tickets.py derives ready, blocked, and to-create views from the
  files; scripts/read_toml.py reads the store config; tests beside them.
- Store configs per tracker under config/, templates per type under
  assets/, customization surface in customize.toml.
- Listed in the bmad help catalog as a preview alternative to
  bmad-create-epics-and-stories plus bmad-sprint-planning.

* fix(method): address review findings in bmad-preview-ticketing

- tickets.py: a dropped blocker still blocks its dependents; mark clears
  blocked_at and blocked_reason on a status change and takes the assignee
  literally; --project-root finds the store config when tickets live
  outside the project; a numeric blocker falls back to the ticket id;
  duplicate Breakdown numbers and blockers naming no entry are errors.
- read_toml.py: read local files only.
- board.md: mark is the leaf-level write, a container's status is a file
  edit, and a dropped ticket is removed or repointed in its dependents.
- SKILL.md: tickets are drafted under tickets.root; persistent facts load
  file: entries.
- gh config: read children with `gh issue view --json subIssues`.
- help catalog: the breakdown includes bugs.

* docs: add a guide to testing v7 previews

A new page under Plan Larger Work for trying proposed v7 planning
changes: setting up an initiative store, configuring where tickets are
tracked, and using bmad-preview-ticketing. It states early that preview
stories are not wired into sprint planning, sprint-status.yaml, or
status updates from bmad-build, and that a story must be refined before
it is built.

- Sidebar entry and a pointer from the stories-and-tracking page.
- Locale coverage baseline records the new English-only page.
2026-09-18 14:51:57 +08:00
..

BMAD Method Documentation Site

This directory contains the Astro + Starlight configuration for the BMAD Method documentation site.

Architecture

The documentation uses a symlink architecture to keep content in docs/ at the repo root while serving it through Astro:

bmad2/
├── docs/                          # Content lives here (repo root)
│   ├── index.md
│   ├── tutorials/
│   ├── how-to/
│   ├── explanation/
│   └── reference/
└── docs-site/
    ├── astro.config.mjs           # Astro + Starlight config
    ├── scripts/                   # Build pipeline, link and sidebar validators
    ├── test/                      # Node tests for the site and its scripts
    ├── src/
    │   ├── content/
    │   │   └── docs -> ../../../docs # Symlink to content
    │   └── styles/
    │       └── custom.css         # Custom styling
    └── public/                    # Static assets

Development

cd docs-site
npm ci                     # Install (Node version in .nvmrc)
npm run dev                # Start dev server
npm run build              # Build for production (validates links first)
npm run preview            # Preview production build
npm run validate-links     # Check site-relative links in docs/
npm run validate-sidebar   # Check sidebar.order frontmatter
npm run fix-links          # Rewrite relative links to repo-relative (add --write)
npm run lint               # ESLint over scripts/ and test/
npm run format:check       # Prettier over scripts/ and test/
npm test                   # Run the site tests

The site is the only part of the repository that uses Node; everything else runs on uv. tools/quality.py at the repository root runs these checks together with the Python ones.

Platform Notes

The docs-site/src/content/docs symlink may not work correctly on Windows without Developer Mode enabled or administrator privileges.

To enable symlinks on Windows:

  1. Enable Developer Mode (recommended):

    • Settings → Update & Security → For developers → Developer Mode: On
    • This allows creating symlinks without admin rights
  2. Or use Git's symlink support:

    git config core.symlinks true
    

    Then re-clone the repository.

  3. Or create a junction (alternative):

    # Run as Administrator
    mklink /J docs-site\src\content\docs ..\..\..\docs
    

If symlinks don't work, you can copy the docs folder instead:

# Remove the symlink
rm docs-site/src/content/docs

# Copy the docs folder
cp -r docs docs-site/src/content/docs

Note: If copying, remember to keep the copy in sync with changes to docs/.

Build Output

The build pipeline (npm run build) produces:

  • Static HTML site in build/site/