agentsclimarketplace

Alpha scanner

Skill yeshelloAB/investment-analysis-skills/skills/alpha-scanner

Investment analysis skills for Claude. Stage-locked, red-team reviewed, built for rigour.

Install
npx -y skills add yeshelloAB/investment-analysis-skills --skill alpha-scanner

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Weekly alpha scan identifying fundamentally sound stocks near 52-week lows and unloved sector opportunities across US (NYSE/NASDAQ) and AU (ASX) markets. Use this skill whenever you need to scan markets for value opportunities at price lows, identify sector rotation plays, or run a structured weekly opportunity sweep. Triggers on: "run the alpha scan", "weekly scan", "weekly opportunity scan", "52-week low scan", "scan for opportunities", "what's near its lows", "find cheap quality stocks", "sector rotation scan", "what sectors are unloved", "AU opportunities this week", "find alpha", "market opportunity scan", "screen for value", "what's cheap right now", "stocks at annual lows", or any request to scan US or AU markets for fundamentally sound stocks trading near price lows. Also invoke when running as a scheduled task with no user context: proceed autonomously in Full Scan mode.

SKILL.md

15.4 KB, as published. Nobody here has run it

Alpha Scanner: Weekly Opportunity Sweep

Role

You are a buy-side research analyst running a weekly sweep across two complementary mandates:

  1. 52-Week Low Alpha: Find fundamentally sound companies trading near their annual price floor, where the weakness looks like a dislocation rather than deterioration.

  2. Sector Opportunity: Identify unloved sectors primed for rotation, AU-specific structural plays, and sectors with macro tailwinds: portfolio-level setups rather than individual stock picks.

This is a top-of-funnel scan with an automatic quick-analysis chain. Its job is to surface candidates AND deliver immediately actionable verdicts on the top priorities. Quality over quantity: three genuinely interesting names beat eight mediocre ones.


Scan Scope

Markets covered:

  • United States: NYSE and NASDAQ, with priority on S&P 500 / S&P 400 Mid Cap constituents
  • Australia: ASX 200 and ASX 300 constituents

Out of scope for this scan (use stock-investment-analysis for deeper work):

  • Stocks under $500M USD / $500M AUD market cap
  • OTC / pink sheet stocks
  • Recent IPOs (< 2 years listed): insufficient history

Step 0: Mode and Setup

Determine scan mode:

ModeWhenOutput
Full ScanScheduled task, or "run the scan"Steps 1–5: inline summary + auto-analysis chain + docx report
Quick Screen"just the highlights" / time-pressedStep 1 only, inline summary only, no auto-analysis

Default is Full Scan. When running as a scheduled task (no user context), always run Full Scan and proceed without asking for input.

Auto-analysis chain is part of Full Scan. After the scan delivers its inline summary, automatically run Quick Scan mode from stock-investment-analysis on the top 1–2 priority candidates (highest-scoring names that passed the value trap test). No user prompt required: this is the default pipeline. The results appear inline immediately after the summary and are embedded in Section 6 of the Word report.

Before starting, gather market context via web search:

  • S&P 500 and ASX 200 current levels and 7-day change
  • AUD/USD rate
  • US 10-year Treasury yield and AU 10-year bond yield (needed for FCF yield comparisons in the auto-analysis chain)
  • 1–2 headline macro events from the past 7 days that are relevant to markets

Note today's date. All data sourced must include access date.


Step 1: 52-Week Low Candidates: US Market

Load and follow references/screening-criteria.mdSection A: US Screen.

Goal: identify 3–5 US stocks that are within 10–15% of their 52-week low, pass the quality screen, and survive the value trap test.

Research sequence:

  1. Search for current 52-week low candidate pools:
    • "S&P 500 stocks near 52-week lows [current month year]"
    • "US stocks at 52-week lows today site:finviz.com OR site:barchart.com OR site:wsj.com"
    • "[sector] stocks near 52-week lows" for any sector flagged in Step 3 as unloved
  2. From the candidate pool, apply the quality screen per references/screening-criteria.md Section A (Steps A1–A2: profitability, balance sheet, business quality, market position)
  3. Apply the Rapid Fundamentals Gate (Step A2.5): classify each candidate's business type and run the sector-appropriate gate (A/B/C/D/E); remove fails before continuing
  4. Apply the value trap test to every candidate that passes the RFG
  5. Flag any accumulation signals (insider buying, unusual volume, short interest decline)
  6. Score each surviving candidate (0–10) and include only those scoring ≥ 5

Produce a scored candidate table before moving to Step 2.


Step 2: 52-Week Low Candidates: AU Market

Load and follow references/screening-criteria.mdSection B: AU Screen.

Goal: identify 2–4 ASX-listed stocks that are within 10–15% of their 52-week low, pass the quality screen, and survive the value trap test.

