Install
$ agentstack add skill-bencharoenwong-parallax-workflows-parallax-peer-comparison ✓ 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
Peer Comparison
When not to use
- Single stock deep dive → use /parallax-deep-dive
- Portfolio analysis → use /parallax-morning-brief
- Full due diligence → use /parallax-due-diligence
Gotchas
- JIT-load _parallax/parallax-conventions.md for RIC resolution, parallel execution, and fallback patterns
- Identifies top 2 peers automatically from getpeersnapshot
- Peer symbols from getpeersnapshot may lack RIC suffixes. Before passing to Batch B tools, resolve each peer symbol to RIC format using the exchange suffix table in parallax-conventions.md (e.g., GM → GM.N, F → F.N). Single-letter symbols will fail without the suffix.
- Makes 3 calls each for score trends and price series (primary + 2 peers)
- exportpeercomparison and exportpriceseries return structured JSON
- JIT-load
_parallax/house-view/loader.mdif an active CIO view is present. Peer-comparison is single-stock perloader.md§7 (read-only consumers): tilts are NOT applied to factor scoring or peer ranking. Render the FULL §7 surface: (a) §7.3 Score-vs-View Tension Banner inline between the Factor Comparison Matrix and Score Trajectory when primary stock total ≥ 7 AND its sector tilt ≤ -1; (b) §7.2 Peer-suggest conflict token under the Factor Comparison Matrix for any peer in a view-UW sector (tilt ≤ -1) or on the excludes list — flag, do not filter; the peer stays in the matrix; (c) §7.1 House View Note after Score Trajectory viarender_view_conflict(kind="blanket", ...); (d) §6 audit log entry per loader.md §6.1. - When rendering §7.1/§7.2/§7.3 tokens, JIT-load
_parallax/house-view/render_helpers.mdand route every token throughrender_view_conflict(). - When active view is present, use the view-aware disclaimer per loader.md §5 rule 5; otherwise use the standard disclaimer.
- 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.
Structured peer comparison analysis for research analysts.
Usage
/parallax-peer-comparison AAPL.O
/parallax-peer-comparison AAPL.O weeks=26
Workflow
Execute using mcp__claude_ai_Parallax__* tools. JIT-load _parallax/parallax-conventions.md for execution mode, RIC resolution, and fallback patterns.
Pre-Workflow — Load Active House View
Per _parallax/house-view/loader.md §1 and §2: load and validate any active house view BEFORE running the workflow. If view present, capture the load preamble for rendering at the top of Output Format per §5.1, and capture the sector tilt vector + excludes — these feed §7.2 + §7.3 + §7.1 surfacing during Output Format composition. Tilts are NOT applied to scores or peer ranking; the §7 surface is read-only conflict signals. If no active view (or validation failure): run the workflow normally with the standard disclaimer.
Batch 0 — Tool Loading
Call ToolSearch with query "+Parallax" to load the deferred MCP tool schemas before the first mcp__claude_ai_Parallax__* call.
Batch A — Peer identification
- Call
get_peer_snapshot. Identify the peer group and top 2 most relevant peers. - Call
export_peer_comparisonwithformat="json".
RIC Resolution — Resolve peer symbols before Batch B
Peer symbols from get_peer_snapshot may lack exchange suffixes (e.g., GM instead of GM.N). Before proceeding, resolve each peer symbol to RIC format using the exchange suffix table in parallax-conventions.md. Single-letter tickers like F will trigger "Symbol too short" errors without the suffix.
Batch B — Trends + price series (parallel, after Batch A identifies peers)
B.0 — Asset-class pre-classification (parallel, MANDATORY for price legs)
export_price_series is the equity-only price endpoint; sector/country ETFs (which get_peer_snapshot can occasionally surface as peers) silently return empty from it and would otherwise be dropped from the relative-price-performance comparison. Before Batch B, classify each leg (primary + top 2 peers):
- For each of the 3 legs, call
etf_profile()in parallel. {"error": "No profile data found", ...}→ equity, route throughexport_price_series.- Non-error response → ETF, route through
etf_daily_price.
This adds 3 calls at 1 token each (per _parallax/token-costs.md).
B.1 — Trends + price series (parallel)
Fire all 6 calls simultaneously:
get_score_analysisfor primary + top 2 peers (3 calls). If the user suppliedweeks=Nin the invocation, pass it asweeksas int N (non-default — see conventions §0.2); otherwise rely on the server default of 52.- For each leg classified as equity in B.0 →
export_price_series(symbol=, days=, format="json"). Defaultdays=100. - For each leg classified as ETF in B.0 →
etf_daily_price(symbol=, start_date=, end_date=).
Halt-and-surface rule: if a leg returns empty from BOTH endpoints, exclude it from the price-performance section and render an explicit note: "⚠ Could not retrieve price history for ``; relative price chart shows the remaining legs only." Never silently drop a leg without disclosure.
Post-Workflow — House View consumer obligations
If a view was loaded in Pre-Workflow:
- §7.3 tension check (primary stock): if
primary.total >= 7.0 AND view.tilts.sectors[primary.sector] ** peer comparison. Logo handling per integration-pattern.md §5: empty path → text only; URL → embed; absolute local (/or~) → skip embed and appendLogo on file:to About This Report.
- Peer Group (who the peers are and why they're comparable)
- Factor Comparison Matrix (table: all peers x all factors)
- If view active: render §7.2 Peer-suggest conflict tokens immediately under the matrix per Post-Workflow step 2. One token per conflicting peer; multiple stack vertically.
- Score-vs-View Tension Banner (only if view active AND primary total ≥ 7 AND sector tilt ≤ -1) — render between the Factor Comparison Matrix and Score Trajectory per Post-Workflow step 1, via
render_view_conflict(kind="score_tension", ...). - Score Trajectory (which stock is improving/deteriorating fastest per factor)
- House View Note (only if view active) — render after Score Trajectory per loader.md §7.1 rendering order, via
render_view_conflict(kind="blanket", ...). - Relative Price Performance (comparative returns)
- Differentiation (strengths and weaknesses vs peers)
- About This Report (always present): one line stating branding state per integration-pattern.md §7 markdown column (render per table; do not collapse). If a logo was skipped per the Branding Header rule, 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.
If active view: use the view-aware disclaimer per loader.md §5 rule 5. Otherwise: render the standard disclaimer verbatim from parallax-conventions.md §9.1.
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.