Agent skill

News Reaction Failure Analyzer

by tradermonty in tradermonty/claude-trading-skills

Judge whether a market FAILED to react to news favorable to a crowded speculative position — step 2 of Jason Shapiro's COT contrarian process.

MITAuto-check passed

Install News Reaction Failure Analyzer

skills CLI
$ npx skills add tradermonty/claude-trading-skills --skill news-reaction-failure-analyzer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tradermonty/claude-trading-skills news-reaction-failure-analyzer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tradermonty/claude-trading-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/news-reaction-failure-analyzer .claude/skills/news-reaction-failure-analyzer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
news-reaction-failure-analyzer
GitHub stars
3k
Token cost
~2.3k tokens
SKILL.md length
995 words
Files
8 (incl. scripts, references)
Skills in repo
74
Repo updated
First seen
Licence
MIT

At a glance

Judge whether a market FAILED to react to news favorable to a crowded speculative position — step 2 of Jason Shapiro's COT contrarian process.

  • Works in 4 steps: Obtain symbol + direction → Curate the events JSON via WebSearch → Run the CLI → …
  • The user asks to check news-failure confirmation
  • SKILL.md covers Overview, When to Use This Skill, Prerequisites and Workflow, plus 3 more sections
  • Runs Python scripts from its folder; calls python3; needs FMP_API_KEY

What it does

News Reaction Failure Analyzer is an agent skill from tradermonty/claude-trading-skills. Judge whether a market FAILED to react to news favorable to a crowded speculative position — step 2 of Jason Shapiro's COT contrarian process. Consumes a cot-contrarian-detector report (or an explicit direction) plus a Claude-curated events JSON, fetches the underlying price series with a documented fallback chain, and produces a fail-closed CONFIRMED / NOTCONFIRMED / INSUFFICIENTEVIDENCE verdict using a statistically validated drift-significance test (not a naive failure-ratio, which false-confirms on pure…

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `references/news-failure-patterns.md`, `references/price-source-map.md` and `scripts/analyze_news_reaction.py`).

It works with React. The repository describes itself as: Claude Code skills for equity investors and traders — market analysis, technical charting, economic calendars, screeners, and trading strategy development. The licence is MIT.

When your agent uses it

  • The user asks to check news-failure confirmation
  • Whether a crowded market shrugged off good/bad news
  • Wants to run Shapiro step 2 on a CROWDEDLONG/CROWDEDSHORT market

Example prompts

  • “shrugged off”
  • “/news-reaction-failure-analyzer”

Requirements

  • Python 3
  • A credential in FMP_API_KEY

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Obtain symbol + direction
  2. Curate the events JSON via WebSearch
  3. Run the CLI
  4. Present verdict + handoff

What it can do on your machine

Read from SKILL.md and the folder at commit c8d58f0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • FMP_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

News Reaction Failure Analyzer loads about 2.3k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 204 tokens; SKILL.md has 995 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~204
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from tradermonty/claude-trading-skills at commit c8d58f0, republished under its MIT licence (© tradermonty). 995 words, ~2,334 tokens.

Download SKILL.mdSave it as .claude/skills/news-reaction-failure-analyzer/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
news-reaction-failure-analyzer
description
Judge whether a market FAILED to react to news favorable to a crowded speculative position — step 2 of Jason Shapiro's COT contrarian process. Consumes a cot-contrarian-detector report (or an explicit direction) plus a Claude-curated events JSON, fetches the underlying price series with a documented fallback chain, and produces a fail-closed CONFIRMED / NOT_CONFIRMED / INSUFFICIENT_EVIDENCE verdict using a statistically validated drift-significance test (not a naive failure-ratio, which false-confirms on pure noise). Generic beyond COT — reusable for PEAD and macro-crowding news-failure checks. Use when the user asks to check news-failure confirmation, whether a crowded market "shrugged off" good/bad news, or wants to run Shapiro step 2 on a CROWDED_LONG/CROWDED_SHORT market.

News Reaction Failure Analyzer

Overview

Implements step 2 of Jason Shapiro's COT contrarian process: once a market is flagged as crowded (cot-contrarian-detector, step 1), check whether it FAILED to react to news that should have rewarded the crowd. A crowded-long market that doesn't rally on genuinely bullish news, or a crowded-short market that doesn't sell off on genuinely bearish news, is the core behavioral tell that the crowd has run out of buying/selling power — this is the confirmation step that turns "crowded" into a contrarian setup candidate (steps 3-5, still manual: price-action confirmation, entry, exit).