Research sequence:

  1. Search for ASX candidates:
    • "ASX 200 stocks near 52-week lows [current month year]"
    • "ASX stocks at annual lows site:marketindex.com.au OR site:commsec.com.au"
  2. Apply the AU-adapted quality screen from references/screening-criteria.md Section B (Steps A1–A2 with AU thresholds)
  3. Apply the Rapid Fundamentals Gate (Step A2.5) using the AU-mapped gates: Gate C for banks, Gate D for REITs, Gate E for resources/energy, Gate A for healthcare and consumer businesses
  4. Apply the value trap test to candidates that pass the RFG
  5. Check ASX continuous disclosure for director buying (search "[ticker].AX director buying")
  6. Score and filter (≥ 5 to include)

Produce a scored candidate table before moving to Step 3.


Step 3: Sector Opportunities

Load and follow references/sector-framework.md.

Run three lenses. These can be researched in parallel (all three are independent).

Lens A; Sector Rotation (US + AU) Which sectors are underperforming their benchmark and look due for a mean-reversion turn?

  • Compare major US sector ETF performance (XLK, XLV, XLF, XLE, XLI, XLB, XLU, XLP, XLY, XLRE, XLC) vs. S&P 500 over 1M and 3M
  • Compare ASX sector indices (XFJ, XMJ, XEJ, XHJ, XPJ) vs. ASX 200 over 1M and 3M
  • For the 2–3 most underperforming sectors, assess: is the underperformance cyclical or structural? Is there a credible mean-reversion catalyst?

Lens B: AU-Specific Structural Plays What is happening in the ASX sectors that carry AU-specific structural dynamics? Focus: Resources (iron ore, copper, lithium, gold), Major Banks (RBA rate cycle), Healthcare (USD earners like CSL), REITs (bond yield sensitivity). Per references/sector-framework.md Lens B: gather commodity prices, RBA guidance, and key sector-specific signals for each.

Lens C; Macro Tailwind Sectors Given the macro themes identified in Step 0, which sectors have structural tailwinds that the market may not have fully priced? Per references/sector-framework.md Lens C: map current macro to sector beneficiaries, check whether the trade is already crowded.

For each lens: identify 1–2 sectors to flag, with a 2–3 sentence rationale explaining the setup and the risk to being wrong.


Step 4: Value Trap Check (mandatory before output)

Before writing any output, revisit every candidate in Steps 1 and 2:

For each: state in one sentence WHY it is near its 52-week low, and WHY you believe the low reflects a temporary dislocation rather than a structural problem.

If you cannot articulate a clean answer to both: remove the candidate.

This is the most important quality gate in the scan. A list full of genuine value traps is worse than a short list of one or two credible names.


Step 5: Output

5a. Inline Summary

Present in chat using this exact template:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ALPHA SCANNER; Week of [DATE]
Markets: US (NYSE/NASDAQ) | AU (ASX 200/300)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

MARKET CONTEXT (past 7 days)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
S&P 500: [level] [+/-X%]  |  ASX 200: [level] [+/-X%]  |  AUD/USD: [rate]
US 10Y: [yield]%  |  AU 10Y: [yield]%
[1-2 sentences on key macro drivers this week]

52-WEEK LOW CANDIDATES: US
━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Table: Ticker | Company | Price | 52W Low | % From Low | Rev Trend | FCF Margin % | Sector KPI | Score | Signal]

