RELEASE25 April 2026 · 14 min read

Six AI surfaces, zero chat boxes — the v5.7 release

Most trading apps that ship "AI" in 2026 ship a chat box. Swing Deck v5.7 ships six per-ticker AI surfaces and zero chat boxes — on purpose. Every AI output is bound to a specific framework moment, generated from defined inputs, narrated in the framework's own voice. There is no place to ask the AI what to buy. There is no free-text prompt. We think this is the only kind of AI a discipline product can responsibly ship.

This release follows the v5.0 split — indicators filter, price action triggers, 13 pillars veto — and adds a fourth layer: narrators. Six of them, each tied to a specific framework event. They explain the framework's conclusions in plain English, using your ticker's actual data, with citations. They don't predict; they don't speculate; they don't drift onto unrelated topics, because they literally cannot — the inputs they receive are bounded to the moment they're firing on.

The principle: surface-bound AI

Halfway through the v5.7 build, a question surfaced that ended up reshaping the entire feature set: should we ship a chat box? Every comparable trading app does. Public, Robinhood AI Chat, Webull, brokerage research portals — you type a question, the AI answers. The market has been trained to expect it.

We thought hard about it and shipped the opposite. Here's the asymmetry that decided it:

  Pills + bound surfaces' worst day Open chat AI's worst day
Failure mode "I wish this had X" "The AI told me something dumb about my money"
Recovery Ship the surface next sprint Brand stain, possibly litigation chatter
User reaction Patient Loud

A trading product handling real money has asymmetric downside on AI mistakes. A chat box optimizes for user expressiveness; a bound surface optimizes for product opinion. A discipline-first product should have a strong opinion about what questions matter. So we shipped that opinion.

The principle, written in our internal architecture doc:

AI is bound to specific moments in the workflow with structured inputs and structured outputs. The user never sees a chat box. The AI never gets summoned — it gets triggered by framework events. Every surface is auditable: every output traces to defined inputs.

Six surfaces, six framework moments

Every surface is a panel that lives inside a ticker card. Each appears only when its specific framework signal fires. Most days on most tickers, most panels are hidden. Discipline is doing nothing when nothing needs doing — the dashboard reflects that by being mostly empty.

✨ AI THESIS
Always available. The framework's interpretation of THIS ticker through your stylistic preferences (length / focus / tone).
⚖ DEVIL'S ADVOCATE
Auto-paired with thesis. Argues the OPPOSITE of the framework's position state — bull if EXIT, bear if ARMED.
⚠ PILLAR COACH
Reveals when a pillar veto fires. Narrates the violation with citations.
◆ EXIT COACH
Reveals when TP1/TP2/TP3 hits or chandelier stop breaches on an owned position.
▲ ENTRY COACH
Reveals when entry trigger arms on an unowned position.
📊 POSITION AUDIT
Reveals when you have history with this ticker (theses or fills). Mirror of YOUR own behavior.
📰 CATALYST INTERPRETER
Reveals when the ticker has news today. Classifies signal vs noise.

The rest of this post walks through each one with a real narration that came out of the v5.7 build. None of these are mocked or curated. They're verbatim outputs the LLM produced during shakedown testing on a portfolio holding NVDA in TIGHTEN state and VRT in EXIT state.

1. Pillar Coach — the veto, narrated

When a pillar veto fires for a ticker (state goes to EXIT or TIGHTEN, or any of the 13 pillars flag), the Pillar Coach panel reveals in red. Click it and the LLM receives the pillar IDs, the framework's terse reason, the ticker's score, the violation list, and the trader's current state. Output is a 60-100 word narration explaining the veto, citing the data that triggered it, and stating the framework's recommendation.

⚠ PILLAR COACHNVDA · TIGHTEN · score 64 · D-grade

NVDA Pillar Veto: Filter Score Collapse

Your framework flags NVDA because filter strength has degraded below the 75-point threshold required for swing holding. The score sits at 61/100 — a D-grade — meaning core momentum, volatility, or trend alignment has weakened materially from entry conditions. The framework recommends tightening: review your stop loss placement to lock in current gains and reduce position size to match the lower-confidence signal. This isn't an exit call; it's a recalibration to match degraded setup quality.

Notice what's not in there. No "stocks are tricky right now," no "consult your advisor," no "consider waiting for a better entry." Just the framework's conclusion, the data that triggered it, and the framework's recommendation. The trader is the advisor; the coach is the second opinion.

2. Exit Coach — ladder math when it matters

When an owned position's price reaches any TP rung or breaches the chandelier stop, the Exit Coach reveals in amber. The ladder math is already in the framework (40% at TP1, 40% at TP2, 20% trailed at TP3 with chandelier). The coach narrates what just happened in dollar terms.

◆ EXIT COACHNVDA · TP1 HIT

NVDA Exit Narrative

TP1 just rang at $224.62 — your first profit level is live. Framework ladder says scale 40% here: lock in $1,235 per contract (entry spread to TP1), reduce heat, let the remaining 60% run toward TP2 at $235.52. You're up $16.35 from entry; take the win on the first third, keep dry powder for the next two rungs. Move stop to breakeven once the 40% scale prints.