Why this isn't a naive failure-ratio check: an earlier design flagged "news failure" whenever fewer than half the relevant events "responded" — but under pure noise, roughly 69% of individual events fail to respond by chance, so that rule would CONFIRM on random noise 48-83% of the time depending on sample size. This skill instead requires the market to have moved significantly against the crowd's favorable news (a drift- significance test with a Monte-Carlo-verified null false-positive bound), never merely "didn't respond enough." See references/news-failure-patterns.md for the full statistical rationale.

When to Use This Skill

English:

  • "Did the market shrug off [event] even though [asset] is crowded long/short?"
  • "Run a news-failure check on [symbol]"
  • "Is [symbol] confirmed for a Shapiro-style contrarian setup?"
  • After cot-contrarian-detector flags a market CROWDED_LONG / CROWDED_SHORT and the user wants to move to step 2

Japanese:

  • 「この市場は好材料に反応しなかった?」
  • 「COTで偏っているこの銘柄のニュース失敗を確認して」

Do NOT use when:

  • The market isn't crowded (NEUTRAL classification) — this skill refuses fail-closed without an explicit --direction override
  • No curated events JSON exists yet — WebSearch must run first (Phase 2 below); never fabricate events or URLs to get a verdict

Prerequisites

  • FMP API Key: Required. Set FMP_API_KEY or pass --api-key. Used for price data only (stable/historical-price-eod/light) — coverage varies by symbol; see references/price-source-map.md.
  • Python 3.9+ with requests installed.
  • WebSearch access to curate the events JSON (Phase 2). Skill degrades gracefully without it (states the limitation; never fabricates events).
  • Optional: a cot-contrarian-detector JSON report (--detector-json) to auto-resolve symbol + direction, or supply --direction explicitly.

Workflow

Phase 1: Obtain symbol + direction

From a cot-contrarian-detector report (--detector-json, symbol looked up in markets[]) or directly from the user (--symbol + --direction). A NEUTRAL classification, a symbol missing from the report, or a report older than --max-detector-age-days (default 10) all refuse fail-closed with a specific reason — only an explicit --direction overrides.

Phase 2: Curate the events JSON via WebSearch

Search news in the evaluation window (--window-days, default 10) using the 4-tier source hierarchy (issuer/primary → SEC/official stats → wire → portal — see references/news-failure-patterns.md). Write findings into an events JSON from references/news-failure-patterns.md's template — event, event_time (ISO8601 with explicit UTC offset), source_url, source_tier, expected_impact (BULLISH/BEARISH) per event.

Never fabricate events or URLs. WebSearch unavailable → state it explicitly; proceed without an events JSON only if the user accepts an INSUFFICIENT_EVIDENCE result (reason no_events_provided) — the CLI never raises an exception for a missing events file, it always exits 0 with a documented reason.

Phase 3: Run the CLI
bash
python3 skills/news-reaction-failure-analyzer/scripts/analyze_news_reaction.py \
  --symbol B6 --detector-json reports/cot_crowding_2026-07-12.json \
  --events-json reports/nrf_events_B6_2026-07-12.json \
  --output-dir reports/

The script fetches the price series (documented fallback chain — futures symbol first, ETF proxy if 402/restricted or rows == 0; see references/price-source-map.md), computes effective dates / returns / z-scores per event, clusters events whose 3-trading-day windows overlap (independence guard), and synthesizes the verdict.

Phase 4: Present verdict + handoff

Present the verdict, aggregate stats (drift_stat, responded_ratio), and the evidence table (per-event returns/z-scores/reaction labels, with any dropped_events reasons shown — never silently hidden). If a proxy (run_context.proxy_used) was used, note the tracking-error caveat.

