opencode-beads 0.3.2 → 0.5.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.
package/README.md CHANGED
@@ -16,13 +16,21 @@ Add to your OpenCode config (`~/.config/opencode/opencode.json`):
16
16
 
17
17
  ```json
18
18
  {
19
- "plugin": ["opencode-beads@0.3.2"]
19
+ "plugin": ["opencode-beads"]
20
20
  }
21
21
  ```
22
22
 
23
23
  Restart OpenCode and you're ready to go.
24
24
 
25
- Pin to a specific version to ensure updates work correctly - OpenCode's lockfile won't re-resolve unpinned versions. To upgrade, change the version and restart.
25
+ Optionally, pin to a specific version for stability:
26
+
27
+ ```json
28
+ {
29
+ "plugin": ["opencode-beads@0.5.0"]
30
+ }
31
+ ```
32
+
33
+ OpenCode fetches unpinned plugins from npm on each startup; pinned versions are cached and require a manual version bump to update.
26
34
 
27
35
  ## Features
28
36
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-beads",
3
- "version": "0.3.2",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "A plugin for OpenCode that provides integration with the beads issue tracker.",
6
6
  "author": "Josh Thomas <josh@joshthomas.dev>",
package/src/vendor.ts CHANGED
@@ -86,9 +86,12 @@ async function listVendorFiles(relativePath: string): Promise<string[]> {
86
86
 
87
87
  const BEADS_CLI_USAGE = `## CLI Usage
88
88
 
89
- **Note:** Beads MCP tools are not available in this environment. Use the \`bd\` CLI via bash instead. MCP tool names map directly to \`bd\` commands.
89
+ **IMPORTANT:** There is no \`bd\` tool in this environment. You must use the \`bash\` tool to run the \`bd\` command.
90
90
 
91
- Use the \`bd\` CLI via bash for beads operations:
91
+ **Do not try to call a tool named \`bd\` directly.** It does not exist.
92
+ **Do not try to call MCP tools (like \`ready\`, \`create\`) directly.** They do not exist.
93
+
94
+ Instead, use the \`bash\` tool for all beads operations:
92
95
 
93
96
  - \`bd init [prefix]\` - Initialize beads
94
97
  - \`bd ready --json\` - List ready tasks
@@ -180,7 +183,7 @@ export async function loadCommands(): Promise<Config["command"]> {
180
183
  const parsed = parseMarkdownWithFrontmatter(content);
181
184
  if (!parsed) continue;
182
185
 
183
- const name = `bd-${file.replace(".md", "")}`;
186
+ const name = `beads:${file.replace(".md", "")}`;
184
187
 
185
188
  const argHint = parsed.frontmatter["argument-hint"];
186
189
  const baseDescription = parsed.frontmatter.description ?? name;
@@ -5,7 +5,7 @@ argument-hint: [title] [type] [priority]
5
5
 
6
6
  Create a new beads issue. If arguments are provided:
7
7
  - $1: Issue title
8
- - $2: Issue type (bug, feature, task, epic, chore)
8
+ - $2: Issue type (bug, feature, task, epic, chore, decision)
9
9
  - $3: Priority (0-4, where 0=critical, 4=backlog)
10
10
 
11
11
  If arguments are missing, ask the user for:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Manage background sync daemon
3
- argument-hint: [--start] [--stop] [--status] [--health]
3
+ argument-hint: [start] [stop] [status]
4
4
  ---
5
5
 
6
6
  Manage the per-project background daemon that handles database connections and syncs with git.
@@ -39,10 +39,10 @@ Each project runs its own daemon at `.beads/bd.sock` for complete database isola
39
39
 
40
40
  ## Common Operations
41
41
 
42
- - **Start**: `bd daemon --start` (or auto-starts on first `bd` command)
43
- - **Stop**: `bd daemon --stop`
44
- - **Status**: `bd daemon --status`
45
- - **Health**: `bd daemon --health` - shows uptime, cache stats, performance metrics
42
+ - **Start**: `bd daemon start` (or auto-starts on first `bd` command)
43
+ - **Stop**: `bd daemon stop`
44
+ - **Status**: `bd daemon status`
45
+ - **Health**: `bd daemon status --all` - shows uptime, cache stats, performance metrics
46
46
  - **Metrics**: `bd daemon --metrics` - detailed operational telemetry
47
47
 
48
48
  ## Sync Options
@@ -0,0 +1,111 @@
1
+ ---
2
+ description: Record, list, and manage project decisions with rationale tracking
3
+ argument-hint: record|list|show|supersede
4
+ ---
5
+
6
+ Record and track project decisions as beads issues with structured rationale, alternatives considered, and links to affected work.
7
+
8
+ Decisions use `--type decision`. The description field holds the structured decision record.
9
+
10
+ ## Record a Decision
11
+
12
+ When the user wants to record a decision (or you invoke `bd decision record`):
13
+
14
+ 1. Gather the following (ask if not provided):
15
+ - **Title**: Short summary of what was decided (required)
16
+ - **Rationale**: Why this was chosen (required)
17
+ - **Alternatives**: What else was considered (optional but encouraged)
18
+ - **Affects**: Issue IDs this decision impacts (optional)
19
+ - **Priority**: How important (default P2)
20
+
21
+ 2. Create the issue with structured description:
22
+
23
+ ```bash
24
+ bd create "<title>" --type decision \
25
+ --description "$(cat <<'EOF'
26
+ ## Decision
27
+
28
+ <one-sentence summary of what was decided>
29
+
30
+ ## Rationale
31
+
32
+ <why this was chosen>
33
+
34
+ ## Alternatives Considered
35
+
36
+ - **<alt 1>**: <why rejected>
37
+ - **<alt 2>**: <why rejected>
38
+
39
+ ## Affects
40
+
41
+ - <issue IDs or area descriptions>
42
+ EOF
43
+ )"
44
+ ```
45
+
46
+ 3. If `--affects` issue IDs were provided, link them:
47
+ ```bash
48
+ bd dep add <decision-id> <affected-id> --type related
49
+ ```
50
+
51
+ 4. Show the created decision to the user.
52
+
53
+ ## List Decisions
54
+
55
+ ```bash
56
+ bd list --type decision
57
+ ```
58
+
59
+ To see all decisions including closed/superseded:
60
+ ```bash
61
+ bd list --type decision --all
62
+ ```
63
+
64
+ ## Show a Decision
65
+
66
+ ```bash
67
+ bd show <decision-id>
68
+ ```
69
+
70
+ Include comments for discussion history:
71
+ ```bash
72
+ bd comments <decision-id>
73
+ ```
74
+
75
+ ## Supersede a Decision
76
+
77
+ When a decision is replaced by a new one:
78
+
79
+ 1. Record the new decision (as above)
80
+ 2. Link the new decision to the old one:
81
+ ```bash
82
+ bd dep add <new-id> <old-id> --type related
83
+ ```
84
+ 3. Add a comment on the old decision:
85
+ ```bash
86
+ bd comments add <old-id> "Superseded by <new-id>: <brief reason>"
87
+ ```
88
+ 4. Close the old decision:
89
+ ```bash
90
+ bd close <old-id> --reason "Superseded by <new-id>"
91
+ ```
92
+
93
+ ## Add Context to an Existing Decision
94
+
95
+ Use comments to append discussion, implementation notes, or revisit rationale:
96
+ ```bash
97
+ bd comments add <decision-id> "Implementation note: ..."
98
+ ```
99
+
100
+ ## Search Decisions
101
+
102
+ ```bash
103
+ bd search "keyword" --type decision
104
+ ```
105
+
106
+ ## Conventions
107
+
108
+ - **Status**: `open` = active decision, `closed` = superseded or reversed
109
+ - **Description format**: Use the structured template above for consistency
110
+ - **Linking**: Use `related` dependency type to connect decisions to affected issues
111
+ - **Labels**: Use labels for categorizing decisions (e.g., `architecture`, `tooling`, `process`)
@@ -12,7 +12,7 @@ Use the beads MCP `init` tool with the prefix parameter (if provided) to set up
12
12
  After initialization:
13
13
  1. Show the database location
14
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`
15
+ 3. Explain the basic workflow (or suggest running `/beads:workflow`)
16
+ 4. Suggest creating the first issue with `/beads:create`
17
17
 
