claude-plugin-viban 1.0.0 → 1.0.4

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.
@@ -16,6 +16,5 @@
16
16
  "issue-tracking",
17
17
  "viban"
18
18
  ],
19
- "skills": "./skills/",
20
19
  "commands": "./commands/"
21
20
  }
package/README.md CHANGED
@@ -1,20 +1,49 @@
1
1
  # viban
2
2
 
3
- **Vi**sual Kan**ban** - Terminal-based Kanban board TUI for AI-human collaborative issue tracking.
3
+ **Vi**sual Kan**ban** - A simple, lightweight local Kanban board for AI-human collaborative issue tracking.
4
4
 
5
5
  [![CI](https://github.com/happy-nut/claude-plugin-viban/actions/workflows/ci.yml/badge.svg)](https://github.com/happy-nut/claude-plugin-viban/actions/workflows/ci.yml)
6
- [![npm version](https://badge.fury.io/js/%40happy-nut%2Fclaude-plugin-viban.svg)](https://www.npmjs.com/package/@happy-nut/claude-plugin-viban)
6
+ [![npm version](https://badge.fury.io/js/claude-plugin-viban.svg)](https://www.npmjs.com/package/claude-plugin-viban)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
 
9
+ ## Why viban?
10
+
11
+ - **No Worktree Complexity** - Just a single JSON file. No git worktrees, no complex setup.
12
+ - **Lightweight & Fast** - Pure shell script with minimal dependencies. Starts instantly.
13
+ - **Local First** - Your issues stay in your repo. No external services or accounts needed.
14
+ - **AI-Native** - Built for Claude Code integration from the ground up.
15
+
16
+ ## Recommended Workflow
17
+
18
+ The most effective way to use viban is with **multiple terminal sessions**:
19
+
20
+ ```
21
+ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
22
+ │ Session 1 │ │ Session 2 │ │ Session 3 │
23
+ │ │ │ │ │ │
24
+ │ Product QA │ │ Issue Work │ │ viban TUI │
25
+ │ + /task │ │ + /assign │ │ │
26
+ │ │ │ │ │ (always open) │
27
+ │ Find bugs, │ │ Pick & resolve │ │ Monitor board │
28
+ │ register issues│ │ issues │ │ in real-time │
29
+ └─────────────────┘ └─────────────────┘ └─────────────────┘
30
+ ```
31
+
32
+ - **Session 1**: QA your product, find issues, run `/task` to register them
33
+ - **Session 2**: Run `/assign` to pick the next issue and resolve it
34
+ - **Session 3**: Keep `viban` TUI open to monitor the board
35
+
36
+ This separation keeps your workflow clean and prevents context switching.
37
+
9
38
  ## Features
10
39
 
11
40
  - **3-Column Kanban Board**: `backlog` → `in_progress` → `review` → `done`
12
41
  - **Priority Levels**: P0 (critical) to P3 (low priority)
13
- - **Type Tags**: bug, feat, chore, refactor, docs, test
42
+ - **Type Tags**: bug, feat, chore, refactor
14
43
  - **TUI Navigation**: Interactive terminal UI with gum
15
44
  - **Parallel Sessions**: Multiple Claude Code sessions can work simultaneously
16
45
  - **Session Assignment**: Prevents duplicate work across parallel agents
17
- - **Claude Code Integration**: Built-in skills for automated issue resolution
46
+ - **Claude Code Integration**: Built-in commands for automated issue resolution
18
47
 
19
48
  ## Requirements
20
49
 
@@ -24,7 +53,17 @@
24
53
 
25
54
  ## Installation
26
55
 
27
- ### Via npm (Recommended)
56
+ ### One-liner (Recommended)
57
+
58
+ Installs all dependencies (zsh, gum, jq) and viban automatically:
59
+
60
+ ```bash
61
+ curl -fsSL https://raw.githubusercontent.com/happy-nut/claude-plugin-viban/main/install.sh | bash
62
+ ```
63
+
64
+ ### Via npm
65
+
66
+ If you already have zsh, gum, and jq installed:
28
67
 
29
68
  ```bash
30
69
  npm install -g claude-plugin-viban
@@ -76,7 +115,7 @@ source ~/.zshrc
76
115
 
77
116
  ### Claude Code Plugin
78
117
 
79
- To use viban skills in Claude Code:
118
+ To use viban commands in Claude Code:
80
119
 
81
120
  ```bash
82
121
  # Add as plugin marketplace
@@ -85,9 +124,12 @@ To use viban skills in Claude Code:
85
124
  # Install the plugin
86
125
  /plugin install viban
87
126
 
127
+ # Install dependencies (first time only)
128
+ /setup
129
+
88
130
  # Now you can use:
89
- /viban:assign
90
- /viban:todo
131
+ /assign
132
+ /task
91
133
  ```
92
134
 
93
135
  ## Usage
@@ -146,9 +188,9 @@ viban get 3
146
188
 
147
189
  ### Claude Code Integration
148
190
 
149
- viban provides two skills for automated issue management in Claude Code:
191
+ viban provides commands for automated issue management in Claude Code:
150
192
 
151
- #### `/viban:assign` - Auto-resolve next issue
193
+ #### `/assign` - Auto-resolve next issue
152
194
 
153
195
  Automatically picks the highest priority backlog issue and executes the full resolution workflow:
154
196
 
@@ -162,7 +204,7 @@ Automatically picks the highest priority backlog issue and executes the full res
162
204
  - Parallel agent workflows
163
205
  - Pre-prioritized backlog processing
164
206
 
165
- #### `/viban:todo` - Create structured issue
207
+ #### `/task` - Create structured issue
166
208
 
167
209
  Analyzes a problem and creates a properly structured viban issue:
168
210
 
@@ -268,7 +310,7 @@ Issues are stored in `viban.json`:
268
310
 
269
311
  Multiple Claude Code sessions can work simultaneously:
270
312
 
271
- 1. Each session calls `/viban:assign`
313
+ 1. Each session calls `/assign`
272
314
  2. Session ID is recorded in `assigned_to` field
273
315
  3. Other sessions skip already-assigned issues
274
316
  4. Completion moves issue to `review` or `done`
@@ -287,14 +329,14 @@ claude-plugin-viban/
287
329
  │ └── release.yml # NPM publishing
288
330
  ├── bin/
289
331
  │ └── viban # Main TUI/CLI script
290
- ├── commands/ # Claude Code commands (deprecated)
291
332
  ├── docs/
292
333
  │ └── CLAUDE.md # Claude Code integration guide
293
334
  ├── scripts/
294
335
  │ └── check-deps.sh # Dependency checker
295
- ├── skills/
296
- │ ├── assign/ # /viban:assign skill
297
- └── todo/ # /viban:todo skill
336
+ ├── commands/
337
+ │ ├── assign.md # /assign command
338
+ ├── setup.md # /setup command
339
+ │ └── task.md # /task command
298
340
  ├── LICENSE # MIT License
299
341
  ├── package.json # NPM package config
300
342
  └── README.md # This file
@@ -356,6 +398,6 @@ MIT License - see [LICENSE](LICENSE) file for details.
356
398
 
357
399
  ## Links
358
400
 
359
- - [npm package](https://www.npmjs.com/package/@happy-nut/claude-plugin-viban)
401
+ - [npm package](https://www.npmjs.com/package/claude-plugin-viban)
360
402
  - [Documentation](https://github.com/happy-nut/claude-plugin-viban/tree/main/docs)
361
403
  - [Issues](https://github.com/happy-nut/claude-plugin-viban/issues)
@@ -1,14 +1,188 @@
1
1
  ---
2
2
  name: assign
3
- description: "Assign and resolve first backlog issue from viban board"
3
+ description: "Assign and resolve first backlog issue from viban board through to PR completion"
4
4
  ---
5
5
 
6
6
  # /assign
7
7
 
8
- Invokes the `viban:assign` skill to handle the complete workflow:
9
- - Assign first backlog issue
10
- - Analyze and resolve
11
- - Create PR
12
- - Move to review status
8
+ Workflow: First backlog issue Resolve PR completion
13
9
 
14
- Usage: `/assign`
10
+ > **No direct `viban.json` access** — CLI only
11
+ > **No Worktree** — Work directly on branch in main repo
12
+ > **Workflow**: Read CLAUDE.md first, follow project workflow if exists
13
+
14
+ ---
15
+
16
+ ## Phase 0: CONTEXT & SETUP
17
+
18
+ ### 0.1 Read Project Workflow (CRITICAL)
19
+
20
+ **Before any work, read the project's CLAUDE.md:**
21
+
22
+ ```bash
23
+ # Check for CLAUDE.md at common locations
24
+ for path in "./CLAUDE.md" "./.claude/CLAUDE.md" "../CLAUDE.md"; do
25
+ [ -f "$path" ] && cat "$path"
26
+ done
27
+ ```
28
+
29
+ **Look for:**
30
+ - `Issue Resolution Workflow` section
31
+ - `Workflow` or `Development Process` section
32
+ - Specific steps like `ultrawork`, `code-simplifier`, `code-review`
33
+ - Testing requirements (`pytest`, manual verification, etc.)
34
+
35
+ **IMPORTANT:**
36
+ - If project has a defined workflow → **MUST follow it exactly**
37
+ - If no workflow found → Use default workflow (Phase 1 below)
38
+
39
+ ### 0.2 Git Setup
40
+
41
+ ```bash
42
+ # 1. Check for uncommitted changes
43
+ if [ -n "$(git status --porcelain)" ]; then
44
+ echo "Warning: Uncommitted changes detected"
45
+ # → Ask user whether to commit (use AskUserQuestion)
46
+ fi
47
+
48
+ # 2. Switch to main branch and sync
49
+ git checkout main
50
+ git fetch origin main
51
+ git reset --hard origin/main
52
+
53
+ # 3. Assign issue (state change only, no worktree)
54
+ ISSUE_ID=$(viban assign 2>&1 | tail -1)
55
+ if [ -z "$ISSUE_ID" ] || [ "$ISSUE_ID" = "No backlog" ]; then
56
+ echo "No issues in backlog"
57
+ exit 0
58
+ fi
59
+
60
+ # 4. Create new branch
61
+ git checkout -b viban-$ISSUE_ID
62
+ ```
63
+
64
+ **If backlog is empty**: Notify user and exit
65
+
66
+ ---
67
+
68
+ ## Phase 1: ANALYZE → VERIFY
69
+
70
+ ```bash
71
+ viban get $ISSUE_ID
72
+ ```
73
+
74
+ ### If Project Workflow Exists (from CLAUDE.md):
75
+
76
+ **Follow the project's exact steps.** Common patterns include:
77
+
78
+ 1. Root cause analysis (5 Whys)
79
+ 2. Context verification (ask if unclear)
80
+ 3. Implementation & verification strategy
81
+ 4. Code implementation (`/ultrawork` for 2+ files)
82
+ 5. **Manual verification** (browser/API, NOT pytest)
83
+ 6. Code simplification (`/code-simplifier`)
84
+ 7. Code review (`/code-review`)
85
+
86
+ ### Default Workflow (if no project workflow):
87
+
88
+ 1. **Understand**: Read the issue, understand the problem
89
+ 2. **Locate**: Find relevant code files
90
+ 3. **Analyze**: Determine root cause
91
+ 4. **Implement**: Make minimal, focused changes
92
+ 5. **Verify**: Test the fix works (appropriate method for the project)
93
+ 6. **Review**: Self-review changes for quality
94
+
95
+ ---
96
+
97
+ ## Phase 2: SHIP
98
+
99
+ ### 2.1 Rebase
100
+
101
+ ```bash
102
+ git fetch origin main
103
+ git rebase origin/main
104
+ # On conflict: resolve → git add → git rebase --continue
105
+ ```
106
+
107
+ ### 2.2 Commit & Push
108
+
109
+ ```bash
110
+ git add -A
111
+ git commit -m "fix: issue title summary
112
+
113
+ - Root cause: ...
114
+ - Solution: ...
115
+
116
+ Resolves: viban-$ISSUE_ID"
117
+
118
+ git push -u origin viban-$ISSUE_ID
119
+ ```
120
+
121
+ ### 2.3 Create PR
122
+
123
+ ```bash
124
+ EXISTING_PR=$(gh pr list --head viban-$ISSUE_ID --json number -q '.[0].number')
125
+ [ -z "$EXISTING_PR" ] && gh pr create \
126
+ --title "viban-$ISSUE_ID: title" \
127
+ --body "## Changes
128
+ - ...
129
+
130
+ ## Testing
131
+ - [ ] Tests passing (if applicable)
132
+ - [ ] Manual verification (if applicable)" \
133
+ --base main
134
+ ```
135
+
136
+ ### 2.4 Issue → review
137
+
138
+ ```bash
139
+ viban review $ISSUE_ID
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Phase 3: HANDOFF
145
+
146
+ ```
147
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
148
+ Human Review Required
149
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
150
+
151
+ Issue #$ISSUE_ID → review status
152
+
153
+ PR: gh pr view viban-$ISSUE_ID --web
154
+
155
+ Verification complete:
156
+ - Project workflow followed
157
+ - Changes tested appropriately
158
+ - Code reviewed
159
+
160
+ After approval: Delete issue from viban TUI
161
+
162
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
163
+ ```
164
+
165
+ ---
166
+
167
+ ## Checklist
168
+
169
+ ```
170
+ [ ] Read CLAUDE.md for project workflow
171
+ [ ] Working on viban-$ISSUE_ID branch
172
+ [ ] Project workflow steps completed (or default if none)
173
+ [ ] Rebase complete
174
+ [ ] PR pushed
175
+ [ ] viban review executed
176
+ ```
177
+
178
+ ---
179
+
180
+ ## CLI Reference
181
+
182
+ | Command | Description |
183
+ |---------|-------------|
184
+ | `viban` | Open TUI |
185
+ | `viban list` | Print board |
186
+ | `viban assign [session]` | Assign issue |
187
+ | `viban get <id>` | View issue |
188
+ | `viban review <id>` | Move to review |
@@ -0,0 +1,140 @@
1
+ ---
2
+ name: setup
3
+ description: "Install viban dependencies (zsh, gum, jq) automatically"
4
+ ---
5
+
6
+ # /setup - Install Dependencies
7
+
8
+ Automatically install all viban dependencies based on the operating system.
9
+
10
+ ## Execution Steps
11
+
12
+ ### Step 1: Detect OS and Package Manager
13
+
14
+ ```bash
15
+ # Detect OS
16
+ if [[ "$OSTYPE" == "darwin"* ]]; then
17
+ OS="macos"
18
+ PKG_MANAGER="brew"
19
+ elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
20
+ OS="linux"
21
+ if command -v apt &> /dev/null; then
22
+ PKG_MANAGER="apt"
23
+ elif command -v dnf &> /dev/null; then
24
+ PKG_MANAGER="dnf"
25
+ elif command -v pacman &> /dev/null; then
26
+ PKG_MANAGER="pacman"
27
+ fi
28
+ fi
29
+ ```
30
+
31
+ Report detected OS and package manager to user.
32
+
33
+ ### Step 2: Check Existing Dependencies
34
+
35
+ Check which dependencies are already installed:
36
+
37
+ ```bash
38
+ command -v zsh &> /dev/null && echo "✓ zsh" || echo "✗ zsh"
39
+ command -v gum &> /dev/null && echo "✓ gum" || echo "✗ gum"
40
+ command -v jq &> /dev/null && echo "✓ jq" || echo "✗ jq"
41
+ command -v viban &> /dev/null && echo "✓ viban" || echo "✗ viban"
42
+ ```
43
+
44
+ ### Step 3: Install Missing Dependencies
45
+
46
+ For each missing dependency, run the appropriate install command:
47
+
48
+ #### macOS (Homebrew)
49
+
50
+ ```bash
51
+ # Install Homebrew if not present
52
+ if ! command -v brew &> /dev/null; then
53
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
54
+ fi
55
+
56
+ # Install dependencies
57
+ brew install zsh gum jq
58
+ ```
59
+
60
+ #### Linux (apt - Debian/Ubuntu)
61
+
62
+ ```bash
63
+ # Install zsh and jq
64
+ sudo apt update
65
+ sudo apt install -y zsh jq
66
+
67
+ # Install gum (requires Charm repo)
68
+ sudo mkdir -p /etc/apt/keyrings
69
+ curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
70
+ echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
71
+ sudo apt update
72
+ sudo apt install -y gum
73
+ ```
74
+
75
+ #### Linux (dnf - Fedora/RHEL)
76
+
77
+ ```bash
78
+ sudo dnf install -y zsh jq
79
+
80
+ # Install gum
81
+ echo '[charm]
82
+ name=Charm
83
+ baseurl=https://repo.charm.sh/yum/
84
+ enabled=1
85
+ gpgcheck=1
86
+ gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
87
+ sudo dnf install -y gum
88
+ ```
89
+
90
+ #### Linux (pacman - Arch)
91
+
92
+ ```bash
93
+ sudo pacman -S --noconfirm zsh jq gum
94
+ ```
95
+
96
+ ### Step 4: Install viban CLI
97
+
98
+ ```bash
99
+ npm install -g claude-plugin-viban
100
+ ```
101
+
102
+ ### Step 5: Verify Installation
103
+
104
+ ```bash
105
+ viban help
106
+ ```
107
+
108
+ If successful, show:
109
+
110
+ ```
111
+ ╭─────────────────────────────────────╮
112
+ │ viban setup complete! 🎉 │
113
+ ╰─────────────────────────────────────╯
114
+
115
+ All dependencies installed:
116
+ ✓ zsh
117
+ ✓ gum
118
+ ✓ jq
119
+ ✓ viban
120
+
121
+ You can now use:
122
+ viban Open TUI board
123
+ viban add "task" Add a task
124
+ viban list List all tasks
125
+ /assign Auto-resolve next issue
126
+ /task Create structured issue
127
+ ```
128
+
129
+ ## Error Handling
130
+
131
+ - **Homebrew not found on macOS**: Prompt user to install Homebrew first
132
+ - **sudo required on Linux**: Inform user that admin privileges are needed
133
+ - **Package manager not found**: Show manual installation instructions
134
+ - **npm not found**: Install Node.js first
135
+
136
+ ## Notes
137
+
138
+ - This command requires terminal access to run shell commands
139
+ - On Linux, sudo password may be required
140
+ - All commands are idempotent (safe to run multiple times)
@@ -1,13 +1,9 @@
1
1
  ---
2
- name: viban:todo
3
- description: "Analyze problem situation and register as viban issue (focus on symptoms and problem definition)"
4
- category: development
5
- complexity: medium
6
- mcp-servers: []
7
- personas: []
2
+ name: task
3
+ description: "Analyze problem and register as viban issue with evidence"
8
4
  ---
9
5
 
10
- # /viban:todo - Problem Analysis and Issue Registration
6
+ # /task - Problem Analysis and Issue Registration
11
7
 
12
8
  Analyze problem situation and register as viban issue with file locations and evidence.
13
9
 
package/install.sh ADDED
@@ -0,0 +1,219 @@
1
+ #!/bin/bash
2
+ # viban - One-liner installer
3
+ # Usage: curl -fsSL https://raw.githubusercontent.com/happy-nut/claude-plugin-viban/main/install.sh | bash
4
+
5
+ set -e
6
+
7
+ RED='\033[0;31m'
8
+ GREEN='\033[0;32m'
9
+ YELLOW='\033[0;33m'
10
+ BLUE='\033[0;34m'
11
+ BOLD='\033[1m'
12
+ NC='\033[0m'
13
+
14
+ echo ""
15
+ echo -e "${BOLD}${BLUE}╭─────────────────────────────────────╮${NC}"
16
+ echo -e "${BOLD}${BLUE}│ viban installer │${NC}"
17
+ echo -e "${BOLD}${BLUE}╰─────────────────────────────────────╯${NC}"
18
+ echo ""
19
+
20
+ # Detect OS
21
+ OS="unknown"
22
+ PKG_MANAGER=""
23
+
24
+ if [[ "$OSTYPE" == "darwin"* ]]; then
25
+ OS="macos"
26
+ if command -v brew &> /dev/null; then
27
+ PKG_MANAGER="brew"
28
+ else
29
+ echo -e "${RED}Error: Homebrew is required on macOS${NC}"
30
+ echo -e "Install it first: ${YELLOW}/bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"${NC}"
31
+ exit 1
32
+ fi
33
+ elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
34
+ OS="linux"
35
+ if command -v apt &> /dev/null; then
36
+ PKG_MANAGER="apt"
37
+ elif command -v dnf &> /dev/null; then
38
+ PKG_MANAGER="dnf"
39
+ elif command -v pacman &> /dev/null; then
40
+ PKG_MANAGER="pacman"
41
+ else
42
+ echo -e "${RED}Error: No supported package manager found (apt, dnf, pacman)${NC}"
43
+ exit 1
44
+ fi
45
+ else
46
+ echo -e "${RED}Error: Unsupported OS: $OSTYPE${NC}"
47
+ exit 1
48
+ fi
49
+
50
+ echo -e "${GREEN}✓${NC} Detected: $OS ($PKG_MANAGER)"
51
+
52
+ # Install system dependencies
53
+ install_pkg() {
54
+ local name="$1"
55
+
56
+ if command -v "$name" &> /dev/null; then
57
+ echo -e "${GREEN}✓${NC} $name already installed"
58
+ return 0
59
+ fi
60
+
61
+ echo -e "${YELLOW}→${NC} Installing $name..."
62
+
63
+ case "$PKG_MANAGER" in
64
+ brew)
65
+ brew install "$name"
66
+ ;;
67
+ apt)
68
+ sudo apt update -qq
69
+ sudo apt install -y "$name"
70
+ ;;
71
+ dnf)
72
+ sudo dnf install -y "$name"
73
+ ;;
74
+ pacman)
75
+ sudo pacman -S --noconfirm "$name"
76
+ ;;
77
+ esac
78
+
79
+ echo -e "${GREEN}✓${NC} $name installed"
80
+ }
81
+
82
+ # Install gum (special case for Linux - needs Charm repo)
83
+ install_gum() {
84
+ if command -v gum &> /dev/null; then
85
+ echo -e "${GREEN}✓${NC} gum already installed"
86
+ return 0
87
+ fi
88
+
89
+ echo -e "${YELLOW}→${NC} Installing gum..."
90
+
91
+ case "$PKG_MANAGER" in
92
+ brew)
93
+ brew install gum
94
+ ;;
95
+ apt)
96
+ # Add Charm repository
97
+ sudo mkdir -p /etc/apt/keyrings
98
+ curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg 2>/dev/null || true
99
+ echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list > /dev/null
100
+ sudo apt update -qq
101
+ sudo apt install -y gum
102
+ ;;
103
+ dnf)
104
+ echo '[charm]
105
+ name=Charm
106
+ baseurl=https://repo.charm.sh/yum/
107
+ enabled=1
108
+ gpgcheck=1
109
+ gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo > /dev/null
110
+ sudo dnf install -y gum
111
+ ;;
112
+ pacman)
113
+ sudo pacman -S --noconfirm gum
114
+ ;;
115
+ esac
116
+
117
+ echo -e "${GREEN}✓${NC} gum installed"
118
+ }
119
+
120
+ echo ""
121
+ echo -e "${BOLD}Installing dependencies...${NC}"
122
+ echo ""
123
+
124
+ # Install zsh (required for viban script)
125
+ install_pkg "zsh"
126
+
127
+ # Install jq
128
+ install_pkg "jq"
129
+
130
+ # Install gum
131
+ install_gum
132
+
133
+ # Check for npm
134
+ echo ""
135
+ if ! command -v npm &> /dev/null; then
136
+ echo -e "${YELLOW}→${NC} Installing Node.js..."
137
+ case "$PKG_MANAGER" in
138
+ brew)
139
+ brew install node
140
+ ;;
141
+ apt)
142
+ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
143
+ sudo apt install -y nodejs
144
+ ;;
145
+ dnf)
146
+ sudo dnf install -y nodejs
147
+ ;;
148
+ pacman)
149
+ sudo pacman -S --noconfirm nodejs npm
150
+ ;;
151
+ esac
152
+ echo -e "${GREEN}✓${NC} Node.js installed"
153
+ else
154
+ echo -e "${GREEN}✓${NC} npm already installed"
155
+ fi
156
+
157
+ # Install viban via npm
158
+ echo ""
159
+ echo -e "${BOLD}Installing viban...${NC}"
160
+ echo ""
161
+
162
+ npm install -g claude-plugin-viban
163
+
164
+ echo ""
165
+ echo -e "${GREEN}✓${NC} viban installed globally"
166
+
167
+ # Register Claude Code plugin
168
+ echo ""
169
+ echo -e "${BOLD}Registering Claude Code plugin...${NC}"
170
+ echo ""
171
+
172
+ CLAUDE_CONFIG_DIR="${HOME}/.claude"
173
+ CLAUDE_PLUGINS_FILE="${CLAUDE_CONFIG_DIR}/plugins.json"
174
+
175
+ mkdir -p "$CLAUDE_CONFIG_DIR"
176
+
177
+ # Get npm global prefix to find viban
178
+ NPM_PREFIX=$(npm prefix -g)
179
+ VIBAN_PLUGIN_DIR="${NPM_PREFIX}/lib/node_modules/claude-plugin-viban"
180
+
181
+ # Check if plugins.json exists
182
+ if [[ -f "$CLAUDE_PLUGINS_FILE" ]]; then
183
+ # Check if viban is already registered
184
+ if jq -e '.plugins[] | select(.name == "viban")' "$CLAUDE_PLUGINS_FILE" > /dev/null 2>&1; then
185
+ echo -e "${GREEN}✓${NC} Plugin already registered"
186
+ else
187
+ # Add viban to existing plugins
188
+ jq --arg path "$VIBAN_PLUGIN_DIR" '.plugins += [{"name": "viban", "path": $path}]' "$CLAUDE_PLUGINS_FILE" > "${CLAUDE_PLUGINS_FILE}.tmp"
189
+ mv "${CLAUDE_PLUGINS_FILE}.tmp" "$CLAUDE_PLUGINS_FILE"
190
+ echo -e "${GREEN}✓${NC} Plugin registered"
191
+ fi
192
+ else
193
+ # Create new plugins.json
194
+ cat > "$CLAUDE_PLUGINS_FILE" << EOF
195
+ {
196
+ "plugins": [
197
+ {
198
+ "name": "viban",
199
+ "path": "$VIBAN_PLUGIN_DIR"
200
+ }
201
+ ]
202
+ }
203
+ EOF
204
+ echo -e "${GREEN}✓${NC} Plugin registered"
205
+ fi
206
+
207
+ echo ""
208
+ echo -e "${BOLD}${GREEN}╭─────────────────────────────────────╮${NC}"
209
+ echo -e "${BOLD}${GREEN}│ Installation complete! 🎉 │${NC}"
210
+ echo -e "${BOLD}${GREEN}╰─────────────────────────────────────╯${NC}"
211
+ echo ""
212
+ echo -e "Usage:"
213
+ echo -e " ${YELLOW}viban${NC} Open TUI board"
214
+ echo -e " ${YELLOW}viban add \"task\"${NC} Add a task"
215
+ echo -e " ${YELLOW}viban list${NC} List all tasks"
216
+ echo -e " ${YELLOW}viban help${NC} Show all commands"
217
+ echo ""
218
+ echo -e "In Claude Code, the plugin is now available."
219
+ echo ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-plugin-viban",
3
- "version": "1.0.0",
3
+ "version": "1.0.4",
4
4
  "description": "Terminal Kanban TUI for AI-human collaborative issue tracking",
