This skill should be used when analyzing market breadth charts, specifically the S&P 500 Breadth Index (200-Day MA based) and the US Stock Market Uptrend Stock Ratio charts. Use this skill when the user provides breadth chart images for analysis, requests market breadth assessment, positioning strategy recommendations, or wants to understand medium-term strategic and short-term tactical market outlook based on breadth indicators. Also works WITHOUT chart images by fetching CSV data directly from public sources. All analysis and output are conducted in English.
467k tokens
context cost
the whole folder, loaded on every use
13
files
ships runnable scripts
1
copies elsewhere
how many repositories repackaged it
118
stars on the repo
on the repository, not the skill itself
Install
one command, takes just this skill from the repository
This skill enables specialized analysis of two complementary market breadth charts that provide strategic (medium to long-term) and tactical (short-term) market perspectives. Analyze breadth chart images to assess market health, identify trading signals based on backtested strategies, and develop positioning recommendations. All thinking and output are conducted exclusively in English.
When to Use
Use this skill when:
User provides S&P 500 Breadth Index (200-Day MA based) chart images for analysis
User provides US Stock Market Uptrend Stock Ratio chart images for analysis
User requests market breadth assessment or market health evaluation
User asks about medium-term strategic positioning based on breadth indicators
User needs short-term tactical timing signals for swing trading
User wants combined strategic and tactical market outlook
User requests breadth analysis WITHOUT providing chart images (CSV data mode)
Do NOT use this skill when:
User asks about individual stock analysis (use us-stock-analysis skill instead)
User needs sector rotation analysis without breadth charts (use sector-analyst skill instead)
User wants news-based market analysis (use market-news-analyst skill instead)
Prerequisites
Chart Images Optional: CSV data from public sources is the PRIMARY data source; chart images provide supplementary visual context
No API Keys Required: CSV data is fetched from public GitHub Pages; no external API subscriptions needed
Language: All analysis and output conducted in English
Output
This skill generates markdown analysis reports saved to the reports/ directory:
Both charts: breadth_combined_analysis_[YYYY-MM-DD].md
Reports include executive summaries, current readings, signal identification, scenario analysis with probabilities, and actionable positioning recommendations for different trader types.
============================================================
Breadth Data (CSV) - 2026-02-13
============================================================
--- Market Breadth (S&P 500) ---
200-Day MA: 62.26% (healthy (>=60%))
8-Day MA: 67.56% (healthy_bullish (60-73%))
8MA vs 200MA: +5.30pt (8MA ABOVE -- NO dead cross)
Trend: UPTREND
--- Uptrend Ratio (All Markets) ---
Current: 33.03% GREEN (neutral_bullish)
10MA: 32.65%, Slope: +0.0055, Trend: UP
--- Sector Summary ---
...
============================================================
Validation: After running CSV fetch, verify:
[ ] CSV data retrieved successfully
[ ] 200-Day MA value recorded
[ ] 8-Day MA value recorded
[ ] Dead cross status determined (8MA < 200MA = dead cross)
[ ] Uptrend Ratio value + color + trend recorded
[ ] Use these CSV values as the authoritative source for all subsequent analysis
Step 1: Receive Chart Images and Prepare Analysis
When the user provides breadth chart images for analysis:
Confirm receipt of chart image(s)
Identify which chart(s) are provided:
Chart 1 only (200MA Breadth)
Chart 2 only (Uptrend Ratio)
Both charts
Note any specific focus areas or questions from the user
CRITICAL: Extract right edge of chart images before analysis (Step 1.5)
If NO chart images are provided: Skip Steps 1, 1.5, and image-based analysis. Use CSV data from Step 0 as the sole data source and proceed directly to the analysis and report generation steps.
Language Note: All subsequent thinking, analysis, and output will be in English.
Step 1.5: Two-Stage Chart Analysis (MANDATORY when charts provided)
CRITICAL: Use a two-stage analysis approach to prevent misreading historical data as current values.
Stage 1: Full Chart Analysis (Historical Context)
First, analyze the FULL chart image to understand:
If Chart 1 is provided, conduct systematic analysis:
4.1 Extract Current Readings
From the chart image, identify:
Current 8MA level (orange line): Specific percentage
Current 200MA level (green line): Specific percentage
8MA slope: Rising, falling, or flat
200MA slope: Rising, falling, or flat
Distance from 73% threshold: How close to overheating
Distance from 23% threshold: How close to extreme oversold
Most recent date visible on the chart
4.1.5 CRITICAL: Latest Data Point Detailed Trend Analysis
This step is MANDATORY to avoid misreading recent trend changes.
CRITICAL WARNING: Charts can be deceptive. The MAJORITY of analysis errors occur because the analyst:
Confuses the 8MA (orange) with the 200MA (green)
Reads historical trends instead of the CURRENT rightmost data points
Misidentifies which line is rising vs falling
BEFORE analyzing trend direction, FIRST confirm line colors:
✓ 8MA = ORANGE line (fast-moving, more volatile)
✓ 200MA = GREEN line (slow-moving, smoother)
If unsure which is which, STOP and re-examine the chart legend/colors
Focus intensively on the rightmost 3-5 data points of the chart (most recent weeks):
For 8MA (Orange Line) - Analyze the very latest trajectory:
Identify the absolute latest position: Where is the 8MA at the rightmost edge of the chart?
Trace back 3-5 data points (approximately 3-5 weeks):
What was the 8MA level 1 week ago?
What was the 8MA level 2 weeks ago?
What was the 8MA level 3 weeks ago?
Calculate the directional change:
Is the latest value HIGHER or LOWER than 1 week ago?
Is the latest value HIGHER or LOWER than 2 weeks ago?
What is the trend: consistently rising, consistently falling, or mixed?
Determine the CURRENT slope (not historical slope):
Rising: Latest data point is higher than previous 2-3 points AND shows upward curvature
Falling: Latest data point is lower than previous 2-3 points AND shows downward curvature
Flat: Latest data point is approximately equal to previous points (within 2-3%)
Critical Questions to Answer:
[ ] Is the 8MA currently moving UP or DOWN at the rightmost edge?
[ ] If there was a recent trough, has the 8MA sustained the upward move, or has it rolled over?
[ ] Count consecutive periods of increase: How many consecutive periods has 8MA risen? (Need 2-3 for confirmation)
[ ] Count consecutive periods of decrease: How many consecutive periods has 8MA fallen? (Indicates failed reversal if declining after trough)
For 200MA (Green Line) - Analyze the very latest trajectory:
Identify the absolute latest position: Where is the 200MA at the rightmost edge?
Trace back 4-6 weeks:
What was the 200MA level 2 weeks ago?
What was the 200MA level 4 weeks ago?
Determine the CURRENT slope:
Is it rising, falling, or flat in the most recent period?
Failed Reversal Detection (CRITICAL):
If an 8MA trough (purple ▼) was recently identified:
[ ] Did the 8MA rise for only 1-2 periods and then turn back down?
[ ] Did the 8MA fail to reach 60% before turning down?
[ ] Is the 8MA currently declining again after the bounce?
If YES to any: This is a FAILED REVERSAL - DO NOT ENTER, signal is INVALID
Example Analysis Format:
Latest 8MA Data Points (rightmost to left):
- Current (Week 0): 48%
- 1 week ago: 52%
- 2 weeks ago: 55%
- 3 weeks ago: 50%
Analysis: 8MA is FALLING. It rose from 50% to 55% (weeks 3-2), but has since declined to 48%.
This shows a failed reversal pattern - bounce was temporary, downtrend has resumed.
SLOPE: Falling (not rising!)
MANDATORY CROSS-CHECK (to catch misreadings):
After determining the trend, ask yourself:
[ ] "If I claimed 8MA is RISING, but it's actually been FALLING for weeks, what would that look like?"
Answer: The rightmost data points would be LOWER than previous points (confirming FALLING)
[ ] "Does my analysis match the visual slope of the orange line at the rightmost edge?"
If orange line visually slopes DOWN at the right edge → It's FALLING
If orange line visually slopes UP at the right edge → It's RISING
[ ] "Is there any pink background shading (downtrend) near the rightmost edge?"
If YES → This confirms downtrend conditions, 8MA is likely FALLING
[ ] "Are the 8MA and 200MA converging (getting closer) or diverging?"
Converging from below → Potential death cross forming → BEARISH
Converging from above → Potential golden cross forming → BULLISH
4.2 Identify Signal Markers
Look for and document:
Most recent 8MA trough (purple ▼): Date and level
Most recent 200MA trough (blue ▼): Date and level (if visible in timeframe)
Most recent 200MA peak (red ▲): Date and level
Days/weeks since most recent signals
Any pink background shading (downtrend periods)
4.3 Assess Market Regime
Based on readings and patterns, classify the current market as:
Healthy Bull Market
Overheated Bull Market
Market Top/Distribution Phase
Bear Market/Correction
Capitulation/Extreme Oversold
Early Recovery
Support the classification with specific evidence from the chart.
4.4 Determine Strategy Position
Apply the backtested strategy rules with STRICT confirmation requirements:
Check for BUY signal (ALL criteria must be met):
✓ Trough Formation: Has 8MA formed a clear trough (purple ▼)?
✓ Reversal Initiated: Has 8MA begun to move upward from the trough?
✓ Confirmation Achieved: Has 8MA risen for 2-3 CONSECUTIVE periods after the trough?
✓ No Recent Reversal: Based on Step 4.1.5 analysis, is 8MA CURRENTLY rising (not falling)?
✓ Sustained Move: Has 8MA maintained the upward trajectory without rolling over?
⭐ Optional but Strong: Is 8MA below or near 23% (extreme oversold) at trough?
BUY Signal Status:
CONFIRMED: All 5 required criteria met → ENTER LONG
FAILED: Trough formed, but 8MA has rolled over and is declining → DO NOT ENTER, WAIT FOR NEXT TROUGH
NO SIGNAL: No trough formed → WAIT
Check for SELL signal:
Has 200MA formed a peak (red ▲)?
Is 200MA near or above 73%?
Is this an active sell signal requiring position exit?
Current position determination:
Long: BUY signal confirmed, position entered and held
Preparing to Enter: BUY signal developing (trough formed, watching for confirmation)
WAIT / Flat: No valid signal OR failed reversal detected
Preparing to Exit: SELL signal developing (200MA approaching peak)
4.5 Develop Scenarios
Create 2-3 scenarios with probability estimates:
Base case scenario (highest probability)
Alternative scenario(s)
Each scenario includes: description, supporting factors, strategy implications, key levels
Step 5: Analyze Chart 2 (Uptrend Stock Ratio)
If Chart 2 is provided, conduct systematic analysis:
5.0 ~~MANDATORY~~ DEPRECATED: Uptrend Ratio Detection Script (Superseded by Step 0 CSV Fetch)
NOTE (Issue #7): This OpenCV detection step is DEPRECATED. Use CSV data from Step 0 as the PRIMARY source. The OpenCV script may be run for supplementary validation only, but CSV values take precedence in all cases.
Pink background = Downtrend period = Bearish conditions
If pink shading present, report MUST acknowledge bearish conditions
Error 5: Claiming Reversal Too Early
Symptom: Report says "BUY signal confirmed" after only 1 week of increase
Prevention:
Require 2-3 CONSECUTIVE weeks of 8MA increase for confirmation
If only 1 week: Signal is "DEVELOPING", not "CONFIRMED"
If 8MA rises then falls again: Signal is "FAILED", not valid
Example Usage Scenarios
Example 1: CSV-Only Analysis (No Charts)
User: "breadth分析して" (Analyze breadth)
[No chart images provided]
Breadth Analyst:
1. Executes fetch_breadth_csv.py to get latest CSV data
2. Reads breadth_chart_methodology.md
3. Analyzes CSV data:
- 200MA: 62.26% (healthy)
- 8MA: 67.56% (healthy_bullish)
- 8MA vs 200MA: +5.30pt (NO dead cross)
- Uptrend Ratio: 33.03% GREEN (neutral_bullish)
- Sector summary with overbought/oversold sectors
4. Assesses market regime based on CSV values
5. Generates report: breadth_combined_analysis_2026-03-16.md
Example 2: Strategic Breadth Analysis (Chart 1 Only)
User: "Please analyze this S&P 500 breadth chart and tell me where we are in the market cycle."
[Provides Chart 1 image: 200MA Breadth Index]
Breadth Analyst (thinking in English):
1. Executes CSV fetch for authoritative numerical values
2. Confirms receipt of Chart 1 (200MA-based breadth index)
3. Reads breadth_chart_methodology.md for Chart 1 guidance
4. Two-stage analysis: full chart → right edge extraction
5. Cross-checks CSV values with chart readings
6. Generates comprehensive report in English
Example 3: Combined Strategic + Tactical Analysis (Both Charts)
User: "Analyze both of these breadth charts and give me your overall market view."
[Provides both Chart 1 and Chart 2 images]
Breadth Analyst (thinking in English):
1. Executes CSV fetch as PRIMARY source
2. Confirms receipt of both charts
3. Reads full breadth_chart_methodology.md
4. Two-stage analysis for each chart
5. Cross-checks all values against CSV data
6. Combined assessment and unified recommendation
7. Generates comprehensive combined report
Resources
This skill includes the following bundled resources:
Common Pitfalls: Mistakes to avoid for each chart type
Usage: Read this file before conducting any breadth chart analysis to ensure systematic, accurate interpretation.
assets/breadth_analysis_template.md
Structured template for breadth analysis reports in English.
Usage: Use this template structure for every analysis report.
assets/SP500_Breadth_Index_200MA_8MA.jpeg
Sample Chart 1 image for format reference.
assets/US_Stock_Market_Uptrend_Ratio.jpeg
Sample Chart 2 image for format reference.
scripts/fetch_breadth_csv.py
PRIMARY data source. Fetches market breadth, uptrend ratio, and sector summary data from public CSV sources. Uses only stdlib (urllib + csv) -- no external dependencies.