/board-refresh
Regenerate the read-only HTML board projections (kanban + tech tree) from the current beads state — useful when bead mutations happened outside the normal Stop-hook path.
When to use it
The boards regenerate automatically in two ways: a Stop hook fires
.claude/hooks/render-boards-on-bd.sh --refresh once per assistant
turn (coalescing any number of bd mutations made during the turn
into a single render), and a SessionStart hook does the same hard
refresh when a session begins. You only need this command when
state changed outside those paths: mutations made in another
terminal, after a bd dolt pull, or mid-turn when you want fresh
boards before the turn ends.
Don’t use this to make a planning decision — the boards are read-only
projections of bead state. All mutations go through bd commands;
the boards reflect the result.
How it fits
The boards are a projection, not a planning input. bd is the
source of truth; this command just refreshes the visual output.
What it does (quick)
- Runs
node scripts/render-boards.mjs(silent by design; failures land in.gembaflow-boards/render.log) - Confirms the boards are fresh by checking the last line of
render.log - Reports the absolute paths of both board files and offers to open them
Notes
- The kanban is the headline board. The tech tree is experimental
and projection-only — never a planning input; the anti-Goodhart
guardrails in
docs/BEADS-CONVENTIONS.mdapply. - Never edit the HTML files by hand — the next render overwrites them.
- Campaign scoping, track order, and the victory bead come from
.gembaflow-boards.config.json(committed).
Related commands
/sprint-status— read-only bead queue snapshot; reads bead state directly, independent of the HTML boards/doctor— health check that verifies board projections are present and not stale as part of the local beads checks
Canonical spec: .claude/commands/board-refresh.md