5
5
  "main": "bin/viban",
6
6
  "bin": {
@@ -9,10 +9,10 @@
9
9
  "files": [
10
10
  "bin/",
11
11
  "scripts/",
12
- "skills/",
13
12
  "commands/",
14
13
  "docs/",
15
14
  ".claude-plugin/",
15
+ "install.sh",
16
16
  "LICENSE",
17
17
  "README.md"
18
18
  ],
package/commands/todo.md DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- name: todo
3
- description: "Analyze problem and register as viban issue"
4
- ---
5
-
6
- # /todo
7
-
8
- Invokes the `viban:todo` skill to:
9
- - Analyze problem situation
10
- - Search codebase for evidence
11
- - Register issue with proper priority and type
12
-
13
- Usage:
14
- - `/todo` (will prompt for details)
15
- - `/todo "Charts not showing on results page"`
@@ -1,203 +0,0 @@
1
- ---
2
- name: viban:assign
3
- description: "Assign and resolve the first backlog issue from viban board through to PR completion. Reads project CLAUDE.md for workflow."
4
- category: debugging
5
- complexity: advanced
6
- mcp-servers: [serena]
7
- personas: []
8
- ---
9
-
10
- # /viban:assign
11
-
12
- Workflow: First backlog issue → Resolve → PR completion
13
-
14
- > **⛔ No direct `viban.json` access** — CLI only
15
- > **🔴 No Worktree** — Work directly on branch in main repo
16
- > **📋 Workflow**: Read CLAUDE.md first, follow project workflow if exists
17
-
18
- ---
19
-
20
- ## Phase 0: CONTEXT & SETUP
21
-
22
- ### 0.1 Read Project Workflow (CRITICAL)
23
-
24
- **Before any work, read the project's CLAUDE.md:**
25
-
26
- ```bash
27
- # Check for CLAUDE.md at common locations
28
- for path in "./CLAUDE.md" "./.claude/CLAUDE.md" "../CLAUDE.md"; do
29
- [ -f "$path" ] && cat "$path"
30
- done
31
- ```
32
-
33
- **Look for:**
34
- - `Issue Resolution Workflow` section
35
- - `Workflow` or `Development Process` section
36
- - Specific steps like `ultrawork`, `code-simplifier`, `code-review`
37
- - Testing requirements (`pytest`, manual verification, etc.)
38
-
39
- **IMPORTANT:**
40
- - If project has a defined workflow → **MUST follow it exactly**
41
- - If no workflow found → Use default workflow (Phase 1 below)
42
-
43
- ### 0.2 Git Setup
44
-
45
- ```bash
46
- # 1. Check for uncommitted changes
47
- if [ -n "$(git status --porcelain)" ]; then
48
- echo "⚠️ Uncommitted changes detected"
49
- # → Ask user whether to commit (use AskUserQuestion)
50
- fi
51
-
52
- # 2. Switch to main branch and sync
53
- git checkout main
54
- git fetch origin main
55
- git reset --hard origin/main
56
-
57
- # 3. Assign issue (state change only, no worktree)
58
- ISSUE_ID=$(viban assign 2>&1 | tail -1)
59
- if [ -z "$ISSUE_ID" ] || [ "$ISSUE_ID" = "No backlog" ]; then
60
- echo "⚠️ No issues in backlog"
61
- exit 0
62
- fi
63
-
64
- # 4. Create new branch
65
- git checkout -b viban-$ISSUE_ID
66
- ```
67
-
68
- **If backlog is empty**: Notify user and exit
69
-
70
- ---
71
-
72
- ## Phase 1: ANALYZE → VERIFY
73
-
74
- ```bash
75
- viban get $ISSUE_ID
76
- ```
77
-
78
- ### If Project Workflow Exists (from CLAUDE.md):
79
-
80
- **Follow the project's exact steps.** Common patterns include:
81
-
82
- 1. Root cause analysis (5 Whys)
83
- 2. Context verification (ask if unclear)
84
- 3. Implementation & verification strategy
85
- 4. Code implementation (`/ultrawork` for 2+ files)
86
- 5. **Manual verification** (browser/API, NOT pytest)
87
- 6. Code simplification (`/code-simplifier`)
88
- 7. Code review (`/code-review`)
89
-
90
- ### Default Workflow (if no project workflow):
91
-
92
- 1. **Understand**: Read the issue, understand the problem
93
- 2. **Locate**: Find relevant code files
94
- 3. **Analyze**: Determine root cause
95
- 4. **Implement**: Make minimal, focused changes
96
- 5. **Verify**: Test the fix works (appropriate method for the project)
97
- 6. **Review**: Self-review changes for quality
98
-
99
- ---
100
-
101
- ## Phase 2: SHIP
102
-
103
- ### 2.1 Rebase
104
-
105
- ```bash
106
- git fetch origin main
107
- git rebase origin/main
108
- # On conflict: resolve → git add → git rebase --continue
109
- ```
110
-
111
- ### 2.2 Commit & Push
112
-
113
- ```bash
114
- git add -A
115
- git commit -m "fix: issue title summary
116
-
117
- - Root cause: ...
118
- - Solution: ...
119
-
120
- Resolves: viban-$ISSUE_ID"
121
-
122
- git push -u origin viban-$ISSUE_ID
123
- ```
124
-
125
- ### 2.3 Create PR
126
-
127
- ```bash
128
- EXISTING_PR=$(gh pr list --head viban-$ISSUE_ID --json number -q '.[0].number')
129
- [ -z "$EXISTING_PR" ] && gh pr create \
130
- --title "viban-$ISSUE_ID: title" \
131
- --body "## Changes
132
- - ...
133
-
134
- ## Testing
135
- - [ ] Tests passing (if applicable)
136
- - [ ] Manual verification (if applicable)" \
137
- --base main
138
- ```
139
-
140
- ### 2.4 Issue → review
141
-
142
- ```bash
143
- viban review $ISSUE_ID
144
- ```
145
-
146
- ---
147
-
148
- ## Phase 3: HANDOFF
149
-
150
- ```
151
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
152
- 📋 Human Review Required
153
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
154
-
155
- Issue #$ISSUE_ID → review status
156
-
157
- 🔗 PR: gh pr view viban-$ISSUE_ID --web
158
-
159
- ✅ Verification complete:
160
- - Project workflow followed
161
- - Changes tested appropriately
162
- - Code reviewed
163
-
164
- 📌 After approval: Delete issue from viban TUI
165
-
166
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
167
- ```
168
-
169
- ---
170
-
171
- ## Phase 4: REFLECT (if available)
172
-
173
- > **Optional**: Run `/self-reflect` if project has this skill
174
-
175
- ```
176
- /self-reflect
177
- ```
178
-
179
- ---
180
-
181
- ## Checklist
182
-
183
- ```
184
- [ ] Read CLAUDE.md for project workflow
185
- [ ] Working on viban-$ISSUE_ID branch
186
- [ ] Project workflow steps completed (or default if none)
187
- [ ] Rebase complete
188
- [ ] PR pushed
189
- [ ] viban review executed
190
- [ ] Self-reflection done (if available)
191
- ```
192
-
193
- ---
194
-
195
- ## CLI Reference
196
-
197
- | Command | Description |
198
- |---------|-------------|
199
- | `viban` | Open TUI |
200
- | `viban list` | Print board |
201
- | `viban assign [session]` | Assign issue |
202
- | `viban get <id>` | View issue |
203
- | `viban review <id>` | Move to review |