.claude/skills/deepdive/SKILL.md
Deep-dive entity research and note creation pipeline. Use for any entity the user wants a comprehensive vault note on — companies, people, concepts, countries, products. Triggers on /deepdive ENTITY or when the user names an entity and wants thorough research + vault note creation/expansion. The skill adds SEC filing protocols, full chart sets, stale-reference scanning, and entity-type branching that CLAUDE.md's general vault instructions don't sequence.
npx skillsauth add kleinster2/financial-charts deepdiveInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create or expand a comprehensive vault note. Usage: /deepdive ENTITY NAME
CLAUDE.md already defines note structure (Synopsis, Evolution, Core thesis, etc.), formatting rules, and vault conventions. This skill does NOT repeat those — it adds the research protocols, data integration steps, and quality gates that CLAUDE.md doesn't sequence.
Most entities already have some vault presence. The default path is expansion, not creation.
Hard gate — check for existing notes and aliases:
python scripts/check_before_create.py "ENTITY NAME"
Vault search — find all mentions across the investing vault:
"/c/Users/klein/AppData/Local/Programs/Obsidian/Obsidian.com" vault=investing search query="ENTITY NAME"
Also search by ticker, product names, key people — anything that might surface references the entity name misses.
Geopolitics vault search — if the entity touches defense, trade, sanctions, diplomacy, energy security, or industrial policy:
"/c/Users/klein/AppData/Local/Programs/Obsidian/Obsidian.com" vault=geopolitics search query="ENTITY NAME"
Note specific counterpart notes for cross-vault linking later.
Branch on what you find:
investing/Actors/Block.md for actor notes), then expand. Tell the user what's there and what's missing.SEC filings — always pull the latest 10-K and most recent 10-Q:
python scripts/parse_sec_filing.py TICKER --type 10-K --save /tmp/TICKER-10k.txt
python scripts/parse_sec_filing.py TICKER --type 10-Q --save /tmp/TICKER-10q.txt
These are primary sources. Extract revenue segments, risk factors, insider transactions, guidance language.
Database setup — check if ticker exists, add if missing, ensure fundamentals are loaded:
python scripts/add_ticker.py TICKER
python fetch_fundamentals.py TICKER
Price freshness — update before generating charts:
python update_market_data.py --lookback 10 --assets stocks
Price verification — before writing any stock price into the note, verify against actual DB closing prices. Never trust secondary sources for price data.
investing/Concepts/, not Actors/CLAUDE.md defines note structure, formatting, and quality standards in detail. Follow those. Key reminders the skill adds:
[[Firm]] analyst Name (Feb 13): *"quote text"*Generate the full chart set — not just a price chart. Each chart reveals something different.
Peer comparison price chart (required) — always compare to 2-3 peers, never solo:
/api/chart/lw?tickers=TICKER,PEER1,PEER2&start=...&normalize=true&primary=TICKER
Save as ticker-vs-peer1-price-chart.png. Choose peers that illuminate the investment question.
Fundamentals chart (required if fundamentals are in DB):
/api/chart/image?ticker=TICKER&metrics=revenue,net_income&start=...
Sankey diagram (required if income statement data exists in DB):
/api/chart/sankey?ticker=TICKER
Save as ticker-sankey.png. Caption format: fiscal year, revenue → net income, net margin, major cost buckets as % of revenue.
Waterfall chart (if income statement data exists):
/api/chart/waterfall?ticker=TICKER
Save as ticker-waterfall.png
Verify every chart with wc -c — files under 1KB are errors, not PNGs. Embed each in the note with an italic interpretation caption and a corresponding data table.
Skip charts entirely for private companies and concepts. For concepts, harvest source charts (IEA forecasts, industry reports) if found during research.
Compliance check:
python scripts/check_note_compliance.py investing/TYPE/ENTITY.md
Create stubs for every dead-linked entity. Run check_before_create.py for each before creating — don't create stubs for entities that already have notes. Parallelize with sub-agents.
Stale reference scan — search the vault for other notes that mention this entity:
"/c/Users/klein/AppData/Local/Programs/Obsidian/Obsidian.com" vault=investing search query="ENTITY NAME"
Check if any of those notes contain stale data (old valuations, outdated revenue figures, wrong status). If you find stale references, update them. This is vault maintenance — data consistency across the entire vault matters.
date +%Y-%m-%dinvesting/Daily/YYYY-MM-DD.md):
## Notes created/expanded: every note created or expanded, with brief description## Edit log: every file touched#daily tag if it doesn't existdevelopment
Subscribe to change notifications on a Google Drive file or folder.
development
Export Google Contacts directory to a Google Sheets spreadsheet.
development
Share a Google Drive folder and all its contents with a list of collaborators.
development
Share Google Drive files with all attendees of a Google Calendar event.