Emit a handoff block for contrarian-setup-gate (#241, not yet built):

json
{"news_failure": {"verdict": "CONFIRMED", "confidence": "HIGH", "report_path": "reports/nrf_B6_2026-07-12.json"}}

Output

  • JSON: reports/nrf_<symbol>_<as-of-date>.json — schema_version, symbol, direction, expected_direction, actual_reaction (FAILED_TO_RALLY/FAILED_TO_SELL_OFF/RALLIED/SOLD_OFF/ MIXED_REACTION/NO_DATA), verdict, confidence, relevant_events_used, aggregate (mean_z3/drift_stat/responded_ratio), evidence[], dropped_events[], run_context.
  • Markdown: reports/nrf_<symbol>_<as-of-date>.md — human-readable verdict, aggregate stats, evidence table, dropped-events table, proxy caveat (if used), and methodology footnote.
Show full SKILL.md (385 more words)Show less

Guardrails

  • CONFIRMED is not a trade signal. It confirms step 2 of 5 — price- action confirmation (step 3), entry (step 4), and exit (step 5) are still manual and still required before any position.
  • INSUFFICIENT_EVIDENCE never advances the pipeline. Fewer than --min-events (default 3) usable relevant event clusters, a missing detector report, or a detector vintage (data_date) that's missing, unparsable, dated after --as-of, or older than --max-detector-age-days (stale), a NEUTRAL classification without an explicit override, or no working price source all produce this verdict — never a crash, never a forced call on inadequate data.
  • COT publication lag. COT data is 3-9 days old by the time it's read (see cot-contrarian-detector); news-failure evidence should be read in that context, not as same-day confirmation.
  • Counter-direction events are context only — shown in the evidence table but excluded from the verdict (only events whose expected_impact matches the crowd's expected_direction count).
  • Proxy-based prices are noted, not hidden. When an ETF proxy was used (run_context.proxy_used), the report says so — tracking error, expense drag, and roll-timing differences make the reaction-direction read approximate, not exact.
  • Residual statistical risk under extreme correlation. The verdict's null false-CONFIRMED rate is hard-verified under i.i.d. noise (<8%) and under a realistic residual-correlation stress (AR(1) ρ=0.1, <10%). Under an intentionally extreme correlation stress (lag-1 ρ=0.3 across non-clustered event windows — roughly 10x liquid-futures empirical autocorrelation), the measured null rate rises to ~11-13%. This is a documented v1 limitation, not a silent gap — see references/news-failure-patterns.md for the full numbers. Users who want the stricter <10% margin even under that stress can pass --drift-z 1.75 (at the cost of missing some genuine news-failure signals, not just noise).
  • Not investment advice. Research/educational purposes only.

Resources

references/news-failure-patterns.md

Full methodology: what qualifies as a relevant event, the 4-tier source hierarchy, worked examples, the events-JSON curation guide + template, and the verdict-threshold rationale (why drift-significance, not a naive ratio; the Monte-Carlo-verified null bounds).

references/price-source-map.md

Per-market price-source fallback chain, verified/402/0-rows status (live- probed at implementation time), ETF-proxy caveats, and markets with no viable source (documented no_price_source cases: VX, ZQ, HO, all agri on this key).

When to Load References
  • First use / explaining the methodology: Load references/news-failure-patterns.md
  • Explaining why a market has no verdict (no_price_source): Load references/price-source-map.md
  • Regular execution: References not needed for the CLI itself — needed for Phase 2 (events curation) and for explaining results to the user

© tradermonty, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts, references) in skills/news-reaction-failure-analyzer of tradermonty/claude-trading-skills.

  • SKILL.md
  • references/news-failure-patterns.md
  • references/price-source-map.md
  • requirements.txt
  • scripts/analyze_news_reaction.py
  • scripts/reaction_math.py
  • scripts/tests/test_analyze_news_reaction.py
  • scripts/tests/test_reaction_math.py

Open the folder on GitHubat commit c8d58f0

Compare with similar skills

News Reaction Failure Analyzer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

News Reaction Failure Analyzer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
News Reaction Failure Analyzer this skilltradermonty/claude-trading-skills3k—~2.3kAutomated safety check: PassMIT
Web Artifacts Builderanthropics/skills180k40 repos~769Automated safety check: PassApache-2.0
Vercel Composition Patternssupabase/supabase111k58 repos~726Automated safety check: PassMIT
React Doctormakeplane/plane61k12 repos~657Automated safety check: PassAGPL-3.0
React Router Developmentremix-run/react-router57k1 repos~1.5kAutomated safety check: PassMIT
React UI State PatternsChrisWiles/claude-code-showcase6.1k8 repos~1.6kAutomated safety check: PassNone

Similar skills

  • Web Artifacts Builder

    anthropics/skills

    Official

    Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.

    180k GitHub starsUsed in 40 repos~769 tokens
    Frontend & DesignAuto-check passed
  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 58 repos~726 tokens
    DevelopmentAuto-check passed
  • React Doctor

    makeplane/plane

    Scans React code for lint, accessibility, bundle size and architecture issues, reports a health score and checks that changes do not lower it.

    61k GitHub starsUsed in 12 repos~657 tokens
    Frontend & DesignAuto-check passed
  • React Router Development

    remix-run/react-router

    Guides work on React Router apps by first identifying whether the app uses Framework, Data or Declarative mode, then loading the matching reference and the installed package docs.

    57k GitHub starsUsed in 1 repo~1.5k tokens
    Frontend & DesignAuto-check passed
  • React UI State Patterns

    ChrisWiles/claude-code-showcase

    Sets patterns for React interfaces: when to show loading spinners or skeletons, how to surface errors, how to disable buttons during async work and how to handle empty lists.

    6.1k GitHub starsUsed in 8 repos~1.6k tokens
    Frontend & DesignAuto-check passed
  • Tells the agent where new code belongs in an Electron multi-process project and which APIs each process may use, with rules for new bridges, services, agents and workers.

    33k GitHub starsUsed in 1 repo~1.8k tokens
    DevelopmentAuto-check passed

More from tradermonty/claude-trading-skills

All 74 skills in this repo
  • Technical Analyst

    tradermonty/claude-trading-skills

    This skill should be used when analyzing weekly price charts for stocks, stock indices, cryptocurrencies, or forex pairs.

    3k GitHub starsUsed in 4 repos~4.6k tokens
    Auto-check passed
  • Theme Detector

    tradermonty/claude-trading-skills

    Detect and analyze trending market themes across sectors. An agent skill from tradermonty/claude-trading-skills.

    3k GitHub starsUsed in 2 repos~4.9k tokens
    Auto-check passed
  • Trader Memory Core

    tradermonty/claude-trading-skills

    Track investment theses across their lifecycle — from screening idea to closed position with postmortem.

    3k GitHub starsUsed in 2 repos~4.3k tokens
    Auto-check passed
  • Edge Strategy Reviewer

    tradermonty/claude-trading-skills

    Critically review strategy drafts from edge-strategy-designer for edge plausibility, overfitting risk, sample size adequacy, and execution realism.

    3k GitHub starsUsed in 1 repo~988 tokens
    Auto-check passed
  • Sector Analyst

    tradermonty/claude-trading-skills

    This skill should be used when analyzing sector rotation patterns and market cycle positioning.

    3k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Stanley Druckenmiller Investment

    tradermonty/claude-trading-skills

    Druckenmiller Strategy Synthesizer - Integrates 8 upstream skill outputs (Market Breadth, Uptrend Analysis, Market Top, Macro Regime, FTD Detector, VCP Screener, Theme Detector, CANSLIM Screener)…

    3k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed

Works with

Questions about News Reaction Failure Analyzer

What does News Reaction Failure Analyzer do?

Judge whether a market FAILED to react to news favorable to a crowded speculative position — step 2 of Jason Shapiro's COT contrarian process. News Reaction Failure Analyzer is an agent skill from tradermonty/claude-trading-skills. Judge whether a market FAILED to react to news favorable to a crowded speculative position — step 2 of Jason Shapiro's COT contrarian process.

When should I use News Reaction Failure Analyzer?

News Reaction Failure Analyzer fits situations like: the user asks to check news-failure confirmation; whether a crowded market shrugged off good/bad news; wants to run Shapiro step 2 on a CROWDEDLONG/CROWDEDSHORT market.

How do I install News Reaction Failure Analyzer in Claude Code?

Run `npx skills add tradermonty/claude-trading-skills --skill news-reaction-failure-analyzer -a claude-code`. Or copy the skill folder (skills/news-reaction-failure-analyzer in tradermonty/claude-trading-skills) into .claude/skills/news-reaction-failure-analyzer in your project. Claude Code loads it when a task matches its description.

How do I install News Reaction Failure Analyzer in Codex?

Run `npx skills add tradermonty/claude-trading-skills --skill news-reaction-failure-analyzer -a codex`. Or copy the skill folder (skills/news-reaction-failure-analyzer in tradermonty/claude-trading-skills) into .agents/skills/news-reaction-failure-analyzer in your project. Codex loads it when a task matches its description.

Can I use News Reaction Failure Analyzer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tradermonty/claude-trading-skills --skill news-reaction-failure-analyzer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/news-reaction-failure-analyzer, .gemini/skills/news-reaction-failure-analyzer, .github/skills/news-reaction-failure-analyzer and .opencode/skills/news-reaction-failure-analyzer in your project.

What does News Reaction Failure Analyzer need to run?

Going by SKILL.md and its folder, News Reaction Failure Analyzer needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named FMP_API_KEY. Our summary lists: Python 3; A credential in FMP_API_KEY.

Does News Reaction Failure Analyzer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is News Reaction Failure Analyzer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does News Reaction Failure Analyzer use?

News Reaction Failure Analyzer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does News Reaction Failure Analyzer use?

About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.1k tokens, read only when the agent opens those files.

What are the alternatives to News Reaction Failure Analyzer?

Skills that share tags, products or a category with News Reaction Failure Analyzer: Web Artifacts Builder (anthropics/skills, 180k stars), Vercel Composition Patterns (supabase/supabase, 111k stars), React Doctor (makeplane/plane, 61k stars) and React Router Development (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains News Reaction Failure Analyzer?

tradermonty (a GitHub user) maintains it in tradermonty/claude-trading-skills, which has 2,982 GitHub stars. The repository holds 74 skills in this directory. The repository was last updated on October 11, 2026.

Source: tradermonty/claude-trading-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.