claude-plugin-viban 1.3.0 → 1.3.2
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 +90 -74
- package/commands/add.md +20 -6
- package/commands/assign.md +2 -0
- package/commands/parallel-assign.md +2 -0
- package/package.json +1 -1
- package/skills/add/SKILL.md +20 -6
- package/skills/assign/SKILL.md +3 -1
- package/skills/parallel-assign/SKILL.md +7 -5
package/README.md
CHANGED
|
@@ -24,14 +24,14 @@ The most effective way to use viban is with **multiple terminal sessions**:
|
|
|
24
24
|
│ Session 1 │ │ Session 2 │ │ Session 3 │
|
|
25
25
|
│ │ │ │ │ │
|
|
26
26
|
│ Product QA │ │ Issue Work │ │ viban TUI │
|
|
27
|
-
│ + /viban:
|
|
27
|
+
│ + /viban:add │ │ + /viban:assign │ │ │
|
|
28
28
|
│ │ │ │ │ (always open) │
|
|
29
29
|
│ Find bugs, │ │ Pick & resolve │ │ Monitor board │
|
|
30
30
|
│ register issues │ │ issues │ │ in real-time │
|
|
31
31
|
└───────────────────┘ └───────────────────┘ └───────────────────┘
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
- **Session 1**: QA your product, find issues, run `/viban:
|
|
34
|
+
- **Session 1**: QA your product, find issues, run `/viban:add` to register them
|
|
35
35
|
- **Session 2**: Run `/viban:assign` to pick the next issue and resolve it
|
|
36
36
|
- **Session 3**: Keep `viban` TUI open to monitor the board
|
|
37
37
|
|
|
@@ -39,7 +39,7 @@ This separation keeps your workflow clean and prevents context switching.
|
|
|
39
39
|
|
|
40
40
|
## Features
|
|
41
41
|
|
|
42
|
-
- **
|
|
42
|
+
- **4-Column Kanban Board**: `backlog` → `in_progress` → `review` → `done`
|
|
43
43
|
- **Priority Levels**: P0 (critical) to P3 (low priority)
|
|
44
44
|
- **Type Tags**: bug, feat, chore, refactor
|
|
45
45
|
- **TUI Navigation**: Interactive terminal UI with gum
|
|
@@ -118,12 +118,17 @@ viban # Launch TUI
|
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
120
|
viban list # Display kanban board
|
|
121
|
-
viban add "Title" "
|
|
121
|
+
viban add "Title" ["Desc"] [P0-P3] [type] [files...] # Create new issue
|
|
122
|
+
viban attach <id> <file1> [file2...] # Attach files to issue
|
|
123
|
+
viban priority <id> <P0-P3> # Set priority
|
|
122
124
|
viban assign [session-id] # Assign top backlog issue
|
|
123
125
|
viban review [id] # Move issue to review
|
|
124
|
-
viban done <id> #
|
|
126
|
+
viban done <id> # Complete & remove
|
|
127
|
+
viban edit <id> # Edit issue in editor
|
|
125
128
|
viban get <id> # Get issue details (JSON)
|
|
126
129
|
viban sync # Sync with external tracker
|
|
130
|
+
viban migrate # Migrate: extract type from title
|
|
131
|
+
viban update # Update to latest version
|
|
127
132
|
viban help # Show help message
|
|
128
133
|
```
|
|
129
134
|
|
|
@@ -133,12 +138,18 @@ viban help # Show help message
|
|
|
133
138
|
# Add a high-priority bug
|
|
134
139
|
viban add "Fix login error" "Users cannot login after password reset" P1 bug
|
|
135
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
|
+
|
|
136
144
|
# List all issues
|
|
137
145
|
viban list
|
|
138
146
|
|
|
139
147
|
# Assign first backlog issue to current session
|
|
140
148
|
viban assign
|
|
141
149
|
|
|
150
|
+
# Change priority of issue #3
|
|
151
|
+
viban priority 3 P1
|
|
152
|
+
|
|
142
153
|
# Mark issue #5 as done
|
|
143
154
|
viban done 5
|
|
144
155
|
|
|
@@ -148,48 +159,55 @@ viban get 3
|
|
|
148
159
|
|
|
149
160
|
### Claude Code Integration
|
|
150
161
|
|
|
151
|
-
viban provides commands for automated issue management in Claude Code:
|
|
152
|
-
|
|
153
|
-
#### `/viban:assign` - Auto-resolve next issue
|
|
162
|
+
viban provides skills and commands for automated issue management in Claude Code:
|
|
154
163
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
1. Fetches top backlog issue
|
|
158
|
-
2. Assigns to current session
|
|
159
|
-
3. Analyzes and implements the fix
|
|
160
|
-
4. Marks as review/done upon completion
|
|
161
|
-
|
|
162
|
-
**Use cases:**
|
|
163
|
-
- Autonomous issue resolution
|
|
164
|
-
- Parallel agent workflows
|
|
165
|
-
- Pre-prioritized backlog processing
|
|
166
|
-
|
|
167
|
-
#### `/viban:task` - Create structured issue
|
|
164
|
+
#### `/viban:add` - Register structured issue
|
|
168
165
|
|
|
169
166
|
Analyzes a problem and creates a properly structured viban issue:
|
|
170
167
|
|
|
171
|
-
1.
|
|
172
|
-
2.
|
|
173
|
-
3.
|
|
168
|
+
1. Clarifies the problem if vague
|
|
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
|
|
174
172
|
|
|
175
173
|
**Use cases:**
|
|
176
174
|
- Bug reporting
|
|
177
175
|
- Feature requests
|
|
178
176
|
- Converting free-form descriptions to structured issues
|
|
179
177
|
|
|
180
|
-
#### `/viban:
|
|
178
|
+
#### `/viban:assign` - Assign next backlog issue
|
|
179
|
+
|
|
180
|
+
Picks the highest priority backlog issue and assigns it to the current session:
|
|
181
|
+
|
|
182
|
+
1. Assigns top backlog issue
|
|
183
|
+
2. Evaluates description clarity
|
|
184
|
+
3. If unclear, interviews user and enriches the issue description
|
|
185
|
+
|
|
186
|
+
This command is **assignment only** - it does not start implementation. Use your project's workflow (`.viban/workflow.md`) to define what happens next.
|
|
187
|
+
|
|
188
|
+
#### `/viban:parallel-assign` - Parallel resolution with worktrees
|
|
181
189
|
|
|
182
|
-
|
|
190
|
+
Resolves multiple backlog issues simultaneously using isolated git worktrees:
|
|
183
191
|
|
|
184
|
-
1.
|
|
185
|
-
2.
|
|
186
|
-
3.
|
|
187
|
-
4.
|
|
192
|
+
1. Assigns N issues (default: 3, max: 5) and creates worktrees
|
|
193
|
+
2. Spawns one opus agent per issue in its own worktree
|
|
194
|
+
3. Each agent analyzes, implements, commits, and creates a PR
|
|
195
|
+
4. Coordinator collects results, runs tests, and cleans up
|
|
188
196
|
|
|
189
197
|
**Use cases:**
|
|
190
|
-
-
|
|
191
|
-
-
|
|
192
|
-
-
|
|
198
|
+
- Batch processing a backlog
|
|
199
|
+
- Parallel agent workflows with zero interference
|
|
200
|
+
- Rapid issue throughput
|
|
201
|
+
|
|
202
|
+
#### `/viban:setup` - Install & configure
|
|
203
|
+
|
|
204
|
+
Installs all dependencies and optionally configures a project workflow:
|
|
205
|
+
|
|
206
|
+
1. Detects OS and installs missing dependencies (zsh, gum, jq)
|
|
207
|
+
2. Installs/updates viban CLI via npm
|
|
208
|
+
3. Auto-detects project conventions (build/test, commit style, branch naming)
|
|
209
|
+
4. Interviews for workflow preferences (pipeline depth, issue numbering)
|
|
210
|
+
5. Generates `.viban/workflow.md` for `/viban:assign` to follow
|
|
193
211
|
|
|
194
212
|
## External Tracker Sync
|
|
195
213
|
|
|
@@ -208,7 +226,7 @@ viban sync --dry-run
|
|
|
208
226
|
viban sync
|
|
209
227
|
```
|
|
210
228
|
|
|
211
|
-
>
|
|
229
|
+
> **Tip:** Use `viban sync --dry-run` first to preview changes before syncing.
|
|
212
230
|
|
|
213
231
|
### How It Works
|
|
214
232
|
|
|
@@ -290,8 +308,6 @@ backlog → in_progress → review → done
|
|
|
290
308
|
| **feat** | New feature or enhancement |
|
|
291
309
|
| **refactor** | Code restructuring |
|
|
292
310
|
| **chore** | Maintenance tasks |
|
|
293
|
-
| **docs** | Documentation updates |
|
|
294
|
-
| **test** | Test additions/fixes |
|
|
295
311
|
|
|
296
312
|
## Data Structure
|
|
297
313
|
|
|
@@ -332,34 +348,47 @@ This prevents duplicate work and enables parallel agent workflows.
|
|
|
332
348
|
```
|
|
333
349
|
claude-plugin-viban/
|
|
334
350
|
├── .claude-plugin/
|
|
335
|
-
│ └── plugin.json
|
|
351
|
+
│ └── plugin.json # Plugin metadata
|
|
336
352
|
├── .github/
|
|
337
353
|
│ └── workflows/
|
|
338
|
-
│ ├── ci.yml
|
|
339
|
-
│ └── release.yml
|
|
354
|
+
│ ├── ci.yml # CI testing
|
|
355
|
+
│ └── release.yml # NPM publishing
|
|
340
356
|
├── bin/
|
|
341
|
-
│ └── viban
|
|
342
|
-
├── docs/
|
|
343
|
-
│ └── CLAUDE.md # Claude Code integration guide
|
|
357
|
+
│ └── viban # Main TUI/CLI script
|
|
344
358
|
├── commands/
|
|
345
|
-
│
|
|
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
|
|
346
366
|
├── scripts/
|
|
347
|
-
│ ├── check-deps.sh
|
|
348
|
-
│ ├──
|
|
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
|
|
349
371
|
│ ├── providers/
|
|
350
|
-
│ │ └── github.sh
|
|
351
|
-
│ └── tui_coprocess.py
|
|
372
|
+
│ │ └── github.sh # GitHub Issues provider
|
|
373
|
+
│ └── tui_coprocess.py # Persistent Python coprocess for TUI rendering
|
|
352
374
|
├── skills/
|
|
353
|
-
│ ├──
|
|
354
|
-
│ ├──
|
|
355
|
-
│ ├──
|
|
356
|
-
│ └──
|
|
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
|
|
357
379
|
├── tests/
|
|
358
|
-
│ ├── run_all.zsh
|
|
359
|
-
│
|
|
360
|
-
├──
|
|
361
|
-
├──
|
|
362
|
-
|
|
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
|
|
363
392
|
```
|
|
364
393
|
|
|
365
394
|
## Development
|
|
@@ -370,29 +399,16 @@ claude-plugin-viban/
|
|
|
370
399
|
# Install dependencies
|
|
371
400
|
brew install gum jq
|
|
372
401
|
|
|
373
|
-
#
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
# Run tests
|
|
377
|
-
./bin/viban help
|
|
378
|
-
|
|
379
|
-
# Test in a git repo
|
|
380
|
-
cd /path/to/git/repo
|
|
381
|
-
viban add "Test issue" "Test description" P2 feat
|
|
382
|
-
viban list
|
|
402
|
+
# Run the full test suite (8 suites, 39 tests)
|
|
403
|
+
zsh tests/run_all.zsh
|
|
383
404
|
```
|
|
384
405
|
|
|
385
406
|
### Publishing
|
|
386
407
|
|
|
387
|
-
|
|
388
|
-
# Update version in package.json
|
|
389
|
-
npm version patch # or minor, major
|
|
408
|
+
See [docs/release.md](docs/release.md) for the full release workflow.
|
|
390
409
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
git push origin v1.0.1
|
|
394
|
-
|
|
395
|
-
# GitHub Actions will automatically publish to npm
|
|
410
|
+
```bash
|
|
411
|
+
# GitHub Actions will automatically publish to npm on tag push
|
|
396
412
|
```
|
|
397
413
|
|
|
398
414
|
## Contributing
|
package/commands/add.md
CHANGED
|
@@ -6,6 +6,8 @@ description: "Register a problem as a viban issue"
|
|
|
6
6
|
|
|
7
7
|
Register a problem as a viban issue. No codebase exploration, no solutions — symptoms only.
|
|
8
8
|
|
|
9
|
+
> **CLI only** (no direct viban.json access)
|
|
10
|
+
|
|
9
11
|
**Input**: `$ARGUMENTS`
|
|
10
12
|
|
|
11
13
|
## Step 1: Clarify (only if vague)
|
|
@@ -64,12 +66,20 @@ Issue #{id} registered
|
|
|
64
66
|
|
|
65
67
|
## Step 6: Suggest Plan Mode
|
|
66
68
|
|
|
67
|
-
**Skip**
|
|
68
|
-
|
|
69
|
+
**Skip** unless the issue clearly needs upfront design. Most issues don't.
|
|
70
|
+
|
|
71
|
+
Only suggest plan mode when:
|
|
72
|
+
- The issue spans multiple subsystems or requires architectural decisions
|
|
73
|
+
- The description is too vague to act on without investigation
|
|
74
|
+
- P0 issues where a wrong fix could make things worse
|
|
75
|
+
|
|
76
|
+
**Do NOT suggest** for: single-file fixes, straightforward bugs, feature additions with clear scope, chores, refactors with obvious targets.
|
|
77
|
+
|
|
78
|
+
When suggesting, use AskUserQuestion:
|
|
69
79
|
|
|
70
|
-
- header: "Next step", question: "
|
|
80
|
+
- header: "Next step", question: "This looks complex — want to plan before working on it?"
|
|
71
81
|
- options:
|
|
72
|
-
- "Plan now
|
|
82
|
+
- "Plan now" — Enter plan mode to analyze and design a solution
|
|
73
83
|
- "Later" — Just register, work on it later
|
|
74
84
|
|
|
75
85
|
**"Plan now"**: `EnterPlanMode` → after approval, save to `.viban/plans/{issue-id}.md`:
|
|
@@ -89,11 +99,15 @@ Report: `Plan saved to .viban/plans/{issue-id}.md — /viban:assign will auto-lo
|
|
|
89
99
|
|
|
90
100
|
**"Later"**: end skill.
|
|
91
101
|
|
|
92
|
-
> **Bias towards
|
|
102
|
+
> **Bias towards skipping.** When in doubt, just register and finish.
|
|
93
103
|
|
|
94
104
|
## Rules
|
|
95
105
|
|
|
106
|
+
- **NEVER read or write `viban.json` directly** — always use `viban` CLI commands (`viban add`, `viban list`, etc.)
|
|
107
|
+
- **NEVER edit, create, or modify any source code files** — this skill registers issues only
|
|
108
|
+
- **NEVER start implementation** — even after plan mode, just save the plan and stop
|
|
96
109
|
- No codebase exploration — assignee does that in `/viban:assign`
|
|
97
|
-
- No solution proposals — symptoms only
|
|
110
|
+
- No solution proposals in the issue — symptoms only
|
|
98
111
|
- Check duplicates first: `viban list`
|
|
99
112
|
- P0 is system-down only
|
|
113
|
+
- After Step 6 completes (plan saved or skipped), the skill is **done**. Do not continue.
|
package/commands/assign.md
CHANGED
|
@@ -12,3 +12,5 @@ What it does:
|
|
|
12
12
|
3. That's it — no implementation, no branch creation
|
|
13
13
|
|
|
14
14
|
This command is for **assignment and clarification only**. Use other tools to start working on the assigned issue.
|
|
15
|
+
|
|
16
|
+
**IMPORTANT:** Never read or write `viban.json` directly — always use `viban` CLI commands.
|
|
@@ -19,3 +19,5 @@ How it works:
|
|
|
19
19
|
2. Spawns one opus agent per issue — each agent works exclusively in its own worktree
|
|
20
20
|
3. Agents analyze, implement, commit, push, and create PRs independently
|
|
21
21
|
4. Coordinator collects results, runs tests, and cleans up worktrees
|
|
22
|
+
|
|
23
|
+
**IMPORTANT:** Never read or write `viban.json` directly — always use `viban` CLI commands. Direct JSON access causes race conditions.
|
package/package.json
CHANGED
package/skills/add/SKILL.md
CHANGED
|
@@ -7,6 +7,8 @@ description: "Register a problem as a viban issue"
|
|
|
7
7
|
|
|
8
8
|
Register a problem as a viban issue. No codebase exploration, no solutions — symptoms only.
|
|
9
9
|
|
|
10
|
+
> **CLI only** (no direct viban.json access)
|
|
11
|
+
|
|
10
12
|
**Input**: `$ARGUMENTS`
|
|
11
13
|
|
|
12
14
|
## Step 1: Clarify (only if vague)
|
|
@@ -65,12 +67,20 @@ Issue #{id} registered
|
|
|
65
67
|
|
|
66
68
|
## Step 6: Suggest Plan Mode
|
|
67
69
|
|
|
68
|
-
**Skip**
|
|
69
|
-
|
|
70
|
+
**Skip** unless the issue clearly needs upfront design. Most issues don't.
|
|
71
|
+
|
|
72
|
+
Only suggest plan mode when:
|
|
73
|
+
- The issue spans multiple subsystems or requires architectural decisions
|
|
74
|
+
- The description is too vague to act on without investigation
|
|
75
|
+
- P0 issues where a wrong fix could make things worse
|
|
76
|
+
|
|
77
|
+
**Do NOT suggest** for: single-file fixes, straightforward bugs, feature additions with clear scope, chores, refactors with obvious targets.
|
|
78
|
+
|
|
79
|
+
When suggesting, use AskUserQuestion:
|
|
70
80
|
|
|
71
|
-
- header: "Next step", question: "
|
|
81
|
+
- header: "Next step", question: "This looks complex — want to plan before working on it?"
|
|
72
82
|
- options:
|
|
73
|
-
- "Plan now
|
|
83
|
+
- "Plan now" — Enter plan mode to analyze and design a solution
|
|
74
84
|
- "Later" — Just register, work on it later
|
|
75
85
|
|
|
76
86
|
**"Plan now"**: `EnterPlanMode` → after approval, save to `.viban/plans/{issue-id}.md`:
|
|
@@ -90,11 +100,15 @@ Report: `Plan saved to .viban/plans/{issue-id}.md — /viban:assign will auto-lo
|
|
|
90
100
|
|
|
91
101
|
**"Later"**: end skill.
|
|
92
102
|
|
|
93
|
-
> **Bias towards
|
|
103
|
+
> **Bias towards skipping.** When in doubt, just register and finish.
|
|
94
104
|
|
|
95
105
|
## Rules
|
|
96
106
|
|
|
107
|
+
- **NEVER read or write `viban.json` directly** — always use `viban` CLI commands (`viban add`, `viban list`, etc.)
|
|
108
|
+
- **NEVER edit, create, or modify any source code files** — this skill registers issues only
|
|
109
|
+
- **NEVER start implementation** — even after plan mode, just save the plan and stop
|
|
97
110
|
- No codebase exploration — assignee does that in `/viban:assign`
|
|
98
|
-
- No solution proposals — symptoms only
|
|
111
|
+
- No solution proposals in the issue — symptoms only
|
|
99
112
|
- Check duplicates first: `viban list`
|
|
100
113
|
- P0 is system-down only
|
|
114
|
+
- After Step 6 completes (plan saved or skipped), the skill is **done**. Do not continue.
|
package/skills/assign/SKILL.md
CHANGED
|
@@ -101,8 +101,10 @@ Clarification added to issue description.
|
|
|
101
101
|
|
|
102
102
|
## CRITICAL
|
|
103
103
|
|
|
104
|
+
> - **NEVER read or write `viban.json` directly** — always use `viban` CLI commands (`viban assign`, `viban get`, `viban list`, etc.)
|
|
105
|
+
> - **FORBIDDEN: `viban done`** — this DELETES the card permanently. NEVER run it.
|
|
106
|
+
> - **FORBIDDEN: `viban review`** — the issue stays in `in_progress` for the next work session.
|
|
104
107
|
> - This command **assigns only**. Do NOT create branches, write code, or start implementation.
|
|
105
|
-
> - Do NOT run `viban review` — the issue stays in `in_progress` for the next work session.
|
|
106
108
|
> - If the issue is clear, just report and finish immediately.
|
|
107
109
|
|
|
108
110
|
## CLI Reference
|
|
@@ -151,9 +151,10 @@ You are one of {N} parallel agents working in isolated git worktrees.
|
|
|
151
151
|
viban review {ID}
|
|
152
152
|
```
|
|
153
153
|
|
|
154
|
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
154
|
+
ABSOLUTE RULES (violating any of these corrupts the board):
|
|
155
|
+
- Run `viban review {ID}` as your LAST command before finishing. Always. Even on errors.
|
|
156
|
+
- **FORBIDDEN: `viban done`** — this DELETES the card permanently. NEVER run it. Only the human runs `viban done` after reviewing the PR.
|
|
157
|
+
- **FORBIDDEN: reading or writing `viban.json`** — use CLI commands only.
|
|
157
158
|
- Do NOT run the full test suite — the coordinator handles that.
|
|
158
159
|
- Do NOT remove the worktree — the coordinator handles cleanup.
|
|
159
160
|
```
|
|
@@ -277,8 +278,9 @@ Worktrees cleaned up. All PRs ready for human review.
|
|
|
277
278
|
|
|
278
279
|
## CRITICAL RULES
|
|
279
280
|
|
|
280
|
-
> 1. **NEVER
|
|
281
|
-
> 2. **
|
|
281
|
+
> 1. **NEVER read or write `viban.json` directly** — always use `viban` CLI commands. Direct JSON access causes race conditions and data corruption.
|
|
282
|
+
> 2. **NEVER exit with any issue still in `in_progress`.** For every assigned issue, ensure `viban review {ID}` has been called.
|
|
283
|
+
> 3. **ALWAYS clean up worktrees** after PRs are created. Worktree dirs must not linger in `.viban/worktrees/`.
|
|
282
284
|
|
|
283
285
|
## CLI Reference
|
|
284
286
|
|