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 +10 -2
- package/package.json +1 -1
- package/src/vendor.ts +6 -3
- package/vendor/commands/create.md +1 -1
- package/vendor/commands/daemon.md +5 -5
- package/vendor/commands/decision.md +111 -0
- package/vendor/commands/init.md +2 -2
- package/vendor/commands/list.md +1 -1
- package/vendor/commands/search.md +1 -1
- package/vendor/commands/stats.md +3 -3
- package/vendor/commands/version.md +1 -1
- package/vendor/commands/workflow.md +11 -11
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
|
|
19
|
+
"plugin": ["opencode-beads"]
|
|
20
20
|
}
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Restart OpenCode and you're ready to go.
|
|
24
24
|
|
|
25
|
-
|
|
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
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
|
-
**
|
|
89
|
+
**IMPORTANT:** There is no \`bd\` tool in this environment. You must use the \`bash\` tool to run the \`bd\` command.
|
|
90
90
|
|
|
91
|
-
|
|
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 = `
|
|
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: [
|
|
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
|
|
43
|
-
- **Stop**: `bd daemon
|
|
44
|
-
- **Status**: `bd daemon
|
|
45
|
-
- **Health**: `bd daemon --
|
|
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`)
|
package/vendor/commands/init.md
CHANGED
|
@@ -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 `/
|
|
16
|
-
4. Suggest creating the first issue with `/
|
|
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.
|
package/vendor/commands/list.md
CHANGED
|
@@ -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)
|
package/vendor/commands/stats.md
CHANGED
|
@@ -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 `/
|
|
16
|
-
- No in_progress work? Run `/
|
|
17
|
-
- Many open issues? Consider prioritizing with `/
|
|
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 `/
|
|
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: `/
|
|
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: `/
|
|
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: `/
|
|
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 `/
|
|
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
|
-
- `/
|
|
47
|
-
- `/
|
|
48
|
-
- `/
|
|
49
|
-
- `/
|
|
50
|
-
- `/
|
|
51
|
-
- `/
|
|
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:
|