claude-plugin-viban 1.3.3 → 1.3.5

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "viban",
3
- "version": "1.3.3",
3
+ "version": "1.3.5",
4
4
  "description": "Terminal Kanban TUI for AI-human collaborative issue tracking",
5
5
  "author": {
6
6
  "name": "happy-nut"
package/bin/viban CHANGED
@@ -1526,13 +1526,17 @@ cmd_review() {
1526
1526
 
1527
1527
  cmd_done() {
1528
1528
  init_json
1529
- [[ -z "$1" ]] && { echo "Usage: viban done <id>"; exit 1; }
1529
+ [[ -z "$1" ]] && { echo "Usage: viban done <id> [--remove]"; exit 1; }
1530
+ local id="$1"
1531
+ local remove=false
1532
+ [[ "$2" == "--remove" ]] && remove=true
1533
+
1530
1534
  # Cleanup worktree if exists
1531
1535
  local repo_root=$(git rev-parse --show-toplevel 2>/dev/null)
1532
- local wt_dir="$VIBAN_DATA_DIR/worktrees/$1"
1536
+ local wt_dir="$VIBAN_DATA_DIR/worktrees/$id"
1533
1537
 
1534
- local branch="issue-$1"
1535
- local _ext_id=$(get_ext_id "$1")
1538
+ local branch="issue-$id"
1539
+ local _ext_id=$(get_ext_id "$id")
1536
1540
  if [[ -n "$_ext_id" && "$_ext_id" != "null" ]]; then
1537
1541
  local _issue_num="${_ext_id##*:}"
1538
1542
  if git -C "$repo_root" rev-parse --verify "issue-${_issue_num}" &>/dev/null 2>&1; then
@@ -1545,14 +1549,22 @@ cmd_done() {
1545
1549
  git -C "$repo_root" branch -D "$branch" 2>/dev/null
1546
1550
  echo "✓ worktree removed"
1547
1551
  fi
1548
- # Remove task (handle both string and number ID)
1549
- jq --argjson id "$1" 'del(.issues[]|select((.id|tonumber)==$id))' "$VIBAN_JSON" > "$VIBAN_JSON.tmp" && \
1550
- mv "$VIBAN_JSON.tmp" "$VIBAN_JSON"
1551
1552
 
1552
- # Clear iTerm2 session name
1553
- printf '\033]1;\007'
1554
-
1555
- echo "$(display_id "$1" "$(get_ext_id "$1")") completed & removed"
1553
+ if $remove; then
1554
+ # Delete card (old behavior)
1555
+ jq --argjson id "$id" 'del(.issues[]|select((.id|tonumber)==$id))' \
1556
+ "$VIBAN_JSON" > "$VIBAN_JSON.tmp" && mv "$VIBAN_JSON.tmp" "$VIBAN_JSON"
1557
+ printf '\033]1;\007'
1558
+ echo "✓ $(display_id "$id" "$(get_ext_id "$id")") completed & removed"
1559
+ else
1560
+ # Move to done status (non-destructive default)
1561
+ local now=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
1562
+ jq --argjson id "$id" --arg now "$now" \
1563
+ '(.issues[]|select((.id|tonumber)==$id)) |= . + {status:"done",assigned_to:null,updated_at:$now}' \
1564
+ "$VIBAN_JSON" > "$VIBAN_JSON.tmp" && mv "$VIBAN_JSON.tmp" "$VIBAN_JSON"
1565
+ printf '\033]1;\007'
1566
+ echo "✓ $(display_id "$id" "$(get_ext_id "$id")") → done"
1567
+ fi
1556
1568
  }
1557
1569
 
1558
1570
  cmd_get() { init_json; jq --argjson id "$1" '.issues[]|select((.id|tonumber)==$id)' "$VIBAN_JSON"; }
@@ -1673,7 +1685,7 @@ main() {
1673
1685
  attach) shift; cmd_attach "$@";;
1674
1686
  assign) cmd_assign "$2";;
1675
1687
  review) cmd_review "$2";;
1676
- done) cmd_done "$2";;
1688
+ done) cmd_done "$2" "$3";;
1677
1689
  get) cmd_get "$2";;
