{"id":49838216,"url":"https://github.com/alanpcf/cocada","last_synced_at":"2026-05-30T07:02:50.543Z","repository":{"id":357653974,"uuid":"1236168153","full_name":"alanpcf/cocada","owner":"alanpcf","description":"Banca de LLMs que conversa pra entregar — qualidade alta, token baixo. · A chat-driven LLM crew that ships outcomes — high quality, token-thin. · Crafted Orchestration of Coding Agents for Delivery Automation.","archived":false,"fork":false,"pushed_at":"2026-05-29T21:34:22.000Z","size":5373,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T22:16:24.446Z","etag":null,"topics":["agent","ai-tools","autonomous-agents","claude","code-generation","codex","delivery-rooms","desktop-app","developer-tools","gemini","llm","mac","mcp","model-context-protocol","multi-agent","multi-llm","oss","python","tauri","worktree"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alanpcf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-12T02:25:00.000Z","updated_at":"2026-05-29T21:34:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"462e2f2c-fb76-4c4f-a786-c7850a15d7a8","html_url":"https://github.com/alanpcf/cocada","commit_stats":null,"previous_names":["alanpcf/cocada"],"tags_count":190,"template":false,"template_full_name":null,"purl":"pkg:github/alanpcf/cocada","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanpcf%2Fcocada","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanpcf%2Fcocada/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanpcf%2Fcocada/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanpcf%2Fcocada/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alanpcf","download_url":"https://codeload.github.com/alanpcf/cocada/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alanpcf%2Fcocada/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33682998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","ai-tools","autonomous-agents","claude","code-generation","codex","delivery-rooms","desktop-app","developer-tools","gemini","llm","mac","mcp","model-context-protocol","multi-agent","multi-llm","oss","python","tauri","worktree"],"created_at":"2026-05-14T02:02:54.024Z","updated_at":"2026-05-30T07:02:50.537Z","avatar_url":"https://github.com/alanpcf.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cocada\n\n\u003e **Uma banca de LLMs que conversa pra entregar — qualidade alta, token baixo.**\n\u003e *Crafted Orchestration of Coding Agents for Delivery Automation.*\n\n[![CI](https://github.com/alanpcf/cocada/actions/workflows/ci.yml/badge.svg)](https://github.com/alanpcf/cocada/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n![Python](https://img.shields.io/badge/python-3.12+-blue.svg)\n![Version](https://img.shields.io/badge/version-0.103.3-D9A872.svg)\n![Platform](https://img.shields.io/badge/platform-macOS%20arm64-C68B3E.svg)\n\nManda um pedido no chat. A banca conversa entre si pra resolver.\n**🔭 Bruno + 🛠️ Thiago + 🔍 Mariana + ⚖️ Lúcia** — cada persona liga\nno LLM que faz mais sentido pro trabalho dela.\n\n**Plugou só o Claude?** Funciona — toda a banca conversa nele.\n**Plugou ChatGPT + Gemini junto?** Aí a mágica começa: Bruno (Claude)\nplaneja, Thiago (Gemini) codifica, Mariana (GPT) revisa, e os três\ncruzam ideias entre eles. **Diversidade de modelo pega bug que um sozinho ignora.**\n\nRoteamento per-call escolhe o modelo certo pra cada passo: tarefa\ntrivial vai pro modelo barato, arquitetura vai pro modelo forte. Você\npaga só o que cada papo pediu — não a conta de \"premium em tudo\".\n\nResultado sai como diff, PR ou patch local. Conversa rolando enquanto trabalham.\n\n\u003e **Status v0.103.3** (loop de aprendizado completo): a banca **aprende e se\n\u003e corrige a cada rodada** — memória do projeto ponderada por efetividade (o que\n\u003e ajuda sobe no ranking, o que atrapalha é podado sozinho), **skills externas e\n\u003e aprendidas no mesmo selector** (skill que correlaciona com falha deixa de ser\n\u003e ativada), **causa de falha recorrente vira regra de planning** que o\n\u003e coordinator lê no próximo job, e **padrão de um repo beneficia outro da mesma\n\u003e stack**. Tudo por repo+papel, cross-modelo (Claude/Gemini/Codex), atrás de\n\u003e flags `default OFF` — comportamento inalterado até graduar (gate objetivo via\n\u003e `scripts/learning_readiness.py` + `/analytics/learning-kpis`; ligue localmente\n\u003e com `~/.cocada/flags.env`). Base sólida: QualityHarness pós-job (6 gates) + 11\n\u003e gates inline em 3 camadas. 3170+ testes Python, auto-updater LIVE pra users\n\u003e v0.85.1+. Veja o [CHANGELOG](CHANGELOG.md)\n\u003e e o [roadmap](#roadmap).\n\n## O nome — COCADA\n\n**COCADA = Crafted Orchestration of Coding Agents for Delivery Automation.**\n\n| C | O | C | A | D | A |\n|:-:|:-:|:-:|:-:|:-:|:-:|\n| **C**rafted | **O**rchestration | **C**oding | **A**gents | **D**elivery | **A**utomation |\n\nCocada é doce brasileiro feito à mão (coco + açúcar) — **\"Crafted\"** ancora\nessa etimologia no inglês. O resto descreve com precisão (orchestration +\nagents + delivery automation) sem perder o calor do artesanal. Coerente com\na persona **Thiago \"Artesão Cocada\"** que codifica no chat.\n\n## Por que faz sentido\n\n- **🔌 Qualquer LLM, dos principais.** Claude, ChatGPT, Gemini. CLI subscription (Max/Plus/Pro) **ou** API key nativa. Tem 1? Tudo funciona. Tem os 3? Cross-talk entre modelos vira o diferencial.\n- **💬 Papo entre modelos.** Bruno fala com Thiago, Mariana revisa Thiago, Lúcia checa Mariana. Cada um na LLM que cabe melhor — diversidade pega cego de modelo único.\n- **🪙 Token barato sem perder qualidade.** Roteamento per-call: tarefa trivial no modelo cheap, arquitetura no modelo premium, fallback automático quando um provider cai. Cap de custo configurável por job.\n- **🏗️ Banca de verdade.** 4 personas com responsabilidades distintas. Bruno não codifica; Thiago não decide arquitetura; Mariana valida; Lúcia ⚖️ gate sensível (auth/billing/migrations).\n- **📦 Entrega de verdade.** Diff aplicado no seu projeto, PR aberto no GitHub, ou patch local pra revisar. Não cospe markdown.\n- **🔒 Roda local, sem nuvem nossa.** Sua máquina, seu DB, seus tokens. Telemetria opt-in.\n- **🆓 Free OSS, MIT.** Sem trial, sem cartão, sem upgrade.\n\n---\n\n### English\n\n\u003e **A chat-driven LLM crew that ships outcomes — high quality, token-thin.**\n\u003e *Crafted Orchestration of Coding Agents for Delivery Automation.*\n\nDrop a brief into the chat. The crew talks it out.\n**🔭 Bruno + 🛠️ Thiago + 🔍 Mariana + ⚖️ Lúcia** — each persona plugs\ninto whichever LLM fits their job best.\n\n**Plugged only Claude?** Works — the whole crew runs on it.\n**Plugged ChatGPT + Gemini alongside?** That's where the magic kicks in:\nBruno (Claude) plans, Thiago (Gemini) codes, Mariana (GPT) reviews, and\nthe three cross-check each other. **Model diversity catches bugs a\nsingle-model assistant misses.**\n\nPer-call routing picks the right model for each step: trivial goes to\nthe cheap one, architecture goes to the strong one. You pay only what\neach conversation actually asked for — not the \"premium-everywhere\" bill.\n\nOutcomes ship as a diff, a PR, or a local patch. Conversation keeps flowing.\n\n**The name — COCADA**\n\n**COCADA = Crafted Orchestration of Coding Agents for Delivery Automation.**\n\n| C | O | C | A | D | A |\n|:-:|:-:|:-:|:-:|:-:|:-:|\n| **C**rafted | **O**rchestration | **C**oding | **A**gents | **D**elivery | **A**utomation |\n\n\"Cocada\" is a handcrafted Brazilian coconut sweet — **\"Crafted\"** anchors\nthat etymology in English. The rest names what it does (orchestration +\nagents + delivery automation) without losing the warmth of something made\nby hand. Mirrors the **Thiago \"Artesão\" (Cocada)** persona who codes inside\nthe chat.\n\n**Why it works**\n\n- **🔌 Any of the major LLMs** — Claude, ChatGPT, Gemini. One available? Everything still runs. All three plugged? Cross-model talk becomes the edge.\n- **💬 Models talking to models** — Bruno hands off to Thiago, Mariana reviews Thiago, Lúcia gates Mariana. Diversity catches blind spots single-model crews miss.\n- **🪙 Cheap tokens without cheap output** — per-call routing, auto-failover, configurable cost caps.\n- **🏗️ An actual crew** — four personas with distinct responsibilities, not a single chatbot wearing four hats.\n- **📦 Actual delivery** — a diff applied to your repo, a PR opened, or a local patch. Not markdown soup.\n- **🔒 Runs local, no cloud of ours** — your machine, your DB, your tokens.\n- **🆓 Free OSS, MIT** — no trial, no card, no upgrade.\n\n---\n\n## Quick start\n\n### App desktop (recomendado)\n\n1. Baixe a versão Mac arm64 mais recente da [página de Releases](https://github.com/alanpcf/cocada/releases) — `Cocada_\u003cversão\u003e_aarch64.dmg`.\n2. Arraste pra `Applications/` e abra. A Cocada confere o ambiente, te leva por um onboarding de 4 telas e tá pronta.\n3. **Aba Salas → + Novo pedido**, descreve o que quer e despacha. Cada pedido vira uma sala — você acompanha em tempo real, e quando terminar pode clicar **Continuar nesta sala** pra encadear a próxima entrega no mesmo contexto.\n4. A partir daí, atualizações chegam automaticamente — banner no topo do app quando tiver versão nova.\n\n### CLI\n\n```bash\n# 1. Instale (PyPI)\npipx install cocada                     # ou: pip install --user cocada\n\n# 2. Configure\ncd ~/seus/projetos/seu-repo\nsf init                                 # interativo: detecta LLMs, escolhe perfil\nsf doctor                               # confere tudo OK\n\n# 3. Dispare um job\nsf run --brief \"adiciona logging estruturado no main loop\"\n```\n\nPronto. A Cocada abre PR no GitHub quando terminar.\n\n## Pré-requisitos\n\nCocada precisa de pelo menos **uma** LLM e do **GitHub CLI**.\n\n**GitHub CLI** (obrigatório, pra abrir PRs):\n```bash\nbrew install gh \u0026\u0026 gh auth login\n```\n\n**LLM** — escolha pelo menos uma:\n\n| Provider | Como autenticar | Custo |\n|---|---|---|\n| [Claude CLI](https://docs.claude.com/en/docs/claude-code) | `claude login` | Subscription Max/Pro |\n| [Gemini CLI](https://google-gemini.github.io/gemini-cli/) | `gemini auth login` | Google AI Pro/Ultra |\n| [Codex CLI](https://developers.openai.com/codex/cli) | `codex auth login` | ChatGPT Plus/Pro |\n| Anthropic API | `pip install 'cocada[api]'` + `ANTHROPIC_API_KEY` | Pay-per-token |\n| OpenAI API | `pip install 'cocada[api]'` + `OPENAI_API_KEY` | Pay-per-token |\n| Google API | `pip install 'cocada[api]'` + `GOOGLE_API_KEY` | Pay-per-token |\n\n`sf doctor` mostra status de cada um. `sf init` te ajuda a configurar.\n\n## Como funciona\n\n```\nvocê manda brief\n       │\n       ▼\n   sala criada (worktree próprio em ~/.cocada/worktrees/\u003cid\u003e/)\n       │\n       ▼\n   ┌─────────┐\n   │ Bruno 🔭│  planeja: tasks + dependências + test plan\n   └────┬────┘\n        │\n        ▼  🧐 plan_reviewer (Sonnet) revisa o plano antes do Dev\n        │\n        ▼\n   ┌────────┐  ┌────────┐  ┌────────┐\n   │Thiago 1│  │Thiago 2│  │Thiago N│  🛠️ paralelo via DAG\n   └────┬───┘  └────┬───┘  └────┬───┘\n        └───────────┴───────────┘\n                    │\n                    ▼\n              ┌──────────┐\n              │Mariana 🔍│  roda test plan; reprova → retry\n              └─────┬────┘\n                    │\n                    ▼  ⚖️ Lúcia (validator) checa policy_risk + sensitive areas\n                    │\n                    ▼\n                  ┌────┐\n                  │ PR │  no GitHub via `gh` · OU branch local · OU sandbox _outputs/\n                  └────┘\n                    │\n                    ▼\n            Continuar nesta sala → próxima entrega herda worktree + contexto\n```\n\nVocê pode escolher **provider+modelo por papel** (Bruno/Thiago/Mariana) via **perfis**:\n\n```\nPerfis disponíveis:\n  1. Padrão Cocada [oficial]\n     A combinação que entrega resultado rápido com baixo custo.\n  2. Premium\n     Modelos top em todos os papéis. Mais caro, mais robusto.\n  3. Econômico\n     Modelos baratos pra exploração rápida.\n  4. Velocidade\n     Modelos rápidos pra iterações curtas.\n  5. Em branco\n     Sem defaults. Você preenche tudo.\n```\n\n## Comandos\n\n```bash\nsf init                     # bootstrap interativo do repo\nsf doctor                   # diagnóstico do ambiente\n\nsf run --brief \"...\"        # dispara um job\nsf status \u003cid\u003e              # status sem rodar nada\nsf abort \u003cid\u003e               # encerra job (mata processos)\nsf resume \u003cid\u003e              # força replan + retoma\n\nsf tui                      # dashboard interativo (mesmo de `sf` sem args)\nsf watch \u003cid\u003e               # abre TUI focado num job\n\nsf serve                    # sobe API REST FastAPI em :8765\nsf worker                   # consome job_queue (multi-worker via SQL queue)\n```\n\n## Estrutura\n\n```\ncocada/\n├── apps/\n│   ├── cli/                 # sf init + sf doctor (voz da marca)\n│   ├── api/                 # FastAPI REST :8765 (JWT single-user auto-gerado)\n│   ├── orchestrator/        # Bruno → Thiago → Mariana pipeline + DAG scheduler\n│   ├── tui/                 # Textual: dashboard + new job + detail\n│   └── worker/              # poll job_queue, processar\n├── packages/\n│   ├── providers/           # registry + adapters (claude/gemini/codex CLI + anthropic/openai/google API)\n│   ├── profiles/            # perfis (Padrão Cocada + templates)\n│   ├── db/                  # SQLAlchemy 2.0 (SQLite default ou Postgres opt-in)\n│   ├── llm/providers/       # adapters CLI legados (referenciados pelo registry)\n│   ├── executor/            # git worktree, file ops, setup hooks\n│   └── github/              # gh CLI wrapper (PRs)\n└── scripts/spike.py         # entry point CLI (sf / cocada)\n```\n\n## Configuração\n\n**DB.** Default SQLite local em `~/.cocada/cocada.db` (zero setup). Postgres opcional:\n\n```bash\nDATABASE_URL=postgresql://user:pass@host/db sf run ...\n```\n\n**Credenciais.** Username/senha/JWT secret auto-gerados no primeiro start, salvos no keychain do OS (ou `~/.cocada/auth.json` chmod 600 como fallback).\n\n**Por repositório.** `sf init` cria `.factory/factory.toml` com perfil ativo + overrides finos. Versione no git.\n\n**API keys.** `sf init` te ajuda; ou cole em Settings → LLMs (Fase 3, app desktop); ou exporte `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` / `GOOGLE_API_KEY`.\n\n## Privacidade\n\nA Cocada vem com telemetria **desligada** por padrão. Brief/código/repos nunca saem da sua máquina. Detalhes do que é enviado *se você optar-in* em [`docs/telemetry.md`](docs/telemetry.md).\n\n## Limitações conhecidas\n\n- **Sem notarização Apple** — primeiro open no Mac pede \"Open Anyway\" em System Settings → Privacy \u0026 Security. Free OSS, sem certificado de developer pago.\n- **Só Mac arm64** — Linux/Windows builds chegam quando houver demanda.\n- **Sem terminal embutido** — usa o terminal nativo do OS. xterm.js fica em backlog.\n\nRoadmap: notarização Apple e suporte multi-OS conforme demanda da comunidade.\n\n## Roadmap\n\n| Fase | Entrega | Estado |\n|---|---|---|\n| 1 | Backend (DB dual, providers, perfis, auth, CLI) | ✅ |\n| 2 | App desktop Tauri 2 + tema Cocada + \"Cocada Queimada\" (dark) | ✅ |\n| 3 | Dashboard + JobDetail + NewJob + Settings (LLMs/Perfis) | ✅ |\n| 4 | Lifecycle (Tauri sobe API), onboarding wizard, telemetria opt-in | ✅ |\n| 5 | Build .dmg Mac arm64 + auto-updater assinado + 63 releases shipped | ✅ |\n| 6 | Onda 4.5: PromptCompiler + Lúcia ⚖️ validator + Chat entity + Worktrees | ✅ |\n| 7 | Multi-chat + Salas como home + WS livestream + N jobs por sala | ✅ |\n| 8 | Onda 4 técnica (auto-repair plano, snapshot pré/pós, failure_kind, plan_reviewer, drift detector) | ✅ |\n| 9 | Onda 4 fatia 4 (DiffSnapshot canônico, QA brief determinístico, policy navegável, Lúcia fail-closed, base_sha imutável, repo_id forte) | ✅ |\n| 10 | Rename físico cto/dev/qa → coordinator/builder/reviewer (F0–F8, F9 drop legacy em v0.70+) | ✅ |\n| 11 | Notarização Apple + smoke E2E externo + eval suite (10 briefs) | **em curso** |\n| 12 | Loop de aprendizado completo: efetividade de memória+skills, taxonomia de falha→planning, meta-aprendizado entre repos (4 estágios, atrás de flags `default OFF`, graduação por dogfood) | ✅ |\n| 13 | TUI Textual completo, Linux/Win builds, terminal embutido | backlog |\n\n## Contribuir\n\nCocada é free OSS, MIT. PRs, issues, ideias bem-vindas. Antes de mergulhar, lê [CONTRIBUTING.md](CONTRIBUTING.md) e [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). Discussões abertas em GitHub Discussions.\n\n## Licença\n\n[MIT](LICENSE). Bom proveito.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanpcf%2Fcocada","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falanpcf%2Fcocada","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanpcf%2Fcocada/lists"}