opencode-beads 0.4.0 → 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 +1 -1
- package/package.json +1 -1
- package/vendor/commands/create.md +1 -1
- package/vendor/commands/decision.md +111 -0
- package/vendor/commands/list.md +1 -1
- package/vendor/commands/search.md +1 -1
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -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:
|
|
@@ -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/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)
|