Skip to content

Commit ff8f00e

Browse files
author
Vincent M.
committed
chore: update readme.md
1 parent 6a1ee5f commit ff8f00e

1 file changed

Lines changed: 122 additions & 33 deletions

File tree

README.md

Lines changed: 122 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
1-
# BMAD Dashboard — Feature Summary
1+
# BMAD Dashboard
22

3-
A VS Code sidebar extension that acts as a real-time GPS for BMAD V6 projects. It monitors workflow artifacts, tracks sprint progress, and recommends next actions — all without leaving the editor.
3+
A VS Code extension that acts as a real-time GPS for BMAD V6 projects. It monitors workflow artifacts, tracks sprint progress, and recommends next actions — all without leaving the editor.
44

5-
## Activation
5+
## Features
66

7-
Auto-activates when the workspace contains a `_bmad/` directory. Appears as a custom icon in the Activity Bar.
8-
9-
## Dashboard Sections (top to bottom)
7+
### Sidebar Dashboard
108

11-
### Header Toolbar
9+
Auto-activates when the workspace contains a `_bmad/` directory. Appears as a custom icon in the Activity Bar.
1210

11+
**Header Toolbar**
1312
- **Help icon** — copies `bmad help` to clipboard
1413
- **Overflow menu (⋮)** — lists all available workflow commands with descriptions, plus a manual Refresh option; dismisses on click-outside or ESC
1514

16-
### Sprint Progress
17-
15+
**Sprint Progress**
1816
- Visual progress bar with done / in-progress / backlog counts
1917
- Project name and completion percentage
2018

21-
### Epic List
22-
19+
**Epic List**
2320
- Collapsible cards per epic showing status, progress bar, and done/total story counts
2421
- Active epic highlighted (blue left border)
2522
- Done epics hidden by default; toggle to reveal them
@@ -28,16 +25,15 @@ Auto-activates when the workspace contains a `_bmad/` directory. Appears as a cu
2825
- **Shift+Click** epic title → open `epics.md` in text editor
2926
- **Click** a story inside the list → open the story markdown file
3027

31-
### Active Story Card
32-
28+
**Active Story Card**
3329
- Shows current story's epic/story number, title, task progress bar, subtask count, and status badge
3430
- Progress combines tasks + subtasks
3531
- **Click** story title → open story file in preview
3632
- **Shift+Click** story title → open in text editor
3733

38-
### Next Action Recommendation
34+
**Next Action Recommendation**
3935

40-
State-machine-driven suggestion for what to do next:
36+
State-machine-driven suggestion with mandatory/optional action kinds:
4137

4238
| Condition | Suggested Action |
4339
| ------------------- | ------------------- |
@@ -51,35 +47,128 @@ State-machine-driven suggestion for what to do next:
5147

5248
Each action has a **Play** button (execute in terminal) and a **Copy** button (clipboard).
5349

54-
### Other Actions
55-
56-
Secondary workflow buttons that change based on project state (e.g., Correct Course, Create Story).
50+
**Other Actions** — Secondary workflow buttons that change based on project state (e.g., Correct Course, Create Story).
5751

58-
### Planning Artifact Links
52+
**Planning Artifact Links** — Quick links to PRD and Architecture docs. Click opens markdown preview; Shift+Click opens in text editor.
5953

60-
Quick links to PRD and Architecture docs.
54+
**About Section** — Displays BMAD version, last-updated date, and installed modules (from `manifest.yaml`).
6155

62-
- **Click** → open in markdown preview
63-
- **Shift+Click** → open in text editor
56+
### Editor Panel
6457

65-
### About Section
58+
A multi-view editor panel (`BMAD: Open Editor Panel` command) with breadcrumb navigation:
6659

67-
Displays BMAD version, last-updated date, and installed modules (from `manifest.yaml`).
60+
- **Dashboard view** — mirrors the sidebar dashboard
61+
- **Epics Browser** — browse epics and drill into story details
62+
- **Stories Table & Kanban Board** — view all stories in table or kanban layout
63+
- **Document Library** — file tree browser with markdown rendering, syntax highlighting, and table of contents
6864

69-
## Real-Time Updates
65+
### Real-Time Updates
7066

7167
- File watcher monitors `_bmad-output/**/*.{yaml,md}` with 500 ms debounce
7268
- Any change to `sprint-status.yaml` or story files triggers a full state recompute and UI refresh
7369

7470
## Configuration
7571

