{
  "markdown": "<p align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/assets/logo-dark.svg\">\n    <img src=\"docs/assets/logo-light.svg\" alt=\"vibe-flow\" width=\"420\">\n  </picture>\n</p>\n\n<p align=\"center\">\n  Orchestration skills for Vibe Kanban. Turn a spec into merged code using multi-agent waves:<br>\n  <strong>plan → ship → link → review → merge</strong>, with autonomous fix loops.\n</p>\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\"></a>\n  <a href=\"https://github.com/OAI-Labs/vibe-flow/releases\"><img src=\"https://img.shields.io/github/v/tag/OAI-Labs/vibe-flow?label=version&sort=semver\" alt=\"Version\"></a>\n  <a href=\"https://oai-labs.github.io/vibe-flow/\"><img src=\"https://img.shields.io/badge/docs-online-blue\" alt=\"Docs\"></a>\n  <a href=\"https://github.com/OAI-Labs/vibe-flow/actions/workflows/deploy-docs.yml\"><img src=\"https://github.com/OAI-Labs/vibe-flow/actions/workflows/deploy-docs.yml/badge.svg\" alt=\"Deploy docs\"></a>\n</p>\n\n<p align=\"center\"><strong>Docs:</strong> <a href=\"https://oai-labs.github.io/vibe-flow/\">oai-labs.github.io/vibe-flow</a> · <strong>Contributing:</strong> <a href=\"CONTRIBUTING.md\">CONTRIBUTING.md</a> · <strong>Security:</strong> <a href=\"SECURITY.md\">SECURITY.md</a></p>\n\n## Install\n\nIn Claude Code:\n\n```bash\n/plugin marketplace add OAI-Labs/vibe-flow\n/plugin install vibe-flow@vibe-flow\n```\n\nThen in your repo:\n\n```bash\n/vibe-flow:vibe-init\n```\n\nDev install (clone + symlink):\n\n```bash\ngit clone https://github.com/OAI-Labs/vibe-flow.git\nln -s \"$(pwd)/vibe-flow/plugins/vibe-flow\" ~/.claude/plugins/vibe-flow\n```\n\nRequires the `vibe-kanban` MCP server configured (see [MCP setup](#mcp-setup)).\n\n## Skills\n\n| Skill | Purpose |\n|---|---|\n| `/vibe-flow:vibe-init` | First-time setup: pick project, write `.vibe-flow.yaml`, scaffold state dir |\n| `/vibe-flow:vibe-plan` | Brainstorm a spec → create issue tree (epic + sub-issues + deps) in a project |\n| `/vibe-flow:vibe-ship` | Wave-based parallel dispatch with executor routing (T0 flash → T4 opus) |\n| `/vibe-flow:vibe-link` | Link GitHub PRs to workspace branches, auto-open PR if missing |\n| `/vibe-flow:vibe-review` | Two-stage review (spec → quality) via subagent, post to GitHub PR |\n| `/vibe-flow:vibe-merge` | Safe merge: verify tests, rebase, squash merge, archive workspace |\n| `/vibe-flow:vibe-dispatch-fix` | Re-dispatch agent to fix review critical / CI failures / conflicts |\n| `/vibe-flow:vibe-rebase` | Resolve conflicts against updated main, force-with-lease push |\n| `/vibe-flow:vibe-status` | Dashboard of active workspaces + PRs + inconsistencies |\n| `/vibe-flow:vibe-standup` | Daily summary (merged / in-review / blocked / in-progress) |\n| `/vibe-flow:vibe-flow` | Meta orchestrator running the full loop from spec to merged code |\n\n## Per-project config\n\nRun `/vibe-flow:vibe-init` for guided setup, or create `.vibe-flow.yaml` manually at repo root:\n\n```yaml\nproject_id: 42d306d0-66a2-4655-9e2b-8c9819f52b94\ndefault_executor: CLAUDE_CODE\ndefault_variant: sonnet-4.6-high\n\nbrainstorm:\n  default: autonomous\n  explorers: 3\n\nwave_barrier: merge\nmax_opus_per_wave: 2\n\nfallback_chain:\n  - opus-4.6\n  - sonnet-4.6-high\n  - sonnet-4.6-medium\n\narchive:\n  delete_branch_after_days: 7\n\nnotify:\n  slack: \"\"\n  discord: \"\"\n\n# Map vibe-flow roles → actual board column names. Only set keys whose columns exist.\n# statuses:\n#   ready_to_merge: \"ready_to_merge\"\n```\n\n### Board columns\n\nvibe-flow assumes standard columns `in_progress` / `in_review` / `done` on your board. Status transitions (on PR open → `in_review`, on rejected review → back to `in_progress`, on merge → `done`) use `update_issue` with the column names as configured in `statuses.*`.\n\n**Optional `ready_to_merge` column:** vibe-kanban MCP does not expose a way to create columns — if you want an approved-but-not-merged column, add it manually in vibe-kanban UI → Project Settings → Statuses, then set its name in `.vibe-flow.yaml` under `statuses.ready_to_merge`. Without it, approved issues stay in `in_review` until merge.\n\n## Complexity tiers\n\n| Tier | Executor | When |\n|---|---|---|\n| T0 | GEMINI flash | Typo / copy / hide column |\n| T1 | CODEX mini / CLAUDE_CODE sonnet-medium | Simple CRUD, <150 LoC |\n| T2 | CLAUDE_CODE sonnet-high | Multi-file, moderate |\n| T3 | CLAUDE_CODE opus | Architecture / migration |\n| T4 | CLAUDE_CODE opus + brainstorm | Research / RFC |\n\nSee `references/executor-routing.md`.\n\n## MCP setup\n\nRequires the [vibe-kanban](https://github.com/BloopAI/vibe-kanban) MCP server.\n\nAdd to `~/.claude.json` (global) or `.claude/settings.json` (project):\n\n```json\n\"mcpServers\": {\n  \"vibe_kanban\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"vibe-kanban@latest\", \"--mcp\"]\n  }\n}\n```\n\nFor a self-hosted instance, add `VIBE_BACKEND_URL`:\n\n```json\n\"mcpServers\": {\n  \"vibe_kanban\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"vibe-kanban@latest\", \"mcp\"],\n    \"env\": {\n      \"VIBE_BACKEND_URL\": \"http://your-server:PORT\"\n    }\n  }\n}\n```\n\nVerify the server is connected:\n\n```bash\n/mcp\n```\n\n## State\n\n`.vibe-flow/state.json` at repo root tracks wave progress, dispatched workspaces, cost. Auto-resume if Claude crashes mid-wave.\n\n## License\n\nMIT\n",
  "bytes": 5228,
  "sha": "853c05aca487f6bc284c57f702ccec1a7cc19872efd3c87870328ee8d28f6a90",
  "repo_slug": "oai-labs/vibe-flow",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_oai_labs_vibe_flow_vibe_flow_f1408baa/readme"
}