Run a Committee Analysis
Put any ticker through a multi-analyst investment-committee debate, read-only, from chat or the Web UI
Institution Mode opens a structured 6-phase pipeline against any ticker (or basket of tickers): four analysts in parallel, a bull/bear research debate, a Research Manager rating, a Trader proposal, a 3-way risk debate, and a Portfolio Manager final call. For multi-ticker prompts, a Phase 7 Allocator adds cross-asset comparison or allocation. Every run is read-only.
⚠️ Long-running. A single run is roughly 25 LLM calls and 60–600 seconds. Don't reach for it on quick price or sentiment lookups.
For the product positioning and full coverage matrix, see Institution Mode → feature page. This page is the operating guide.
Four ways to invoke
1. Single-ticker analysis
Prompt
/institution BTCWhat happens:
Convening the institution for BTC...
Phase 1 — Fundamentals, sentiment, news, and technical analysts running in parallel...
Phase 2 — Bull vs Bear debate (3 rounds)...
Phase 3 — Research Manager: Overweight, confidence 0.68
Phase 4 — Trader: Buy spot, $93k stop, $122k target, 6–10 weeks
Phase 5 — Risk debate (Aggressive / Conservative / Neutral)...
Phase 6 — Portfolio Manager: Buy, confidence 0.72
Full report: Institution report.
The web UI renders each phase in a live "firm canvas" with status, duration, and per-role badges as events stream in. The REPL prints the same events as a structured tree.
2. Multi-ticker compare or allocate
Prompt
/institution BTC ETH SOLThe pipeline runs phases 1–6 for each ticker (in parallel where possible), then triggers Phase 7. The Allocator picks one of three modes automatically:
| Mode | When | Output |
|---|---|---|
compare | All tickers in the same asset class | Ranked recommendation with primary pick |
allocate | Tickers from different asset classes (BTC + gold + SPY) | Suggested allocation weights and reasoning |
hybrid | Mix of both | Tier-1 picks per class + cross-class weights |
The Allocator's output appears in the chat above the per-ticker reports, and the multi-ticker Web UI splits the canvas into a tab per ticker plus a dedicated Allocator panel.
3. Natural-language clarify-loop
Prompt
/institution analyze appleWhen the parser cannot resolve a ticker confidently (the user said a
brand name, a foreign-language ticker, or an ambiguous symbol), the
tool returns status: "waiting_for_input" with up to 5 candidates:
I found a few possibilities for "apple":
- AAPL — Apple Inc. (NASDAQ; tokenized equity also available on Solana)
- AAPLx — Pre-IPO synthetic on a venue you've used before
- APLE — Apple Hospitality REIT (NYSE)
Reply with the ticker you mean and I'll start the analysis.
After the user picks, the tool re-runs with the confirmed ticker. No budget is spent on the full pipeline until the ticker is locked.
4. Capital-anchored allocation (worked example: $50,000)
When the question is "how do I deploy $X across this basket", give the institution both the capital figure AND the explicit ticker list in the prompt. Phase 7 Allocator picks up the dollar amount and emits USD-denominated weights instead of plain percentages.
Prompt:
/institution I have $50,000. I want to allocate across BTC, ETH,
NVDA, GLD, and TLT — leaning risk-on with a real hedge sleeve.
How should I size each leg?Naming the tickers explicitly (BTC / ETH / NVDA / GLD / TLT) skips the clarify round entirely — the parser confirms the basket and proceeds straight to Phase 1. Vague descriptions like "some crypto + tech stocks" would force the clarify-loop to ask which exact tickers to use, costing an extra round-trip.
Pipeline runs: phases 1–6 fire for each of the five resolved
tickers in parallel, then Phase 7 Allocator detects a cross-asset
mix (crypto + equity + commodity + bond) and switches to allocate
mode.
Allocator output (excerpt, rendered above the per-ticker reports):
| Asset | Class | PM Rating | Weight | USD ($50,000) | Reason |
|---|---|---|---|---|---|
| BTC | Crypto (major) | Buy · 0.74 | 35% | $17,500 | Highest-conviction risk-on leg; hash-rate + LTH ratio confirm continuation |
| NVDA | US Stock | Overweight · 0.66 | 25% | $12,500 | AI capex cycle intact; Q3 earnings beat with raised guide |
| ETH | Crypto (major) | Overweight · 0.61 | 15% | $7,500 | Beta to BTC + restaking yield; trim if BTC.D > 60% |
| GLD | Commodity | Hold · 0.58 | 15% | $7,500 | Real-yield inverse hedge; fed-pivot optionality |
| TLT | Bond | Underweight · 0.43 | 5% | $2,500 | Duration risk persists; small barbell weight only |
| Cash reserve | USDC | — | 5% | $2,500 | Volatility buffer + add-on dry powder |
Sizing rationale (from the Allocator's prose section):
Crypto sleeve: 50% (BTC 35 + ETH 15). Concentrated on BTC because the risk debate flagged ETH's relative underperformance vs BTC.D trend. NVDA at 25% reflects the AI thesis without doubling up via AVGO / TSM (correlation risk). GLD at 15% is the cycle-pivot hedge. TLT 5% is a token barbell weight; raise to 10–15% only on confirmed Fed-pivot signal. 5% USDC cash gives room to add to BTC at $90–95k if the trader's stop is touched without invalidating the thesis.
Execute the plan (separate prompt — institution mode never moves money):
execute the allocator plan on $50,000 — BTC 35%, NVDA 25%, ETH 15%,
GLD 15%, TLT 5%, USDC 5%.Per-leg execution (each gets its own preview → confirm cycle):
> Leg 1/6 — BTC 35% = $17,500
> swap_tokens preview: USDC → BTC on Solana, ~0.187 BTC at $93,420
> estimated slippage: 0.08%, network fee: $0.40
> Confirm? [yes / no]After you reply yes, the swap fires and the agent moves to leg 2.
NVDA / GLD / TLT route through the equity rails (buy_token → broker
adapter); BTC / ETH route through swap_tokens. The 5% USDC reserve
is left in the spot wallet — no swap needed. Total: 5 confirmations,
6 legs.
Risk caveats Institution Mode surfaces alongside the table:
- The full $50,000 is presumed risk-tolerant capital. Verify against
your safety config — the agent will refuse a leg whose USD value
exceeds
maxTransactionAmount. - Cross-asset correlation under stress: BTC + NVDA both behave as long-duration risk assets in a tightening regime; the GLD + TLT legs are intentionally there to dampen that tail.
- Re-run Phase 0 reflection after 30 days
(
minara institution reflect <run_id> --window 30d) so the methodology store learns whether the BTC weight was correct.
Tuning the run
| Lever | What it does |
|---|---|
--debate N (1..5) | Bull-vs-Bear rounds (Phase 2). Default 3. |
--risk N (1..5) | Aggressive/Conservative/Neutral rounds (Phase 5). Default 3. |
INSTITUTION_WALL_CLOCK_TIMEOUT_MS | Hard ceiling on the whole pipeline. Default 1200000. |
INSTITUTION_PER_CALL_TIMEOUT_MS | Per-LLM-call timeout inside the pipeline. Default scales from wall-clock. |
INSTITUTION_RETROSPECT_ENABLED=1 | Turn on Phase 0 lazy-refresh. |
INSTITUTION_LEARNING_ENABLED=1 | Persist runs + reflections (drives the methodology store). |
Every role in the pipeline (analysts, debate, RM, Trader, risk personas, PM, Allocator) runs on the single LLM model the operator selected — same provider/model the rest of the agent uses. There are no per-role model overrides. Pick a stronger model for the whole session if you want stronger synthesis.
Full reference: Institution env vars.
A reasonable production setup:
INSTITUTION_LEARNING_ENABLED=1
INSTITUTION_RETROSPECT_ENABLED=1Reading the report
Every run produces a structured Portfolio Manager output with the following fields:
- Rating: one of
Buy / Overweight / Hold / Underweight / Sell. Both ends imply directional conviction;Holdis a real call, not a fallback. - Confidence:
0..1. Above 0.65 means the bull and bear cases resolved decisively in one direction; near 0.5 means the debate closed with both sides standing. - Executive summary: 2–4 sentences in plain language.
- Investment thesis: the core argument the PM is committing to.
- Probability-weighted scenarios: usually 3 (base / bull / bear) with explicit price targets and probability sums to 1.
failed_phases: list of role slots that ran with a stub output. An empty list means every phase produced a real result.
If failed_phases is non-empty, the chat reply will surface that
explicitly so you can decide whether to re-run.
After the analysis: how to act on it
Institution Mode never moves money. The recommendation lives in chat; execution is a separate prompt. A typical follow-up:
ok, take the BTC base case. buy $1k spot on Solana.The agent re-resolves the order, runs the standard preview, and waits
for your confirmation before any funds move. The same applies for
perps (open_perps_position) and strategy deploys
(minara_ss_deploy).
If you want the institution to walk you through executing every leg of an allocator output:
execute the allocator plan: 50% BTC, 30% ETH, 20% SOL on $5k.Each leg gets its own preview-confirm cycle. The agent will not batch them into a single confirmation.
CLI batch operations (cron-friendly)
For non-interactive contexts (cron, CI, audit runs), use
minara institution:
# List recent runs
minara institution history --limit 20
minara institution history --ticker BTC
# Close a run's reflection window with an outcome note
minara institution finalize run_8c4e21 --reason "stopped out at 93k"
# Run all pending reflections (1d / 7d / 30d / 90d / 180d / 365d windows)
minara institution reflect-pending
# Force a specific window for one run
minara institution reflect run_8c4e21 --window 7dThese commands write straight to the SQLite store and do not require the REPL. They are safe to schedule under Workflows or external cron.
REPL slash commands
| Command | What it does |
|---|---|
/institution <ticker> | Single-ticker run |
/institution <t1> <t2> … | Multi-ticker compare / allocate (Phase 7) |
/institution <natural-language query> | Clarify-loop on an ambiguous mention |
/institution-history | Print the most recent runs |
/institution-history --ticker BTC --limit 20 | Filter by ticker |
Both slash commands accept [debate] and [risk] as positional
integers if you'd rather not pass them as flags.
Web UI
The web UI exposes Institution Mode under the Institution sidebar
entry, on the dedicated route /institution. It is segregated from
the regular chat sidebar, so institution sessions do not appear in the
chat history list (and vice versa).
What you see in the canvas:
- Per-phase nodes with status (pending / running / complete / failed / skipped), duration, and a one-line headline.
- Per-ticker tabs when multiple tickers are in play, plus a dedicated Allocator panel.
- Pending Questions panel, floating above the input box, that collects clarifying questions raised by parallel analysts. Free-text replies in the main input do not reach those questions — answer them through the panel.
Where to go next
- Want the orchestrator phases and structured schemas? → Institution Mode feature page
- Want how runs feed the reflection ladder and methodology graduation? → System Design → Learning System
- Want to wire env vars into your shell? → Environment Variables
- The underlying skill is
minara.institution.