76-
| Setting | Default | Purpose |
77-
| ----------------- | -------------- | ---------------------------------------------------------- |
78-
| `bmad.outputRoot` | `_bmad-output` | Root directory for BMAD output files |
79-
| `bmad.cliPrefix` | `claude` | CLI prefix for terminal commands (e.g., `claude`, `aider`) |
72+
| Setting | Default | Purpose |
73+
| ---------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------- |
74+
| `bmad.outputRoot` | `_bmad-output` | Root directory for BMAD output files |
75+
| `bmad.cliPrefix` | `claude` | CLI prefix for terminal commands (e.g., `claude`, `aider`, `copilot`) |
76+
| `bmad.defaultClickBehavior` | `markdown-preview` | Click behavior for doc links: `markdown-preview` or `editor-panel` |
77+
| `bmad.docLibraryPaths` | `["planning-artifacts", "implementation-artifacts", "docs"]` | Folders to display in the Document Library |
78+
79+
## Prerequisites
80+
81+
- **Node.js** 22+
82+
- **pnpm** 10.26+ (`corepack enable && corepack prepare pnpm@10.26.2`)
83+
84+
## Building
85+
86+
The extension uses a dual build system — esbuild for the extension host, Vite for the React webview.
87+
88+
```bash
89+
pnpm install # install dependencies
90+
pnpm build # full build (extension + webview)
91+
pnpm build:extension # build extension host only
92+
pnpm build:webview # build webview only
93+
pnpm watch # parallel watch mode for both
94+
```
95+
96+
To package as a `.vsix`:
97+
98+
```bash
99+
pnpm vscode:package # produces out/bmad-dashboard-*.vsix
100+
```
101+
102+
## Testing
103+
104+
### Webview tests (Vitest)
105+
106+
Runs in a jsdom environment using `@testing-library/react`.
107+
108+
```bash
109+
pnpm test # run all Vitest tests once
110+
pnpm test:watch # watch mode
111+
pnpm test:coverage # generate coverage report (v8 provider)
112+
```
113+
114+
### Extension host tests (Mocha)
115+
116+
Runs under `@vscode/test-electron` for tests that need VS Code APIs.
117+
118+
```bash
119+
pnpm test:extension # run extension integration tests
120+
```
121+
122+
### Linting & type checking
123+
124+
```bash
125+
pnpm lint # ESLint
126+
pnpm typecheck # typecheck both extension and webview
127+
```
128+
129+
## Release Process
130+
131+
Versioning and releases are fully automated via [semantic-release](https://github.com/semantic-release/semantic-release) and a GitHub Actions workflow.
132+
133+
### How it works
134+
135+
1. **Push to `main`** triggers the release workflow (`.github/workflows/release.yml`)
136+
2. **Commit analysis**`@semantic-release/commit-analyzer` determines the next version from [Conventional Commits](https://www.conventionalcommits.org/):
137+
- `fix:` → patch bump (1.2.x)
138+
- `feat:` → minor bump (1.x.0)
139+
- `BREAKING CHANGE:` / `feat!:` → major bump (x.0.0)
140+
3. **Changelog**`CHANGELOG.md` is updated automatically
141+
4. **Build & package** — the extension is built and packaged as a `.vsix`
142+
5. **Git commit**`package.json` and `CHANGELOG.md` are committed with `chore(release): <version> [skip ci]`
143+
6. **GitHub release** — a release is created with the `.vsix` attached as a downloadable asset
144+
145+
### CI pipeline
146+
147+
Pull requests to `main` run the CI workflow (`.github/workflows/ci.yml`):
148+
- Lint → Typecheck → Test → Build
149+
150+
### Local dry run
151+
152+
```bash
153+
pnpm release:dry # preview what the next release would be
154+
```
155+
156+
## Project Structure
157+
158+
```
159+
src/
160+
├── extension/ # VS Code extension host (Node.js)
161+
│ ├── extension.ts # main entry point
162+
│ ├── commands/ # command handlers
163+
│ ├── parsers/ # YAML, epic, story file parsers
164+
│ ├── providers/ # webview providers (dashboard, editor panel)
165+
│ └── services/ # BMAD detector, file watcher, state manager, workflows
166+
├── webviews/ # React webview (sandboxed)
167+
│ ├── dashboard/ # sidebar dashboard components
168+
│ └── editor-panel/ # multi-view editor (epics, stories, docs)
169+
└── shared/ # shared types and message protocol
170+
```
80171

81-
# DISLAIMER
172+
## License
82173

83-
This is not an official VS Code Extension for BMAD.
84-
This extension try to follow the BMAD philosophy and workflow as close as possible.
85-
This extension will remain until the official one is out.
174+
MIT

0 commit comments

Comments
 (0)