ब्लॉग पर वापस जाएँ

Developer Teams के लिए Visual Epic Progress Tracking

Developer Teams के लिए Visual Epic Progress Tracking

आप 15 subtasks वाला epic बनाते हैं। कुछ agents या teammates में assign करते हैं। दो दिन बाद कोई पूछता है: "Auth rewrite कहाँ तक पहुँचा?"

आप bd show bb-r4f run करते हैं। यह epic खुद दिखाता है। Title, description, priority। कितने children complete हैं नहीं बताता। तो bd list --parent bb-r4f run करते हैं। IDs और titles की flat list मिलती है। हर एक का status देखने के लिए jq से pipe करें या हर child पर individually bd show run करें। कुछ children की अपनी subtasks हैं। अब तीन levels deep हैं, terminal output से दिमाग में tree reconstruct कर रहे हैं।

यह काम करता है जब epic में तीन children हों। दस पर टूट जाता है। और अगर AI agents coordinate कर रहे हैं जो तेज़ी से subtasks बनाते हैं, blockers file करते हैं, और issues close करते हैं, CLI output command run करने और result पढ़ने के बीच stale हो जाता है।

Problem beads में नहीं है। beads CLI structured, scriptable issue management में excellent है। Problem यह है कि hierarchical progress एक visual concept है, और terminals text rows में render करते हैं।

Beadbox में epic tree कैसा दिखता है

Beadbox खोलें, epic पर click करें, और children collapsible tree में दिखते हैं। हर child status badge (open, in_progress, ready_for_qa, closed), priority indicator, और assignee दिखाता है। Epic खुद progress bar display करता है: "14 में से 9 complete (64%)।" यह number children close होने पर update होता है।

ऐसा child expand करें जो खुद epic है और नीचे nested subtasks दिखेंगे। Parent का progress सभी descendants से aggregate होता है, सिर्फ direct children से नहीं। Engineering, QA, और documentation में 40 total issues वाला three-level epic top पर real completion percentage दिखाता है, tree के हर leaf node को count करके।

Blocked issues को distinct visual treatment मिलता है। अगर bb-m3q bb-k7p पर depend करता है और bb-k7p अभी open है, blocked badge bb-m3q के status के बगल में बैठता है। Bottleneck discover करने के लिए bd dep list run करने की ज़रूरत नहीं। Tree में ही दिखता है, उस level पर जहाँ matter करता है।

CLI workflow से compare करें। "Auth epic पर progress क्या block कर रहा है" का जवाब देने के लिए, यह run करें:

bd list --parent bb-r4f --status=open --json | \
  jq -r '.[].id' | \
  xargs -I{} bd show {} --json 2>/dev/null | \
  jq -r 'select(.blocked_by | length > 0) | "\(.id) blocked by \(.blocked_by | join(", "))"'

यह perfectly valid pipeline है। सही answer देता है। पर लिखना पड़ता है, flags याद रखने पड़ते हैं, और हर बार update चाहिए तो re-run करना पड़ता है। Beadbox में, यही information हमेशा tree में visible है। कोई query ज़रूरी नहीं।

Real-time updates: tree आपके देखते-देखते बदलता है

यहाँ visual model अपनी कीमत साबित करता है। जब agent terminal में bd update bb-k7p --status=closed run करता है, Beadbox milliseconds में filesystem change detect करता है। WebSocket server .beads/ directory में write detect करता है, change broadcast करता है, और React UI re-render होता है।

Epic tree में, ऐसा दिखता है: bb-k7p orange "in_progress" badge से green "closed" badge में flip होता है। Parent epic का progress bar 64% से 71% पर जाता है। और bb-m3q, जो bb-k7p पर blocked था, अपना blocked indicator drop करता है और available work के रूप में दिखता है।

