npx claudepluginhub happy-nut/claude-plugin-viban --plugin vibanThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Automatically install all viban dependencies based on the operating system.
# Detect OS
if [[ "$OSTYPE" == "darwin"* ]]; then
OS="macos"
PKG_MANAGER="brew"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
OS="linux"
if command -v apt &> /dev/null; then
PKG_MANAGER="apt"
elif command -v dnf &> /dev/null; then
PKG_MANAGER="dnf"
elif command -v pacman &> /dev/null; then
PKG_MANAGER="pacman"
fi
fi
Report detected OS and package manager to user.
Check which dependencies are already installed:
command -v zsh &> /dev/null && echo "✓ zsh" || echo "✗ zsh"
command -v python3 &> /dev/null && echo "✓ python3" || echo "✗ python3"
command -v gum &> /dev/null && echo "✓ gum" || echo "✗ gum"
command -v jq &> /dev/null && echo "✓ jq" || echo "✗ jq"
command -v viban &> /dev/null && echo "✓ viban ($(viban --version 2>/dev/null || echo 'not installed'))" || echo "✗ viban"
For each missing dependency, run the appropriate install command:
# Install Homebrew if not present
if ! command -v brew &> /dev/null; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
# Install dependencies
brew install zsh gum jq
# Install zsh and jq
sudo apt update
sudo apt install -y zsh jq
# Install gum (requires Charm repo)
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update
sudo apt install -y gum
sudo dnf install -y zsh jq
# Install gum
echo '[charm]
name=Charm
baseurl=https://repo.charm.sh/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
sudo dnf install -y gum
sudo pacman -S --noconfirm zsh jq gum
Run dependency installation in the background while auto-detecting project configuration in parallel:
Background task (install):
npm install -g claude-plugin-viban@latest
Parallel task (auto-detect) — run simultaneously:
Jump to Step 7 (Auto-detect Project Configuration) and start gathering project context while installation proceeds.
Wait for both tasks to complete before continuing to Step 5.
viban help
If successful, show:
╭─────────────────────────────────────╮
│ viban setup complete! 🎉 │
╰─────────────────────────────────────╯
All dependencies installed:
✓ zsh
✓ python3
✓ gum
✓ jq
✓ viban
You can now use:
viban Open TUI board
viban add "task" Add a task
viban list List all tasks
/viban:assign Auto-resolve next issue
/viban:add Create structured issue
Tip: Use /viban:sync to integrate with GitHub Issues.
Run it anytime to set up two-way sync.
After dependencies are installed and auto-detection is complete, explain to the user:
╭──────────────────────────────────────────────────╮
│ Workflow Setup (Optional) │
╰──────────────────────────────────────────────────╯
/viban:assign uses your project's .viban/workflow.md
as the TOP PRIORITY when resolving issues.
Without a workflow, a default process is used:
analyze → implement → verify → ship.
Let's set up a custom workflow for this project now.
Ask the user with AskUserQuestion whether they want to configure a workflow now or skip.
Before interviewing, automatically gather project context. Do NOT ask the user about things you can detect.
7.1 Detect build/test commands:
# Check package.json scripts
[ -f package.json ] && cat package.json | jq '.scripts' 2>/dev/null
# Check for common build systems
[ -f Makefile ] && echo "Makefile found"
[ -f pyproject.toml ] && echo "pyproject.toml found"
[ -f Cargo.toml ] && echo "Cargo.toml found"
[ -f go.mod ] && echo "go.mod found"
Determine the appropriate build/test command from the detected files.
7.2 Detect existing conventions from git history:
# Recent commit messages to infer commit style
git log --oneline -20 2>/dev/null
# Branch naming patterns
git branch -r 2>/dev/null | head -20
7.3 Detect project type and verification methods:
Infer from file structure (e.g. src/components/ = frontend, routes/ or controllers/ = backend API, bin/ = CLI).
Store all detected values internally. These will be used in Step 9 to populate the workflow template without asking the user.
Ask only what the agent cannot infer on its own. One AskUserQuestion call, 3 questions. Everything else uses smart defaults or auto-detection.
Q1. Pipeline
/viban:assign, how far should the agent go?"Q2. Issue Tracker Sync
viban sync to initialize sync after workflow setup completes.Q3. Extra Rules
Before asking, show the user what was auto-detected from Step 7:
Detected conventions:
Commit style: {e.g. "feat: ...", "fix: ..." (Conventional Commits)}
Branch naming: {e.g. "feat/*", "fix/*"}
Build command: {e.g. "npm run build && npm test"}
Project type: {e.g. "CLI tool (zsh)"}
Then ask:
Defaults for everything else (do NOT ask):
| Setting | Default | How to override |
|---|---|---|
| Commit/PR conventions | Auto-detected from git log history | Q3 free-text or edit .viban/workflow.md |
| Analysis depth | Agent decides per issue priority/complexity | Edit .viban/workflow.md |
| Implementation approach | Agent decides per issue type | Edit .viban/workflow.md |
| Quality gates | Build/tests pass + manual verification | Edit .viban/workflow.md |
| Test evidence | Test output logs in PR body | Q3 free-text or edit file |
| Post-merge | Auto-close issue + delete branch | Edit .viban/workflow.md |
| Verification method | Auto-detected from project type | Edit .viban/workflow.md |
.viban/workflow.md.viban/ directory and update .gitignoremkdir -p .viban
Add .viban to .gitignore:
.gitignore exists but does not contain .viban: append .viban to it.gitignore does not exist: create it with .viban.gitignore already contains .viban: do nothingif [ -f .gitignore ]; then
grep -qxF '.viban' .gitignore || echo '.viban' >> .gitignore
else
echo '.viban' > .gitignore
fi
If .viban/workflow.md already exists, ask user with AskUserQuestion:
.viban/workflow.md. What would you like to do?"Combine auto-detected values (Step 7) with interview answers (Step 8) to write .viban/workflow.md.
Auto-detected values (from Step 7) — do NOT ask user:
| Value | Detection Source | Example |
|---|---|---|
| Build/test command | package.json, Makefile, Cargo.toml, etc. | npm run build && npm test |
| Project type | File structure analysis | "Web Frontend (React)" |
| Verification methods | Inferred from project type | "Browser test (Playwright)" for frontend, "CLI output check" for CLI |
| Existing commit style | git log --oneline -20 | Infer convention from history |
| Branch naming pattern | git branch -r | feat/*, fix/* |
Interview values (from Step 8) — only 3 questions:
| Value | Source | Example |
|---|---|---|
| Pipeline | Q1 | "Full auto" or "Stop before PR" |
| Issue tracker sync | Q2 | "Yes (sync)" or "No (auto)" or "No (manual IDs)" |
| Extra rules | Q3 | User-typed rules or "None" |
Workflow generation principles:
viban sync after setup to import/sync issues from external tracker (GitHub, Jira, Linear, etc.), IDs come from provider. "No — auto-number" = viban auto-assigns #1, #2. "No — manual IDs" = agent asks for an external ID each time and passes --ext-id to viban add. When manual, commits/PRs reference the external ID instead of #N.Generated template:
# Issue Resolution Workflow
> Auto-applied by `/viban:assign`. Generated by `/viban:setup` - edit freely.
## Pipeline
{FROM Q1:}
{- "Full auto": "Analyze → Implement → Verify → Build → Commit → PR → Review (fully autonomous)"}
{- "Stop before PR": "Analyze → Implement → Verify → Build → Commit → STOP (user creates PR)"}
{- "Stop before commit": "Analyze → Implement → STOP (user reviews code, then commits)"}
---
## Phase 1: Analyze
The agent determines analysis depth based on issue priority and complexity.
1. Read the issue description via `viban get {id}`
2. Explore codebase — approach chosen by agent based on issue context
3. Identify root cause and estimate scope
### Analysis Checklist
- [ ] Issue description fully understood
- [ ] Affected code located and read
- [ ] Root cause identified (or hypothesis formed)
- [ ] Scope of change estimated
---
## Phase 2: Implement
The agent determines implementation approach based on issue type and priority.
### Testing Requirements
{AUTO_DETECTED from project's test framework}
### Implementation Checklist
- [ ] Changes are focused on the issue scope
- [ ] No unrelated changes mixed in
- [ ] {TESTING_CHECKLIST — based on detected test framework}
{IF Q1 is "Stop before commit":}
### >>> STOP: Present changes to user. Wait for approval before committing.
---
## Phase 3: Verify
Verify the fix works. Build/tests must pass + manual verification.
### Verification Methods
{AUTO_DETECTED based on project type}
### Verification Checklist
- [ ] Fix verified
- [ ] No regressions in adjacent functionality
- [ ] Build and tests passing
---
## Phase 4: Build and Test
```bash
{AUTO_DETECTED build/test command}
If build/test fails: fix errors, return to Phase 3.
{AUTO_DETECTED from git history — infer format from existing commits. If Q3 overrides, use that instead.}
{AUTO_DETECTED from existing patterns, or issue-{id} as default}
{FROM Q1:}
{- "Full auto": create PR with body template, move issue to review via viban review {id}}
{- "Stop before PR": commit and push only, notify user that PR is pending. Run viban review {id}.}
{- "Stop before commit": N/A — agent already stopped earlier}
{AUTO_DETECTED from git history convention. If Q3 overrides, use that instead.}
viban review {id} executedviban sync, "No — auto-number" = auto-increment (viban default), "No — manual IDs" = ask for external ID via --ext-id flag}/viban:approve (merges PR, runs viban done {id}, deletes branch){FROM Q3, or "None"}
After writing `.viban/workflow.md`, confirm:
╭──────────────────────────────────────────────────╮ │ Workflow saved to .viban/workflow.md! ✨ │ ╰──────────────────────────────────────────────────╯
.viban/ added to .gitignore /viban:assign will now follow your custom workflow. You can edit .viban/workflow.md anytime to adjust it.
---
## Error Handling
- **Homebrew not found on macOS**: Prompt user to install Homebrew first
- **sudo required on Linux**: Inform user that admin privileges are needed
- **Package manager not found**: Show manual installation instructions
- **npm not found**: Install Node.js first
## CLI Reference
| Command | Description |
|---------|-------------|
| `viban help` | Show help and verify installation |
| `viban add "<title>"` | Add a task |
| `viban list` | List all tasks |
| `viban sync` | Initialize external tracker sync |
## Notes
- This command requires terminal access to run shell commands
- On Linux, sudo password may be required
- All commands are idempotent (safe to run multiple times)