Swing Deck is a disciplined trading and investing deck that runs on your laptop. One app, two sleeves that never share rules: a calibrated Swing sleeve that trades the move on price-action triggers and stops, and a principled Investor sleeve that holds durable compounders on a falsifiable thesis — exits on a broken thesis, never a wick. The framework runs the checklist; you make the call.
"Price proved me wrong — I'm out."
"Price disagreeing is the opportunity."
⛓ The wall: swing rules never loosen for a "great company," and conviction never breaches the cap for a "discount." Two epistemologies, one deck.
Surface a candidate → underwrite a falsifiable thesis → buy a band-sized starter (hard-max enforced, no R:R gate) → hold without a trader's wick → the monitor watches the thesis, not the chart. Selection + discipline; never an auto-trade.
Every anchor is bought on written claims, the falsifier that would prove each wrong, and prove-by milestones. Edit it as the story evolves — the monitor re-validates. No falsifier, no anchor.
Underwriting Skeptic (devil's advocate before you buy), Thesis Health (proactive stress-test even while INTACT), and the Giants' Lens (Buffett / Munger / Graham / Lynch). Triggered, never a chat box.
A per-name screening verdict for ANY scored name — qualifies or not, the four gates ✓/✗, grade, durability pillars, valuation, liquidity. Plus a broad-market discovery screen across the S&P 500 / Russell 1000.
The scanner discovers candidates twice a day across a 1,000-name universe. The framework scores them on 11 price-action primitives + 13 risk pillars. Per-ticker AI coaches pressure-test the read. You see one color and know what to do.
localhost:8001A 1,000-name scanner fires at 07:00 + 12:30 ET. Composite ≥ 75 auto-promotes into your watchlist (capped 5/day). The trade stays your call — autonomy ends at the order book.
ARMED / HOLD / WATCH / TIGHTEN / EXIT / COLD. One color, one glance. Focus Mode collapses to only what's actionable.
Armor cap, red-line drawdown, cash floor, sector cap, VIX firewall, earnings blocker, ATR stops. Always on, separate from the score.
The broker_state daemon polls every 30s; the Reconcile pill surfaces broker-vs-dashboard drift in real time. Transactions auto-route into the right ledger.
Schmitt-trigger hysteresis + per-type dedup windows. ~75% fewer alerts, no actionable signal lost. Master mute respects every path.
Learn options on paper while equities trade live. 4-level taxonomy, greeks, IV-crush radar, roll engine, 11 options risk pillars. Guide →
Swing Deck is the referee. It runs the same checklist every day, at the same time, in the same order — for the swing book and the investor sleeve alike. When a position breaks a rule it shouts. When it doesn't, it gets out of your way.
Thirteen AI coaches, each bound to a specific framework moment with structured inputs and structured outputs. The AI never gets summoned by free text — it gets triggered by a framework event. BYOK: your key, your provider, your machine.
Swing: AI Thesis + Devil's Advocate, Pillar Coach, Exit + Entry Coach, Position Audit (reads your real journal), Whale Confirmation, Trap & Structure, Catalyst Interpreter, Comparable Setups. Investor: Underwriting Skeptic, Thesis Health, Giants' Lens. Every one triggered by an event — discipline tool, not magic answer. All AI surfaces →
Portfolio, P&L, broker tokens, journal, theses, and AI history live only on your machine — never on Swing Deck servers. We don't proxy AI calls, log prompts, or store responses. Local Ollama keeps every byte on-device. Per-surface data flow →
Every fire the engine called, auditable since day one — no retroactive editing. See the record →
Native E*TRADE + Tradier (one-click Raise-Stop). Universal CSV import for Robinhood, Fidelity, Schwab, Vanguard, IBKR. Matrix →
macOS 12+ and Windows 10+. Python 3.11+. Free tier — 5 tickers, the full audit engine, no card. Run from source to get the current v7.8 line today; the updated packaged installer is on the way.
open SwingDeck.dmg → drag to /Applications → open http://localhost:8001/