यह सब बिना command run किए या refresh button click किए होता है। अगर release epic पर काम करते agent fleet supervise कर रहे हैं, tasks complete होने पर tree भरते हुए देखते हैं। Bottlenecks बनते ही surface होते हैं क्योंकि blocked badges real time में appear होते हैं। Stalled subtrees (issues के clusters जिनका status बदलना बंद हो गया) बाकी जगह steady progress के backdrop पर कुछ minutes inactivity के बाद visually obvious हो जाते हैं।

Mechanism straightforward है। Beadbox एक WebSocket server run करता है जो आपकी .beads/ directory पर fs.watch() call करता है। हर database write broadcast trigger करता है। Client-side hook signal receive करता है और relevant server action re-fetch करता है। कोई polling interval नहीं, कोई manual refresh नहीं। CLI command से UI update तक latency typically एक second से कम।

Keyboard-first navigation

Beadbox developers के लिए desktop app है, और वैसा ही behave करता है। j और k issue list में move करते हैं (vim-style)। Enter selected issue detail panel में खोलता है। / search bar focus करता है। Escape जो भी open है बंद करता है। Arrow keys epic tree nodes expand और collapse करते हैं।

बिना mouse छुए पूरा backlog triage कर सकते हैं। j से list में नीचे जाएँ, issue खोलकर description पढ़ें, Escape से बंद करें, अगले पर जाएँ। अगर status change ज़रूरी लगे, terminal में switch करें mutations के लिए (bd update)। Beadbox design से read-heavy interface है। CLI writes handle करता है। GUI comprehension handle करता है।

यह split intentional है। GUI जो CLI को writes के लिए replace करने की कोशिश करे, हर possible flag combination के लिए forms बनाना पड़ता है। Reading और navigation पर focused GUI उसे optimize कर सकता है जिसमें terminals सबसे कमज़ोर हैं: hierarchical, cross-referenced data एक नज़र में दिखाना।

Multiple projects, एक window

अगर एक से ज़्यादा codebases पर काम करते हैं, हर एक की अपनी .beads/ database, Beadbox का workspace switcher handle करता है। Header में dropdown हर detected workspace list करता है। एक पर click करें (या / search से workspace ढूँढें), पूरा view उस project की database से reload होता है। Filters और scroll position per workspace persist होते हैं, तो switch back करने पर अपनी जगह नहीं खोते।

Detection automatic है। Beadbox bd configuration में registered workspaces और .beads/ databases वाली directories scan करता है। नया project add करें, beads initialize करें, अगली बार Beadbox खोलने पर dropdown में दिख जाता है। कोई import नहीं, कोई configuration screen नहीं।

Multiple services maintain करने वाले developers, या teams जहाँ हर agent अलग repository में काम करता है, के लिए यह Beadbox को सभी active projects का single pane बना देता है। Alternative है multiple terminal windows, हर एक अलग --db path पर bd list run कर रहा।

यह किसकी जगह लेता है

Beadbox CLI की जगह नहीं लेता। अगर workflows script करते हैं, bd list को jq से pipe करते हैं, या agents programmatically issues create और close करते हैं, सब कुछ unchanged काम करता रहता है। Beadbox वही database read करता है जिसमें आपके scripts write करते हैं।

जिसकी जगह लेता है वह flat text output से project state reconstruct करने का mental overhead है। सवाल जो Beadbox एक नज़र में answer करता है, और CLI सिर्फ composed queries से:

  • यह epic actually कहाँ तक पहुँचा?
  • अभी क्या blocked है, और किस पर?
  • कौन सी subtasks को घंटों से छुआ नहीं गया?
  • Agents progress कर रहे हैं, या stall हो गए?

ये visual सवाल हैं। Visual answers deserve करते हैं।

शुरू करें

Beadbox beta में free है। Homebrew से install करें:

brew tap beadbox/cask && brew install --cask beadbox

अगर पहले से beads use करते हैं, Beadbox launch पर आपके .beads/ workspaces detect करता है। कोई import नहीं, कोई account नहीं। App खोलें, epic expand करें, और देखें आपका project actually कहाँ खड़ा है।

macOS, Linux, और Windows पर चलता है।