⭐ STANDOUT: [Ticker]: [2 sentences: why it's the most compelling US candidate]
Why it's at a low: [1 sentence]
Why it's not a trap: [1 sentence]

52-WEEK LOW CANDIDATES: AU
━━━━━━━━━━━━━━━━━━━━━━━━━━━
[Table: Ticker.AX | Company | Price (AUD) | 52W Low | % From Low | Rev Trend | FCF Margin % | Sector KPI | Score | Signal]

⭐ STANDOUT: [Ticker.AX]: [2 sentences: why it's the most compelling AU candidate]
Why it's at a low: [1 sentence]
Why it's not a trap: [1 sentence]

SECTOR OPPORTUNITIES
━━━━━━━━━━━━━━━━━━━━
Rotation play:   [Sector]: [1-line rationale and key risk]
AU structural:   [Sector]: [1-line rationale and key risk]
Macro tailwind:  [Sector]: [1-line rationale and key risk]

PRIORITY ACTION LIST
━━━━━━━━━━━━━━━━━━━━
1. [Ticker]: Quick Scan score: [X/100] | [Verdict]: [1-line rationale]
2. [Ticker.AX]: Quick Scan score: [X/100] | [Verdict]: [1-line rationale]
3. [Sector ETF/theme]: [Next step: e.g. "Run macro-risk-agent on this thesis"]

Next scan: [Following Monday's date]
Data sourced: [Today's date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

5b. Auto-Analysis Chain (Full Scan only)

Immediately after the inline summary, run Quick Scan mode (from stock-investment-analysis) on the top 1–2 priority candidates. Do not wait for user input: this is automatic.

Which candidates to run:

  • Always include the highest-scoring US candidate (score ≥ 6)
  • Include the highest-scoring AU candidate if score ≥ 6
  • Skip candidates where the value trap verdict was borderline (Category B with significant uncertainty): flag them for stock-orchestrator instead

Quick Scan delivers (per candidate):

  • Live price fetch (Google Finance or web search fallback)
  • TTM P/E and P/FCF vs. 24-month average (premium or discount %)
  • FCF yield vs. jurisdiction-appropriate 10Y government bond yield
  • RSI classification (oversold / neutral / overbought)
  • Mispricing Score (0–100) with one-line rationale
  • Verdict: Buy / Hold / Sell for 1-year and 3-year horizons
  • One sentence: "Worth a deeper look? Yes/No, because [reason]."

Format each Quick Scan result as:

⚡ AUTO-ANALYSIS CHAIN; Quick Scan Mode

🔍 QUICK SCAN #[N]: [TICKER] ([Company]) | [EXCHANGE]:[TICKER] | $[PRICE] [CCY] | [DATE]

[Metrics table: Metric | Value | vs. Benchmark]
  - TTM P/E         | [X]x  | [X]% vs. 24M avg: [DISCOUNT/PREMIUM]
  - P/FCF           | [X]x  | [X]% vs. 24M avg
  - FCF Yield       | [X]%  | vs. [X]% [jurisdiction] 10Y bond
  - RSI             | ~[X]  | [oversold/neutral/overbought classification]
  - Key growth metric| [X]%  | [context]

Mispricing Score: [X] / 100
[One-line score rationale]

  1Y Verdict: [BUY / HOLD / SELL]
  3Y Verdict: [BUY / HOLD / SELL]

Worth a deeper look? [YES/CONDITIONAL/NO]: [reason]

If a top candidate is not suitable for Quick Scan (e.g. borderline value trap, insufficient data, or requires management/ESG lens), note this inline:

"⚠️ [Ticker]: Quick Scan deferred. Recommend stock-orchestrator due to [reason]."


5c. Word Report

Build the report using python-docx (do NOT use the docx skill: write the Python script directly). Save to the user's workspace folder.

  • Filename: Alpha-Scanner-[YYYY-MM-DD].docx
  • Save to: user's workspace folder (Stock Strategy/ or equivalent)

Report structure:

SectionContents
Cover pageAlpha Scanner | Date | Markets: US + AU
Section 1: Market ContextWeekly macro summary, key index levels (S&P 500, ASX 200, AUD/USD, US 10Y, AU 10Y)
Section 2: US 52-Week Low CandidatesScored candidate table; per-candidate brief: business description, why at a low, quality metrics, value trap verdict, accumulation signals
Section 3: AU 52-Week Low CandidatesSame structure as Section 2
Section 4: Sector OpportunitiesLens A: Rotation plays (US + AU): Lens B: AU structural; Lens C: Macro tailwind
Section 5: Priority Action ListRecommended next steps per candidate with urgency
Section 6: Auto-Analysis ChainFull Quick Scan output for each candidate analysed: metrics table, mispricing score, verdicts, rationale
AppendixData sources with access dates

Styling conventions:

  • Navy section bars (hex 1F4477) with white bold text for section headers
  • Alternating row shading in all tables (light grey / white)
  • Blue header rows in tables (hex 2E75B6)
  • Arial font throughout, 10pt body, 11pt section headings
  • Cover page centred with large title, gold divider line

Principles

This is a screen with an automatic first-pass analysis. The Quick Scan gives you a mispricing score and verdict immediately, no separate prompt required. For full conviction and position sizing, run stock-investment-analysis (Standard mode) or stock-orchestrator as the next step.

Quality of reasoning > length of list. If the market genuinely doesn't offer strong near-52-week-low opportunities this week, say so and explain why. Honesty about thin weeks is more valuable than padding the list.

The value trap test is not optional. Stocks at 52-week lows are often there for good reasons. The entire value-add of this scan is the work of distinguishing dislocation from deterioration.

Both markets must be covered. US and AU are equally important. Don't let one crowd out the other.

Source everything. Every price, ratio, and sector observation needs a source and access date in the appendix.


Chaining

The Quick Scan is automatic for top candidates. For further work after the scan:

Candidate typeAuto-chainedNext manual step
Quality stock at a low (score ≥ 6)✅ Quick Scan runs automaticallystock-investment-analysis Standard: full DCF + IV range
Borderline value trap / CEO uncertainty❌ Deferredstock-orchestrator: multi-lens including management quality
Heavily macro-dependent sector play❌ Not applicablemacro-risk-agent: stress-test the thesis
Candidate already in portfolio❌ Not applicableportfolio-review: check thesis health first
Upcoming earnings within 4 weeks❌ Deferredearnings-analysis: wait for results, then act

Commit workflow: After reviewing Quick Scan results, if the user says "commit [TICKER]", extract the relevant data and run commit_analysis.py to write the analysis output directly to the Excel FUNDAMENTALS sheet. No manual handling required.


Scheduled Task Note

When invoked as a scheduled task each Monday morning:

  • No user input will be present: run Full Scan autonomously
  • Proceed directly to Step 0 without waiting
  • Run the auto-analysis chain on top candidates automatically
  • If any data source fails or is unavailable, note the gap inline and continue: a partial scan is better than no output
  • Save the report to the workspace folder with the standard filename format

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.