Anchored on actual prices, actual P/L, the actual TP2 target from this ticker's ATR ladder. The coach can't write this for tickers it doesn't have data for — the prompt builder filters every input through the position-state machine first.

3. Entry Coach — confirm or temper, never inflate

When an entry trigger arms on an unowned position (all four price-action checks pass), the Entry Coach reveals in green. Output is 60-100 words: what's qualifying it, framework size suggestion, caveats. The system prompt forbids the word "opportunity"; the coach's job is to confirm or temper, never to amplify.

▲ ENTRY COACHCEG · ARMED · score 88 · pullback_to_ma · 4/4 checks

CEG Entry Setup — All Checks Pass

The pullback-to-MA setup is fully armed: score 88 (B-grade), all four entry-trigger checks passing (RSI<55, MACD bullish-cross, structure intact, volume confirms). Framework size: small initial — you're in the Anchors sleeve at 18% of 25% cap, leaves room for 2-3 anchor adds without breaching. Caveat: earnings in 12 sessions; if the trade isn't working in the first 5 days, exit before the binary event regardless of stop level.

4. Devil's Advocate — the counter, every time

The AI Thesis panel is interpretive. It produces a paragraph that frames the ticker the way the framework reads it. We thought a long time about whether that was enough, and concluded it wasn't — a single voice can drift bullish over time even when the inputs don't justify it. So every thesis gets a paired bear. Or paired bull, if the framework's conclusion is bearish. Or "stand aside" case if the framework is neutral.

This is the discipline play: every framework conclusion gets a contrarian voice automatically. The user can't dismiss the bear case by ignoring it — it's right there, in purple, on every thesis panel they open.

Here's what it produced when the framework was telling the trader to EXIT VRT:

⚖ DEVIL'S ADVOCATEVRT · framework: EXIT

BULL CASE: EXIT IS PREMATURE

1. The framework conflates filter degradation with position weakness. A score of 56 vs 60 threshold is a 4-point miss — within noise margin — while the zero wins/losses over 793 fires suggests the filter itself is broken, not the trade; exiting on a malfunctioning signal is self-sabotage.

2. The specific surprise: VRT's price action today (+0.53%) contradicts the urgency. If fundamentals were truly deteriorating, you'd expect negative momentum or volume collapse; instead, the ticker is grinding sideways in a calm regime (VIX 18.71, Oil stable at $94.4), which is exactly when swing positions often consolidate before breakouts.

3. If this counter-view is right, hold and tighten the stop instead. Let the next 3-5 days of price action and filter recalibration speak; exit only if score drops below 50 and price breaks a key support level, not on a soft threshold miss alone.

The framework was saying EXIT. The Devil's Advocate said your filter might be broken — here's what to verify before acting. That's the discipline play. The trader still decides; the AI ensures the contrary case is read.

State drives direction. EXIT or TIGHTEN → bull case. ARMED → bear case. HOLD → argue against complacency. WATCH → pick the side the data tilts toward, or argue for standing aside. Neutral → argue why doing nothing is the position. The header sublabel surfaces the framework's actual conclusion (· framework: EXIT) so the user can see what's being countered at a glance.

5. Position Audit — the discipline mirror

The other surfaces interpret the framework. This one interprets you.

Position Audit reads two things: the user's actual trade journal entries for this ticker (date, action, shares, entry, exit, P/L, hold time), and the user's prior AI thesis narrations for this ticker. Then it surfaces patterns. This is the local-first AI moat — cloud-hosted competitors literally cannot do it, because they don't have your fills.

What it produced when pointed at a real-but-disguised trader's NVDA history:

📊 POSITION AUDITNVDA · 0 theses · 17 fills

1. The clearest pattern: Micro-swing execution with minimal edge.
This trader averages +0.27% P/L across 12 closed trades over 189-day holds, but recent fills (March-April 2026) show sub-1.5% round-trip captures on 16-38 share clips — classic scalp-intent behavior on a mega-cap. Win rate is 41.7%, which is below breakeven when accounting for slippage and commissions on small notional moves.

2. The most useful drift signal: Score stability masking thesis decay.
The score has pinned at 62-64 for 60 snapshots (flat regime, no conviction shift), yet the trader cycled four fills in 36 days with mixed conviction — selling TP1 rung on two trades, holding a loss on one, and leaving an open long (35sh @ $183.78). This suggests the framework is not rejecting the setup; the trader is ignoring its own signal and trading tactically instead.

3. What the framework would suggest: Enforce thesis-hold discipline or exit the position entirely.
A D-grade score (62) in TIGHTEN state should either trigger a hard stop or a thesis reframe. Instead, the trader is nibbling — a sign of low conviction masquerading as activity. Either wait for score recovery to C+ or above, or close the open 35sh and sit out.

Cite the specific share size patterns (16-38 share clips). Cite the win rate (41.7%) and frame it correctly (below breakeven on small notional after costs). Catch the thesis-vs-fills divergence (open position at $183.78 while the framework is saying degraded). Name the behavior ("low conviction masquerading as activity") without lecturing. Affirm the framework's own correctness ("framework is not rejecting the setup") when the data shows it.

