opencode-beads 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,242 @@
1
+ # bd daemons - Daemon Management
2
+
3
+ Manage bd daemon processes across all repositories and worktrees.
4
+
5
+ ## Synopsis
6
+
7
+ ```bash
8
+ bd daemons <subcommand> [flags]
9
+ ```
10
+
11
+ ## Description
12
+
13
+ The `bd daemons` command provides tools for discovering, monitoring, and managing multiple bd daemon processes across your system. This is useful when working with multiple repositories or git worktrees.
14
+
15
+ ## Subcommands
16
+
17
+ ### list
18
+
19
+ List all running bd daemons with metadata.
20
+
21
+ ```bash
22
+ bd daemons list [--search DIRS] [--json] [--no-cleanup]
23
+ ```
24
+
25
+ **Flags:**
26
+ - `--search` - Directories to search for daemons (default: home, /tmp, cwd)
27
+ - `--json` - Output in JSON format
28
+ - `--no-cleanup` - Skip auto-cleanup of stale sockets
29
+
30
+ **Example:**
31
+ ```bash
32
+ bd daemons list
33
+ bd daemons list --search /Users/me/projects --json
34
+ ```
35
+
36
+ ### health
37
+
38
+ Check health of all bd daemons and report issues.
39
+
40
+ ```bash
41
+ bd daemons health [--search DIRS] [--json]
42
+ ```
43
+
44
+ Reports:
45
+ - Stale sockets (dead processes)
46
+ - Version mismatches between daemon and CLI
47
+ - Unresponsive daemons
48
+
49
+ **Flags:**
50
+ - `--search` - Directories to search for daemons
51
+ - `--json` - Output in JSON format
52
+
53
+ **Example:**
54
+ ```bash
55
+ bd daemons health
56
+ bd daemons health --json
57
+ ```
58
+
59
+ ### stop
60
+
61
+ Stop a specific daemon gracefully.
62
+
63
+ ```bash
64
+ bd daemons stop <workspace-path|pid> [--json]
65
+ ```
66
+
67
+ **Arguments:**
68
+ - `<workspace-path|pid>` - Workspace path or PID of daemon to stop
69
+
70
+ **Flags:**
71
+ - `--json` - Output in JSON format
72
+
73
+ **Example:**
74
+ ```bash
75
+ bd daemons stop /Users/me/projects/myapp
76
+ bd daemons stop 12345
77
+ bd daemons stop /Users/me/projects/myapp --json
78
+ ```
79
+
80
+ ### restart
81
+
82
+ Restart a specific daemon gracefully.
83
+
84
+ ```bash
85
+ bd daemons restart <workspace-path|pid> [--search DIRS] [--json]
86
+ ```
87
+
88
+ Stops the daemon gracefully, then starts a new one in its place. Useful after upgrading bd or when a daemon needs to be refreshed.
89
+
90
+ **Arguments:**
91
+ - `<workspace-path|pid>` - Workspace path or PID of daemon to restart
92
+
93
+ **Flags:**
94
+ - `--search` - Directories to search for daemons
95
+ - `--json` - Output in JSON format
96
+
97
+ **Example:**
98
+ ```bash
99
+ bd daemons restart /Users/me/projects/myapp
100
+ bd daemons restart 12345
101
+ bd daemons restart /Users/me/projects/myapp --json
102
+ ```
103
+
104
+ ### logs
105
+
106
+ View logs for a specific daemon.
107
+
108
+ ```bash
109
+ bd daemons logs <workspace-path|pid> [-f] [-n LINES] [--json]
110
+ ```
111
+
112
+ **Arguments:**
113
+ - `<workspace-path|pid>` - Workspace path or PID of daemon
114
+
115
+ **Flags:**
116
+ - `-f, --follow` - Follow log output (like tail -f)
117
+ - `-n, --lines INT` - Number of lines to show from end (default: 50)
118
+ - `--json` - Output in JSON format
119
+
120
+ **Example:**
121
+ ```bash
122
+ bd daemons logs /Users/me/projects/myapp
123
+ bd daemons logs 12345 -n 100
124
+ bd daemons logs /Users/me/projects/myapp -f
125
+ bd daemons logs 12345 --json
126
+ ```
127
+
128
+ ### killall
129
+
130
+ Stop all running bd daemons.
131
+
132
+ ```bash
133
+ bd daemons killall [--search DIRS] [--force] [--json]
134
+ ```
135
+
136
+ Uses escalating shutdown strategy:
137
+ 1. RPC shutdown (2 second timeout)
138
+ 2. SIGTERM (3 second timeout)
139
+ 3. SIGKILL (1 second timeout)
140
+
141
+ **Flags:**
142
+ - `--search` - Directories to search for daemons
143
+ - `--force` - Use SIGKILL immediately if graceful shutdown fails
144
+ - `--json` - Output in JSON format
145
+
146
+ **Example:**
147
+ ```bash
148
+ bd daemons killall
149
+ bd daemons killall --force
150
+ bd daemons killall --json
151
+ ```
152
+
153
+ ## Common Use Cases
154
+
155
+ ### Version Upgrade
156
+
157
+ After upgrading bd, restart all daemons to use the new version:
158
+
159
+ ```bash
160
+ bd daemons health # Check for version mismatches
161
+ bd daemons killall # Stop all old daemons
162
+ # Daemons will auto-start with new version on next bd command
163
+
164
+ # Or restart a specific daemon
165
+ bd daemons restart /path/to/workspace
166
+ ```
167
+
168
+ ### Debugging
169
+
170
+ Check daemon status and view logs:
171
+
172
+ ```bash
173
+ bd daemons list
174
+ bd daemons health
175
+ bd daemons logs /path/to/workspace -n 100
176
+ ```
177
+
178
+ ### Cleanup
179
+
180
+ Remove stale daemon sockets:
181
+
182
+ ```bash
183
+ bd daemons list # Auto-cleanup happens by default
184
+ bd daemons list --no-cleanup # Skip cleanup
185
+ ```
186
+
187
+ ### Multi-Workspace Management
188
+
189
+ Discover daemons in specific directories:
190
+
191
+ ```bash
192
+ bd daemons list --search /Users/me/projects
193
+ bd daemons health --search /Users/me/work
194
+ ```
195
+
196
+ ## Troubleshooting
197
+
198
+ ### Stale Sockets
199
+
200
+ If you see stale sockets (dead process but socket file exists):
201
+
202
+ ```bash
203
+ bd daemons list # Auto-cleanup removes stale sockets
204
+ ```
205
+
206
+ ### Version Mismatch
207
+
208
+ If daemon version != CLI version:
209
+
210
+ ```bash
211
+ bd daemons health # Identify mismatched daemons
212
+ bd daemons killall # Stop all daemons
213
+ # Next bd command will auto-start new version
214
+ ```
215
+
216
+ ### Daemon Won't Stop
217
+
218
+ If graceful shutdown fails:
219
+
220
+ ```bash
221
+ bd daemons killall --force # Force kill with SIGKILL
222
+ ```
223
+
224
+ ### Can't Find Daemon
225
+
226
+ If daemon isn't discovered:
227
+
228
+ ```bash
229
+ bd daemons list --search /path/to/workspace
230
+ ```
231
+
232
+ Or check the socket manually:
233
+
234
+ ```bash
235
+ ls -la /path/to/workspace/.beads/bd.sock
236
+ ```
237
+
238
+ ## See Also
239
+
240
+ - [bd daemon](daemon.md) - Start a daemon manually
241
+ - [AGENTS.md](../AGENTS.md) - Agent workflow guide
242
+ - [README.md](../README.md) - Main documentation
@@ -0,0 +1,32 @@
1
+ ---
2
+ description: Delete issues and clean up references
3
+ argument-hint: [issue-ids...] [--force]
4
+ ---
5
+
6
+ Delete one or more issues and clean up all references.
7
+
8
+ ## Safety Features
9
+
10
+ - **Preview mode**: Default shows what would be deleted
11
+ - **--force**: Required to actually delete
12
+ - **--dry-run**: Preview collision detection
13
+ - **Dependency checks**: Fails if issue has dependents (unless --cascade or --force)
14
+
15
+ ## Batch Deletion
16
+
17
+ - Delete multiple: `bd delete bd-1 bd-2 bd-3 --force`
18
+ - Delete from file: `bd delete --from-file deletions.txt --force`
19
+
20
+ ## Dependency Handling
21
+
22
+ - **Default**: Fails if issue has dependents not in deletion set
23
+ - **--cascade**: Recursively delete all dependent issues
24
+ - **--force**: Delete and orphan dependents
25
+
26
+ ## What Gets Deleted
27
+
28
+ 1. All dependency links (any type, both directions)
29
+ 2. Text references updated to "[deleted:ID]" in connected issues
30
+ 3. Issue removed from database
31
+
32
+ This operation cannot be undone. Use with caution!
@@ -0,0 +1,101 @@
1
+ ---
2
+ description: Manage dependencies between issues
3
+ argument-hint: [command] [from-id] [to-id]
4
+ ---
5
+
6
+ Manage dependencies between beads issues.
7
+
8
+ ## Available Commands
9
+
10
+ - **add**: Add a dependency between issues
11
+ - $1: "add"
12
+ - $2: From issue ID
13
+ - $3: To issue ID
14
+ - $4: Dependency type (blocks, related, parent-child, discovered-from)
15
+
16
+ - **remove**: Remove a dependency
17
+ - $1: "remove"
18
+ - $2: From issue ID
19
+ - $3: To issue ID
20
+
21
+ - **tree**: Show dependency tree for an issue
22
+ - $1: "tree"
23
+ - $2: Issue ID
24
+ - Flags:
25
+ - `--reverse`: Show dependent tree (what was discovered from this) instead of dependency tree (what blocks this)
26
+ - `--format mermaid`: Output as Mermaid.js flowchart (renders in GitHub/GitLab markdown)
27
+ - `--json`: Output as JSON
28
+ - `--max-depth N`: Limit tree depth (default: 50)
29
+ - `--show-all-paths`: Show all paths (no deduplication for diamond dependencies)
30
+
31
+ - **cycles**: Detect dependency cycles
32
+
33
+ ## Dependency Types
34
+
35
+ - **blocks**: Hard blocker (from blocks to) - affects ready queue
36
+ - **related**: Soft relationship - for context only
37
+ - **parent-child**: Epic/subtask relationship
38
+ - **discovered-from**: Track issues found during work
39
+
40
+ ## Mermaid Format
41
+
42
+ The `--format mermaid` option outputs the dependency tree as a Mermaid.js flowchart:
43
+
44
+ **Example:**
45
+ ```bash
46
+ bd dep tree bd-1 --format mermaid
47
+ ```
48
+
49
+ Output can be embedded in markdown:
50
+
51
+ ````markdown
52
+ ```mermaid
53
+ flowchart TD
54
+ bd-1["◧ bd-1: Main task"]
55
+ bd-2["☑ bd-2: Subtask"]
56
+
57
+ bd-1 --> bd-2
58
+ ```
59
+ ````
60
+
61
+ **Status Indicators:**
62
+
63
+ Each node includes a symbol indicator for quick visual status identification:
64
+
65
+ - ☐ **Open** - Not started yet (empty checkbox)
66
+ - ◧ **In Progress** - Currently being worked on (half-filled box)
67
+ - ⚠ **Blocked** - Waiting on something (warning sign)
68
+ - ☑ **Closed** - Completed! (checked checkbox)
69
+
70
+ The diagram colors are determined by your Mermaid theme (default, dark, forest, neutral, or base). Mermaid diagrams render natively in GitHub, GitLab, VSCode markdown preview, and can be imported to Miro.
71
+
72
+ ## Examples
73
+
74
+ - `bd dep add bd-10 bd-20 --type blocks`: bd-10 blocks bd-20
75
+ - `bd dep tree bd-20`: Show what blocks bd-20 (dependency tree going UP)
76
+ - `bd dep tree bd-1 --reverse`: Show what was discovered from bd-1 (dependent tree going DOWN)
77
+ - `bd dep tree bd-1 --reverse --max-depth 3`: Show discovery tree with depth limit
78
+ - `bd dep tree bd-20 --format mermaid > tree.md`: Generate Mermaid diagram for documentation
79
+ - `bd dep cycles`: Check for circular dependencies
80
+
81
+ ## Reverse Mode: Discovery Trees
82
+
83
+ The `--reverse` flag inverts the tree direction to show **dependents** instead of **dependencies**:
84
+
85
+ **Normal mode** (`bd dep tree ISSUE`):
86
+ - Shows what blocks you (dependency tree)
87
+ - Answers: "What must I complete before I can work on this?"
88
+ - Tree flows **UP** toward prerequisites
89
+
90
+ **Reverse mode** (`bd dep tree ISSUE --reverse`):
91
+ - Shows what was discovered from you (dependent tree)
92
+ - Answers: "What work was discovered while working on this?"
93
+ - Tree flows **DOWN** from goal to discovered tasks
94
+ - Perfect for visualizing work breakdown and discovery chains
95
+
96
+ **Use Cases:**
97
+ - Document project evolution and how work expanded from initial goal
98
+ - Share "how we got here" context with stakeholders
99
+ - Visualize work breakdown structure from epics
100
+ - Track discovery chains (what led to what)
101
+ - Show yak shaving journeys in retrospectives
@@ -0,0 +1,26 @@
1
+ ---
2
+ description: Epic management commands
3
+ argument-hint: [command]
4
+ ---
5
+
6
+ Manage epics (large features composed of multiple issues).
7
+
8
+ ## Available Commands
9
+
10
+ - **status**: Show epic completion status
11
+ - Shows progress for each epic
12
+ - Lists child issues and their states
13
+ - Calculates completion percentage
14
+
15
+ - **close-eligible**: Close epics where all children are complete
16
+ - Automatically closes epics when all child issues are done
17
+ - Useful for bulk epic cleanup
18
+
19
+ ## Epic Workflow
20
+
21
+ 1. Create epic: `bd create "Large Feature" -t epic -p 1`
22
+ 2. Link subtasks: `bd dep add bd-10 bd-20 --type parent-child` (epic bd-10 is parent of task bd-20)
23
+ 3. Track progress: `bd epic status`
24
+ 4. Auto-close when done: `bd epic close-eligible`
25
+
26
+ Epics use parent-child dependencies to track subtasks.
@@ -0,0 +1,24 @@
1
+ ---
2
+ description: Export issues to JSONL format
3
+ argument-hint: [-o output-file]
4
+ ---
5
+
6
+ Export all issues to JSON Lines format (one JSON object per line).
7
+
8
+ ## Usage
9
+
10
+ - **To stdout**: `bd export`
11
+ - **To file**: `bd export -o issues.jsonl`
12
+ - **Filter by status**: `bd export --status open`
13
+
14
+ Issues are sorted by ID for consistent diffs, making git diffs readable.
15
+
16
+ ## Automatic Export
17
+
18
+ The daemon automatically exports to `.beads/issues.jsonl` after any CRUD operation (5-second debounce). Manual export is rarely needed unless you need a custom output location or filtered export.
19
+
20
+ Export is used for:
21
+ - Git version control
22
+ - Backup
23
+ - Sharing issues between repositories
24
+ - Data migration
@@ -0,0 +1,36 @@
1
+ ---
2
+ description: Import issues from JSONL format
3
+ argument-hint: [-i input-file]
4
+ ---
5
+
6
+ Import issues from JSON Lines format (one JSON object per line).
7
+
8
+ ## Usage
9
+
10
+ - **From stdin**: `bd import` (reads from stdin)
11
+ - **From file**: `bd import -i issues.jsonl`
12
+ - **Preview**: `bd import -i issues.jsonl --dry-run`
13
+
14
+ ## Behavior
15
+
16
+ - **Existing issues** (same ID): Updated with new data
17
+ - **New issues**: Created
18
+ - **Same-ID scenarios**: With hash-based IDs (v0.20.1+), same ID = same issue being updated (not a collision)
19
+
20
+ ## Preview Changes
21
+
22
+ Use `--dry-run` to see what will change before importing:
23
+
24
+ ```bash
25
+ bd import -i issues.jsonl --dry-run
26
+ # Shows: new issues, updates, exact matches
27
+ ```
28
+
29
+ ## Automatic Import
30
+
31
+ The daemon automatically imports from `.beads/issues.jsonl` when it's newer than the database (e.g., after `git pull`). Manual import is rarely needed.
32
+
33
+ ## Options
34
+
35
+ - **--skip-existing**: Skip updates to existing issues
36
+ - **--strict**: Fail on dependency errors instead of warnings
@@ -0,0 +1,18 @@
1
+ ---
2
+ description: Initialize beads in the current project
3
+ argument-hint: [prefix]
4
+ ---
5
+
6
+ Initialize beads issue tracking in the current directory.
7
+
8
+ If a prefix is provided as $1, use it as the issue prefix (e.g., "myproject" creates issues like myproject-1, myproject-2). If not provided, the default is the current directory name.
9
+
10
+ Use the beads MCP `init` tool with the prefix parameter (if provided) to set up a new beads database.
11
+
12
+ After initialization:
13
+ 1. Show the database location
14
+ 2. Show the issue prefix that will be used
15
+ 3. Explain the basic workflow (or suggest running `/bd-workflow`)
16
+ 4. Suggest creating the first issue with `/bd-create`
17
+
18
+ If beads is already initialized, inform the user and show project stats using the `stats` tool.
@@ -0,0 +1,33 @@
1
+ ---
2
+ description: Manage issue labels
3
+ argument-hint: [command] [issue-id] [label]
4
+ ---
5
+
6
+ Manage labels on beads issues. Labels provide flexible cross-cutting metadata beyond structured fields (status, priority, type).
7
+
8
+ ## Available Commands
9
+
10
+ - **add**: Add a label to an issue
11
+ - $1: "add"
12
+ - $2: Issue ID
13
+ - $3: Label name
14
+
15
+ - **remove**: Remove a label from an issue
16
+ - $1: "remove"
17
+ - $2: Issue ID
18
+ - $3: Label name
19
+
20
+ - **list**: List labels on a specific issue
21
+ - $1: "list"
22
+ - $2: Issue ID
23
+
24
+ - **list-all**: Show all labels used across all issues
25
+
26
+ ## Common Label Use Cases
27
+
28
+ - Technical scope: `backend`, `frontend`, `api`, `database`
29
+ - Quality gates: `needs-review`, `needs-tests`, `security-review`
30
+ - Effort sizing: `quick-win`, `complex`, `spike`
31
+ - Context: `technical-debt`, `documentation`, `performance`
32
+
33
+ Use `bd label add <issue-id> <label>` to tag issues with contextual metadata.
@@ -0,0 +1,64 @@
1
+ ---
2
+ description: List issues with optional filters
3
+ argument-hint: [--status] [--priority] [--type] [--assignee] [--label]
4
+ ---
5
+
6
+ List beads issues with optional filtering.
7
+
8
+ ## Basic Filters
9
+
10
+ - **--status, -s**: Filter by status (open, in_progress, blocked, closed)
11
+ - **--priority, -p**: Filter by priority (0-4: 0=critical, 1=high, 2=medium, 3=low, 4=backlog)
12
+ - **--type, -t**: Filter by type (bug, feature, task, epic, chore)
13
+ - **--assignee, -a**: Filter by assignee
14
+ - **--label, -l**: Filter by labels (comma-separated, must have ALL labels)
15
+ - **--label-any**: Filter by labels (OR semantics, must have AT LEAST ONE)
16
+ - **--title**: Filter by title text (case-insensitive substring match)
17
+ - **--limit, -n**: Limit number of results
18
+
19
+ ## Advanced Filters
20
+
21
+ ### Pattern Matching
22
+ - **--title-contains**: Search for text in title (case-insensitive)
23
+ - **--desc-contains**: Search for text in description (case-insensitive)
24
+ - **--notes-contains**: Search for text in notes (case-insensitive)
25
+
26
+ ### Date Ranges
27
+ - **--created-after**: Issues created after date (YYYY-MM-DD or ISO 8601)
28
+ - **--created-before**: Issues created before date
29
+ - **--updated-after**: Issues updated after date
30
+ - **--updated-before**: Issues updated before date
31
+ - **--closed-after**: Issues closed after date
32
+ - **--closed-before**: Issues closed before date
33
+
34
+ ### Priority Range
35
+ - **--priority-min**: Minimum priority (inclusive)
36
+ - **--priority-max**: Maximum priority (inclusive)
37
+
38
+ ### Empty/Null Checks
39
+ - **--empty-description**: Find issues with no description
40
+ - **--no-assignee**: Find unassigned issues
41
+ - **--no-labels**: Find issues with no labels
42
+
43
+ ## Examples
44
+
45
+ ### Basic Usage
46
+ - `bd list --status open --priority 1`: High priority open issues
47
+ - `bd list --type bug --assignee alice`: Alice's assigned bugs
48
+ - `bd list --label backend,needs-review`: Backend issues needing review
49
+ - `bd list --title "auth"`: Issues with "auth" in the title
50
+
51
+ ### Advanced Usage
52
+ - `bd list --title-contains "auth" --status open`: Search open issues for auth-related work
53
+ - `bd list --priority-min 0 --priority-max 1`: Critical and high priority issues only
54
+ - `bd list --created-after 2025-01-01 --status open`: Recent open issues
55
+ - `bd list --empty-description --status open`: Open issues missing descriptions
56
+ - `bd list --no-assignee --priority 1`: High priority unassigned work
57
+ - `bd list --desc-contains "TODO" --notes-contains "review"`: Find items needing attention
58
+
59
+ ## Output Formats
60
+
61
+ - Default: Human-readable table
62
+ - `--json`: JSON format for scripting
63
+ - `--format digraph`: Graph format for golang.org/x/tools/cmd/digraph
64
+ - `--format dot`: Graphviz DOT format
@@ -0,0 +1,7 @@
1
+ Load AI-optimized workflow context for beads issue tracking.
2
+
3
+ Outputs essential beads workflow rules and command reference to help agents remember to use bd instead of markdown TODOs after context compaction.
4
+
5
+ ```bash
6
+ bd prime
7
+ ```
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: Quick start guide for bd workflows
3
+ argument-hint: []
4
+ ---
5
+
6
+ Display a quick start guide showing common bd workflows and patterns.
7
+
8
+ Use `bd quickstart` to see:
9
+ - Getting started with bd
10
+ - Common workflow patterns
11
+ - Basic commands
12
+ - Dependency management
13
+ - Git integration
14
+
15
+ This is an interactive tutorial that walks through the essential bd commands and concepts for new users.
16
+
17
+ No arguments needed - just run `bd quickstart` to see the full guide.
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Find ready-to-work tasks with no blockers
3
+ ---
4
+
5
+ Use the beads MCP server to find tasks that are ready to work on (no blocking dependencies).
6
+
7
+ Call the `ready` tool to get a list of unblocked issues. Then present them to the user in a clear format showing:
8
+ - Issue ID
9
+ - Title
10
+ - Priority
11
+ - Issue type
12
+
13
+ If there are ready tasks, ask the user which one they'd like to work on. If they choose one, use the `update` tool to set its status to `in_progress`.
14
+
15
+ If there are no ready tasks, suggest checking `blocked` issues or creating a new issue with the `create` tool.
@@ -0,0 +1,24 @@
1
+ ---
2
+ description: Rename the issue prefix for all issues
3
+ argument-hint: <new-prefix> [--dry-run]
4
+ ---
5
+
6
+ Rename the issue prefix for all issues in the database.
7
+
8
+ Updates all issue IDs and all text references across all fields.
9
+
10
+ ## Prefix Rules
11
+
12
+ - Max length: 8 characters
13
+ - Allowed: lowercase letters, numbers, hyphens
14
+ - Must start with a letter
15
+ - Must end with a hyphen (e.g., 'kw-', 'work-')
16
+
17
+ ## Usage
18
+
19
+ - **Preview**: `bd rename-prefix kw- --dry-run`
20
+ - **Apply**: `bd rename-prefix kw-`
21
+
22
+ Example: Rename from 'knowledge-work-' to 'kw-'
23
+
24
+ All dependencies and text references are automatically updated.
@@ -0,0 +1,22 @@
1
+ ---
2
+ description: Reopen closed issues
3
+ argument-hint: [issue-ids...] [--reason]
4
+ ---
5
+
6
+ Reopen one or more closed issues.
7
+
8
+ Sets status to 'open' and clears the closed_at timestamp. Emits a Reopened event.
9
+
10
+ ## Usage
11
+
12
+ - **Reopen single**: `bd reopen bd-42`
13
+ - **Reopen multiple**: `bd reopen bd-42 bd-43 bd-44`
14
+ - **With reason**: `bd reopen bd-42 --reason "Found regression"`
15
+
16
+ More explicit than `bd update --status open` - specifically designed for reopening workflow.
17
+
18
+ Common reasons for reopening:
19
+ - Regression found
20
+ - Requirements changed
21
+ - Incomplete implementation
22
+ - New information discovered