{"_id":"@bondarewicz/dreamteam","_rev":"34-35b17f23b1f340136d9050d0690b83c3","name":"@bondarewicz/dreamteam","dist-tags":{"latest":"1.4.1"},"versions":{"1.0.3":{"name":"@bondarewicz/dreamteam","version":"1.0.3","license":"MIT","_id":"@bondarewicz/dreamteam@1.0.3","maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"homepage":"https://github.com/bondarewicz/dreamteam#readme","bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"bin":{"dreamteam":"bin/dreamteam.ts"},"dist":{"shasum":"658b4d04eb9b39d8774b14c4cd885b0bf7aa4b02","tarball":"https://registry.npmjs.org/@bondarewicz/dreamteam/-/dreamteam-1.0.3.tgz","fileCount":128,"integrity":"sha512-NKQG+cRoIwvX/zJn+gc7R/lQWgvK8ocLwIxwSx6A1ZA6toDYan0CawnFkshDlnD3pi78/ZO/58dX3rRgBumDKw==","signatures":[{"sig":"MEUCIQDIloZ9lzlxpL4Gg6YnlrODjVk7HRmFfvN9GsZQ3pdG5wIgCI3tFqOVF6aRDMLkwvyi1WcQUeupvmql8EonJoHOTBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1197706},"engines":{"bun":">=1.1.0"},"gitHead":"808dc5749d19a4629813a82d012e573b135e9b21","scripts":{"test":"bun test evals/src/__tests__/ web/src/__tests__/","pack:check":"npm pack --dry-run","publish:beta":"npm publish --tag beta --access public","version:beta":"npm version prerelease --preid beta --no-git-tag-version","publish:stable":"npm publish --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f5e6095-02ae-49bb-a7c0-23d816560008"}},"repository":{"url":"git+https://github.com/bondarewicz/dreamteam.git","type":"git"},"_npmVersion":"11.17.0","description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Gemini, Codex). Bun-only.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.0.0","marked":"^18.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/dreamteam_1.0.3_1781722128724_0.7604144665296302","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bondarewicz/dreamteam","version":"1.1.0","license":"MIT","_id":"@bondarewicz/dreamteam@1.1.0","maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"homepage":"https://github.com/bondarewicz/dreamteam#readme","bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"bin":{"dreamteam":"bin/dreamteam.ts"},"dist":{"shasum":"11b29fdc8f46f8bfc16fa20e7875ea14c31b7c4d","tarball":"https://registry.npmjs.org/@bondarewicz/dreamteam/-/dreamteam-1.1.0.tgz","fileCount":132,"integrity":"sha512-mfAoPvQtKmtkED7K/gIbUT3LRczabJR5WHsJfyYzetmcntw8PYyhljg3ucgF2GTcI6w4HVyRqoE2d+BBn9r+jQ==","signatures":[{"sig":"MEQCIG1uZ0SOVrBwptXlWQFe6f0880fvxo9WrmU+hmi/FGasAiB9l713XHahcrctCrmW3HTiRUA3i12YGgZ1rojhVJP31w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bondarewicz%2fdreamteam@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1224738},"engines":{"bun":">=1.1.0"},"gitHead":"a4da677e8eb94d7e5c57d81de9993d5fbfb7ad97","scripts":{"test":"bun test evals/src/__tests__/ web/src/__tests__/","pack:check":"npm pack --dry-run","publish:beta":"npm publish --tag beta --access public","version:beta":"npm version prerelease --preid beta --no-git-tag-version","publish:stable":"npm publish --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f5e6095-02ae-49bb-a7c0-23d816560008"}},"repository":{"url":"git+https://github.com/bondarewicz/dreamteam.git","type":"git"},"_npmVersion":"11.17.0","description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Gemini, Codex). Bun-only.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.0.0","marked":"^18.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/dreamteam_1.1.0_1782484583190_0.1867120793900401","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bondarewicz/dreamteam","version":"1.2.0","license":"MIT","_id":"@bondarewicz/dreamteam@1.2.0","maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"homepage":"https://github.com/bondarewicz/dreamteam#readme","bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"bin":{"dreamteam":"bin/dreamteam.ts"},"dist":{"shasum":"95ffb32ead07e17326a45dc62f761d691c0ee0ee","tarball":"https://registry.npmjs.org/@bondarewicz/dreamteam/-/dreamteam-1.2.0.tgz","fileCount":132,"integrity":"sha512-oUSgyPv4TCcchTlBazH2uU0UY+UfQkLrmmJy6Wzmb5LSDHeIwZK/ce5IRGgizqqjfgkyEwaP4jEc28G8jP/PUg==","signatures":[{"sig":"MEUCIQC4EFjI/Lcbjc4UzU+DSmSBR67vFeqvb3R5hxNHM5uOJgIgcpHM5mO1XmxZchlxSUTkas9fk/c9ZUCLjwVMObzA5VA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bondarewicz%2fdreamteam@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1227712},"engines":{"bun":">=1.1.0"},"gitHead":"ec5549ff4e6752cc2d7505fa72f5e79e76b1892d","scripts":{"test":"bun test evals/src/__tests__/ web/src/__tests__/","pack:check":"npm pack --dry-run","publish:beta":"npm publish --tag beta --access public","version:beta":"npm version prerelease --preid beta --no-git-tag-version","publish:stable":"npm publish --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f5e6095-02ae-49bb-a7c0-23d816560008"}},"repository":{"url":"git+https://github.com/bondarewicz/dreamteam.git","type":"git"},"_npmVersion":"11.17.0","description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Gemini, Codex). Bun-only.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.0.0","marked":"^18.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/dreamteam_1.2.0_1782487337008_0.03743734874840654","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bondarewicz/dreamteam","version":"1.3.0","license":"MIT","_id":"@bondarewicz/dreamteam@1.3.0","maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"homepage":"https://github.com/bondarewicz/dreamteam#readme","bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"bin":{"dreamteam":"bin/dreamteam.ts"},"dist":{"shasum":"ce2a5b59fcdc61d65798271a443bf0f39eae5c65","tarball":"https://registry.npmjs.org/@bondarewicz/dreamteam/-/dreamteam-1.3.0.tgz","fileCount":143,"integrity":"sha512-gvN8MPg5UUJb/0qnqnZNFI8v9XSWMcxu8tSbJqDFHAipZVjTXeta3q5BR2JRtJ3iHW8VSLd/YmnfL9jfj44XkQ==","signatures":[{"sig":"MEUCIGGQVcOtkwtwWHrnuUMOCxgW06XLW1feL/ExSWh++i+pAiEArQY5/P6m2+3rd79q8ndRymLSmj9ZyWyj3ZZ0OU5+gOo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bondarewicz%2fdreamteam@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1520073},"engines":{"bun":">=1.1.0"},"gitHead":"b26c8fccb763a32a649dd5f3301f9b21be291efa","scripts":{"test":"bun test evals/src/__tests__/ web/src/__tests__/","pack:check":"npm pack --dry-run","publish:beta":"npm publish --tag beta --access public","version:beta":"npm version prerelease --preid beta --no-git-tag-version","publish:stable":"npm publish --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f5e6095-02ae-49bb-a7c0-23d816560008"}},"repository":{"url":"git+https://github.com/bondarewicz/dreamteam.git","type":"git"},"_npmVersion":"11.18.0","description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Gemini, Codex). Bun-only.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.0.0","marked":"^18.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/dreamteam_1.3.0_1782757290846_0.9421250535733128","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bondarewicz/dreamteam","version":"1.4.0","license":"MIT","_id":"@bondarewicz/dreamteam@1.4.0","maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"homepage":"https://github.com/bondarewicz/dreamteam#readme","bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"bin":{"dreamteam":"bin/dreamteam.ts"},"dist":{"shasum":"f8a47fa88c8efc645da6c01c788bb9f6b58451d6","tarball":"https://registry.npmjs.org/@bondarewicz/dreamteam/-/dreamteam-1.4.0.tgz","fileCount":143,"integrity":"sha512-+aof1w+IKH4oezNXz+kR1W1pzLo90t/GKIOi3xwOzGfCl+CqdRbPwbwHrK0sbKr5TRIwWBtVxm5+/SqIgHLthg==","signatures":[{"sig":"MEYCIQC3s7yQkdJJWF11NawcjdDHeQ+5gcZLgkzxDAQX4RWFlgIhALpKgXtlLPFFZpDvRzS9gjBnXb8fAaFVAe7Z/TcQ7dFP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bondarewicz%2fdreamteam@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1511545},"engines":{"bun":">=1.1.0"},"gitHead":"db418a2e10103878d4f00b048e3e296945328673","scripts":{"test":"bun test evals/src/__tests__/ web/src/__tests__/","pack:check":"npm pack --dry-run","publish:beta":"npm publish --tag beta --access public","version:beta":"npm version prerelease --preid beta --no-git-tag-version","publish:stable":"npm publish --access public"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f5e6095-02ae-49bb-a7c0-23d816560008"}},"repository":{"url":"git+https://github.com/bondarewicz/dreamteam.git","type":"git"},"_npmVersion":"12.0.1","description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Codex). Bun-only.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.0.0","marked":"^18.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5.4.5"},"_npmOperationalInternal":{"tmp":"tmp/dreamteam_1.4.0_1785234884440_0.4340597244151234","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@bondarewicz/dreamteam","version":"1.4.1","license":"MIT","description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Codex). Bun-only.","repository":{"type":"git","url":"git+https://github.com/bondarewicz/dreamteam.git"},"homepage":"https://github.com/bondarewicz/dreamteam#readme","bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"bin":{"dreamteam":"bin/dreamteam.ts"},"engines":{"bun":">=1.1.0"},"publishConfig":{"access":"public"},"scripts":{"test":"bun test evals/src/__tests__/ web/src/__tests__/","pack:check":"npm pack --dry-run","version:beta":"npm version prerelease --preid beta --no-git-tag-version","publish:beta":"npm publish --tag beta --access public","publish:stable":"npm publish --access public"},"devDependencies":{"@types/bun":"latest","typescript":"^5.4.5"},"dependencies":{"marked":"^18.0.5","zod":"^4.0.0"},"gitHead":"ea8d693ab4f985194cd1beb3d52547a13713ecf4","_id":"@bondarewicz/dreamteam@1.4.1","_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-Ay2y7OGxWIqlN9JSQc7nfi8MP+YpB8bZj4XJ2AnNmlSBpDtEAWNSYxTW3gObZJfPytxr3Az8SQkm3dbapqbm9Q==","shasum":"2c370bf28cd388825b3f75ef5696293b471afa5b","tarball":"https://registry.npmjs.org/@bondarewicz/dreamteam/-/dreamteam-1.4.1.tgz","fileCount":143,"unpackedSize":1511545,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bondarewicz%2fdreamteam@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICeNS0D8IQ9q6uBoFM4sThUwbWKzu1QWo6kU//Gleb1KAiBhQfdx+MV5LvBjTd8WVEkY+fbsds67Az9SQHxCuw1k9w=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f5e6095-02ae-49bb-a7c0-23d816560008"}},"directories":{},"maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dreamteam_1.4.1_1785234929542_0.017463625874558852"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T20:28:25.919Z","modified":"2026-07-28T10:35:30.041Z","1.0.1-beta.0":"2026-06-16T20:28:26.260Z","1.0.1-beta.1":"2026-06-16T20:45:37.317Z","1.0.1-beta.2.g406dd53":"2026-06-16T20:49:28.698Z","1.0.1-beta.3.g1d6f79c":"2026-06-16T20:51:38.391Z","1.0.1-beta.gaa0a906":"2026-06-16T20:54:51.492Z","1.0.1-beta.gc8af117":"2026-06-16T21:14:25.096Z","1.0.1-beta.gbf5c01d":"2026-06-17T07:52:33.986Z","1.0.1-beta.g7cd2ff7":"2026-06-17T11:47:03.762Z","1.0.1":"2026-06-17T11:49:17.621Z","1.0.2":"2026-06-17T17:54:29.712Z","1.0.3":"2026-06-17T18:48:48.925Z","1.1.0":"2026-06-26T14:36:23.342Z","1.2.0":"2026-06-26T15:22:17.210Z","1.3.0":"2026-06-29T18:21:31.034Z","1.4.0":"2026-07-28T10:34:44.606Z","1.4.1":"2026-07-28T10:35:29.715Z"},"bugs":{"url":"https://github.com/bondarewicz/dreamteam/issues"},"license":"MIT","homepage":"https://github.com/bondarewicz/dreamteam#readme","repository":{"type":"git","url":"git+https://github.com/bondarewicz/dreamteam.git"},"description":"Dream Team — a Claude Code agent roster with a cross-provider, schema-enforced eval harness (Claude, Ollama, Codex). Bun-only.","maintainers":[{"name":"bondarewicz","email":"lukasz@bondarewicz.com"}],"readme":"# Dream Team\n\nA squad of specialized AI agents — each owns one job (domain rules, architecture, implementation, quality, scope, synthesis) — plus a `/team` orchestrator that runs them as a pipeline from problem statement to reviewed, spec-backed code. **Put any agent on any provider — Claude, Codex, or Ollama — for both the eval corpus *and* live `/team` sessions, each on your own subscription (no metered API). And every agent's behavior is schema-enforced and graded against that corpus — not vibes.**\n\nInstall once, use in every project. The agents are named after the 1992 USA Basketball Dream Team; the personas are a framing device, the roles are real.\n\n> **New here? Start at [bondarewicz.github.io/dreamteam](https://bondarewicz.github.io/dreamteam/)** — it walks the roster, the playbook, and the evals visually. This README is the technical reference.\n\n## Install\n\n```bash\nbun add -g @bondarewicz/dreamteam@latest    # stable (npm/pnpm work too); @beta for pre-releases\ndreamteam install                           # provision the agents into your harness\ndreamteam doctor                            # check which providers are reachable\n```\n\n`dreamteam install` copies the agents + commands into Claude Code (`~/.claude/`), records a manifest in `~/.dreamteam/`, and merges hooks/MCP add-if-missing. Eval results and the web DB live in `~/.dreamteam/workspace/` (never the repo).\n\n### Upgrading\n\n`dreamteam install` only re-syncs from the **currently installed** package — it does **not** fetch a newer version. To upgrade, use:\n\n```bash\ndreamteam upgrade            # update the global package to @latest, then re-sync ~/.claude\ndreamteam upgrade beta       # track the pre-release channel\ndreamteam upgrade 1.1.0      # pin an exact version\n```\n\n`upgrade` runs `bun add -g @bondarewicz/dreamteam@<tag>` then invokes the fresh binary's `install`, so your agents/commands/hooks pick up the new version in one step. (Equivalent manual form: `bun add -g @bondarewicz/dreamteam@latest && dreamteam install`.) Start a new Claude Code session afterward.\n\n## Prerequisites\n\nDream Team is **Bun-only** and brings nothing of its own — each provider is a tool you already have:\n\n| Prerequisite | Needed for | Notes |\n|---|---|---|\n| **[Bun](https://bun.sh)** ≥ 1.1 | everything | the CLI runs on Bun |\n| **[Claude Code](https://claude.com/claude-code)** (Pro/Max) | interactive `/team`, **and the eval judge** | the orchestrator + judge run on Claude; sanctioned subscription use |\n| **[Ollama](https://ollama.com)** *(optional)* | running agents on local models (evals **and** `/team`) | `ollama serve` + a pulled model (e.g. `qwen3.6`); local, free |\n| **[Codex CLI](https://github.com/openai/codex)** *(optional)* | running agents on GPT-class (evals **and** `/team`) | `codex login` (ChatGPT subscription) — no `OPENAI_API_KEY` (that meters) |\n\n`dreamteam doctor` reports presence + auth for each. You only need the providers you intend to use — Claude Code alone is enough for interactive `/team`.\n\n## The CLI\n\n```text\ndreamteam install [--harness claude-code] [--dry-run]   provision agents/commands\ndreamteam upgrade [tag|version] [--dry-run]              update global package, then re-sync\ndreamteam uninstall                                      remove exactly what was installed\ndreamteam status                                         versions, manifest, drift\ndreamteam doctor                                         Claude / Ollama / Codex reachability\ndreamteam list                                           roster + commands\ndreamteam eval [...]                                     run the eval pipeline (passthrough)\ndreamteam web [--port N]                                 serve the eval report + admin at :3000\n```\n\n## The roster\n\n| Agent | Command | Role | Default model |\n|-------|---------|------|---------------|\n| **bird** | `/bird` | Domain Authority & Final Arbiter | `claude-opus-5` |\n| **mj** | `/mj` | Strategic Systems Architect | `claude-opus-5` |\n| **shaq** | `/shaq` | Primary Code Executor | `claude-sonnet-5` |\n| **kobe** | `/kobe` | Quality & Risk Enforcer | `claude-fable-5` |\n| **pippen** | `/pippen` | Stability, Integration & Defense | `claude-opus-5` |\n| **magic** | `/magic` | Context Synthesizer & Team Glue | `claude-sonnet-5` |\n| **drexler** | `/drexler` | Deletion-Bias Enforcer | `claude-sonnet-5` |\n\nCoach K (the orchestrator) runs on `claude-fable-5` and is never delegated. Kobe is pinned to Fable 5 for its higher bug-finding recall. Each agent's `model:` frontmatter is a **tier** (deep/mid) plus an optional **provider** + per-provider pins — the default is Claude, but set `provider: codex|ollama` to run that agent elsewhere (interactively in `/team` and in evals). Evals can also override per-run via `--model`/`--provider` (see below). Every agent body enforces four contracts: an **output schema** validated before handoffs, an **escalation protocol** (stop and ask, never guess), a **confidence assessment**, and a **turn budget** (`maxTurns`).\n\nEach agent is one markdown file, `agents/<name>.md` — YAML frontmatter (config) + body (system prompt). The repo is the source of truth; **edit the repo, run `dreamteam install`, never edit `~/.claude/` directly.**\n\n## Orchestration — `/team`\n\n`/team` runs **inside Claude Code**. Coach K curates a focused brief per agent (not a dump of prior output) and runs one of three modes:\n\n- **Quick Fix** — sequential pipeline for bugs/small features: you author intake → Bird → Shaq → Kobe + Drexler (parallel) → Magic synthesises → you sign off. Fixes loop until reviewers re-verify.\n- **PR Review** — Bird + MJ + Kobe review a diff in parallel; Coach K synthesizes to `docs/PR-<n>-review.md`. All `gh` is read-only.\n- **Full Team** — independent sessions in isolated git worktrees for new features; checkpoints saved to disk. Requires `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`; falls back to Quick Fix.\n\n**Git safety:** no agent commits or pushes — you control git. Every run drops a checkpoint and an HTML retro in `~/.dreamteam/workspace/`.\n\n### Any agent on any provider — interactively\n\n`/team` is **hybrid multi-provider**, not Claude-only. Coach K orchestrates on Claude (Max) and never moves; each agent runs on the provider you declare in its frontmatter:\n\n```yaml\nmodel:\n  tier: deep            # deep | mid — resolves to a model per provider\n  provider: codex       # claude (default) | codex | ollama\n```\n\nWhen an agent is pinned off-Claude, Coach K **delegates that turn to the provider's own first-party CLI** (`codex exec`, ollama `/api/chat`) on its native subscription/local runtime, then folds the structured result back into the same brief → checkpoint → reviewer loop. **No proxy, no `ANTHROPIC_BASE_URL`, no metered API** — Max stays Max, ChatGPT-Codex stays your ChatGPT sub, Ollama on its own local runtime.\n\nImplementation agents (Shaq) get a real **plan → you approve → implement** gate on every provider, with the plan phase made *physically write-incapable* per provider (codex `--sandbox read-only`, ollama withheld write-tools). Each provider's gate is proven by an instrumented eval before it ships. Analysis/synthesis agents (Bird, MJ, Kobe, Pippen, Drexler, Magic) delegate single-shot. See `docs/spec-hybrid-team/`.\n\n### Spec-driven development\n\nA `/team` session produces a multi-authored spec under `docs/spec-<topic>/` — `intake.md` (you), `domain.md` (Bird), `architecture.md` (MJ), `operations.md` (Pippen), `scope.md` (Drexler), `review.md` (Kobe), `spec.md` (Magic, the synthesis). You sign off on `spec.md` before the session ends.\n\n## Schema enforcement\n\nAgent outputs are typed at the **process boundary**, not by prompt convention:\n\n```\nclaude -p --system-prompt-file agents/<name>.md --json-schema <flat schema> --output-format json\n```\n\nThe model is forced to a flat JSON schema; the result is re-validated with Zod (`schemas/agent-schemas.ts`) and re-prompted on mismatch. Findings: `structured_output` populates reliably only for **flat** schemas (hoist nesting to prefixed top-level keys), and `--system-prompt-file` binds the validator where `--agent` does not. See `docs/spec-schema-enforcement/`.\n\n## Cross-provider evals — the moat\n\nEvery code-touching agent has a scenario suite under `evals/<agent>/` (capability, edge-case, escalation, adversarial). Each scenario declares `prompt` / `expected_behavior` / `failure_modes` / `scoring_rubric`. The pipeline is a deterministic TypeScript CLI: it runs each agent, applies zero-LLM graders, then scores each output against its rubric with a pinned **Coach K judge**.\n\nThe same agent, same scenario, same judge — graded on any provider by changing `--model` (exact id) or `--provider` (resolve each agent's tier for that provider):\n\n```bash\ndreamteam eval --agent bird --model claude-opus-5         # exact Claude model (Max)\ndreamteam eval --agent bird --model ollama/qwen3.6          # exact Ollama model (local :11434)\ndreamteam eval --agent shaq --provider codex               # shaq's tier → Codex (codex exec)\ndreamteam eval --trials 3                                   # sample each scenario N times\n```\n\n`--model` routes on the `provider/` prefix (bare id = Claude); `--provider` resolves each agent's tier/pin for that provider (the two are mutually exclusive). Either affects only the agents under test — **the judge stays on Claude** so comparisons share a baseline. Cost: Claude = Max, Ollama = local/free, Codex = ChatGPT subscription. The run's resolved model is recorded and shown per run in the dashboard.\n\n```bash\ndreamteam web        # http://localhost:3000 — eval report, /admin/models (per-provider picker),\n                     # /admin/providers, sessions. Reads ~/.dreamteam/workspace.\n```\n\n## MCP tools\n\nAgents are granted tools liberally, so **any MCP server connected to Claude Code just works** — no per-agent wiring. MJ/Shaq pull library docs from [Context7](https://context7.com); the team reads/writes [Miro](https://miro.com). Keys live in `~/.claude.json` (User scope), never the repo:\n\n```bash\nclaude mcp add --transport http context7 https://mcp.context7.com/mcp --header \"CONTEXT7_API_KEY: <key>\" -s user\n```\n\n`/REDACTED` builds a [Brandolini](https://leanpub.com/introducing_REDACTED)-style REDACTED on a Miro board (`as-is` / `to-be` / `both`).\n\n## Contributing / development\n\n```bash\ngit clone https://github.com/bondarewicz/dreamteam ~/Github/Bondarewicz/dreamteam\ncd ~/Github/Bondarewicz/dreamteam && bun install\nbun scripts/install.ts        # alias for `dreamteam install` from source\nbun test                      # eval-harness + web suites\n```\n\nReleases publish from CI: push to a branch → `1.0.1-beta.g<sha>` on the npm `beta` tag (OIDC provenance); merge to `main` → stable `latest`. See `RELEASING.md`.\n\n## License\n\nMIT — see [LICENSE](LICENSE). Agent names and jersey numbers are used affectionately as a framing device; this project is not affiliated with, endorsed by, or sponsored by the NBA, USA Basketball, the named players or their estates, Chuck Daly's estate, or Coach Mike Krzyzewski.\n","readmeFilename":"README.md"}