Then for VRT, where the data was different:

📊 POSITION AUDITVRT · 0 theses · 11 fills

The clearest pattern: This trader has entered VRT long three times with deteriorating conviction — average entry $260.28 against average exit $248.68 — and exited all three positions at losses or minimal gains, averaging -2.12% P/L despite one strong short win (+9.3%). The single profitable trade (Feb 26 short, +$815) sits isolated; the two subsequent longs (Mar 27, Mar 11) both stopped out within 5-9 days, suggesting the trader is chasing reversals into weakness rather than riding thesis-aligned setups.

The most useful drift signal: Score has flatlined at 56/100 (F-grade) across 60 snapshots with zero volatility, yet the trader remains in EXIT state — this is restraint, but it masks the real problem: the score never inflected before the losses occurred, meaning the framework wasn't flagging deterioration in real time, or the trader ignored it. The Feb 27 and Mar 11 entries came into a static low-quality regime and paid the price.

Framework suggestion: Until VRT score climbs above 65 and holds for 3+ snapshots with directional thesis stability, treat any entry as a revenge/reversion trap. The 33% win rate and negative average P/L confirm the current regime is hostile; restraint (EXIT) is correct.

Notice the third paragraph: "restraint (EXIT) is correct." The audit doesn't manufacture fault. When the trader has correctly avoided a low-quality setup, the audit says so. When the data shows nibbling instead of conviction, the audit says that. Honest mirror, not algorithmic flagellation.

6. Catalyst Interpreter — signal vs noise

The most common "what does this mean for my position?" moment in active trading is news. A headline pops in the news scroll — is it an earnings reset, an analyst upgrade, a regulatory hit? Or is it valuation-recap clickbait dressed up to look like signal? On any given day, the answer is mostly the latter, but the trader still has to read all of it to find the few items that aren't.

The Catalyst Interpreter classifies. For a ticker that has news today, it pulls the headlines (Finnhub → GNews → News API → Google RSS → yfinance cascade), classifies each as MATERIAL or NOISE per a strict ruleset, summarizes the most material item with publisher and direction, and anchors the framework action to the trader's current position state.

Quiet day, NVDA:

📰 CATALYST INTERPRETERNVDA · 8 headlines today

Classification: 8 total, 0 material, 8 noise.

Material item: None. All eight headlines are aggregator clickbait or sector chatter without earnings, guidance, M&A, regulatory action, or verifiable contract news tied to NVDA.

Framework action: TIGHTEN stance holds. No signal to act on. The D-grade filter score (62/100) correctly flags a low-conviction day. Trader should wait for actual earnings/guidance reset, customer wins, or competitive shifts — not listicle rankings or valuation commentary. Stay positioned but inactive.

Same day, VRT — where there was signal:

📰 CATALYST INTERPRETERVRT · 8 headlines today

8 total today, 2 material, 6 noise.

Material signal: Headline [1] + [8] converge — Vertiv raised guidance on data-center/AI demand (Yahoo/Finnhub, 4/25); JP Morgan upgraded to Overweight with $350 PT (Benzinga, 4/24).

Direction: Bullish. Magnitude: Medium. Guidance raise is hard signal; analyst PT flip confirms conviction.

Framework action: EXIT state conflicts with bullish guidance + institutional upgrade. Reassess: if backlog/demand visibility is genuine (not just sentiment), this warrants re-entry consideration on pullback or hold-and-monitor. Noise (Cramer cheerleading, valuation recaps, screening-rule passes) does not override the guidance/upgrade combo — but does not strengthen it either.

The interpreter found a state-vs-news divergence the trader might have missed in a flick-through. The framework was saying EXIT (based on a stale score). New information — a guidance raise plus a major analyst upgrade — arrived after the score's most recent update. The interpreter doesn't flip the trade; it surfaces the conflict and tells the trader what to verify before acting ("if backlog/demand visibility is genuine, not just sentiment"). That's a discipline coach at the table.

The full v5.7.x changelog

What we deliberately did not ship

Three patterns were on the table during v5.7 that we walked away from on purpose:

The architectural diagram, in one sentence

Indicators filter the universe → price action triggers the entry → 13 pillars veto trades that breach risk → news classifies what's signal vs noise → coaches narrate framework events in the framework's own voice. Every layer is a separate surface; every surface is bounded; nothing is summoned by free text.

That's v5.7. v5.8 will be the auto-refresh UX polish (the dashboard's wholesale-DOM-replace cycle currently nukes scroll and panel state every cycle — we're fixing it). v5.9.x will consume the macro corpus that v5.7.8 just started accumulating, and ship Comparable Setups: "last time NVDA scored 64 with VIX 18, next 10 sessions averaged X."

BYOK — bring your own API key

Every per-ticker AI surface uses your own Anthropic or OpenAI key. Typical cost is well under a cent per surface generation; cache hits are free. Configure once in Settings → Data Sources, and every coach lights up.

Download v5.7.8 →
Swing Deck v5.7 — Six AI surfaces, zero chat boxes. Surface-bound by design.
← Prev: FORCE RE-EVALUATE on a winning NVDA trade All posts →