1678
1690
  edit) [[ -z "$2" ]] && { echo "Usage: viban edit <id>"; exit 1; }; edit_issue "$2";;
1679
1691
  priority) cmd_priority "$2" "$3";;
@@ -1706,7 +1718,7 @@ main() {
1706
1718
  echo " viban priority <id> <P0-P3> Set priority"
1707
1719
  echo " viban assign Assign first backlog (by priority)"
1708
1720
  echo " viban review → Human Review"
1709
- echo " viban done <id> Complete & remove"
1721
+ echo " viban done <id> [--remove] Complete (--remove to delete)"
1710
1722
  echo " viban edit <id> Edit task in editor"
1711
1723
  echo " viban get <id> Get task details (JSON)"
1712
1724
  echo " viban migrate Migrate: extract type from title"
package/commands/add.md CHANGED
@@ -2,6 +2,8 @@
2
2
  description: "Register a problem as a viban issue"
3
3
  ---
4
4
 
5
+ > Tip: Run `/clear` before `/viban:add` for a clean context.
6
+
5
7
  # /add - Register Issue
6
8
 
7
9
  Register a problem as a viban issue. No codebase exploration, no solutions — symptoms only.
@@ -40,17 +42,20 @@ Infer from description. Don't ask unless truly ambiguous.
40
42
  ## Step 4: Register
41
43
 
42
44
  ```bash
43
- cat > /tmp/viban-desc.md <<'VIBAN_EOF'
45
+ mkdir -p .viban/tmp
46
+ cat > .viban/tmp/desc.md <<'VIBAN_EOF'
44
47
  ## Symptoms
45
48
  {one-sentence symptom}
46
49
  {additional context, if any}
47
50
  VIBAN_EOF
48
51
 
49
52
  # Auto numbering (default)
50
- viban add "{title}" --desc-file /tmp/viban-desc.md --priority {priority} --type {type}
53
+ viban add "{title}" --desc-file .viban/tmp/desc.md --priority {priority} --type {type}
54
+ rm -f .viban/tmp/desc.md
51
55
 
52
56
  # Manual numbering (when workflow specifies)
53
- viban add "{title}" --desc-file /tmp/viban-desc.md --priority {priority} --type {type} --ext-id "{external_id}"
57
+ viban add "{title}" --desc-file .viban/tmp/desc.md --priority {priority} --type {type} --ext-id "{external_id}"
58
+ rm -f .viban/tmp/desc.md
54
59
  ```
55
60
 
56
61
  Use `<<'VIBAN_EOF'` (quoted) to prevent shell interpretation.
@@ -64,49 +69,30 @@ Issue #{id} registered
64
69
  Status: backlog
65
70
  ```
66
71
 
67
- ## Step 6: Suggest Plan Mode
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.
72
+ ## Step 6: Done
77
73
 
78
- When suggesting, use AskUserQuestion:
74
+ Report the registered issue and **stop immediately**. Do not suggest next steps, do not offer to plan, do not continue.
79
75
 
80
- - header: "Next step", question: "This looks complex want to plan before working on it?"
81
- - options:
82
- - "Plan now" — Enter plan mode to analyze and design a solution
83
- - "Later" — Just register, work on it later
76
+ > **This skill ends here. No exceptions.**
84
77
 
85
- **"Plan now"**: `EnterPlanMode` → after approval, save to `.viban/plans/{issue-id}.md`:
86
-
87
- ```bash
88
- mkdir -p .viban/plans
89
- ```
90
-
91
- ```markdown
92
- # Plan: {issue title}
93
- > Issue #{id} | {priority} | {type} | Created: {timestamp}
94
-
95
- {full plan content}
96
- ```
97
-
98
- Report: `Plan saved to .viban/plans/{issue-id}.md — /viban:assign will auto-load it.`
78
+ ## Rules
99
79
 
100
- **"Later"**: end skill.
80
+ ### READ-ONLY MODE — This skill must NOT modify any files.
101
81
 
102
- > **Bias towards skipping.** When in doubt, just register and finish.
82
+ **Allowed tools (whitelist everything else is FORBIDDEN):**
83
+ - `Bash`: ONLY for `mkdir -p .viban/tmp`, `viban add`, `viban list`, `cat .viban/workflow.md`, `rm -f .viban/tmp/desc.md`
84
+ - `Write`: ONLY for `.viban/tmp/desc.md` (temp file for `--desc-file`)
85
+ - `AskUserQuestion`: for clarification
86
+ - `Read`: for reading `.viban/workflow.md`
103
87
 
104
- ## Rules
88
+ **FORBIDDEN tools and actions:**
89
+ - `Edit`: NEVER use. No file modifications of any kind.
90
+ - `Write` to any path outside `/tmp/viban-*.md` and `.viban/plans/`: FORBIDDEN.
91
+ - `Bash` for anything other than `viban` CLI and `cat`/`mkdir` above: FORBIDDEN.
92
+ - No `git` commands. No source code reads. No codebase exploration.
105
93
 
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
109
- - No codebase exploration — assignee does that in `/viban:assign`
94
+ ### Additional rules:
95
+ - **NEVER read or write `viban.json` directly** — always use `viban` CLI commands
110
96
  - No solution proposals in the issue — symptoms only
111
97
  - Check duplicates first: `viban list`
112
98
  - P0 is system-down only
@@ -2,6 +2,8 @@
2
2
  description: "Assign first backlog issue — clarify if unclear, then finish"
3
3
  ---
4
4
 
5
+ > Tip: Run `/clear` before `/viban:assign` for a clean context.
6
+
5
7
  Run `/viban:assign` to pick up the next backlog issue.
6
8
 
7
9
  Usage: `/viban:assign`
package/docs/CLAUDE.md CHANGED
@@ -278,7 +278,8 @@ viban list # Display kanban board
278
278
  viban add "Title" "Desc" P2 feat # Create issue
279
279
  viban assign [session] # Assign top backlog issue
280
280
  viban review [id] # Move issue to review
281
- viban done <id> # Mark issue as done
281
+ viban done <id> # Mark issue as done (card stays on board)
282
+ viban done <id> --remove # Delete card permanently
282
283
  viban get <id> # Get issue details (JSON)
283
284
  viban help # Show help
284
285
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-plugin-viban",
3
- "version": "1.3.3",
3
+ "version": "1.3.5",
4
4
  "description": "Terminal Kanban TUI for AI-human collaborative issue tracking",
5
5
  "main": "bin/viban",
6
6
  "bin": {
@@ -41,17 +41,20 @@ Infer from description. Don't ask unless truly ambiguous.
41
41
  ## Step 4: Register
42
42
 
43
43
  ```bash
44
- cat > /tmp/viban-desc.md <<'VIBAN_EOF'
44
+ mkdir -p .viban/tmp
45
+ cat > .viban/tmp/desc.md <<'VIBAN_EOF'
45
46
  ## Symptoms
46
47
  {one-sentence symptom}
47
48
  {additional context, if any}
48
49
  VIBAN_EOF
49
50
 
50
51
  # Auto numbering (default)
51
- viban add "{title}" --desc-file /tmp/viban-desc.md --priority {priority} --type {type}
52
+ viban add "{title}" --desc-file .viban/tmp/desc.md --priority {priority} --type {type}
53
+ rm -f .viban/tmp/desc.md
52
54
 
53
55
  # Manual numbering (when workflow specifies)
54
- viban add "{title}" --desc-file /tmp/viban-desc.md --priority {priority} --type {type} --ext-id "{external_id}"
56
+ viban add "{title}" --desc-file .viban/tmp/desc.md --priority {priority} --type {type} --ext-id "{external_id}"
57
+ rm -f .viban/tmp/desc.md
55
58
  ```
56
59
 
57
60
  Use `<<'VIBAN_EOF'` (quoted) to prevent shell interpretation.
@@ -65,49 +68,30 @@ Issue #{id} registered
65
68
  Status: backlog
66
69
  ```
67
70
 
68
- ## Step 6: Suggest Plan Mode
71
+ ## Step 6: Done
69
72
 
70
- **Skip** unless the issue clearly needs upfront design. Most issues don't.
73
+ Report the registered issue and **stop immediately**. Do not suggest next steps, do not offer to plan, do not continue.
71
74
 
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
75
+ > **This skill ends here. No exceptions.**
76
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:
80
-
81
- - header: "Next step", question: "This looks complex — want to plan before working on it?"
82
- - options:
83
- - "Plan now" — Enter plan mode to analyze and design a solution
84
- - "Later" — Just register, work on it later
85
-
86
- **"Plan now"**: `EnterPlanMode` → after approval, save to `.viban/plans/{issue-id}.md`:
87
-
88
- ```bash
89
- mkdir -p .viban/plans
90
- ```
91
-
92
- ```markdown
93
- # Plan: {issue title}
94
- > Issue #{id} | {priority} | {type} | Created: {timestamp}
95
-
96
- {full plan content}
97
- ```
98
-
99
- Report: `Plan saved to .viban/plans/{issue-id}.md — /viban:assign will auto-load it.`
77
+ ## Rules
100
78
 
101
- **"Later"**: end skill.
79
+ ### READ-ONLY MODE — This skill must NOT modify any files.
102
80
 
103
- > **Bias towards skipping.** When in doubt, just register and finish.
81
+ **Allowed tools (whitelist everything else is FORBIDDEN):**
82
+ - `Bash`: ONLY for `mkdir -p .viban/tmp`, `viban add`, `viban list`, `cat .viban/workflow.md`, `rm -f .viban/tmp/desc.md`
83
+ - `Write`: ONLY for `.viban/tmp/desc.md` (temp file for `--desc-file`)
84
+ - `AskUserQuestion`: for clarification
85
+ - `Read`: for reading `.viban/workflow.md`
104
86
 
105
- ## Rules
87
+ **FORBIDDEN tools and actions:**
88
+ - `Edit`: NEVER use. No file modifications of any kind.
89
+ - `Write` to any path outside `/tmp/viban-*.md` and `.viban/plans/`: FORBIDDEN.
90
+ - `Bash` for anything other than `viban` CLI and `cat`/`mkdir` above: FORBIDDEN.
91
+ - No `git` commands. No source code reads. No codebase exploration.
106
92
 
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
110
- - No codebase exploration — assignee does that in `/viban:assign`
93
+ ### Additional rules:
94
+ - **NEVER read or write `viban.json` directly** — always use `viban` CLI commands
111
95
  - No solution proposals in the issue — symptoms only
112
96
  - Check duplicates first: `viban list`
113
97
  - P0 is system-down only
@@ -101,9 +101,7 @@ 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
+ > - **NEVER read or write `viban.json` directly** — always use `viban` CLI commands (`viban assign`, `viban get`, `viban list`, `viban done`, etc.)
107
105
  > - This command **assigns only**. Do NOT create branches, write code, or start implementation.
108
106
  > - If the issue is clear, just report and finish immediately.
109
107
 
@@ -113,3 +111,6 @@ Clarification added to issue description.
113
111
  |---------|-------------|
114
112
  | `viban assign [session]` | Assign issue |
115
113
  | `viban get <id>` | View issue |
114
+ | `viban done <id>` | Mark as done (non-destructive) |
115
+ | `viban done <id> --remove` | Delete card permanently |
116
+ | `viban review [id]` | Move to review |
@@ -211,15 +211,15 @@ Ask only what the agent **cannot infer on its own**. One AskUserQuestion call, 3
211
211
  - "Stop before commit — I'll review the code first (review in terminal/IDE)"
212
212
  - multiSelect: false
213
213
 
214
- **Q2. Issue Numbering**
215
- - header: "Issue ID"
216
- - question: "How should issues be numbered when using `/viban:add`?"
214
+ **Q2. Issue Tracker Sync**
215
+ - header: "Sync"
216
+ - question: "Sync issues with an external tracker (GitHub Issues, Jira, Linear, etc.)?"
217
217
  - options:
218
- - "Autoviban auto-assigns #1, #2, #3..."
219
- - "Sync with provider use `/viban:sync` to import from GitHub, Jira, Linear, etc."
220
- - "Manualask for an external ID each time (e.g. PROJ-42, JIRA-123)"
218
+ - "Yesset up two-way sync (issues imported from provider)"
219
+ - "Noauto-number locally (#1, #2, #3...)"
220
+ - "Nobut use manual external IDs (e.g. PROJ-42)"
221
221
  - multiSelect: false
222
- - If user selects "Sync with provider", run `/viban:sync` to initialize sync after workflow setup completes.
222
+ - If user selects "Yes", run `viban sync` to initialize sync after workflow setup completes.
223
223
 
224
224
  **Q3. Extra Rules**
225
225
 
@@ -302,12 +302,12 @@ Combine **auto-detected values** (Step 7) with **interview answers** (Step 8) to
302
302
  | Value | Source | Example |
303
303
  |-------|--------|---------|
304
304
  | Pipeline | Q1 | "Full auto" or "Stop before PR" |
305
- | Issue numbering | Q2 | "Auto" or "Manual" |
305
+ | Issue tracker sync | Q2 | "Yes (sync)" or "No (auto)" or "No (manual IDs)" |
306
306
  | Extra rules | Q3 | User-typed rules or "None" |
307
307
 
308
308
  **Workflow generation principles:**
309
309
  - **Q1 (Pipeline) determines the entire automation structure** — which phases run automatically, where to stop, and whether to create PRs. "Full auto" = no stops + auto PR. "Stop before PR" = auto commit + user creates PR. "Stop before commit" = implement only + user reviews.
310
- - **Q2 (Issue numbering) determines how `/viban:add` handles IDs.** "Auto" = viban auto-assigns `#1`, `#2`. "Sync with provider" = use `/viban:sync` to import/sync issues from GitHub, Jira, Linear, etc. "Manual" = 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`.
310
+ - **Q2 (Issue tracker sync) determines how issues are managed.** "Yes" = run `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`.
311
311
  - **Q3 (Extra rules) is appended verbatim to the Additional Rules section.** If user mentions conventions, evidence, CHANGELOG, language, etc., incorporate into the relevant phase.
312
312
  - **Commit/PR conventions are auto-detected from git history** (Step 7.2). If the user overrides via Q3, use the user's preference instead.
313
313
  - **Everything else uses smart defaults.** Analysis depth, implementation approach, quality gates, verification methods, issue numbering, post-merge — all auto-determined by the agent or set to sensible defaults.
@@ -413,7 +413,7 @@ If build/test fails: fix errors, return to Phase 3.
413
413
 
414
414
  ## Issue Management
415
415
 
416
- - Issue numbering: {FROM Q2: "Auto" = auto-increment (viban default), "Sync with provider" = use `/viban:sync` for external tracker integration, "Manual" = ask for external ID via `--ext-id` flag}
416
+ - Issue tracking: {FROM Q2: "Yes" = synced with external tracker via `viban sync`, "No auto-number" = auto-increment (viban default), "No manual IDs" = ask for external ID via `--ext-id` flag}
417
417
  - Test evidence: include test output in PR body
418
418
  - Post-merge: auto-close issue (`viban done {id}`), delete branch
419
419