| name | stock-analysis |
| description | Run daily and weekly stock market analysis covering AGI buildout (data centers, semiconductors, cloud, power, cooling, networking) and defense/cyber sectors. Generates plain-English reports for everyday investors with clear buy/hold/watch recommendations, news summaries, earnings checks, and watchlist management for long-term investing and swing trades.
|
| allowed-tools | ["Read","Write","Edit","Glob","Grep","Bash(git:*)","Bash(date:*)","Bash(ls:*)","Bash(jq:*)","WebSearch","WebFetch","CronCreate","CronDelete","CronList"] |
| user-invocable | true |
Stock Analysis
Generate plain-English daily and weekly stock market reports for AGI buildout
and defense/cyber sectors. Written for an everyday investor — no jargon, clear
recommendations, and honest "what does this mean for me?" analysis. Reports
are committed to this repo as dated markdown files with structured data snapshots.
Activation Trigger
Use this skill when:
- "run stock analysis" / "daily report" / "weekly report"
- "check stocks" / "market update" / "how are my stocks"
- "update watchlist" / "add ticker" / "remove ticker"
- "schedule stock analysis" / "start monitoring"
- "intraday check" / "quick market check" / "flash update"
Context to Check
- Last daily report: Run:
ls -t reports/daily/*.md 2>/dev/null | head -1 || echo "none"
- Last weekly report: Run:
ls -t reports/weekly/*.md 2>/dev/null | head -1 || echo "none"
- Watchlist tickers: Run:
cat config/watchlist.json 2>/dev/null | head -40 || echo "no watchlist"
- Today: Run:
date '+%Y-%m-%d (%A, week %V)' 2>/dev/null || echo "unknown"
- Active schedules: Run:
echo "Use CronList to check active schedules"
Output Format
When generating a daily report:
When generating a weekly report:
Instructions
Daily Report Workflow
-
Read prior state
- Read
reports/latest/daily.md for the previous daily report
- Read the most recent file in
data/snapshots/ for prior price data
- Read
config/watchlist.json for current tickers and targets
-
Gather data via web search (batch by sector, 5-8 tickers per search)
- Market indices: S&P 500, NASDAQ, SOX (semiconductor index), DJIA
- For each sector in
config/sectors.json, search for price action and news
- Search for earnings reports/guidance for any ticker reporting this week
- Search for macro events: Fed decisions, CPI, jobs data, GDP
- Search for sector catalysts: AI contracts, chip export rules, defense budgets, cyber incidents
- See data-sources.md for specific search patterns
-
Verify financial claims
- Cross-reference earnings/revenue numbers against SEC filings via WebFetch
- Flag any unverified numbers with
[UNVERIFIED] tag
- See fundamental-analysis.md for metric definitions
-
Analyze in plain English
- Compare current prices to prior report (how much did it move?)
- Check if stocks are in buy zones or trim zones from the watchlist
- For each sector, summarize: what happened and what it means
- Identify top 3 movers and explain WHY in everyday language
- Give each stock a clear "What to Do" label: Good Buy / Hold / On Sale / Caution / Stay Away
- See technical-analysis.md for how to assess price trends
- See fundamental-analysis.md for how to assess company health
-
Write daily report to reports/daily/YYYY-MM-DD.md
-
Write data snapshot to data/snapshots/YYYY-MM-DD.json
- Structured JSON with indices, ticker prices, sector sentiment
-
Update latest by copying report to
Weekly Report Workflow
Runs on Saturdays. Includes everything in the daily workflow, plus:
- Read ALL daily reports from the past week (Mon-Fri)
- Read previous weekly report from
reports/latest/weekly.md
- Read all
data/snapshots/ files from the past 7 days
- Perform week-over-week trend analysis using snapshot data
- Write fundamental spotlight section for 2-3 companies with major events
- Write portfolio recommendation section with conviction levels
- Write upcoming week catalyst calendar
- Write to
reports/weekly/YYYY-WNN.md
- Update
reports/latest/weekly.md
- Commit with
report(weekly): YYYY-WNN comprehensive analysis
Intraday Flash Check
Lightweight check activated via /loop 30m during trading hours:
- WebSearch current prices for top-10 watchlist tickers (by conviction)
- Compare to today's daily report open prices
- Flag any moves > 2%
- Append flash update section to today's daily report
- Do NOT commit (batch at end of day)
Watchlist Management
- Add ticker: User says "add TICKER to watchlist" → prompt for sector, conviction, targets → update
config/watchlist.json → commit
- Remove ticker: Remove entry from watchlist → commit
- Update targets: Modify buy_zone/trim_zone → commit
- Change conviction: Update conviction/position fields → commit
- All watchlist changes committed separately:
chore(watchlist): add/remove/update TICKER
Setting Up Schedules
When user says "schedule stock analysis" or "start monitoring":
- Read
config/schedule.json for canonical cron expressions
- Use CronCreate for each schedule:
- Daily:
57 9 * * 1-5 (weekday mornings)
- Weekly:
23 10 * * 6 (Saturday)
- For intraday: Use CronCreate with
*/30 * * * * (user must explicitly request)
- Confirm active schedules via CronList
- Remind user that schedules auto-expire and can be re-created from
config/schedule.json
Tone & Style
This is critical. Reports are written for an everyday investor, not a Wall Street analyst.
- Use plain English. Say "the stock dropped because..." not "price action exhibited bearish divergence"
- Explain acronyms the first time: "P/E (price-to-earnings — how many years of profits you're paying for)"
- Use "What to Do" labels instead of trading signals: Good Buy, Hold, On Sale, Caution, Stay Away
- Include company names next to tickers: "NVDA (NVIDIA)" not just "NVDA"
- Explain WHY something matters, not just WHAT happened
- When recommending, be direct: "This is a good time to buy" or "Wait for a pullback"
- Don't hedge everything — give an actual opinion, then note the risks
- Keep tables readable — include the "What to Do" column, drop jargon columns like RSI/MACD
- Sector summaries should read like a friend explaining the market over coffee
Additional Resources
Consult these references as needed: