# Cio Ensemble

> This skill should be used when the user asks to "combine portfolio proposals", "build a CIO ensemble", "select an SAA recommendation", or "write a portfolio board memo" from reviewed candidates.

- **Type:** Skill
- **Install:** `agentstack add skill-nutdnuy-self-driving-portfolio-skill-cio-ensemble`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [nutdnuy](https://agentstack.voostack.com/s/nutdnuy)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [nutdnuy](https://github.com/nutdnuy)
- **Source:** https://github.com/nutdnuy/self-driving-portfolio-skill/tree/main/skills/cio-ensemble

## Install

```sh
agentstack add skill-nutdnuy-self-driving-portfolio-skill-cio-ensemble
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# cio-ensemble

Stage 6 of the agentic SAA pipeline (Ang/Azimbayev/Kim 2026, §3.1 step 6).

## Combination methods

| ID                  | Definition                                               |
| ------------------- | -------------------------------------------------------- |
| `simple_mean`       | Equal-weight average of survivor weights, renormalised.  |
| `borda_weighted`    | Per-asset weighted average; survivor weights ∝ Borda points. |
| `confidence_weighted` | Survivor weights ∝ mean CMA confidence × Borda points. |
| `median`            | Per-asset median across survivors, renormalised.         |
| `trimmed_mean`      | 20% trimmed mean per asset, renormalised.                |
| `sharpe_weighted`   | Survivor weights ∝ ex-ante Sharpe.                       |
| `regime_weighted`   | Survivor weights ∝ regime-fit (TPA-style).               |

## Selection rule (regime → method)

| Regime          | Combiner              |
| --------------- | --------------------- |
| `expansion`     | `sharpe_weighted`     |
| `recovery`      | `sharpe_weighted`     |
| `late_cycle`    | `confidence_weighted` |
| `recession`     | `regime_weighted`     |
| any (low conf.) | `trimmed_mean`        |

If `top1_confidence_low=true`, the override fires regardless of label.

## Outputs

- `final_portfolio.json` — recommended weights + all seven candidate
  ensembles for transparency.
- `board_memo.md` — human-readable summary.

## Escalation

`escalate_to_human=true` if any of:
- Recommended vol within 50bps of IPS hard cap.
- Fewer than the IPS-defined minimum feasible proposal count survived review.
- Adversarial diversifier won the head-to-head.
- Top-1 regime confidence below 0.4.

Run through `pipeline/orchestrator.py` to commit the final JSON and board memo
atomically, then verify the complete run with `pipeline/verify.py`.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [nutdnuy](https://github.com/nutdnuy)
- **Source:** [nutdnuy/self-driving-portfolio-skill](https://github.com/nutdnuy/self-driving-portfolio-skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-nutdnuy-self-driving-portfolio-skill-cio-ensemble
- Seller: https://agentstack.voostack.com/s/nutdnuy
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
