[](LICENSE) [](CHANGELOG.md) [](skills/) [](commands/) [](systems/superintelligence/) [](https://github.com/coco-research/coco/actions)
Install The Board Framework Skills Systems Demos
/SI-Decide --debate run — CoCo routes an expert panel, deliberates in reacting rounds, and returns an attributed verdict with named dissent.git clone https://github.com/coco-research/coco.git && cd coco && bash install.sh
What CoCo Is (and Isn't)
CoCo is not a new AI model, and it is not another agent harness. It doesn't run a model or an agent loop of its own. It's a portable layer of Markdown and YAML that installs into the agent harness you already use — Claude Code, Cursor, Codex CLI, or any AGENTS.md-compatible tool — and upgrades it with an expert advisory board, a skills library, persistent project memory, specialized subagents, and verification gates.
Your model, your tool, your keys, your machine. When you see "parallel subagent waves," those subagents are executed by your host harness's own agent machinery; CoCo supplies the orchestration structure that makes it all behave like a coordinated team. That is exactly why CoCo is vendor-neutral: it's the operating layer, not the engine.
⭐ The Board — CoCo Super Intelligence
A cross-team advisory board of 389 world-class minds
Super Intelligence is CoCo's signature capability. It lets you summon custom, real-world expert panels directly inside your coding session to guide architectural, engineering, risk, finance, and business decisions — each contribution attributed to a named expert, grounded in cited public sources.
/SI-Decide "Should we migrate our database to pgvector?"
/SI-AI-Decide "Which embedding model gives the best cost/performance?"
/SI-Eng-Pre-Mortem "Review our zero-downtime cache migration strategy"
/SI-GRC-Review "Check this customer onboarding flow for GDPR compliance"
389 expert personas, organized across 9 specialized departments:
| Department | Experts | Focus |
|---|---|---|
| Engineering | 70 | Software architecture, cloud systems, systems coding, compilers, infrastructure |
| AI | 59 | Neural-network research, LLM optimization, safety, alignment, vector databases |
| Product & Design | 56 | Design systems, UX, product strategy, growth loops |
| Finance | 47 | Valuation, corporate finance, macro modeling, fintech infrastructure |
| Trading | 46 | Quant analysis, market microstructure, derivatives pricing, crypto liquidity |
| Risk & Compliance (GRC) | 30 | GDPR, HIPAA, SOC 2, security auditing, international regulation |
| Strategy | 29 | Platform economics, business models, competitive analysis |
| Data & Analytics | 29 | Data engineering, pipeline optimization, predictive modeling |
| Sales / GTM / Marketing | 23 | Product-market fit, sales ops, growth marketing, enterprise GTM |
- 242 generated slash commands. 17 cross-team meta commands (like
/SI-Decideor/SI-Tradeoff, routing across domains) plus 225 per-team commands (25 verbs × 9 teams, such as/SI-AI-Decideor/SI-Eng-Pre-Mortem). These are generated locally at install time from the team registries — no command files are transmitted or stored remotely. - 70 expertise cells. Each department is subdivided into focused cells (e.g. Engineering has 11, AI has 8) so the router can assemble a precise panel rather than a generic crowd.
- Cross-team meta-orchestration. For complex queries spanning domains ("build and sell an AI audit tool"), a local router scores your prompt against team registries and cells, then greedily assembles a proportional 16–32-person panel.
- Citable and grounded. Every stance is verified from public sources and carries a direct evidence URL. Personas are validated against a strict anti-fabrication gate.
--debatedeliberation. Panels can argue in reacting rounds before returning a verdict, surfacing named dissent instead of false consensus.
The selection algorithm (two-stage routing + approval)
The meta-orchestrator uses a staged algorithm so it never has to load the entire persona filesystem at runtime:
- Stage A — team & cell routing (cheap). Reads the meta-registry (
systems/superintelligence/registry.json) and scans only team descriptions and cell definitions, scoring relevance by keyword and domain overlap to select the top 1–4 teams. If one team dominates, it delegates to that team's own orchestrator. - Stage B — scoped persona selection. Loads compact persona records (slugs, cells, domains, stances, conflict mappings) for only the selected teams, allocates the 16–32-person budget proportionally, runs the greedy scorer (
0.40·domain + 0.30·cell-coverage + 0.30·conflict-pairing), and applies a cross-team tension pass to pair opposing viewpoints (e.g. security vs. growth). - Stage C — approval & execution. Presents the roster grouped by team with a one-line rationale. The action verb then consumes the approved roster and returns output with full line-by-line attribution (e.g. "Aswath Damodaran (Finance): …").
Persona build & validation pipeline
The 389-persona roster was compiled with a systematic multi-tier workflow. Candidate generation was evaluated across local Qwen (via LM Studio), a hosted small model, and Gemini Flash, but Claude research agents proved the quality winner for resolving historical data and citing verifiable signal. Personas are checked by an advisory validation gate (validate_persona.py) that enforces five things: every required frontmatter field is present; at least 4 cited URLs resolve live (non-404); every public_stance carries an evidence_url, so no stance is uncited; at least 2 recent signals within 12 months (or 2 persistent signals for historical archetypes); and any pairs_well_with / productive_conflict_with slug refers to a real roster member. Two limits are worth stating plainly: the gate confirms that a stance is cited, not that a quotation is authentic, and home_team is only checked for presence, not validated against the list of real teams. A NEEDS-TOPUP verdict is advisory — it does not currently affect which personas a council selects at runtime.
The Framework Underneath
The board decides. The framework ships. Three pillars turn the verdict into merged, verified code.
| ### 1. Autonomous team execution `/team:ship` runs a fully coordinated build pipeline — 6 development stages, 7 hard verification gates, and 2 architecture conformance gates. Specialized agents act in their domains (Research, Architecture, Plan, Review, Build, QA). Code must clear the Test Evidence Protocol (independent re-runs, strict coverage, skip-prevention) **and land where the plan said it would** before a pull request is opened. | ### 2. Disk-persistent state AI chat context is fragile and wipes on `/clear`. CoCo persists phase state, decisions, and progress logs to disk across resets, with atomic git commits for every successful step — so you can review history, roll back a bad design path, or resume a long-running migration from any checkpoint. | ### 3. Vendor-neutral portability CoCo compiles its rules, templates, and agent definitions into pure Markdown and YAML frontmatter. Native IDE adapters inject the same library into Claude Code, Cursor, Codex CLI, or any `AGENTS.md` tool — so your workflows follow you even if you switch AI editors. |
Architecture conformance: the gate tests cannot give you
Every test suite in existence shares one blind spot. Tests fail when behaviour breaks — not when your architecture quietly dissolves. A component can be relocated, folded into another module, or deleted outright, and a green build will tell you nothing. Requirements pass. Coverage holds. The design you agreed to is gone.
/team now closes that gap in both directions, and both are enforced by Python scripts with real exit codes — not by instructions an agent can narrate its way around.
| ### ◀ Backwards — drift detection A commit-pinned index at **`.arch/index.json`** maps every architectural component to the real directories and files that implement it. `/team:verify` gained failure mode **`(e)`**: structural drift against that index. Twelve validator checks run on every index. The central one is blunt and unfakeable: **every claimed path must resolve on disk.** A fabricated path exits non-zero and names itself. | ### ▶ Forwards — built as declared `/team:ship` Stage 3 now declares its intended architecture to **`.team-ship/ARCH-PLAN.json`** — where each component will live, and what is explicitly out of scope. After the build, the **built-as-declared gate** checks it. A component you declared and then quietly dropped is a **BLOCK**. A file that lands in a path the plan ruled out of scope is a **BLOCK**. Neither appears in any test result. |
Why this works. Path existence cannot be checked at planning time, because nothing is built yet. So the plan is written when the knowledge exists and tested when the evidence exists. Deferring the check rather than weakening it is exactly what makes a forward architecture declaration enforceable.
Use it
/team arch build # map this repository into a committed, commit-pinned index
/team arch drift # reconcile an existing index against the current tree
/team arch check # run the validator alone — no model calls, no writes to the index
/team verify # now includes failure mode (e): architecture abandoned
/team ship # declares intended architecture, then proves the build matches
/team ship --no-arch # opt out entirely; every gate reports DISABLED, never a silent pass
The approval gate now shows you the intended architecture as a table before the build starts. That is the cheapest moment to disagree with it.
What it does not do
A gate that overstates its reach is worse than no gate, so these limits are stated in the artifacts themselves and are not marketing hedges.
- Structural drift only. A component whose datastore was swapped inside its own already-claimed directory produces no drift. Every artifact says "structural drift only" in those words, deliberately.
- Not a work-allocation mechanism. The index sits at C4-Container altitude, so one component can legitimately own thousands of files. Three separate design reviews rejected deriving per-agent file ownership from it.
- Currency is not yet mechanically enforced. Comparing the index pin to
HEADis prose an agent follows, not a script. A stale index degrades every gate toUNVERIFIEDrather than to a pass — but instrumenting this is the next piece of work, and it is named as such. - A clean result licenses no claim about whether the code at those paths does what the component promised. That remains a review judgement.
Requires only Python 3 and git. No new dependencies. Design adapted from lak7/devildev (Apache-2.0); no upstream code was copied — see CREDITS.md.
The CoCo Asset Library
A standard install equips your workspace with a lightweight core; full activation unlocks up to 896 total assets to orchestrate any software-engineering workflow.
179Skills68 Core + 111 Bundle |
279Slash Commands37 Core + 242 Generated |
34Specialized Agents10 Core + 24 Bundle |
389Expert PersonasSuper Intelligence Board |
15Cross-IDE RulesCursor MDC Rules |
Orchestration bundles: +68 GSD skills · +24 GSD agents · +6 Brain skills · +9 Super Intelligence skills · +242 SI commands · 3 Workflows
Skills Catalog
CoCo ships 179 skills (68 core + 111 across bundles). These are not prompt snippets — each is a full agent instruction set with state management, verification logic, and error handling. A representative slice by category:
Visual design & styling
ui-ux-pro-max (50 styles, 21 palettes, 50 font pairings, 9 stacks) · frontend-design · design-taste-frontend · redesign-existing-projects · axiom-liquid-glass (Apple Liquid Glass, WWDC 2025) · swiftui-liquid-glass · web-design-guidelines · tailwind-patterns (Tailwind v4) · vercel-react-best-practices · clone-website · c4-architecture · arb-review · expo-api-routes · ai-product · scroll-world (scroll-scrubbed, cut-free camera flythrough landing pages, generated end to end via Higgsfield).
Engineering discipline & quality
brainstorming · writing-plans · executing-plans · subagent-driven-development · dispatching-parallel-agents · test-driven-development · systematic-debugging · requesting-code-review · receiving-code-review · verification-before-completion · finishing-a-development-branch · using-git-worktrees · code-verification (7 bug-vector audit) · generate-tests · api-design-principles · cli-anything · workflow-routing.
AI / LLM engineering
openai-agents · openai-api · openai-apps-mcp · openai-whisper · agent-lightning (Microsoft Agent Lightning, RL) · voice-ai · ai-marketing-videos.
Product management & communication
prd-generator · prd-mastery · task-prd-creator · project-docs · pmstudio · nfr-tracker · stakeholder-comms · meeting-notes · change-log.
Operations, safety & recovery
dr-plan (RTO/RPO) · irp (incident response) · recovery-plan.
Media, memory & analysis
coco-ads (launch videos via HyperFrames) · media-memory (multimodal embeddings) · doc-sync · ultra-think · browser-automation.
The CoCo platform itself
coco (conversational router) · coco-cli · coco-loop (compiles a plain-language goal into a confirmed charter, then runs a bounded, propose-only autonomous loop) · skill-creator · writing-skills · find-skills.
**Core skills (66)** `agent-lightning` · `ai-marketing-videos` · `ai-product` · `api-design-principles` · `arb-review` · `axiom-liquid-glass` · `brainstorming` · `browser-automation` · `c4-architecture` · `change-log` · `cli-anything` · `clone-website` · `coco` · `coco-ads` · `coco-cli` · `coco-loop` · `code-verification` · `design-taste-frontend` · `dispatching-parallel-agents` · `doc-sync` · `dr-plan` · `executing-plans` · `expo-api-routes` · `find-skills` · `finishing-a-development-branch` · `frontend-design` · `generate-tests` · `irp` · `media-memory` · `meeting-notes` · `nfr-tracker` · `openai-agents` · `openai-api` · `openai-apps-mcp` · `openai-whisper` · `pmstudio` · `prd-generator` · `prd-mastery` · `project-docs` · `receiving-code-review` · `recovery-plan` · `redesign-existing-projects` · `requesting-code-review` · `scroll-world` · `skill-creator` · `stakeholder-comms` · `subagent-driven-development` · `swiftui-liquid-glass` · `systematic-debugging` · `tailwind-patterns` · `task-prd-creator` · `test-driven-development` · `ui-ux-pro-max` · `ultra-think` · `using-git-worktrees` · `using-superpowers` · `vercel-react-best-practices` · `verification-before-completion` · `voice-ai` · `web-design-guidelines` · `workflow-routing` · `writing-plans` · `writing-skills` **GSD bundle skills (68)** — the full `gsd-*` project-orchestration lifecycle: `gsd-new-project`, `gsd-plan-phase`, `gsd-execute-phase`, `gsd-verify-work`, `gsd-autonomous`, `gsd-debug`, `gsd-ui-phase`, `gsd-secure-phase`, `gsd-workstreams`, `gsd-forensics`, `gsd-milestone-summary`, `gsd-map-codebase`, `gsd-profile-user`, and 55 more (see [`systems/gsd/skills/`](systems/gsd/skills/)). **Brain bundle skills (6)** — `brain` · `brain-init` · `brain-rescan` · `brain-update` · `brain-export` · `brain-wiki`. **Super Intelligence bundle (9)** — one orchestration skill per built team (ai, engineering, product-design, finance, trading, risk-compliance, strategy, data-analytics, gtm), which generate the 242 `/SI-*` commands at install.
System Bundles
Bundles are opt-in packages that extend the workspace with specialized databases, pipelines, and rosters. Enable them with --systems <name>.
1. GSD (Get Shit Done)
An orchestration engine of 68 skills and 24 agents that manages the lifecycle of complex codebases. A disk-backed phase database records goals, decisions, milestones, and blockers; workstreams spin up isolated git checkouts to test refactors without polluting main; forensics performs post-mortem root-cause audits when a phase fails; and autonomous mode runs parallel waves of subagents through plan milestones end-to-end.
2. Brain
A local knowledge-graph engine of 6 skills connecting email, chat, code, and docs. A local SQLite store indexes code entities, business decisions, project terms, and stakeholder feedback; a wiki generator builds hyperlinked articles for every recorded entity; and mail sync links project email threads to related files.
3. Team
A multi-agent product-team pipeline (/team:ship, /team:plan, /team:review, /team:verify, and more). It spawns specialized subagents — Research, Architect, QA — to execute changes, review diffs, and write tests, with deterministic gates that intercept merges to run lints, import audits, reference checks, and verification suites.
4. Super Intelligence
The 389-persona advisory board and its 242 generated /SI-* commands across 9 departments — the hero capability described above.
YOLO Mode: True Autonomy
|
**Bypass approval gates and let the team run unattended.** Activates autonomous multi-stage execution — pipelines advance phase to phase without manual confirmation. Combine with /gsd-autonomous and --systems gsd to run code migrations or test sweeps overnight. Revert to safety any time with /coco careful or /coco normal.
|
Before CoCo vs. After CoCo
| Scenario | Standard AI Assistant (Claude Code / Cursor / Codex) | CoCo-Orchestrated Workspace |
|---|---|---|
| Hard decisions | One model's single opinion, no attribution, no dissent. | A routed 16–32-person expert panel deliberates and returns an attributed verdict with named dissent. |
| Feature development | Generates a single component, misses side-effects, needs hand-holding. | Scans repo, designs the interface, plans phases, runs parallel build agents, tests, and verifies. |
| Code auditing | Suggests basic syntax fixes; misses architectural constraints. | Applies a 7-category audit (TDZ errors, import mismatches, dead code, CSS regressions, mock leaks). |
| System debugging | Repeats similar suggestions; loses track of prior attempts. | Systematic loop (Reproduce → Isolate → Hypothesize → Fix → Verify) with saved checkpoints. |
| Context resets | Forgets the active plan; starts over from scratch. | Reads workspace state from disk and resumes the active phase immediately. |
High-Impact Command Demos
### Cross-team decision
> Routes a proportional expert panel, deliberates in reacting rounds, and returns an attributed verdict with named dissent.
|
### Code-integrity verification
> Audits fresh code against 7 bug vectors, preventing broken references, imports, and mock leakage.
|
### Website re-engineering
> Extracts colors, typography, spacing, shadows, and SVG assets from a live URL into a single-file responsive template.
|
### Systematic debugging
> Drives a methodical root-cause isolation workflow, preserving hypotheses and findings across API limits.
|
### Spec & PRD generation
> Produces a comprehensive PRD — user stories, metrics, risks, architecture.
|
### Launch video
> Turns the project you just shipped into a short, shareable launch video, rendered locally via HyperFrames.
|
Power Features
### CoCo conversational router
> A central dashboard that routes plain-English asks — "what's blocking?", "summarize files", "run tests" — to the right sub-command.
|
### Multimodal memory
> A local embedding database (Gemini Embedding + ChromaDB) that indexes, searches, and associates diagrams, audio, and docs with your code.
|
### Scheduled & loop agents
> CoCo ships no scheduler of its own. Where your host CLI provides scheduling or looping (such as Claude Code's `/schedule` and `/loop`), point it at any CoCo command to run reviews or watches unattended.
|
### Email triage suite
> Reads your active Outlook instance (Legacy AppleScript or New Outlook MIME cache) to fetch, search, thread, and draft replies to project mail.
|
### Workspace branching
> Branch development workstreams within one repo — isolated, sandboxed checkouts with separate project state.
|
### AGENTS.md compiler
> Compiles all active rules, skills, and command definitions into a standard `AGENTS.md` recognized by Aider, Cline, and Continue.
|
How CoCo Works
flowchart LR
U["You<br/>(Slash command, plain English)"] --> AI["Your AI Harness<br/>(Claude Code, Cursor, Codex…)"]
AI --> A["IDE Adapter"]
A --> S["CoCo Assets<br/>skills · agents · commands · rules · personas"]
S -. Read at runtime .-> AI
AI --> Agents["Parallel Subagents<br/>(executed by your harness)"]
Agents --> AI
Installation Matrix
**Standard 90-second setup**
*The installer auto-detects your active IDE/CLI.*
|
**Via global npm package**
|
**Activate orchestration bundles**
|
**Manual adapter overrides**
|
**One-line remote install**
*Clones Coco to `~/.coco`, then pauses and prints the commit hash, date, and message so you can verify it against [the latest commit on `main`](https://github.com/coco-research/coco/commits/main) before it runs `install.sh`. Type `y` to proceed. Pass `--yes` or set `COCO_BOOTSTRAP_YES=1` to skip the prompt for CI or scripted installs, and pass adapter/systems flags after `--`, e.g. `-- --adapter cursor --systems gsd`.*
|
The install paths above are deliberately conservative: the remote bootstrap never runs code before you have confirmed the commit it cloned, install.sh only ever reads and symlinks files already inside the repository, the CI workflows that build and publish Coco pin their setup-node and setup-python Actions to commit SHAs rather than mutable tags, and nothing Coco does locally or in CI sends data anywhere. See SECURITY.md for the full policy.
Staying Current
CoCo tells you when a newer version is available — it checks the GitHub repository at most once per day, prints a one-line banner, and sends no telemetry. Disable with COCO_NO_UPDATE_CHECK=1.
**git clones**
|
**npm installs**
|
Releases are tracked in CHANGELOG.md and on the GitHub Releases page.
System Compatibility
| AI Tool / CLI | Adapter Name | Status | Details |
|---|---|---|---|
| Claude Code | claude-code |
Stable | Full support for slash commands, agents, and local settings. |
| Cursor | cursor |
Stable | Links MDC rules and custom workspace skills. |
| Codex CLI | codex |
Stable | Compiles assets into root context. |
| Aider / Cline / Windsurf | generic |
Stable | Generates a portable, root-level AGENTS.md definition. |
| VS Code (Continue) | vscode-continue |
Experimental (stub) | Scaffold only — full wiring tracked in #4, targeted for v0.2. |
| Antigravity (Google) | antigravity |
Planned | Integration planned for the v0.2 release. |
Technical Specifications
| Spec Version | 1.2.0 |
| License | Open-core — MIT core; Super Intelligence is proprietary |
| Total Skills | 149 with all bundles installed (66 Core + 68 GSD + 6 Brain + 9 Super Intelligence) |
| Slash Commands | 277 with all bundles — 35 Core (shipped) + 242 Super Intelligence (225 per-team + 17 cross-team, generated at install) |
| Specialized Agents | 34 (10 Core + 24 GSD Bundle) |
| Expert Personas | 389 across 9 departments and 70 cells |
| System Bundles | 5 (GSD, Brain, Cognee, HyperFrames, Super Intelligence) — opt in with --systems <name>. /team is core and needs no flag. |
| Cross-IDE Rules | 15 (.mdc files) |
| Workflows Defined | 3 (.md pipelines) |
| Total Addressable Assets | 896 with all bundles enabled |
| Install Time | ≤ 90 seconds |
| Telemetry / SaaS | None — 100% local files |
Core install ships 68 skills + 37 commands + 10 agents + 15 rules (130 active assets). The totals above reflect a full install with every bundle (bash install.sh --systems gsd,brain,cognee,hyperframes,superintelligence). Super Intelligence slash commands are generated locally at install time from the team registries — no command files are transmitted or stored remotely.
Frequently Asked Questions
Is CoCo an AI model or an agent harness? Neither. CoCo is a portable layer of Markdown and YAML that installs into the agent harness you already use (Claude Code, Cursor, Codex CLI, or any AGENTS.md tool). Your host harness runs the model and executes the agents; CoCo supplies the skills, commands, agents, rules, and persona board that make it act like a coordinated team. Is my codebase or data sent to a third party? No. CoCo is entirely local — Markdown, configuration, and shell scripts on your machine. Your existing AI tool's privacy policy is unchanged, and CoCo adds no telemetry. How do I modify or customize a skill? Every skill lives atskills/<name>/SKILL.md. Edit it directly to refine instructions or add tools, then run bash install.sh to refresh the symlinks.
How do I cleanly uninstall CoCo?
Because CoCo uses symbolic links, removal is non-destructive:
find ~/.claude ~/.cursor -type l -lname "*$(pwd)*" -deleteThis removes only the links pointing back to your CoCo repository folder. What happens if I switch my AI assistant later? Re-run the installer with the new adapter flag (e.g.
bash install.sh --adapter cursor). All your custom skills and workflows follow you.
Contributing & Community
CoCo is open-core: the core is MIT-licensed and contributions are welcome. The Super Intelligence System (systems/superintelligence/) is proprietary — see systems/superintelligence/LICENSE.
- Start here:
CONTRIBUTING.md— how to add a skill, command, agent, or adapter. - Good first issues: help wanted / good first issue — small, well-scoped tasks for newcomers.
- Report a bug / request a feature: open an issue.
- Security: see
SECURITY.mdfor responsible disclosure. - Conduct: see
CODE_OF_CONDUCT.md.
Before opening a PR, validate locally — CI runs a frontmatter linter, manifest validation, and an install-script syntax check.
Built On
CoCo Super Intelligence stands on the shoulders of excellent open-source work. Special thanks to:
- obra/superpowers (Jesse Vincent) — the foundational engineering-discipline skills (brainstorming, systematic debugging, TDD, plan writing/execution, git worktrees, code-review flows, verification, and skill authoring).
- gsd-build/get-shit-done — the 68-skill / 24-agent GSD project-orchestration bundle.
- heygen-com/hyperframes (HeyGen, Inc., Apache License 2.0) — the 20-skill HyperFrames video/motion bundle vendored under
systems/hyperframes/(composition engine, CLI, animation, creative direction, registry, and the video-authoring suite). - JCodesMore/ai-website-cloner-template — the site-cloning structure behind
clone-website. - agents.md community — the vendor-neutral agent-context standard CoCo's adapters follow.
- nickwinder/synthteam (Nick Winder) — the multi-agent debate protocol behind
--debatedeliberation. - latent-spaces/brag (Shunit Haviv) and HyperFrames (HeyGen) — the launch-video flow and local render engine behind
coco-ads. - leonxlnx/taste-skill (Leon) — the design-taste enforcement behind
design-taste-frontendandredesign-existing-projects. - HKUDS/CLI-Anything — the "wrap any CLI into a structured skill" methodology behind
cli-anything. - Vercel and vercel-labs/web-interface-guidelines — the source material behind
vercel-react-best-practicesandweb-design-guidelines.
Full attributions — including feature-level inspirations, bundled audio (ende.app, Kenney.nl), and licenses — live in CREDITS.md. If something influenced CoCo and isn't listed, that's a bug: open an issue.