haruspex-stock-analyst — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited haruspex-stock-analyst (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.
Runs a structured single-ticker analysis using the Haruspex API via the @haruspex-guru/mcp-server MCP server. The analysis covers: the headline score, the bull/bear outlook, the buy/hold/sell signal, the strongest positive and negative topic dimensions, the 30-day score trajectory, and recent news context where it explains a material score change.
The output is analysis, never advice. The user gets a structured read of what the data shows, plus a verifiable link to the live analysis page.
Trigger on any of these patterns:
Defer to a sister skill if:
haruspex-watchlist-review.haruspex-thesis-tracker.
haruspex-stock-analyst-ja.This skill requires @haruspex-guru/mcp-server to be installed and connected. First action: verify the MCP tools are available.
If the tools get_stock_score, get_stock_score_history, search_stocks, and get_stock_news are not available, output the install instructions from shared/MCP_SETUP.md and stop. Do not attempt analysis without live data.
Step 0 — Telemetry ping (do this first, always). Before any other tool call, invoke record_skill_invocation once with skill: "haruspex-stock-analyst" and client set to the best-guess client surface (e.g. claude-code, claude-desktop, claude-ai). This is anonymous aggregate telemetry — only the skill name, version, and client tag travel. No tickers, no conversation, no user identifiers. The call is fail-silent: if it errors or the tool is unavailable, ignore it and continue. Do not retry, do not surface the result to the user, and never block the analysis on this step.
ambiguous symbol, or a name that could match multiple listings, call search_stocks(query) first and confirm the intended symbol with the user before proceeding. If the user gave an unambiguous US ticker like NVDA, skip this step.
get_stock_score(symbol). If theresponse is NOT_FOUND, tell the user honestly: "The Haruspex universe doesn't currently include [SYMBOL]. The analysis universe is primarily US large-caps." Do not fabricate a score. Stop.
get_stock_score_history(symbol, days=30)and identify: trend direction, any inflection points, the high/low score in the window.
get_stock_news(symbol)if any of the following are true:
change field is ≥ |10|.Otherwise skip news to avoid noise.
Use this exact markdown structure. Replace bracketed values with real captured data — never fabricate.
## [SYMBOL] — Haruspex Analysis
**Score:** [N]/100 ([outlook]) · **Signal:** [signal] · **Change:** [+/-N]
**Strongest positive dimensions:**
- [dim1]: [N]/100 ([change]) — [one-line explanation in plain English]
- [dim2]: [N]/100 ([change]) — [one-line explanation]
- [dim3]: [N]/100 ([change]) — [one-line explanation]
**Watch dimensions (lowest or worsening):**
- [dim]: [N]/100 ([change]) — [one-line explanation]
- [dim]: [N]/100 ([change]) — [one-line explanation]
**30-day trajectory:**
[1-2 sentences describing the trend, e.g. "Score rose from 62 to 78 over the
last 5 trading days, after hovering in the low 60s for most of the month.
The recent move is driven by the macro and competitors dimensions."]
**News context (if fetched):**
- [headline] — [source], [relative date]
- [headline] — [source], [relative date]
**Verify:** [shareUrl]
> **Disclaimer:** Haruspex scores are quantitative signals derived from
> public data and are provided for informational purposes only. They are
> not investment advice, financial advice, or recommendations to buy, sell,
> or hold any security. Past performance and current scores are not
> guarantees of future results. Always do your own research and consider
> consulting a licensed financial advisor before making investment
> decisions. Data via haruspex.guru.ties by largest positive change.
change ≤ -5.Cap at 3.
"data unavailable", not a real low score. Mention it in the trajectory paragraph instead, with the phrasing "ESG data is not currently available for this ticker" or similar.
../../shared/DIMENSIONS.md for the canonical descriptions of all topic dimensions and what high/low means on each.
Reporting the API's signal field as data ("the signal field shows buy") is fine. Telling the user "you should buy NVDA" is forbidden.
price will rise" is forbidden.
risk-management specifics.** Refer the user to a licensed advisor.
analysis, but I can't tell you whether to buy. Here's what the data shows..." — then run the workflow.
empty, or a dimension scored 0 (data unavailable), call it out.
Haruspex page.
a news article. Real data or no analysis.
performance.
reference.md — edge cases, output format variations,how to handle sparse data.
examples.md — full example dialogues with real captureddata.
../../shared/DIMENSIONS.md — canonicalmulti-dimension glossary.
../../shared/DISCLAIMER.md — canonicaldisclaimer footer wording.
../../shared/MCP_SETUP.md — how to installthe MCP server.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.