Install
$ agentstack add skill-bencharoenwong-parallax-workflows-parallax-ai-soros ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Parallax AI Soros Profile
When not to use
- Bottom-up factor scoring → use /parallax-ai-buffett
- Mechanical formula screen → use /parallax-ai-greenblatt
- Balance-sheet-first checks → use /parallax-ai-klarman
- Cross-profile consensus → use /parallax-ai-consensus
- Full macro outlook without a persona lens → use /parallax-macro-outlook
- Morning brief for a portfolio → use /parallax-morning-brief
Gotchas
- JIT-load _parallax/parallax-conventions.md, profile-schema.md, output-template.md, profiles/soros.md
- Soros has TWO modes — basket (no ticker) and single-ticker dual-channel — sharing a macro workflow
- listmacrocountries is 1 token; macro_analyst is 5 tokens per market — cap at 5 markets
- get_telemetry is 1 token but distinctive — it's the second exposure channel for single-ticker mode
- Single-ticker mode requires BOTH the macro workflow AND a ticker-exposure check via 2 independent channels
- NEVER use first-person impersonation of Soros — always frame as "Soros-style" or "reflexivity lens identifies"
- The dual-channel logic is load-bearing — single-channel flag is partial, not full match
- Disclaimer verbatim per output-template.md, substituting "George Soros" for [Investor]
- buildstockuniverse is async (~15-40s) and may time out — fallback per conventions §4
- Telemetry basket-membership resolution: ticker → basket assignment is currently best-effort via name-match against
divergences[*].basket_name; per-ticker basket lookup is NOT a documented field in the get_telemetry schema. Treat Channel B (single-ticker mode) matches as best-effort pending a documented convention in parallax-conventions.md. - JIT-load
_parallax/white-label/integration-pattern.mdbefore the Pre-Render step. Loader call isload_visual_branding()(7-key visual subset; voice structurally excluded —branding["voice"]raisesKeyError). Apply §5 (Branding Header) and §7 (About This Report) in Output Format.
Top-down reflexivity lens: regime identification → thematic exposure → ranked exposure candidates (informational) OR single-ticker dual-channel check.
Usage
/parallax-ai-soros # basket mode — regime themes + ranked ideas
/parallax-ai-soros AAPL.O # single-ticker mode — dual-channel exposure check
/parallax-ai-soros --markets US,JP,EU # basket mode with explicit market list
Workflow
Execute using mcp__claude_ai_Parallax__* tools.
Step 0 — JIT-load dependencies
Before the first Parallax tool call:
- Load
_parallax/parallax-conventions.md - Load
_parallax/AI-profiles/profile-schema.md - Load
_parallax/AI-profiles/output-template.md - Load
_parallax/AI-profiles/profiles/soros.md
Call ToolSearch with query "+Parallax" to load the deferred MCP tool schemas.
Step 1 — Determine mode
- Zero tickers → basket mode
- Exactly one ticker → single-ticker mode
- Multiple tickers → reject: "Soros profile takes zero or one ticker. Use /parallax-ai-consensus for multi-ticker."
Step 2 — Macro workflow (runs in BOTH modes)
- Call
list_macro_countriesto get covered markets (1 token). - Select 3-5 tactically interesting markets. Default: US, JP, EU plus top-2 EM based on telemetry divergence. If user passed
--markets, use that list. - Call
macro_analyst(component=tactical)for each selected market IN PARALLEL (5 tokens each × 3-5 = 15-25 tokens). - Call
get_telemetryfor cross-market regime divergence signals (1 token). - Identify 1-3 regime themes where macro and telemetry agree on directional views. Examples:
- "Fed cutting + dollar weakening → EM equities and commodities"
- "Rates higher for longer → financials and defensive dividend payers"
- "Fiscal divergence US vs EU → US cyclicals overweight EU cyclicals"
Step 3 — Basket mode completion (skip if single-ticker)
IMPORTANT — thematic query scoping: build_stock_universe is async and broad queries time out. Thematic queries MUST be sector-scoped and ideally size-bounded. Good: "US energy exporters benefiting from dollar weakness". Bad: "companies benefiting from current macro regime".
- For each identified theme, call
build_stock_universewith a sector-scoped thematic query (5 tokens each, async). If any theme's universe times out, retry ONCE with a narrower version of the query; if it still times out, skip that theme and proceed with remaining themes. - Cap each theme's candidate list at top 20 names by
composite_scorefrom the universe response to bound token cost and avoid excess peer snapshots. - For top 3-5 names per theme (ranked by
composite_score), callget_peer_snapshot(1 token each). - Apply cross-validation gate per
profile-schema.md §2 Step 2for each ticker surfaced (target_companyfield from peer snapshot). - Rank names within each theme by momentum + macro sensitivity.
- Render as
trade_ideasoutput (Step 5).
Step 4 — Single-ticker mode completion (skip if basket)
- Call
get_company_infoon the input ticker (1 token) — retrieve sector, industry. - For each identified theme, call
build_stock_universewith the theme's sector-scoped query (5 tokens each). Apply the same retry-once-narrower fallback as Step 3. - Dual-channel exposure check — Channel A has TWO independent sub-paths that are evaluated independently:
Channel A — Industry exposure (two sub-paths; either is sufficient to FLAG):
- Sub-path A1 — Universe membership (requires
build_stock_universe): Does the ticker appear directly in any theme'sbuild_stock_universeresult? Ifbuild_stock_universetimes out or returns empty, A1 isNOT_FLAGGEDbut Channel A is not yet resolved — continue to A2. - Sub-path A2 — Sector/industry classification match (does NOT require
build_stock_universe): Does the ticker's sector/industry classification fromget_company_infomatch a theme's target industry or sector? (e.g., ticker is Energy sector, theme is "Energy benefiting from dollar weakness" → MATCH; ticker is Consumer Staples, theme is "Cyclicals benefiting from rate cuts" → NO MATCH.) - Channel A result:
FLAGGEDif EITHER A1 OR A2 matches.NOT_FLAGGEDonly if BOTH are negative. A2 is evaluable independently of A1 and does not require the universe build to succeed.
Channel B — Telemetry basket theme:
- Does the ticker fall into any regime basket surfaced by
get_telemetry? - Telemetry baskets are typically named (e.g., "growth-over-value rotation," "dollar regime beneficiaries").
- If
get_telemetryfails (e.g., "Admin org not configured"), Channel B isUNAVAILABLE(notNOT_FLAGGED). This distinction matters for verdict computation. - Output:
FLAGGED,NOT_FLAGGED, orUNAVAILABLEfor channel B.
- Cross-validation gate: after
get_peer_snapshot(if called during universe resolution), cross-checktarget_company(the top-level field — the response has nonamefield; each peer's name iscomparison[].company) againstget_company_info'snameper conventions.
- Combine verdicts:
- Both channels
FLAGGED→ verdictmatch - Exactly one channel
FLAGGED, the otherNOT_FLAGGEDorUNAVAILABLE→ verdictpartial_match - Neither flagged (both
NOT_FLAGGED, or oneNOT_FLAGGEDand oneUNAVAILABLE) → verdictno_match - Verdict
matchis NEVER reached when Channel B isUNAVAILABLE— maximum single-channel verdict ispartial_match
Step 5 — Render through output template
Basket mode output:
Soros-style regime themes and exposure candidates (informational)
Source: Soros, G. (1987). The Alchemy of Finance. | Drobny, S. (2006). Inside the House of Money.
Reflexivity framework: identify regime break or narrative-fundamentals divergence → surface exposed industries → the names with strongest thematic exposure.
Markets analyzed:
## Theme 1:
Macro thesis:
Theme direction (analytical read):
Currency/rate context:
Ranked exposure candidates (informational, per conventions §12 — not trade instructions):
| Rank | Ticker | Industry | Momentum | Rationale |
|------|--------|----------|----------|-----------|
| 1 | XXX.N | ... | 7.2 | ... |
| ... | ... | ... | ... | ... |
## Theme 2:
[same structure]
Workflow derived from: Soros (1987); Drobny (2006).
Last anchor-tested: 2026-04-07 (NVDA.O, TSLA.O)
Tool sequence: list_macro_countries, macro_analyst × N, get_telemetry, build_stock_universe × N, get_peer_snapshot × M
Token cost: ~25-40 tokens
---
This output is an AI-inferred interpretation of George Soros's approach, derived solely from publicly available information — the cited source, Parallax factor data, and Parallax's public methodology. It is produced by the Parallax AI Investor Profiles framework. It is not financial advice, not personalized, not endorsed by George Soros or his representatives, and not a recommendation to buy or sell any security. For illustrative and educational use only. Past characterization does not guarantee future relevance. Please consult a qualified financial advisor before making investment decisions.
Single-ticker mode output:
Soros-style profile applied to
Source: Soros, G. (1987). The Alchemy of Finance.
Reflexivity framework: top-down regime identification → thematic exposure check. Single-ticker mode answers "is this stock in an industry and basket theme the current regime analysis flags?"
Current regime themes (1-3):
Ticker exposure check (dual-channel):
Channel A — Industry exposure
's sector/industry:
Industry appears in theme(s):
Status: FLAGGED / NOT FLAGGED
Channel B — Telemetry basket theme
Telemetry baskets surfaced:
falls in basket(s):
Status: FLAGGED / NOT FLAGGED
Profile fit:
- match: both channels flagged (genuine thematic exposure)
- partial_match: one channel flagged (industry OR basket, not both)
- no_match: neither channel flagged (Soros-style lens has no current view)
Workflow derived from: Soros (1987); Drobny (2006).
Last anchor-tested: 2026-04-07 (NVDA.O, TSLA.O)
Tool sequence: list_macro_countries, macro_analyst × N, get_company_info, get_telemetry, get_peer_snapshot
Token cost: ~25-30 tokens (single-ticker mode)
---
This output is an AI-inferred interpretation of George Soros's approach, derived solely from publicly available information — the cited source, Parallax factor data, and Parallax's public methodology. It is produced by the Parallax AI Investor Profiles framework. It is not financial advice, not personalized, not endorsed by George Soros or his representatives, and not a recommendation to buy or sell any security. For illustrative and educational use only. Past characterization does not guarantee future relevance. Please consult a qualified financial advisor before making investment decisions.
Step 6 — Emit
Steps 1–5 are silent. Perform the ticker resolution, cross-validation, regime analysis, and verdict computation internally — none of that working appears in your reply. Your entire visible response consists only of the selected Step 5 rendered template plus every required Output addition below. In basket mode, the analytical template begins at the Header line Soros-style regime themes and exposure candidates (informational); in single-ticker mode, it begins at Soros-style profile applied to . Before the analytical Header, render only the leading white-label elements required by integration-pattern.md §5, in its prescribed order, including a URL logo and the conditional Branding Header when applicable. If no leading white-label element applies, the mode-specific analytical Header is the absolute first output. The About This Report footer, AI-interaction disclosure, and standard disclaimer remain required parts of the visible response in the positions specified below. In both modes, do NOT add **Step N** labels, "Cross-validation passed", "All data verified", a "Let me…" preamble, or any other workflow narration.
Output additions (white-label branding + §9.2 disclosure)
These additions apply to the rendered output ABOVE in addition to the persona-specific disclaimer shown in the output example. They are required regardless of view state.
Pre-Render — Load white-label branding
Load _parallax/white-label/integration-pattern.md §2 and compute white_label_active + client_name per that section. Apply §5 (Branding Header) and §7 (About This Report) when composing the Output Format.
- Branding Header (only if
white_label_activeANDclient_name != "") — single line at the very top of the rendered output:**** Soros-style regime view. Logo handling per integration-pattern.md §5. - About This Report (always present): one line stating branding state per integration-pattern.md §7. If a logo was skipped, append
Logo on file:as a second About This Report line.
AI-interaction disclosure (required regardless of view state): Render parallax-conventions.md §9.2 immediately above the disclaimer below. The persona-specific disclaimer in the output example characterizes the source of the framing; the §9.2 banner characterizes the LLM-generated synthesis itself.
Render the standard disclaimer verbatim from parallax-conventions.md §9.1.
Graceful fallback
If list_macro_countries fails, derive covered markets from RIC suffix defaults per parallax-conventions.md §6 and note degradation.
If macro_analyst fails for a subset of markets, proceed with remaining markets as long as ≥2 succeeded.
If get_telemetry fails (e.g., "Admin org not configured"), single-ticker mode cannot perform Channel B. Fall back to industry-exposure-only evaluation on Channel A. In this fallback state, maximum verdict is partial_match — a single-channel FLAGGED result can never be match because match requires BOTH channels. Note "Channel B: UNAVAILABLE (telemetry env)" in the output.
If build_stock_universe returns no names or times out for any theme: for basket mode, report themes without rankings. For single-ticker mode, Channel A sub-path A1 (universe membership) is NOT_FLAGGED, but sub-path A2 (sector/industry classification match) must STILL be evaluated independently from get_company_info data. Channel A overall is NOT_FLAGGED only if A2 also fails to match. This is the critical non-regression: a build_stock_universe timeout does NOT automatically collapse Channel A to NOT_FLAGGED.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: bencharoenwong
- Source: bencharoenwong/parallax-workflows
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.