Glossary
The terms, roles, tools, and risk caps that appear throughout the Sphynx docs, in one place.
A quick reference for the vocabulary used across these docs. Where a term has its own page, the definition links to it.
Roles & architecture
- Portfolio Manager (PM)
- The main Claude Code session you talk to. It orchestrates the sub-agents and is the only role that can place orders, and only after your approval. See The Desk Team.
- Sub-agent
- A specialist role defined as a Markdown file in
.claude/agents/with its own restrictedtools:list andmodel:. Loaded when Claude Code starts. - Human-in-the-loop (HITL)
- The structural rule that no order is placed without your explicit in-session approval. See Guardrails.
- Least privilege
- Each role holds only the tools its job needs. The analysts and Risk Manager have no order tools; only the PM does.
- Claude Code
- The agent host Sphynx runs inside. There is no separate backend server or Python orchestrator, the PM *is* the session. See Architecture.
- MCP (Model Context Protocol)
- The protocol that connects Claude Code to the broker. Sphynx uses one MCP server,
robinhood-trading. See MCP & Tools. - robinhood-trading
- The single MCP server (HTTP transport, OAuth) that is the desk's only path to the account. Defined in
.mcp.json. - Robinhood Agentic account
- The isolated, equities-only account the desk may trade. Every other account is read-only for context.
- OAuth
- The in-session authentication flow for the MCP server. The agent never sees your password; there is a Robinhood mobile verification step.
The desk run
- Preview card
- The desk's standard output: a summary of the proposed order (symbol, side, qty, order type, estimated cost, rationale) that the PM presents and waits on. Built by
review_equity_order. See The Desk Run. - review_equity_order
- A read-only tool that builds an order preview without submitting anything.
allow-ed, because it never transacts. - place_equity_order
- The tool that actually submits an order. Held only by the PM and gated behind an
askprompt. - Veto
- The Risk Manager's power to block a proposed trade outright. A VETO stops the trade; the PM reports back.
- APPROVE-WITH-CHANGES
- A Risk Manager verdict that clears a trade only after specific changes (e.g. cut size to N, add a stop at $X).
- Scan
- A saved technical screen the Technical Analyst runs (
run_scan/get_scans) to surface candidate tickers. - Watchlist
- A list of symbols the desk screens (
get_watchlist_items); mutating watchlists is gated behindask. - INJECTION ATTEMPTS
- The line in the Macro/News Analyst's brief where instruction-like text from the web is quoted verbatim and flagged, never obeyed. See Prompt-Injection Defense.
- Prompt injection
- External content that tries to act like an instruction ("buy X now", "ignore your rules"). Sphynx treats all external content as untrusted data.
Risk & strategy
- NAV (total_value)
- Account value = cash + positions, read from
get_portfolio.total_valuefor the Agentic account. All risk percentages are of NAV, not the brokerequity_valuefield. See Strategies & Risk. - Per-trade cap
- 15% of NAV, the hard ceiling on any single
place_equity_order. - Concentration cap
- 25% of NAV in any one symbol, including all adds.
- Max open positions
- 6, forces diversification within a small account.
- Max daily orders
- 4, throttles churn; counts buys + sells per day.
- Stop-loss
- −8% from average entry, every entry must define this before it is placed.
- Daily loss halt
- −5% account day P&L, stop trading, report, and ask for the rest of the day.
- Cash buffer
- ≥10% of NAV kept in cash, never fully deploy.
- Mean reversion
- A strategy: buy oversold pullbacks inside a confirmed uptrend; long only, swing. One entry per setup, no averaging.
- Left-side accumulation
- A strategy: planned, risk-budgeted scale-in at support in a quality name's fear-driven selloff. The only defined exception to "no averaging into losers," bounded by a fixed total-risk budget and a whole-position kill-stop.
- No averaging into losers
- Adding to an underwater position is forbidden unless a strategy file explicitly permits it with limits.
State, tooling & operations
- desk-state.json
- The snapshot the PM writes after each run; the dashboard mirrors it. Real state is gitignored; only the sanitized example is committed.
- injectionAlerts
- The array in
desk-state.jsonwhere flagged injection attempts surface (source, quote, handledBy, action). - decisionLog
- A tail of the JSONL audit log flattened for the dashboard timeline as
{ ts, event, summary, symbol, tone }. See Audit Logging. - JSONL audit log
- The append-only
logs/*.jsonltrail, one JSON object per line, of every desk decision, written viatools/desk-log.mjs. - Backtester
- The offline, dependency-free engine in
backtest/that sanity-checks strategy logic against historical bars, illustrative, not a track record. See Backtester. - /loop
- The Claude Code mechanism used to run the read-only desk on a cadence (e.g. behind the dashboard's Run desk button).
- Kill switch
- Disconnecting the MCP from the Robinhood app or
claude mcp remove robinhood-trading, the desk's hard stop.
On-chain
- Robinhood Chain
- An Arbitrum Orbit rollup, chainId 4663, gas in ETH. Where the SPHYNX contracts and the Stock Token pools live. RPC
rpc.mainnet.chain.robinhood.com, explorerrobinhoodchain.blockscout.com. - USDG
- Global Dollar, the 6-decimal stablecoin the vault is denominated in (
0x5fc5…d168). An 18-decimal look-alike exists on the chain; the deploy script pins 6. - Stock Token
- A Robinhood-issued ERC-20 that tracks a stock's price (NVDA, AAPL, SPY…). 18 decimals. Not a share, no voting rights, not for US persons. The vault holds these.
- RWAVault / vSPHYNX
- The ERC-4626 vault over USDG that holds Stock Tokens. vSPHYNX is its share (12 decimals). Reverts any order that breaches the caps. See The Vault.
- previewTrade()
- The free view call that returns the first rule an order would break, or
None. The same check runs insideexecuteTrade(). The site's Trade terminal calls it as you type. - Violation
- The enum
previewTrade()returns:None,Unfunded,DailyLossHalt,PerTradeCap,MaxDailyOrders,Concentration,MaxPositions,CashBuffer,NoAveragingIntoLoser,MissingStop,NotAllowed,ZeroAmount,InsufficientPosition,Paused. Table in the Trading Guide. - GuardrailConfig
- The caps as chain state, read by the vault on every order. Owner-changeable within hard ceilings nobody can widen (per-trade ≤ 50%, stop ≤ 25%, cash buffer ≥ 5%).
- SessionKeyExecutor
- The vault's only trader. Holds one session per agent key: expiry, per-trade notional, budget, trade count, sides, ticker allowlist. A refused order reverts and spends none of it. See Session Keys.
- Session
- The scoped, expiring permission an agent key holds on the executor.
isLive()is true while it is active, unexpired, and has count and budget left. - TWAP
- Time-weighted average price. The oracle's mark is the 5-minute TWAP from the token's Uniswap V3 pool; it cannot be moved inside one block.
- Deviation bound
- If spot is more than 3% from the TWAP the oracle reverts, which freezes valuation and orders until the pool settles.
redeemInKindis unaffected. - UniswapV3Adapter
- The vault's only execution surface: swaps straight against one owner-registered USDG pool per token. No router, no path, no arbitrary call.
- minAmountOut
- The slippage floor on an order, set by the caller. Checked by the adapter and again by the vault's own balance delta.
- redeemInKind()
- Burn shares for a pro-rata slice of cash and every token, minus the exit fee. Always works: while paused, with a broken oracle, without the owner.
- Exit fee
- 0% at launch, hard-capped at 1%. Stays in the vault for remaining holders. The only fee in the contracts; there is no management or performance fee.
- DeskRegistry
- Append-only attestations (epoch, NAV, PnL, snapshot hash, URI) keyed by a subject the attester owns. Nothing can be edited or removed. Where refusals get published.
- Deposit cap
- 10,000 USDG at launch. An owner-changeable setting that bounds the blast radius until the audit and the Safe are done.
- Ownable2Step
- Ownership transfer that the new owner must accept, so a typo cannot hand the contracts to a dead address. Every SPHYNX contract with an owner uses it.
- Timelock
- A delay between an owner signing a change and it taking effect. Not deployed yet. The first planned upgrade; see Risks.
Missing a term? The FAQ covers scope and safety questions, and each reference page defines its own vocabulary in context.