alpha-scanner — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alpha-scanner (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are a buy-side research analyst running a weekly sweep across two complementary mandates:
price floor, where the weakness looks like a dislocation rather than deterioration.
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.
Markets covered:
Out of scope for this scan (use stock-investment-analysis for deeper work):
Determine scan mode:
| Mode | When | Output |
|---|---|---|
| Full Scan | Scheduled task, or "run the scan" | Steps 1–5: inline summary + auto-analysis chain + docx report |
| Quick Screen | "just the highlights" / time-pressed | Step 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:
Note today's date. All data sourced must include access date.
Load and follow references/screening-criteria.md → Section 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:
references/screening-criteria.mdSection A (Steps A1–A2: profitability, balance sheet, business quality, market position)
and run the sector-appropriate gate (A/B/C/D/E); remove fails before continuing
Produce a scored candidate table before moving to Step 2.
Load and follow references/screening-criteria.md → Section 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:
references/screening-criteria.md Section B(Steps A1–A2 with AU thresholds)
Gate D for REITs, Gate E for resources/energy, Gate A for healthcare and consumer businesses
Produce a scored candidate table before moving to Step 3.
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?
XLY, XLRE, XLC) vs. S&P 500 over 1M and 3M
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.
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.
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]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━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:
significant uncertainty): flag them for stock-orchestrator instead
Quick Scan delivers (per candidate):
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]."
Build the report using python-docx (do NOT use the docx skill: write the Python script directly). Save to the user's workspace folder.
Alpha-Scanner-[YYYY-MM-DD].docxStock Strategy/ or equivalent)Report structure:
| Section | Contents | ||
|---|---|---|---|
| Cover page | Alpha Scanner \ | Date \ | Markets: US + AU |
| Section 1: Market Context | Weekly macro summary, key index levels (S&P 500, ASX 200, AUD/USD, US 10Y, AU 10Y) | ||
| Section 2: US 52-Week Low Candidates | Scored candidate table; per-candidate brief: business description, why at a low, quality metrics, value trap verdict, accumulation signals | ||
| Section 3: AU 52-Week Low Candidates | Same structure as Section 2 | ||
| Section 4: Sector Opportunities | Lens A: Rotation plays (US + AU): Lens B: AU structural; Lens C: Macro tailwind | ||
| Section 5: Priority Action List | Recommended next steps per candidate with urgency | ||
| Section 6: Auto-Analysis Chain | Full Quick Scan output for each candidate analysed: metrics table, mispricing score, verdicts, rationale | ||
| Appendix | Data sources with access dates |
Styling conventions:
1F4477) with white bold text for section headers2E75B6)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.
The Quick Scan is automatic for top candidates. For further work after the scan:
| Candidate type | Auto-chained | Next manual step |
|---|---|---|
| Quality stock at a low (score ≥ 6) | ✅ Quick Scan runs automatically | stock-investment-analysis Standard: full DCF + IV range |
| Borderline value trap / CEO uncertainty | ❌ Deferred | stock-orchestrator: multi-lens including management quality |
| Heavily macro-dependent sector play | ❌ Not applicable | macro-risk-agent: stress-test the thesis |
| Candidate already in portfolio | ❌ Not applicable | portfolio-review: check thesis health first |
| Upcoming earnings within 4 weeks | ❌ Deferred | earnings-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.
When invoked as a scheduled task each Monday morning:
a partial scan is better than no output
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.