一键导入
vibekanban
Use when working on the visual card UI, Quick Look previews, Zellij pane display, card glyphs, or the overall kanban UX of the jobcard system.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when working on the visual card UI, Quick Look previews, Zellij pane display, card glyphs, or the overall kanban UX of the jobcard system.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Almanac reference for dates, holidays, time zones, business days, and astronomical events. Use when checking if a date is a business day, calculating date differences, converting time zones, looking up holidays, or checking for astronomical events like solstices, equinoxes, and moon phases. Also for seasonal calculations, workday schedules, and calendar arithmetic.
Toyota Production System (TPS) and Toyota Way for software engineering — lean thinking, waste elimination, root cause analysis, and continuous improvement. Use when identifying waste (muda/muri/mura), running blameless postmortems, doing 5 Whys, writing A3 problem statements, or connecting lean philosophy to TRIZ contradiction resolution.
Local multilingual translation via Ollama — 119 languages, no API key, no network, no data leaves the machine. Use when translating to/from Japanese, Chinese, Korean, French, Spanish, German, Portuguese, Russian, Arabic, or any other language. Also for localization, i18n text, and roundtrip validation. Qwen3:32b on Apple Silicon — faster and cheaper than cloud APIs.
TRIZ contradiction matrix oracle for software and systems design. Use when improving one quality worsens another — speed vs correctness, isolation vs sharing, autonomy vs control, simplicity vs completeness. Trigger phrases: "tradeoff", "tension between", "can't have both", "worsens when", "at the cost of", "faster but less reliable", "more isolated but harder to share". Not for bugs, merge conflicts, or tool choices. Prerequisite: triz binary must be installed (run `triz doctor` to verify).
Deploy and manage software on Linux/BSD fleet hosts (Pis, NAS, workstations) via Ansible. Use when user mentions deploy, ansible, fleet, hosts, inventory, or deployment.
Use when operating, debugging, or deploying the elixir-gastown Elixir/BEAM fleet — cluster federation, release builds, worker deploys, seccomp fixes, sname/name distribution issues, rate limiter, or any gastown service on Pi workers or coordinator nodes.
| name | vibekanban |
| description | Use when working on the visual card UI, Quick Look previews, Zellij pane display, card glyphs, or the overall kanban UX of the jobcard system. |
Vibekanban is the visual UX layer on top of the jobcard system — not a separate tool. It emerges from three components working together:
.jobcard bundles render as dark playing-card UI in Finderbop CLI — control plane (inspect, poker, status, logs)macos/bop/ — Swift/SwiftUI QL extension. Key file: PreviewViewController.swift.
com.apple.security.app-sandbox = true)MACH_O_TYPE = mh_execute (NOT mh_bundle)ENABLE_DEBUG_DYLIB = NOGENERATE_INFOPLIST_FILE = YES auto-qualifies class namechanges.json for file listingNSFileCoordinator fallback for reading files in sandboxlsregister -f ~/Applications/JobCardHost.app && pluginkit -a[glyph 44pt] [title bold] [P2 badge]
[label pills — colored by kind]
[progress bar]
[subtask dots ●○○○]
──────────────────────
[Spec]──[Plan]──[Code]──[QA] ← stage pipeline
[acceptance criteria]
[clock 22h ago] [⬛ Attach] [● Stop]
^running+session ^running
Appears when stages[current_stage].status == "running" AND zellij_session is set.
Opens bop://card/<id>/session → host app routes to zellij attach <session>.
Appears when stages[current_stage].status == "running".
Host app (macos/JobCardHost/) registers bop:// URL scheme in Info.plist.
| URL | Action |
|---|---|
bop://card/<id>/session | zellij attach bop-<id> |
bop://card/<id>/logs | Live tail of card logs in terminal |
Routed in JobCardHostApp.swift via .onOpenURL.
QL preview includes a Logs tab with live-tail link. Clicking opens terminal
with colorized log output via bop logs <id>.
See unicode-glyphs skill for full reference.
suit = team ♠=CLI ♥=Arch ♦=Quality ♣=Platform
rank = priority Ace=P1 Queen=P2 Jack=P3 5=P4
🃏 = wildcard / needs breakdown (joker — U+1F0CF)
🂿 = RED JOKER — DO NOT USE, renders as ◆ (silent misread)
Glyph is set at creation or via bop poker consensus. Never change mid-flight.
🂠 (U+1F0A0) in filename or UI means unrevealed estimate/card-back state.🂻-feat-auth.jobcard).meta.id stable (feat-auth) while filename glyph changes.layouts/bop.kdl)┌──────────┬──────────────────┬──────────────────┐
│ BOARD │ SPEC │ QA │
│ watch │ what to build │ did it work? │
│ status ├──────────────────┼──────────────────┤
│ │ STDOUT │ STDERR │
│ │ agent output │ agent errors │
├──────────┴──────────────────┴──────────────────┤
│ INSPECTOR — bop inspect <id> │
├─────────────────────────────────────────────────┤
│ SHELL — bop commands (focus/retry/approve) │
└─────────────────────────────────────────────────┘
Launch: zellij --layout layouts/bop.kdl
Navigate all Zellij panes to focus on a specific card:
scripts/bop_focus.zsh <card-id> # populate all panes for card
scripts/bop_focus.zsh --auto # sweep all panes via zellij action write-chars
Uses zellij action write-chars to send commands into named panes.
Goal→card→Zellij session in one command:
scripts/bop_bop.zsh "add auth to the API"
# Creates card: bop-add-auth-to-the-api
# Writes goal to spec.md
# Starts/attaches Zellij session: bop-bop-add-auth-to-the-api
# Runs dispatcher inside session
Budget-aware: reads stage_budgets from template meta.json.
{
"zellij_session": "bop-feat-auth", // session name
"zellij_pane": "3" // pane ID within session
}
Set by dispatcher on spawn. Used by QL Attach button and bop_focus.
bop logs <id> outputs tailspin-style colorized logs:
Implemented in colorize_log_line() in main.rs. Detects TTY for auto-disable.
| kind | color |
|---|---|
| domain | purple |
| effort | gold |
| scope | teal |
| (other) | purple |
<card>.jobcard/QuickLook/Thumbnail.pngscripts/render_card_thumbnail.swift <meta.json> <out.png>🂠 → face card)scripts/macos_cards_maintenance.zsh [--compress]Cards show their stage as icon color in Finder:
| State | Color |
|---|---|
| pending | blue |
| running | orange |
| done | green |
| failed | red |
Driven by scripts/set_card_icon.swift. The bop icons FSEvents watcher auto-triggers icon updates on state transitions. Bundled into the bop factory lifecycle.
Written at merge time. QL reads this instead of shelling out to git.
{
"branch": "job/feat-auth",
"files_changed": [
{"path": "src/auth.rs", "status": "added"},
{"path": "src/main.rs", "status": "modified"}
],
"stats": {"files_changed": 2, "insertions": 145, "deletions": 12}
}
Never use .capitalized — "QA" → "Qa". Use lookup:
let stageOrder = [("spec","Spec"),("plan","Plan"),("implement","Code"),("qa","QA")]
swift scripts/render_card_thumbnail.swift <meta.json> <out.png>