claude-plugin-viban 1.3.11 → 1.3.13
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/.claude-plugin/plugin.json +1 -1
- package/README.md +209 -310
- package/assets/viban.png +0 -0
- package/bin/viban +35 -1488
- package/commands/assign.md +3 -5
- package/package.json +1 -1
- package/scripts/providers/github.sh +8 -0
- package/scripts/sync.sh +118 -21
- package/scripts/sync_create.sh +1 -0
- package/skills/assign/SKILL.md +7 -0
- package/skills/parallel-assign/SKILL.md +7 -0
package/README.md
CHANGED
|
@@ -1,321 +1,286 @@
|
|
|
1
1
|
# viban
|
|
2
2
|
|
|
3
|
-
**Vi**sual Kan**ban**
|
|
3
|
+
**Vi**sual Kan**ban** — Issue tracking designed for AI agents.
|
|
4
4
|
|
|
5
5
|
[](https://github.com/happy-nut/claude-plugin-viban/actions/workflows/ci.yml)
|
|
6
6
|
[](https://www.npmjs.com/package/claude-plugin-viban)
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
|
|
9
|
-

|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **No Worktree Complexity** - Just a single JSON file. No git worktrees, no complex setup.
|
|
14
|
-
- **Lightweight & Fast** - Pure shell script with minimal dependencies. Starts instantly.
|
|
15
|
-
- **Local First** - Your issues stay in your repo. No external services or accounts needed.
|
|
16
|
-
- **AI-Native** - Built for Claude Code integration from the ground up.
|
|
11
|
+
Register bugs. Claude picks them up, resolves them, and creates PRs — while you keep finding the next issue.
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
```bash
|
|
14
|
+
# You find a bug and register it
|
|
15
|
+
/viban:add "Login fails after password reset"
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
# Claude assigns itself the top-priority issue and starts working
|
|
18
|
+
/viban:assign
|
|
21
19
|
|
|
20
|
+
# Or resolve 3 issues in parallel — each in its own git worktree
|
|
21
|
+
/viban:parallel-assign 3
|
|
22
22
|
```
|
|
23
|
-
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
|
|
24
|
-
│ Session 1 │ │ Session 2 │ │ Session 3 │
|
|
25
|
-
│ │ │ │ │ │
|
|
26
|
-
│ Product QA │ │ Issue Work │ │ viban TUI │
|
|
27
|
-
│ + /viban:add │ │ + /viban:assign │ │ │
|
|
28
|
-
│ │ │ │ │ (always open) │
|
|
29
|
-
│ Find bugs, │ │ Pick & resolve │ │ Monitor board │
|
|
30
|
-
│ register issues │ │ issues │ │ in real-time │
|
|
31
|
-
└───────────────────┘ └───────────────────┘ └───────────────────┘
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
- **Session 1**: QA your product, find issues, run `/viban:add` to register them
|
|
35
|
-
- **Session 2**: Run `/viban:assign` to pick the next issue and resolve it
|
|
36
|
-
- **Session 3**: Keep `viban` TUI open to monitor the board
|
|
37
|
-
|
|
38
|
-
This separation keeps your workflow clean and prevents context switching.
|
|
39
|
-
|
|
40
|
-
## Features
|
|
41
23
|
|
|
42
|
-
|
|
43
|
-
- **Priority Levels**: P0 (critical) to P3 (low priority)
|
|
44
|
-
- **Type Tags**: bug, feat, chore, refactor
|
|
45
|
-
- **TUI Navigation**: Interactive terminal UI with gum
|
|
46
|
-
- **Parallel Sessions**: Multiple Claude Code sessions can work simultaneously
|
|
47
|
-
- **Session Assignment**: Prevents duplicate work across parallel agents
|
|
48
|
-
- **Claude Code Integration**: Built-in commands for automated issue resolution
|
|
49
|
-
|
|
50
|
-
## Requirements
|
|
24
|
+
## Why viban?
|
|
51
25
|
|
|
52
|
-
|
|
53
|
-
- python3 (macOS/Linux built-in)
|
|
54
|
-
- [gum](https://github.com/charmbracelet/gum)
|
|
55
|
-
- [jq](https://jqlang.github.io/jq/)
|
|
56
|
-
- [gh](https://cli.github.com/) (optional, for GitHub Issues sync)
|
|
26
|
+
GitHub Issues, Linear, and Jira are built for humans coordinating with humans. viban is built for **humans coordinating with AI agents**.
|
|
57
27
|
|
|
58
|
-
|
|
28
|
+
| | Traditional trackers | viban |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| **Who resolves issues?** | Human developers | AI agents (Claude Code) |
|
|
31
|
+
| **Parallel work** | Manual branch management | Isolated worktrees, zero conflicts |
|
|
32
|
+
| **Where it lives** | External SaaS | Your repo (single JSON file) |
|
|
33
|
+
| **Setup** | Accounts, permissions, integrations | `npm install -g claude-plugin-viban` |
|
|
34
|
+
| **Context switching** | Browser ↔ terminal | Everything in terminal |
|
|
35
|
+
| **Already using GitHub Issues?** | — | Two-way sync included |
|
|
59
36
|
|
|
60
|
-
##
|
|
37
|
+
## Quick Start
|
|
61
38
|
|
|
62
39
|
### For Claude Code Users
|
|
63
40
|
|
|
64
41
|
```bash
|
|
65
|
-
/
|
|
66
|
-
/
|
|
67
|
-
/viban:setup # Installs all dependencies automatically
|
|
42
|
+
/install claude-plugin-viban
|
|
43
|
+
/viban:setup
|
|
68
44
|
```
|
|
69
45
|
|
|
70
46
|
### For Terminal Users
|
|
71
47
|
|
|
72
|
-
```bash
|
|
73
|
-
curl -fsSL https://raw.githubusercontent.com/happy-nut/claude-plugin-viban/main/install.sh | bash
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Or via npm (requires zsh, gum, jq pre-installed):
|
|
77
48
|
```bash
|
|
78
49
|
npm install -g claude-plugin-viban
|
|
79
50
|
```
|
|
80
51
|
|
|
81
|
-
|
|
82
|
-
<summary>Troubleshooting: viban command not found</summary>
|
|
83
|
-
|
|
84
|
-
Add npm global bin to your PATH:
|
|
85
|
-
```bash
|
|
86
|
-
# For zsh
|
|
87
|
-
echo 'export PATH="$PATH:$(npm config get prefix)/bin"' >> ~/.zshrc && source ~/.zshrc
|
|
88
|
-
|
|
89
|
-
# For bash
|
|
90
|
-
echo 'export PATH="$PATH:$(npm config get prefix)/bin"' >> ~/.bashrc && source ~/.bashrc
|
|
91
|
-
```
|
|
92
|
-
</details>
|
|
93
|
-
|
|
94
|
-
## Usage
|
|
95
|
-
|
|
96
|
-
### TUI (Interactive Mode)
|
|
52
|
+
Then start tracking:
|
|
97
53
|
|
|
98
54
|
```bash
|
|
99
|
-
viban
|
|
55
|
+
viban add "Fix login error" "Users cannot login after password reset" P1 bug
|
|
56
|
+
viban add "Add dark mode" P2 feat
|
|
57
|
+
viban # Open TUI board
|
|
100
58
|
```
|
|
101
59
|
|
|
102
|
-
|
|
60
|
+
## How It Works
|
|
103
61
|
|
|
104
|
-
|
|
105
|
-
|-------|--------|----------|
|
|
106
|
-
| 1 | Column List | ↑↓ select, Enter to enter |
|
|
107
|
-
| 2 | Card List | ↑↓ select, Enter for details, `a` to add |
|
|
108
|
-
| 3 | Card Details | Change status, delete |
|
|
62
|
+
### Sequential Mode
|
|
109
63
|
|
|
110
|
-
|
|
111
|
-
- Navigate between backlog, in_progress, review, done columns
|
|
112
|
-
- View issue cards with priority and type badges
|
|
113
|
-
- Create new issues with rich descriptions
|
|
114
|
-
- Move issues between statuses
|
|
115
|
-
- Delete issues
|
|
64
|
+
Run multiple terminal sessions — one for QA, one for resolution, one for monitoring:
|
|
116
65
|
|
|
117
|
-
|
|
66
|
+

|
|
118
67
|
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
viban assign
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
viban sync # Sync with external tracker
|
|
130
|
-
viban migrate # Migrate: extract type from title
|
|
131
|
-
viban update # Update to latest version
|
|
132
|
-
viban help # Show help message
|
|
68
|
+
```
|
|
69
|
+
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
|
|
70
|
+
│ Session 1 │ │ Session 2 │ │ Session 3 │
|
|
71
|
+
│ │ │ │ │ │
|
|
72
|
+
│ Product QA │ │ Issue Work │ │ viban TUI │
|
|
73
|
+
│ + /viban:add │ │ + /viban:assign │ │ │
|
|
74
|
+
│ │ │ │ │ (always open) │
|
|
75
|
+
│ Find bugs, │ │ Pick & resolve │ │ Monitor board │
|
|
76
|
+
│ register issues │ │ issues │ │ in real-time │
|
|
77
|
+
└───────────────────┘ └───────────────────┘ └───────────────────┘
|
|
133
78
|
```
|
|
134
79
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
# Add a high-priority bug
|
|
139
|
-
viban add "Fix login error" "Users cannot login after password reset" P1 bug
|
|
140
|
-
|
|
141
|
-
# Add an issue with file attachments
|
|
142
|
-
viban add "Refactor auth" "Simplify login flow" P2 refactor src/auth.ts src/login.ts
|
|
143
|
-
|
|
144
|
-
# List all issues
|
|
145
|
-
viban list
|
|
146
|
-
|
|
147
|
-
# Assign first backlog issue to current session
|
|
148
|
-
viban assign
|
|
149
|
-
|
|
150
|
-
# Change priority of issue #3
|
|
151
|
-
viban priority 3 P1
|
|
80
|
+
### Parallel Mode
|
|
152
81
|
|
|
153
|
-
|
|
154
|
-
viban done 5
|
|
82
|
+
Resolve multiple issues at once with `/viban:parallel-assign`:
|
|
155
83
|
|
|
156
|
-
|
|
157
|
-
|
|
84
|
+
```
|
|
85
|
+
┌───────────────────┐
|
|
86
|
+
│ Coordinator │ /viban:parallel-assign 3
|
|
87
|
+
│ │
|
|
88
|
+
│ Assigns issues, │──┬──────────────────────────────────────┐
|
|
89
|
+
│ creates worktrees│ │ │
|
|
90
|
+
│ collects results │ ▼ ▼ ▼
|
|
91
|
+
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
92
|
+
│ │ │ Agent 1 │ │ Agent 2 │ │ Agent 3 │
|
|
93
|
+
│ │ │ wt/#12 │ │ wt/#13 │ │ wt/#14 │
|
|
94
|
+
│ │ │ Analyze │ │ Analyze │ │ Analyze │
|
|
95
|
+
│ │ │ Implement│ │ Implement│ │ Implement│
|
|
96
|
+
│ │ │ Commit │ │ Commit │ │ Commit │
|
|
97
|
+
│ Push, create PRs │ └──────────┘ └──────────┘ └──────────┘
|
|
98
|
+
│ Run tests, report│
|
|
99
|
+
└───────────────────┘
|
|
158
100
|
```
|
|
159
101
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
102
|
+
- Each agent works in an isolated git worktree (`.viban/worktrees/{ID}`)
|
|
103
|
+
- Zero interference between agents — no merge conflicts
|
|
104
|
+
- Coordinator pushes branches, creates PRs, and runs tests after all agents finish
|
|
163
105
|
|
|
164
|
-
|
|
106
|
+
## Claude Code Skills
|
|
165
107
|
|
|
166
|
-
|
|
108
|
+
These are the core AI-agent commands. Each one is a Claude Code slash command.
|
|
167
109
|
|
|
168
|
-
|
|
169
|
-
2. Infers priority and type from description
|
|
170
|
-
3. Registers with proper title, description, priority, type
|
|
171
|
-
4. Optionally enters plan mode to design a solution
|
|
110
|
+
### `/viban:add` — Register an issue
|
|
172
111
|
|
|
173
|
-
|
|
174
|
-
- Bug reporting
|
|
175
|
-
- Feature requests
|
|
176
|
-
- Converting free-form descriptions to structured issues
|
|
112
|
+
Analyzes your description and creates a structured issue with proper priority, type, and description.
|
|
177
113
|
|
|
178
|
-
|
|
114
|
+
```
|
|
115
|
+
/viban:add "Search is broken on mobile"
|
|
116
|
+
→ Infers: P1 bug, enriches description, registers to backlog
|
|
117
|
+
```
|
|
179
118
|
|
|
180
|
-
|
|
119
|
+
### `/viban:assign` — Assign and resolve
|
|
181
120
|
|
|
182
|
-
|
|
183
|
-
2. Evaluates description clarity
|
|
184
|
-
3. If unclear, interviews user and enriches the issue description
|
|
121
|
+
Picks the highest-priority unblocked backlog issue, assigns it, and follows your project's workflow to resolve it.
|
|
185
122
|
|
|
186
|
-
|
|
123
|
+
```
|
|
124
|
+
/viban:assign
|
|
125
|
+
→ Picks #7 (P0 bug), analyzes code, implements fix, creates PR
|
|
126
|
+
```
|
|
187
127
|
|
|
188
|
-
|
|
128
|
+
### `/viban:parallel-assign` — Parallel resolution
|
|
189
129
|
|
|
190
|
-
|
|
130
|
+
Assigns N issues (default 3, max 5) and spawns one agent per issue in isolated git worktrees.
|
|
191
131
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
132
|
+
```
|
|
133
|
+
/viban:parallel-assign 3
|
|
134
|
+
→ Assigns #8, #9, #10 — three agents work simultaneously
|
|
135
|
+
→ Each commits on its own branch, coordinator creates PRs
|
|
136
|
+
```
|
|
196
137
|
|
|
197
|
-
|
|
198
|
-
- Batch processing a backlog
|
|
199
|
-
- Parallel agent workflows with zero interference
|
|
200
|
-
- Rapid issue throughput
|
|
138
|
+
### `/viban:setup` — Install and configure
|
|
201
139
|
|
|
202
|
-
|
|
140
|
+
Installs dependencies, detects your project conventions, and generates a workflow file.
|
|
203
141
|
|
|
204
|
-
|
|
142
|
+
## TUI
|
|
205
143
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
4. Interviews for workflow preferences (pipeline depth, issue numbering)
|
|
210
|
-
5. Generates `.viban/workflow.md` for `/viban:assign` to follow
|
|
144
|
+
```bash
|
|
145
|
+
viban # Launch interactive board
|
|
146
|
+
```
|
|
211
147
|
|
|
212
|
-
|
|
148
|
+
3-column Kanban board (backlog → in_progress → review). Completed issues move to history.
|
|
213
149
|
|
|
214
|
-
|
|
150
|
+
| Level | Screen | Controls |
|
|
151
|
+
|-------|--------|----------|
|
|
152
|
+
| 1 | Column List | ↑↓ select, Enter to enter |
|
|
153
|
+
| 2 | Card List | ↑↓ select, Enter for details, `a` to add |
|
|
154
|
+
| 3 | Card Details | Change status, delete |
|
|
215
155
|
|
|
216
|
-
|
|
156
|
+
## CLI Reference
|
|
217
157
|
|
|
218
158
|
```bash
|
|
219
|
-
#
|
|
220
|
-
viban
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
viban
|
|
224
|
-
|
|
225
|
-
#
|
|
226
|
-
|
|
159
|
+
# Board
|
|
160
|
+
viban list # Show board
|
|
161
|
+
viban list --status backlog --priority P0,P1 # Filter
|
|
162
|
+
viban list --type bug --search "auth" # Search
|
|
163
|
+
viban history # Completed issues
|
|
164
|
+
viban stats # Throughput metrics
|
|
165
|
+
viban export [md|html] # Export board
|
|
166
|
+
|
|
167
|
+
# Issues
|
|
168
|
+
viban add "Title" ["Desc"] [P0-P3] [type] [--parent <id>]
|
|
169
|
+
viban edit <id> # Edit in editor
|
|
170
|
+
viban get <id> # JSON details
|
|
171
|
+
viban priority <id> <P0-P3>
|
|
172
|
+
viban comment <id> "msg"
|
|
173
|
+
viban attach <id> <file1> [file2...]
|
|
174
|
+
|
|
175
|
+
# Workflow
|
|
176
|
+
viban assign # Assign top backlog
|
|
177
|
+
viban review [id] # → review
|
|
178
|
+
viban move <id> <status> # → any status
|
|
179
|
+
viban done <id> [--purge] [--dry-run] # → done
|
|
180
|
+
|
|
181
|
+
# Dependencies
|
|
182
|
+
viban link <id> blocks <id>
|
|
183
|
+
viban unlink <id> blocks <id> [--dry-run]
|
|
184
|
+
|
|
185
|
+
# Maintenance
|
|
186
|
+
viban sync # GitHub sync
|
|
187
|
+
viban backup / viban restore [file]
|
|
188
|
+
viban changelog [range]
|
|
189
|
+
viban update
|
|
227
190
|
```
|
|
228
191
|
|
|
229
|
-
>
|
|
192
|
+
<details>
|
|
193
|
+
<summary><strong>GitHub Issues Sync</strong></summary>
|
|
230
194
|
|
|
231
|
-
|
|
195
|
+
Two-way sync with GitHub Issues. Comments, dependencies, and sub-tasks are synced.
|
|
232
196
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
197
|
+
```bash
|
|
198
|
+
viban sync --init # Initialize (auto-detects from git remote)
|
|
199
|
+
viban sync --dry-run # Preview changes
|
|
200
|
+
viban sync # Pull + push
|
|
201
|
+
viban sync --push-new # Push local-only issues to GitHub
|
|
202
|
+
```
|
|
237
203
|
|
|
238
|
-
|
|
204
|
+
**Status mapping:**
|
|
239
205
|
|
|
240
|
-
| viban
|
|
241
|
-
|
|
206
|
+
| viban | GitHub |
|
|
207
|
+
|-------|--------|
|
|
242
208
|
| `backlog` | *(no label)* |
|
|
243
209
|
| `in_progress` | `in-progress` |
|
|
244
210
|
| `review` | `review` |
|
|
245
211
|
| `done` | *(issue closed)* |
|
|
246
212
|
|
|
247
|
-
|
|
213
|
+
Requires [gh CLI](https://cli.github.com/) authenticated with `gh auth login`.
|
|
248
214
|
|
|
249
|
-
|
|
250
|
-
- Repository must have a GitHub remote
|
|
251
|
-
|
|
252
|
-
## Configuration
|
|
253
|
-
|
|
254
|
-
### Data Location (viban.json)
|
|
255
|
-
|
|
256
|
-
viban stores issues in `viban.json` with the following priority:
|
|
215
|
+
</details>
|
|
257
216
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
| 1 | `$VIBAN_DATA_DIR` | Explicit override via environment variable |
|
|
261
|
-
| 2 | `.viban/` | Default (all projects) |
|
|
217
|
+
<details>
|
|
218
|
+
<summary><strong>Issue Templates</strong></summary>
|
|
262
219
|
|
|
263
|
-
|
|
220
|
+
Create `.viban/templates.json` to define defaults per issue type:
|
|
264
221
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
222
|
+
```json
|
|
223
|
+
{
|
|
224
|
+
"bug": {
|
|
225
|
+
"priority": "P1",
|
|
226
|
+
"description": "## Bug Report\n\n**Steps to reproduce:**\n\n**Expected:**\n\n**Actual:**"
|
|
227
|
+
},
|
|
228
|
+
"feat": {
|
|
229
|
+
"priority": "P2",
|
|
230
|
+
"description": "## Feature\n\n**User story:**\n\n**Acceptance criteria:**"
|
|
231
|
+
}
|
|
232
|
+
}
|
|
271
233
|
```
|
|
272
234
|
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
export VIBAN_DATA_DIR="/path/to/shared/data"
|
|
276
|
-
viban list # Uses /path/to/shared/data/viban.json
|
|
277
|
-
```
|
|
235
|
+
Unset fields are filled from the template when the type matches.
|
|
278
236
|
|
|
279
|
-
|
|
237
|
+
</details>
|
|
280
238
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
- Creates `viban.json` with empty issue list
|
|
284
|
-
- No manual setup required
|
|
239
|
+
<details>
|
|
240
|
+
<summary><strong>Configuration</strong></summary>
|
|
285
241
|
|
|
286
|
-
###
|
|
242
|
+
### Data Location
|
|
287
243
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
244
|
+
| Priority | Location | When |
|
|
245
|
+
|----------|----------|------|
|
|
246
|
+
| 1 | `$VIBAN_DATA_DIR` | Explicit override |
|
|
247
|
+
| 2 | `.viban/` | Default |
|
|
248
|
+
|
|
249
|
+
Auto-migrates from legacy `.git/` location.
|
|
293
250
|
|
|
294
251
|
### Priority Levels
|
|
295
252
|
|
|
296
253
|
| Priority | Description |
|
|
297
254
|
|----------|-------------|
|
|
298
|
-
| **P0** | Critical
|
|
299
|
-
| **P1** | High
|
|
300
|
-
| **P2** | Medium
|
|
301
|
-
| **P3** | Low
|
|
255
|
+
| **P0** | Critical — blocks all work |
|
|
256
|
+
| **P1** | High — must do soon |
|
|
257
|
+
| **P2** | Medium — normal priority |
|
|
258
|
+
| **P3** | Low — nice to have |
|
|
302
259
|
|
|
303
260
|
### Type Tags
|
|
304
261
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
262
|
+
`bug` · `feat` · `refactor` · `chore`
|
|
263
|
+
|
|
264
|
+
### Status Flow
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
backlog → in_progress → review → done
|
|
268
|
+
↑ ↑ │
|
|
269
|
+
└───────────┴───────────┘
|
|
270
|
+
(viban move)
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
</details>
|
|
311
274
|
|
|
312
|
-
|
|
275
|
+
<details>
|
|
276
|
+
<summary><strong>Data Structure</strong></summary>
|
|
313
277
|
|
|
314
|
-
Issues are stored in
|
|
278
|
+
Issues are stored in `.viban/viban.json`:
|
|
315
279
|
|
|
316
280
|
```json
|
|
317
281
|
{
|
|
318
|
-
"version":
|
|
282
|
+
"version": 2,
|
|
283
|
+
"next_id": 4,
|
|
319
284
|
"issues": [
|
|
320
285
|
{
|
|
321
286
|
"id": 1,
|
|
@@ -325,115 +290,49 @@ Issues are stored in `viban.json`:
|
|
|
325
290
|
"priority": "P1",
|
|
326
291
|
"type": "bug",
|
|
327
292
|
"assigned_to": "session-abc123",
|
|
328
|
-
"
|
|
329
|
-
"
|
|
293
|
+
"parent_id": null,
|
|
294
|
+
"blocked_by": [3],
|
|
295
|
+
"comments": [
|
|
296
|
+
{"text": "Root cause found", "created_at": "2026-01-23T14:00:00Z"}
|
|
297
|
+
],
|
|
298
|
+
"attachments": [],
|
|
299
|
+
"created_at": "2026-01-23T10:00:00Z",
|
|
300
|
+
"updated_at": "2026-01-23T14:30:00Z"
|
|
330
301
|
}
|
|
331
302
|
]
|
|
332
303
|
}
|
|
333
304
|
```
|
|
334
305
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
Multiple Claude Code sessions can work simultaneously:
|
|
338
|
-
|
|
339
|
-
1. Each session calls `/viban:assign`
|
|
340
|
-
2. Session ID is recorded in `assigned_to` field
|
|
341
|
-
3. Other sessions skip already-assigned issues
|
|
342
|
-
4. Completion moves issue to `review` or `done`
|
|
343
|
-
|
|
344
|
-
This prevents duplicate work and enables parallel agent workflows.
|
|
306
|
+
</details>
|
|
345
307
|
|
|
346
|
-
##
|
|
308
|
+
## Requirements
|
|
347
309
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
│ └── workflows/
|
|
354
|
-
│ ├── ci.yml # CI testing
|
|
355
|
-
│ └── release.yml # NPM publishing
|
|
356
|
-
├── bin/
|
|
357
|
-
│ └── viban # Main TUI/CLI script
|
|
358
|
-
├── commands/
|
|
359
|
-
│ ├── add.md # /viban:add command
|
|
360
|
-
│ ├── assign.md # /viban:assign command
|
|
361
|
-
│ ├── parallel-assign.md # /viban:parallel-assign command
|
|
362
|
-
│ └── setup.md # /viban:setup command
|
|
363
|
-
├── docs/
|
|
364
|
-
│ ├── CLAUDE.md # Claude Code integration guide
|
|
365
|
-
│ └── release.md # Release workflow
|
|
366
|
-
├── scripts/
|
|
367
|
-
│ ├── check-deps.sh # Dependency checker
|
|
368
|
-
│ ├── generate-release-notes.sh # Release notes generator
|
|
369
|
-
│ ├── sync.sh # Core sync engine (provider-agnostic)
|
|
370
|
-
│ ├── sync_create.sh # Sync initialization
|
|
371
|
-
│ ├── providers/
|
|
372
|
-
│ │ └── github.sh # GitHub Issues provider
|
|
373
|
-
│ └── tui_coprocess.py # Persistent Python coprocess for TUI rendering
|
|
374
|
-
├── skills/
|
|
375
|
-
│ ├── add/SKILL.md # /viban:add skill
|
|
376
|
-
│ ├── assign/SKILL.md # /viban:assign skill
|
|
377
|
-
│ ├── parallel-assign/SKILL.md # /viban:parallel-assign skill
|
|
378
|
-
│ └── setup/SKILL.md # /viban:setup skill
|
|
379
|
-
├── tests/
|
|
380
|
-
│ ├── run_all.zsh # Test runner
|
|
381
|
-
│ ├── test_cmd_add.zsh # Add command tests
|
|
382
|
-
│ ├── test_coprocess.zsh # Python coprocess tests
|
|
383
|
-
│ ├── test_install.zsh # Installation tests
|
|
384
|
-
│ ├── test_layout.zsh # TUI layout tests
|
|
385
|
-
│ ├── test_pad_width.zsh # Unicode width tests
|
|
386
|
-
│ ├── test_sort_order.zsh # Sort order tests
|
|
387
|
-
│ ├── test_sync.zsh # Sync engine tests
|
|
388
|
-
│ └── test_sync_auto.zsh # Auto-sync tests
|
|
389
|
-
├── LICENSE # MIT License
|
|
390
|
-
├── package.json # NPM package config
|
|
391
|
-
└── README.md # This file
|
|
392
|
-
```
|
|
310
|
+
- zsh
|
|
311
|
+
- python3 (macOS/Linux built-in)
|
|
312
|
+
- [gum](https://github.com/charmbracelet/gum)
|
|
313
|
+
- [jq](https://jqlang.github.io/jq/)
|
|
314
|
+
- [gh](https://cli.github.com/) (optional, for GitHub sync)
|
|
393
315
|
|
|
394
316
|
## Development
|
|
395
317
|
|
|
396
|
-
### Running Tests
|
|
397
|
-
|
|
398
318
|
```bash
|
|
399
|
-
# Install dependencies
|
|
400
319
|
brew install gum jq
|
|
401
|
-
|
|
402
|
-
# Run the full test suite (8 suites, 39 tests)
|
|
403
|
-
zsh tests/run_all.zsh
|
|
320
|
+
zsh tests/run_all.zsh # 19 suites, 212 tests
|
|
404
321
|
```
|
|
405
322
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
See [docs/release.md](docs/release.md) for the full release workflow.
|
|
409
|
-
|
|
410
|
-
```bash
|
|
411
|
-
# GitHub Actions will automatically publish to npm on tag push
|
|
412
|
-
```
|
|
323
|
+
See [docs/release.md](docs/release.md) for publishing.
|
|
413
324
|
|
|
414
325
|
## Contributing
|
|
415
326
|
|
|
416
|
-
Contributions are welcome! Please:
|
|
417
|
-
|
|
418
327
|
1. Fork the repository
|
|
419
|
-
2. Create a feature branch
|
|
420
|
-
3. Commit your changes
|
|
421
|
-
4.
|
|
422
|
-
5. Open a Pull Request
|
|
328
|
+
2. Create a feature branch
|
|
329
|
+
3. Commit your changes
|
|
330
|
+
4. Open a Pull Request
|
|
423
331
|
|
|
424
332
|
## License
|
|
425
333
|
|
|
426
|
-
MIT
|
|
427
|
-
|
|
428
|
-
## Author
|
|
429
|
-
|
|
430
|
-
**happy-nut**
|
|
431
|
-
|
|
432
|
-
- GitHub: [@happy-nut](https://github.com/happy-nut)
|
|
433
|
-
- Repository: [claude-plugin-viban](https://github.com/happy-nut/claude-plugin-viban)
|
|
334
|
+
MIT — see [LICENSE](LICENSE).
|
|
434
335
|
|
|
435
336
|
## Links
|
|
436
337
|
|
|
437
|
-
- [npm
|
|
438
|
-
- [Documentation](https://github.com/happy-nut/claude-plugin-viban/tree/main/docs)
|
|
439
|
-
- [Issues](https://github.com/happy-nut/claude-plugin-viban/issues)
|
|
338
|
+
- [npm](https://www.npmjs.com/package/claude-plugin-viban) · [Issues](https://github.com/happy-nut/claude-plugin-viban/issues) · [Docs](https://github.com/happy-nut/claude-plugin-viban/tree/main/docs)
|
package/assets/viban.png
ADDED
|
Binary file
|