18
18
  If beads is already initialized, inform the user and show project stats using the `stats` tool.
@@ -9,7 +9,7 @@ List beads issues with optional filtering.
9
9
 
10
10
  - **--status, -s**: Filter by status (open, in_progress, blocked, closed)
11
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)
12
+ - **--type, -t**: Filter by type (bug, feature, task, epic, chore, decision)
13
13
  - **--assignee, -a**: Filter by assignee
14
14
  - **--label, -l**: Filter by labels (comma-separated, must have ALL labels)
15
15
  - **--label-any**: Filter by labels (OR semantics, must have AT LEAST ONE)
@@ -29,7 +29,7 @@ Unlike `bd list`, which requires you to specify which field to search, `bd searc
29
29
 
30
30
  - **--status, -s**: Filter by status (open, in_progress, blocked, closed)
31
31
  - **--assignee, -a**: Filter by assignee
32
- - **--type, -t**: Filter by type (bug, feature, task, epic, chore)
32
+ - **--type, -t**: Filter by type (bug, feature, task, epic, chore, decision)
33
33
  - **--label, -l**: Filter by labels (must have ALL specified labels)
34
34
  - **--label-any**: Filter by labels (must have AT LEAST ONE)
35
35
  - **--limit, -n**: Limit number of results (default: 50)
@@ -12,6 +12,6 @@ Use the beads MCP `stats` tool to retrieve project metrics and present them clea
12
12
  - Recently updated issues
13
13
 
14
14
  Optionally suggest actions based on the stats:
15
- - High number of blocked issues? Run `/bd-blocked` to investigate
16
- - No in_progress work? Run `/bd-ready` to find tasks
17
- - Many open issues? Consider prioritizing with `/bd-update`
15
+ - High number of blocked issues? Run `/beads:blocked` to investigate
16
+ - No in_progress work? Run `/beads:ready` to find tasks
17
+ - Many open issues? Consider prioritizing with `/beads:update`
@@ -19,7 +19,7 @@ Display:
19
19
  - Compatibility status (✓ compatible or ⚠️ update needed)
20
20
 
21
21
  If versions are mismatched, provide instructions:
22
- - Update bd CLI: `curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/install.sh | bash`
22
+ - Update bd CLI: `curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash`
23
23
  - Update plugin: `/plugin update beads`
24
24
  - Restart Claude Code after updating
25
25
 
@@ -9,11 +9,11 @@ Display the beads workflow for AI agents and developers.
9
9
  Beads is an issue tracker designed for AI-supervised coding workflows. Here's how to use it effectively:
10
10
 
11
11
  ## 1. Find Ready Work
12
- Use `/bd-ready` or the `ready` MCP tool to see tasks with no blockers.
12
+ Use `/beads:ready` or the `ready` MCP tool to see tasks with no blockers.
13
13
 
14
14
  ## 2. Claim Your Task
15
15
  Update the issue status to `in_progress`:
16
- - Via command: `/bd-update <id> in_progress`
16
+ - Via command: `/beads:update <id> in_progress`
17
17
  - Via MCP tool: `update` with `status: "in_progress"`
18
18
 
19
19
  ## 3. Work on It
@@ -21,18 +21,18 @@ Implement, test, and document the feature or fix.
21
21
 
22
22
  ## 4. Discover New Work
23
23
  As you work, you'll often find bugs, TODOs, or related work:
24
- - Create issues: `/bd-create` or `create` MCP tool
24
+ - Create issues: `/beads:create` or `create` MCP tool
25
25
  - Link them: Use `dep` MCP tool with `type: "discovered-from"`
26
26
  - This maintains context and work history
27
27
 
28
28
  ## 5. Complete the Task
29
29
  Close the issue when done:
30
- - Via command: `/bd-close <id> "Completed: <summary>"`
30
+ - Via command: `/beads:close <id> "Completed: <summary>"`
31
31
  - Via MCP tool: `close` with reason
32
32
 
33
33
  ## 6. Check What's Unblocked
34
34
  After closing, check if other work became ready:
35
- - Use `/bd-ready` to see newly unblocked tasks
35
+ - Use `/beads:ready` to see newly unblocked tasks
36
36
  - Start the cycle again
37
37
 
38
38
  ## Tips
@@ -43,12 +43,12 @@ After closing, check if other work became ready:
43
43
  - **Git workflow**: After `git pull`, JSONL auto-imports if newer than DB
44
44
 
45
45
  ## Available Commands
46
- - `/bd-ready` - Find unblocked work
47
- - `/bd-create` - Create new issue
48
- - `/bd-show` - Show issue details
49
- - `/bd-update` - Update issue
50
- - `/bd-close` - Close issue
51
- - `/bd-workflow` - Show this guide (you are here!)
46
+ - `/beads:ready` - Find unblocked work
47
+ - `/beads:create` - Create new issue
48
+ - `/beads:show` - Show issue details
49
+ - `/beads:update` - Update issue
50
+ - `/beads:close` - Close issue
51
+ - `/beads:workflow` - Show this guide (you are here!)
52
52
 
53
53
  ## MCP Tools Available
54
54
  Use these via the beads MCP server: