mcpField
E
exposure-coach

exposure-coach

github.com/mphinanceOther3283 installsUpdated 3d ago
Repository

About exposure-coach

Exposure Coach combines outputs from market-analysis skills into a portfolio exposure posture for solo traders. Its scoring script produces an exposure ceiling, market bias, participation assessment, recommendation, and confidence level, including when some inputs are missing.

Key features

  1. 01Combines eight market-signal outputs
  2. 02Scores exposure ceiling and market posture
  3. 03Accepts partial input files
  4. 04Produces JSON and Markdown reports
  5. 05Defaults toward lower exposure on uncertainty

Use cases

  1. 01Calibrating equity allocation before new positions
  2. 02Reviewing exposure at the start of a trading week
  3. 03Reconciling conflicting market signals
  4. 04Reassessing exposure after market events

MCP support

This skill consumes JSON outputs from upstream market-analysis skills and synthesizes them into a unified exposure report. It does not describe an MCP server or MCP client.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mphinance/alpha-skills --skill exposure-coach

After installing, type/exposure-coachin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

README.md
references/
exposure_framework.md
regime_exposure_map.md
scripts/
calculate_exposure.py
scripts/tests/
conftest.py
test_calculate_exposure.py

Details

From the project README

Exposure Coach

Overview

Exposure Coach synthesizes outputs from market-breadth-analyzer, uptrend-analyzer, macro-regime-detector, market-top-detector, ftd-detector, theme-detector, sector-analyst, and institutional-flow-tracker into a unified control-plane decision. The skill answers the solo trader's core question: "How much capital should I commit to equities right now?" before any individual stock analysis begins.

When to Use

  • Before initiating any new stock positions to determine appropriate capital commitment
  • At the start of each trading week to calibrate portfolio exposure
  • When multiple market signals conflict and a unified posture is needed
  • After significant macro or market events to reassess exposure ceiling
  • When transitioning between market regimes (broadening, concentration, contraction)

Prerequisites

  • Python 3.9+
  • FMP API key (set FMP_API_KEY environment variable) for institutional-flow-tracker data
  • Input JSON files from upstream skills (see Workflow Step 1)
  • Standard library + argparse, json, datetime

Workflow

Step 1: Gather Upstream Skill Outputs

Collect the most recent JSON outputs from integrated skills. Each file provides a specific signal dimension:

SkillOutput File PatternSignal Provided
market-breadth-analyzerbreadth_*.jsonAdvance/decline ratios, new highs/lows
uptrend-analyzeruptrend_*.jsonUptrend participation percentage
macro-regime-detectorregime_*.jsonCurrent regime (Concentration, Broadening, etc.)
market-top-detectortop_risk_*.jsonDistribution day count, top probability score
ftd-detectorftd_*.jsonFailure-to-deliver anomalies
theme-detectortheme_*.jsonActive investment themes and rotation
sector-analystsector_*.jsonSector performance rankings
institutional-flow-trackerinstitutional_*.jsonNet institutional buying/selling
Step 2: Run Exposure Scoring Engine

Execute the exposure scoring script with paths to upstream outputs:

python3 skills/exposure-coach/scripts/calculate_exposure.py \
  --breadth reports/breadth_latest.json \
  --uptrend reports/uptrend_latest.json \
  --regime reports/regime_latest.json \
  --top-risk reports/top_risk_latest.json \
  --ftd reports/ftd_latest.json \
  --theme reports/theme_latest.json \
  --sector reports/sector_latest.json \
  --institutional reports/institutional_latest.json \
  --output-dir reports/

The script accepts partial inputs; missing files reduce confidence but do not block execution.

Step 3: Interpret the Market Posture Summary

Review the generated posture report containing:

  1. Exposure Ceiling -- Maximum recommended equity allocation (0-100%)
  2. Bias Direction -- Growth vs Value tilt based on regime and flow
  3. Participation Assessment -- Broad (healthy) vs Narrow (fragile) market
  4. Action Recommendation -- NEW_ENTRY_ALLOWED, REDUCE_ONLY, or CASH_PRIORITY
  5. Confidence Level -- HIGH, MEDIUM, or LOW based on input completeness
Step 4: Apply Exposure Guidance

Map the posture recommendation to portfolio actions:

RecommendationAction
NEW_ENTRY_ALLOWEDProceed with stock-level analysis and new positions
REDUCE_ONLYNo new entries; trim existing positions on strength
CASH_PRIORITYRaise cash aggressively; avoid all new commitments

Output Format

JSON Report
{
  "schema_version": "1.0",
  "generated_at": "2026-03-16T07:00:00Z",
  "exposure_ceiling_pct": 70,
  "bias": "GROWTH",
  "participation": "BROAD",
  "recommendation": "NEW_ENTRY_ALLOWED",
  "confidence": "HIGH",
  "component_scores": {
    "breadth_score": 65,
    "uptrend_score": 72,
    "regime_score": 80,
    "top_risk_score": 25,
    "ftd_score": 10,
    "theme_score": 68,
    "sector_score": 70,
    "institutional_score": 75
  },
  "inputs_provided": ["breadth", "uptrend", "regime", "top_risk"],
  "inputs_missing": ["ftd", "theme", "sector", "institutional"],
  "rationale": "Broad participation with low top risk supports elevated exposure."
}
Markdown Report

The markdown report provides a one-page summary suitable for quick review:

# Market Posture Summary
**Date:** 2026-03-16 | **Confidence:** HIGH

## Exposure Ceiling: 70%

| Dimension | Score | Status |
|-----------|-------|--------|
| Breadth | 65 | Healthy |
| Uptrend Participation | 72% | Broad |
| Regime | Broadening | Favorable |
| Top Risk | 25 | Low |

## Recommendation: NEW_ENTRY_ALLOWED

**Bias:** Growth > Value
**Participation:** Broad (healthy internals)

### Rationale
Broad participation with low distribution day count supports elevated equity exposure.
New positions allowed within the 70% ceiling.

Reports are saved to reports/ with filenames exposure_posture_YYYY-MM-DD_HHMMSS.{json,md}.

Resources

  • scripts/calculate_exposure.py -- Main orchestrator that scores and synthesizes inputs
  • references/exposure_framework.md -- Scoring rules and threshold definitions
  • references/regime_exposure_map.md -- Regime-to-exposure ceiling mappings

Key Principles

  1. Safety First -- Default to lower exposure when inputs are incomplete or conflicting
  2. Regime Alignment -- Let macro regime set the baseline; breadth adjusts within bounds
  3. Actionable Output -- Always produce a clear recommendation, not just data aggregation

Comments

Markdown supported