claude-plugin-viban 1.0.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/.claude-plugin/plugin.json +21 -0
- package/LICENSE +21 -0
- package/README.md +361 -0
- package/bin/viban +1242 -0
- package/commands/assign.md +14 -0
- package/commands/todo.md +15 -0
- package/docs/CLAUDE.md +245 -0
- package/package.json +55 -0
- package/scripts/check-deps.sh +45 -0
- package/skills/assign/SKILL.md +203 -0
- package/skills/todo/SKILL.md +190 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "viban",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Terminal Kanban TUI for AI-human collaborative issue tracking",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "happy-nut"
|
|
7
|
+
},
|
|
8
|
+
"repository": "https://github.com/happy-nut/claude-plugin-viban",
|
|
9
|
+
"homepage": "https://github.com/happy-nut/claude-plugin-viban",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"claude-code",
|
|
13
|
+
"plugin",
|
|
14
|
+
"kanban",
|
|
15
|
+
"tui",
|
|
16
|
+
"issue-tracking",
|
|
17
|
+
"viban"
|
|
18
|
+
],
|
|
19
|
+
"skills": "./skills/",
|
|
20
|
+
"commands": "./commands/"
|
|
21
|
+
}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 happynut
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# viban
|
|
2
|
+
|
|
3
|
+
**Vi**sual Kan**ban** - Terminal-based Kanban board TUI for AI-human collaborative issue tracking.
|
|
4
|
+
|
|
5
|
+
[](https://github.com/happy-nut/claude-plugin-viban/actions/workflows/ci.yml)
|
|
6
|
+
[](https://www.npmjs.com/package/@happy-nut/claude-plugin-viban)
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **3-Column Kanban Board**: `backlog` → `in_progress` → `review` → `done`
|
|
12
|
+
- **Priority Levels**: P0 (critical) to P3 (low priority)
|
|
13
|
+
- **Type Tags**: bug, feat, chore, refactor, docs, test
|
|
14
|
+
- **TUI Navigation**: Interactive terminal UI with gum
|
|
15
|
+
- **Parallel Sessions**: Multiple Claude Code sessions can work simultaneously
|
|
16
|
+
- **Session Assignment**: Prevents duplicate work across parallel agents
|
|
17
|
+
- **Claude Code Integration**: Built-in skills for automated issue resolution
|
|
18
|
+
|
|
19
|
+
## Requirements
|
|
20
|
+
|
|
21
|
+
- zsh
|
|
22
|
+
- [gum](https://github.com/charmbracelet/gum) - `brew install gum`
|
|
23
|
+
- [jq](https://jqlang.github.io/jq/) - `brew install jq`
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
### Via npm (Recommended)
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install -g claude-plugin-viban
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
After installation, `viban` command is automatically available in your terminal.
|
|
34
|
+
|
|
35
|
+
**Verify installation:**
|
|
36
|
+
```bash
|
|
37
|
+
viban help
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Shell Setup (if viban command not found)
|
|
41
|
+
|
|
42
|
+
If `viban` is not found after npm install, add npm global bin to your PATH:
|
|
43
|
+
|
|
44
|
+
**For zsh (macOS default):**
|
|
45
|
+
```bash
|
|
46
|
+
# Add to ~/.zshrc
|
|
47
|
+
export PATH="$PATH:$(npm config get prefix)/bin"
|
|
48
|
+
|
|
49
|
+
# Reload
|
|
50
|
+
source ~/.zshrc
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**For bash:**
|
|
54
|
+
```bash
|
|
55
|
+
# Add to ~/.bashrc
|
|
56
|
+
export PATH="$PATH:$(npm config get prefix)/bin"
|
|
57
|
+
|
|
58
|
+
# Reload
|
|
59
|
+
source ~/.bashrc
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Manual Installation
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
git clone https://github.com/happy-nut/claude-plugin-viban.git
|
|
66
|
+
cd claude-plugin-viban
|
|
67
|
+
chmod +x bin/viban scripts/check-deps.sh
|
|
68
|
+
|
|
69
|
+
# Option 1: Symlink to /usr/local/bin
|
|
70
|
+
ln -s "$(pwd)/bin/viban" /usr/local/bin/viban
|
|
71
|
+
|
|
72
|
+
# Option 2: Add to PATH
|
|
73
|
+
echo 'export PATH="$PATH:'$(pwd)'/bin"' >> ~/.zshrc
|
|
74
|
+
source ~/.zshrc
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Claude Code Plugin
|
|
78
|
+
|
|
79
|
+
To use viban skills in Claude Code:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Add as plugin marketplace
|
|
83
|
+
/plugin marketplace add https://github.com/happy-nut/claude-plugin-viban
|
|
84
|
+
|
|
85
|
+
# Install the plugin
|
|
86
|
+
/plugin install viban
|
|
87
|
+
|
|
88
|
+
# Now you can use:
|
|
89
|
+
/viban:assign
|
|
90
|
+
/viban:todo
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Usage
|
|
94
|
+
|
|
95
|
+
### TUI (Interactive Mode)
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
viban # Launch TUI
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Navigation:**
|
|
102
|
+
|
|
103
|
+
| Level | Screen | Controls |
|
|
104
|
+
|-------|--------|----------|
|
|
105
|
+
| 1 | Column List | ↑↓ select, Enter to enter |
|
|
106
|
+
| 2 | Card List | ↑↓ select, Enter for details, `a` to add |
|
|
107
|
+
| 3 | Card Details | Change status, delete |
|
|
108
|
+
|
|
109
|
+
**TUI Features:**
|
|
110
|
+
- Navigate between backlog, in_progress, review, done columns
|
|
111
|
+
- View issue cards with priority and type badges
|
|
112
|
+
- Create new issues with rich descriptions
|
|
113
|
+
- Move issues between statuses
|
|
114
|
+
- Delete issues
|
|
115
|
+
|
|
116
|
+
### CLI Commands
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
viban list # Display kanban board
|
|
120
|
+
viban add "Title" "Description" P2 feat # Create new issue
|
|
121
|
+
viban assign [session-id] # Assign top backlog issue
|
|
122
|
+
viban review [id] # Move issue to review
|
|
123
|
+
viban done <id> # Mark issue as done
|
|
124
|
+
viban get <id> # Get issue details (JSON)
|
|
125
|
+
viban help # Show help message
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Examples:**
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Add a high-priority bug
|
|
132
|
+
viban add "Fix login error" "Users cannot login after password reset" P1 bug
|
|
133
|
+
|
|
134
|
+
# List all issues
|
|
135
|
+
viban list
|
|
136
|
+
|
|
137
|
+
# Assign first backlog issue to current session
|
|
138
|
+
viban assign
|
|
139
|
+
|
|
140
|
+
# Mark issue #5 as done
|
|
141
|
+
viban done 5
|
|
142
|
+
|
|
143
|
+
# Get issue details as JSON
|
|
144
|
+
viban get 3
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Claude Code Integration
|
|
148
|
+
|
|
149
|
+
viban provides two skills for automated issue management in Claude Code:
|
|
150
|
+
|
|
151
|
+
#### `/viban:assign` - Auto-resolve next issue
|
|
152
|
+
|
|
153
|
+
Automatically picks the highest priority backlog issue and executes the full resolution workflow:
|
|
154
|
+
|
|
155
|
+
1. Fetches top backlog issue
|
|
156
|
+
2. Assigns to current session
|
|
157
|
+
3. Analyzes and implements the fix
|
|
158
|
+
4. Marks as review/done upon completion
|
|
159
|
+
|
|
160
|
+
**Use cases:**
|
|
161
|
+
- Autonomous issue resolution
|
|
162
|
+
- Parallel agent workflows
|
|
163
|
+
- Pre-prioritized backlog processing
|
|
164
|
+
|
|
165
|
+
#### `/viban:todo` - Create structured issue
|
|
166
|
+
|
|
167
|
+
Analyzes a problem and creates a properly structured viban issue:
|
|
168
|
+
|
|
169
|
+
1. Prompts for problem description
|
|
170
|
+
2. Analyzes symptoms, root cause, expected behavior
|
|
171
|
+
3. Creates issue with proper title, description, priority, type
|
|
172
|
+
|
|
173
|
+
**Use cases:**
|
|
174
|
+
- Bug reporting
|
|
175
|
+
- Feature requests
|
|
176
|
+
- Converting free-form descriptions to structured issues
|
|
177
|
+
|
|
178
|
+
## Configuration
|
|
179
|
+
|
|
180
|
+
### Data Location (viban.json)
|
|
181
|
+
|
|
182
|
+
viban stores issues in `viban.json` with the following priority:
|
|
183
|
+
|
|
184
|
+
| Priority | Location | When Used |
|
|
185
|
+
|----------|----------|-----------|
|
|
186
|
+
| 1 | `$VIBAN_DATA_DIR` | Explicit override via environment variable |
|
|
187
|
+
| 2 | `.git/` (git common dir) | In a git repository (shared across worktrees) |
|
|
188
|
+
| 3 | `.viban/` | Non-git directories (fallback) |
|
|
189
|
+
|
|
190
|
+
**Why Git Common Dir?**
|
|
191
|
+
- Shared across git worktrees (parallel work sessions)
|
|
192
|
+
- Survives branch switches
|
|
193
|
+
- Single source of truth for the repository
|
|
194
|
+
|
|
195
|
+
**For Non-Git Projects:**
|
|
196
|
+
```bash
|
|
197
|
+
# viban will automatically create .viban/viban.json in current directory
|
|
198
|
+
cd /path/to/non-git-project
|
|
199
|
+
viban add "First issue" "Description" P2 feat
|
|
200
|
+
# Creates: /path/to/non-git-project/.viban/viban.json
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Custom Data Directory:**
|
|
204
|
+
```bash
|
|
205
|
+
export VIBAN_DATA_DIR="/path/to/shared/data"
|
|
206
|
+
viban list # Uses /path/to/shared/data/viban.json
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Auto-Initialization
|
|
210
|
+
|
|
211
|
+
viban automatically initializes when first used:
|
|
212
|
+
- Creates data directory if not exists
|
|
213
|
+
- Creates `viban.json` with empty issue list
|
|
214
|
+
- No manual setup required
|
|
215
|
+
|
|
216
|
+
### Issue Status Flow
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
backlog → in_progress → review → done
|
|
220
|
+
↑ ↑
|
|
221
|
+
(assign) (complete)
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Priority Levels
|
|
225
|
+
|
|
226
|
+
| Priority | Description |
|
|
227
|
+
|----------|-------------|
|
|
228
|
+
| **P0** | Critical - blocks all work |
|
|
229
|
+
| **P1** | High - must do soon |
|
|
230
|
+
| **P2** | Medium - normal priority |
|
|
231
|
+
| **P3** | Low - nice to have |
|
|
232
|
+
|
|
233
|
+
### Type Tags
|
|
234
|
+
|
|
235
|
+
| Type | Use Case |
|
|
236
|
+
|------|----------|
|
|
237
|
+
| **bug** | Fixing broken functionality |
|
|
238
|
+
| **feat** | New feature or enhancement |
|
|
239
|
+
| **refactor** | Code restructuring |
|
|
240
|
+
| **chore** | Maintenance tasks |
|
|
241
|
+
| **docs** | Documentation updates |
|
|
242
|
+
| **test** | Test additions/fixes |
|
|
243
|
+
|
|
244
|
+
## Data Structure
|
|
245
|
+
|
|
246
|
+
Issues are stored in `viban.json`:
|
|
247
|
+
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"version": 1,
|
|
251
|
+
"issues": [
|
|
252
|
+
{
|
|
253
|
+
"id": 1,
|
|
254
|
+
"title": "Fix authentication bug",
|
|
255
|
+
"description": "Users cannot login after password reset",
|
|
256
|
+
"status": "in_progress",
|
|
257
|
+
"priority": "P1",
|
|
258
|
+
"type": "bug",
|
|
259
|
+
"assigned_to": "session-abc123",
|
|
260
|
+
"created_at": "2025-01-23T10:00:00Z",
|
|
261
|
+
"updated_at": "2025-01-23T14:30:00Z"
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Parallel Session Handling
|
|
268
|
+
|
|
269
|
+
Multiple Claude Code sessions can work simultaneously:
|
|
270
|
+
|
|
271
|
+
1. Each session calls `/viban:assign`
|
|
272
|
+
2. Session ID is recorded in `assigned_to` field
|
|
273
|
+
3. Other sessions skip already-assigned issues
|
|
274
|
+
4. Completion moves issue to `review` or `done`
|
|
275
|
+
|
|
276
|
+
This prevents duplicate work and enables parallel agent workflows.
|
|
277
|
+
|
|
278
|
+
## File Structure
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
claude-plugin-viban/
|
|
282
|
+
├── .claude-plugin/
|
|
283
|
+
│ └── plugin.json # Plugin metadata
|
|
284
|
+
├── .github/
|
|
285
|
+
│ └── workflows/
|
|
286
|
+
│ ├── ci.yml # CI testing
|
|
287
|
+
│ └── release.yml # NPM publishing
|
|
288
|
+
├── bin/
|
|
289
|
+
│ └── viban # Main TUI/CLI script
|
|
290
|
+
├── commands/ # Claude Code commands (deprecated)
|
|
291
|
+
├── docs/
|
|
292
|
+
│ └── CLAUDE.md # Claude Code integration guide
|
|
293
|
+
├── scripts/
|
|
294
|
+
│ └── check-deps.sh # Dependency checker
|
|
295
|
+
├── skills/
|
|
296
|
+
│ ├── assign/ # /viban:assign skill
|
|
297
|
+
│ └── todo/ # /viban:todo skill
|
|
298
|
+
├── LICENSE # MIT License
|
|
299
|
+
├── package.json # NPM package config
|
|
300
|
+
└── README.md # This file
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Development
|
|
304
|
+
|
|
305
|
+
### Running Tests
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# Install dependencies
|
|
309
|
+
brew install gum jq
|
|
310
|
+
|
|
311
|
+
# Make executable
|
|
312
|
+
chmod +x bin/viban scripts/check-deps.sh
|
|
313
|
+
|
|
314
|
+
# Run tests
|
|
315
|
+
./bin/viban help
|
|
316
|
+
|
|
317
|
+
# Test in a git repo
|
|
318
|
+
cd /path/to/git/repo
|
|
319
|
+
viban add "Test issue" "Test description" P2 feat
|
|
320
|
+
viban list
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Publishing
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
# Update version in package.json
|
|
327
|
+
npm version patch # or minor, major
|
|
328
|
+
|
|
329
|
+
# Create and push tag
|
|
330
|
+
git tag v1.0.1
|
|
331
|
+
git push origin v1.0.1
|
|
332
|
+
|
|
333
|
+
# GitHub Actions will automatically publish to npm
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## Contributing
|
|
337
|
+
|
|
338
|
+
Contributions are welcome! Please:
|
|
339
|
+
|
|
340
|
+
1. Fork the repository
|
|
341
|
+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
342
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
343
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
344
|
+
5. Open a Pull Request
|
|
345
|
+
|
|
346
|
+
## License
|
|
347
|
+
|
|
348
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
349
|
+
|
|
350
|
+
## Author
|
|
351
|
+
|
|
352
|
+
**happy-nut**
|
|
353
|
+
|
|
354
|
+
- GitHub: [@happy-nut](https://github.com/happy-nut)
|
|
355
|
+
- Repository: [claude-plugin-viban](https://github.com/happy-nut/claude-plugin-viban)
|
|
356
|
+
|
|
357
|
+
## Links
|
|
358
|
+
|
|
359
|
+
- [npm package](https://www.npmjs.com/package/@happy-nut/claude-plugin-viban)
|
|
360
|
+
- [Documentation](https://github.com/happy-nut/claude-plugin-viban/tree/main/docs)
|
|
361
|
+
- [Issues](https://github.com/happy-nut/claude-plugin-viban/issues)
|