india-equity-report — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited india-equity-report (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.
Generates institutional-quality Buy / Sell / Hold research reports for NSE/BSE-listed stocks, grounded entirely in live data fetched from authoritative sources. Never hallucinate financial figures.
Before writing a single word of the report, read /mnt/skills/user/india-equity-report/references/data-sources.md (or the bundled copy at references/data-sources.md) for the definitive list of approved sources and fetch URLs. Do not use any source not listed there.
BSE: if NSE unavailable).⚠️ CRITICAL: Screener.in's page often displays a stale cached price (e.g., it may show "13 Feb - close price" even when the report is run on Feb 27). Never use the price shown on the Screener.in page as the CMP. It is unreliable.
⚠️ CRITICAL: Yahoo Finance (HDFCBANK.NS etc.) shows US-session delayed quotes that can differ from the NSE close price by 10–15%. Do NOT use Yahoo Finance as a CMP source. It is structurally unreliable for Indian stocks.
#### The canonical CMP fetch method
Claude cannot execute GOOGLEFINANCE (that runs only in a live Google Sheet). Instead, use web search — Google's search result card pulls from the same Google Finance data feed and is equally reliable:
Step-by-step:
web_search: "[TICKER] NSE share price [CURRENT MONTH YEAR]" (e.g., "HDFCBANK NSE share price March 2026")web_fetch: https://www.tickertape.in/stocks/[company-slug]-[TICKER] — Tickertape shows a clearly date-stamped last NSE closing price.web_fetch: https://www.5paisa.com/stocks/[company-slug]-share-price — 5Paisa also shows confirmed NSE close with date.CMP: ₹869.05 [Source: Tickertape/NSE, 4 Mar 2026]⚠️ DO NOT write raw formulas like =GOOGLEFINANCE("NSE:HDFCBANK","price") as the CMP in the report. Always resolve these to actual fetched numbers before writing the report. The report must display real prices (e.g., ₹869.05), never spreadsheet formulas.Do not proceed to Step 2 until you have a concrete ₹ price with a date.
Use web_search and web_fetch tools sequentially. Fetch every section below. Log each fetch with the source URL so the report can cite it.
| Data needed | Primary source | Fallback |
|---|---|---|
| Current price, 52w high/low, market cap | Step 1.5 above (dedicated CMP fetch — NOT Screener.in or Yahoo Finance) | See Step 1.5 fallback chain |
| Quarterly & annual P&L, balance sheet, cash flow | Screener.in — https://www.screener.in/company/[TICKER]/consolidated/ | Tickertape.in |
| Key ratios (P/E, P/B, ROE, ROCE, D/E, EV/EBITDA) | Screener.in same page | Trendlyne.com |
| Promoter & institutional shareholding | Screener.in shareholding tab | BSE filings |
| Latest quarterly results (numbers + commentary) | BSE corporate filings: https://www.bseindia.com/stock-share-price/[COMPANY]/[TICKER]/[BSE_CODE]/ | NSE: https://www.nseindia.com/get-quotes/equity?symbol=[TICKER] |
| Annual report / investor presentation | Company IR page (search: "[COMPANY]" investor relations annual report site:[company].com) | BSE filings PDF |
| Management commentary & concall highlights | Screener.in concall transcripts tab OR web_search: "[COMPANY] Q[N] FY[YY] earnings call transcript" | Trendlyne concall |
| News (last 90 days) | web_search: "[TICKER] news 2026" — use only ET Markets, Mint, Business Standard, Hindu BusinessLine, CNBCTV18, Moneycontrol | — |
| Sector / industry data | CMIE / MOSPI / RBI reports via web_search | IBEF.org sector reports |
| Technical indicators | web_search: "[TICKER] technical analysis tradingview" then fetch | Chartink.com screener |
| Peer valuation (P/E, P/B, ROE vs sector peers) | web_search: "[COMPANY] vs peers valuation comparison [SECTOR] 2026" then fetch Trendlyne peers tab OR Tickertape comparison | Screener.in peer comparison |
| Analyst consensus target price | web_fetch: https://trendlyne.com/equity/[TICKER]/ — look for analyst target section (e.g., "38 analysts, target ₹1,154") | web_search: "[TICKER] analyst target price consensus 2026" |
| Credit ratings (if applicable) | web_search: "[COMPANY] credit rating CRISIL ICRA CARE 2026" | — |
| Regulatory / SEBI filings | https://www.sebi.gov.in/ or BSE announcements | — |
⚠️ Rule: Every number in the report must be followed by [Source: <URL or publication name, date>]. If a number cannot be sourced, write "data unavailable" — never estimate or infer.Run the analysis frameworks in references/analysis-frameworks.md.
Follow the report template in references/report-template.md exactly.
Mandatory additions to the Valuation section (v1.1):
Before saving the .docx and presenting it to the user, perform a self-audit across these dimensions:
#### 5a. Price & Formula Check
=GOOGLEFINANCE(...)#### 5b. Data Integrity Check
[Source: URL, date]#### 5c. Formatting & Structure Check
#, **, > outside intended sections)#### 5d. Docx-Specific Check
/mnt/skills/public/docx/SKILL.md before generating the .docx/mnt/user-data/outputs/ and presented via present_files toolIf any check fails, fix it before presenting the report. Do not skip this step even under time pressure — a report with raw formulas or missing data is worse than a shorter but accurate one.
[Source: URL, date] mandatory.=GOOGLEFINANCE(...) or any formula syntax in the report body — this is a spreadsheet tool, not a report element. Never use Screener.in's displayed CMP or Yahoo Finance — both are unreliable for current NSE prices. Always obtain CMP via the Step 1.5 procedure.Deliver the report as a downloadable `.docx` file using the docx skill, AND paste a markdown summary in chat.
Read /mnt/skills/public/docx/SKILL.md before generating the .docx output.
Report length: 1,500–3,000 words (excluding data tables).
Every report must include a clearly visible Price Snapshot box near the top (in the cover/snapshot section) showing the actual fetched prices:
📊 PRICE SNAPSHOT (as of [DATE])
CMP: ₹[actual price]
Prev. Close: ₹[actual price]
52W High: ₹[actual price]
52W Low: ₹[actual price]
Market Cap: ₹[actual value] Cr
Source: Google Finance / Tickertape (NSE)
Note: Prices reflect last NSE close. Verify current price on NSE/BSE before trading.⚠️ All values in this box must be real numbers fetched in Step 1.5 — never write raw spreadsheet formulas (e.g. =GOOGLEFINANCE(...)) anywhere in the report. Source must be Tickertape, Google Finance card, or 5Paisa — not Yahoo Finance.>) for: key channel checks or "Practitioner's Edge" insights, ⚠️ critical financial risks (e.g. negative OCF paradox), valuation risk warnings, and anomaly explanations (one-time orders, base effects).Use these 5 dimensions to self-assess report quality before delivering:
| Code | Dimension | Pass criteria |
|---|---|---|
| D1 | Data Sourcing | CMP from Step 1.5 (Tickertape/Google Finance, not Yahoo/Screener); all financials from Q-period filings with dates |
| D2 | Structure | Price Snapshot box ✓, Bull/Base/Bear table ✓, split Verdict ✓, peer comparison table ✓ |
| D3 | Anti-Hallucination | 100% of figures carry [Source: URL, date]; no invented consensus targets |
| D4 | Actionability | Specific ₹ entry/exit/tranche levels for both new investors and existing holders |
| D5 | Output | .docx file in /mnt/user-data/outputs/ + markdown summary in chat |
A report scoring < 5/5 on this rubric should not be delivered. Fix failing dimensions first.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.