Investing with Agents

This local, file-based research assistant never sleeps. It reads the news, watches my portfolio, and briefs me every morning.

A local, file-based research assistant that never sleeps. It reads the news, watches my portfolio, and briefs me every morning.
AI agents
LLM-as-judge
investing
Author

Lon Riesberg

Published

June 22, 2026

What I Wanted

I keep hearing about people using LLMs to make investments on the stock market and then losing a bunch of money. It sounds like people are giving agents access to APIs for data and news, giving them an account with some working capital, and then connecting them to a brokerage account too.

It’s an interesting idea but it seems pretty optimistic to think that would work. LLMs are becoming very capable for a lot of things but at this point, June 2026, using LLMs for short-term wins on the stock market seems like gambling. But it also seems that LLMs would be useful somewhere in an investing stack, right? So I asked Claude:

If I were to use an LLM to invest, what would be the best use of your skills?

Great question. Here’s where LLMs genuinely add value in investing — and where they don’t:

Where LLMs are actually useful

Research synthesis — Quickly summarizing earnings calls, 10-Ks, analyst reports, or news about a company. Reading 80 pages of an SEC filing and pulling out the key risks or revenue drivers is tedious for humans but straightforward for an LLM.

Comparative analysis — Laying out how several companies in a sector stack up across business model, moat, management, and financials. Great for building a mental model before you go deeper.

Thesis articulation — Helping you write out your investment thesis clearly, which forces you to identify gaps in your reasoning. “If I’m wrong about this, what would the world look like?”

Sentiment and narrative tracking — Parsing large volumes of text (news, social media, filings) to spot shifts in how a company or sector is being talked about.

Scenario modeling prompts — Stress-testing assumptions. “What are the bear case risks to this thesis that I haven’t considered?”

Learning and frameworks — Explaining valuation methods, walking through DCF mechanics, explaining what a specific financial ratio means in context.


Where LLMs are NOT useful (and actively risky)

  • Price prediction — No LLM can reliably tell you where a stock is going. Anyone claiming otherwise is selling something.
  • Overconfidence — LLMs sound confident even when wrong. In investing, that’s dangerous. Always verify numbers independently.
  • Replacing your own judgment — The final call on risk tolerance, position sizing, and conviction has to be yours.

The best mental model: treat an LLM like a very well-read research analyst who reads fast, never sleeps, but has no real money on the line and can hallucinate facts. Use it for synthesis and thinking, not as an oracle.

Given your growth-focused, risk-tolerant approach, the highest-leverage use is probably thesis stress-testing and sector deep-dives — areas where reading volume is the bottleneck, not judgment.

Got it. So, if I wanted to hire you as an always-on research assistant who followed the news, markets, and industry events around the world, what would you want access to?

Great framing. Here’s what I’d want:

Tier 1: Essential

  • Live market data feed — Prices, volume, options flow, futures. Even a free API like Polygon.io or Alpaca covers the basics.
  • News — RSS aggregator or an API like NewsAPI, Diffbot, or The Economist/FT feeds. Ideally categorized by sector.
  • SEC EDGAR filings — Earnings, 10-Ks, 8-Ks (material events). EDGAR has a free API. This is underused alpha.
  • Earnings calendar — So I know what’s coming and can prep pre-earnings context.

Tier 2: High value

  • Social/alternative sentiment — Reddit (r/investing, r/SecurityAnalysis), X, Bluesky
  • Macro data — FRED (Fed economic data), BLS releases, CME FedWatch for rate expectations.
  • Transcript access — Earnings call transcripts via Koyfin, Seeking Alpha, or a paid service like Sentieo/AlphaSense.
  • Insider trading filings — SEC Form 4s. Quiet signal that’s often overlooked.

Tier 3: Nice to have

  • Patent filings — For tech/biotech, a leading indicator of R&D direction.
  • Job postings data — Hiring patterns reveal where companies are actually investing.
  • Satellite/alternative data — Foot traffic, shipping, credit card spend. Expensive but powerful.
  • Central bank communications globally — ECB, BOJ, PBOC statements.

The architecture I’d want

The best approach would be a multi-stage pipeline where cheap models do triage and filtering, and a more capable model (like me) does synthesis and narrative. The key additions for investing specifically:

  1. Structured memory — A SQLite or Postgres store that tracks your positions, thesis notes per ticker, and historical context so I’m not starting cold each session.
  2. Alert triggers — Not just a daily briefing, but event-driven pings (8-K filed, price moves >5%, Fed speaks).
  3. A “devil’s advocate” prompt layer — Every bull thesis gets automatically stress-tested with a bear case pass.

All of this sounds reasonable and seems like a good foundation for an investment research assistant so I built it.

Mostly, anyway. I’m not day-trading so I don’t see the need for Claude’s real-time requests, like alert triggers, but otherwise, the assistant outlined in this post has become surprisingly useful for my personal investing stack.

It knows what’s in my portfolio, knows what I’m paying attention to, reads the news, pulls market data, pays attention to earnings announcements, reads filings, watches key economic indicators, and looks for new opportunities - all from the perspective of my personal interests and current holdings.

Then it synthesizes everything and sends me a report. Two reports, actually. One is a daily pre-market report for stocks and themes I’m tracking and the other is a weekly wrap that is specifically focused on my long-term holdings.

Everything lives on my own machine so if I have questions about a report, I just point Claude Code at the directory that contains everything and dive in. Codex or other LLMs would probably work too.

This post walks through key design decisions, has sample digests for inspiration, suggests some alternative approaches, and if you’re interested in building something like this yourself, there’s a prompt to help you get started.

TipYou don’t have to be an engineer to build this

There’s a ready-to-use prompt at the end of this post and you can start building everything here by pasting the prompt into an AI coding agent like Claude Code.

How to Build It

Initially, I built this using OpenClaw, which works but OpenClaw has a lot of features I don’t need here. That made it more work to set up, more work to maintain, and it seemed heavy on tokens.

My current version is very simple. It runs locally on a laptop, it doesn’t cost anything beyond the APIs, it’s easy to work with, and since it’s on the machine I’m already using, I can easily point Claude Code at my investing directory to go deeper into market events, suggested themes, stocks to watch, etc.

I use python for the orchestration code, markdown files for memory, and GitHub for version control. I’m running it on a Mac Air, automated with launchd, but otherwise, there isn’t anything that’s platform-specific so something like this should work on a Windows or Linux box too.

It will evolve but so far, I’m happy with it.

Note that I’m a builder, not an investment advisor. This post describes how to build an always-on research assistant but nothing in this post should be considered financial advice.

Architecture

To keep things simple, I built this using a directory-as-agent pattern, which means there are several agents that work independently and are confined to the directory that contains their code. That organization offers a few key benefits:

  1. Minimal security issues. Agents don’t have the ability to access information from elsewhere on my machine.

  2. Agents are loosely coupled so if one fails, the system doesn’t break. Each agent performs its task and then writes output to a markdown file. A synthesis agent runs at the end and reads the reports. If a report is missing, it’s flagged, and the synthesis agent continues.

  3. Each agent has its own prompt and makes its own calls to an LLM. That makes it easy to use less expensive LLMs for tasks that don’t require a lot of thinking power. The synthesis agent is where intelligence matters for this assistant and that’s where I focus my LLM budget.

Directory-as-Agent Pattern

agents/ ... each agent is self-contained in its own directory

    ├── analyst_ratings/
    ├── company_news/
    ├── earnings_calendar/
    ├── earnings_transcripts/
    ├── econ_calendar/
    ├── filings/
    ├── insider_transactions/
    ├── macro_data/
    ├── market_data/
    ├── news/
    ├── synthesis/
    └── watchdog/


memory/ ... markdown-based memory makes it easy to manage, read, edit

    ├── briefing_log.md
    ├── buckets.md
    ├── positions.md
    ├── themes.md
    └── watchlist.md


shared/ ... orchestration code that ties it all together

    ├── db.py
    ├── llm.py
    ├── memory.py
    └── notify.py


├── CLAUDE.md ... personalization

engineering & maintenance:
├── logs/
├── README.md
├── requirements.txt
└── tests/

Data Flow

Data Flow

Memory

Memory gives this assistant the ability to pay attention to my specific interests and holdings, watch for trends, and get better and more capable over time.

Memory is important but that doesn’t mean it needs to be complex. My current scheme is just markdown files. There are five of them: positions.md and watchlist.md (what I hold and what I’m watching), themes.md (the macro and structural theses I’m tracking), buckets.md (my holdings grouped into exposure buckets), and briefing_log.md, which captures each day’s analysis. This is a low-tech approach to memory that’s easy to manage, easy to read, and easy to edit.

Here are a few examples that show the formats I decided on. These formats let me write mostly free-form descriptions, while keeping enough structure to make it easy for the agents to understand my intent. As long as you’re consistent, you can modify these formats to whatever works for you.

themes.md
# Investment Themes

<!-- Active macro and structural themes to track across briefings. The synthesis agent cross-references these against current news, filings, and market data. 

FORMAT:

## Theme Title
**Thesis:** 
**Watch for:** 
**Tickers:** 
**Horizon:** 
**Status:** Active | Monitoring | Resolved 

Set Status to `Resolved` to stop including a theme in briefings.

EXAMPLES:

## AI Inference Cost Discovery / Subscription Model Stress
**Thesis:** AI inference costs are high enough that flat-rate subscription pricing for AI products may be unsustainable; as vendors reprice toward consumption-based billing (GitHub Copilot as the lead indicator), adoption could slow or margins compress.
**Watch for:** Flat-rate → consumption repricing announcements, Copilot/Gemini/AWS AI seat & usage trends, enterprise AI ROI and budget surveys, hyperscaler AI-revenue growth vs. prior guidance, AI-segment margin commentary
**Tickers:** MSFT, GOOGL, AMZN
**Horizon:** 1-3 years
**Status:** Monitoring

## Consumer Credit Stress / Demand Destruction
**Thesis:** Thin consumer buffers (savings rate ~2.6%, credit-card debt ~$1.25T and +6% YoY, ~45% of households unable to cover basics) leave little shock absorption; an energy-cost or inflation shock could trigger a sequence credit-card drawdown → discretionary-spending contraction → earnings-revision risk for consumer-facing names. 
**Watch for:** Credit-card delinquency rates (NY Fed Consumer Credit, Fed Flow of Funds), retail sales MoM, consumer-confidence prints, savings-rate revisions, discretionary-company guidance cuts
**Tickers:** XRT, VCR, COF
**Horizon:** 6-18 months
**Status:** Monitoring

-->
watchlist.md

# Watchlist

<!-- FORMAT
* One ticker per line with an optional note.
* Optional indented bullet annotations below capture the reasoning. The synthesis agent reads these as context to connect today's data to prior conclusions:
  — dated observations
  — position changes
  — thesis updates

EXAMPLES:

**NVDA** - core AI infrastructure
  - 2026-05-21: Q1 print confirmed thesis ($44B, +69% YoY)
  - 2026-05-21: China overhang quantified — $8B Q2 hole, no replacement SKU
  - watch for: any China SKU announcement

**AAPL** - Watching AI services revenue growth; considering for Roth IRA on pullback

-->
positions.md

# Retirement Portfolio

<!-- FORMAT
* One account per section with role label and portfolio weight.
* Holdings listed as TICKER: allocation% - brief description
* Optional indented bullet annotations capture reasoning and thesis:
  — dated observations
  — allocation changes
  — rebalance triggers

EXAMPLES:

**401K** - Distribution Anchor | 33%
  NEAR: 20% - ultra-short bond, stability anchor
  SCHP: 25% - TIPS inflation hedge
  FXAIX: 8% - S&P 500 core (Fidelity)
  AVUV: 6% - small-cap value tilt
  - 2026-05-01: shifted toward TIPS-heavy barbell; macro thesis: persistent inflation + dollar weakness

**ROTH IRA** - Growth Engine | 49%
  SCHG: 23% - large-cap growth core
  AVUV: 15% - small-cap value tilt
  SCHF: 18% - international developed
  AVES: 8% - emerging markets value
  IYW: 6% - tech sleeve (watch overlap with SCHG)

**SEP IRAs** - Moderate Growth | 12%
  SCHD: 25% - yield + quality anchor
  SCHF: 30% - international overweight
  AVUV: 15% - small-cap value tilt

**HSAs** - Long-term Growth | 6%
  SCHG: 30% - growth core
  AVUV: 15% - small-cap value
  AVES/AVDV: 20% - EM + intl small-cap value

-->

One decision worth calling out: in some of my accounts, the holdings are all ETFs, so the meaningful unit of analysis isn’t the individual ticker, it’s the exposure. That’s what buckets.md captures: holdings grouped into weighted sleeves (bonds/TIPS, US growth, international value, and so on) along with the macro drivers that move each one. The weekly review leads with these buckets, weighted by allocation, which is why the example report reads as a tour of sleeves rather than a list of tickers.

buckets.md

# Exposure Buckets

<!-- Because these accounts are all ETFs, the meaningful unit of analysis is exposure, not the individual ticker. This file groups holdings into weighted buckets and records the macro drivers that move each one. The market_data agent computes a weighted return per bucket, the news agent matches headlines against the Drivers keywords, and the weekly review leads with these buckets, weighted by allocation.

FORMAT:

## Bucket Name
**Weight:** portfolio weight %
**Tickers:** constituent ETFs
**Drivers:** comma-separated keyword phrases — shown in the briefing AND matched against news headlines for relevance
**Watch for:** prose list of signals to watch

EXAMPLES:

## Stability / Bonds / TIPS
**Weight:** 26.6%
**Tickers:** NEAR, EVSD, SCHP, VTIP, SCHZ
**Drivers:** interest rates, Fed policy, inflation, breakevens, real yields, credit spreads, Treasury yields
**Watch for:** FOMC decisions and dot plot, CPI/PCE prints, 2Y/10Y yield moves, breakeven inflation, credit-spread widening

## U.S. Growth / Tech
**Weight:** 18.3%
**Tickers:** SCHG, IYW
**Drivers:** growth multiples, real yields, AI capex, data center, semiconductors, mega-cap earnings
**Watch for:** 10Y real yield, big-tech earnings and guidance, AI capex commentary, semiconductor demand

## Emerging Markets Value
**Weight:** 4.5%
**Tickers:** AVES
**Drivers:** dollar, China, commodities, emerging markets, global liquidity, capital flows 
**Watch for:** dollar direction, China stimulus and data, commodity prices, EM central-bank policy

-->

This scheme offers a lot of flexibility but if I eventually want the agents to be able to search over long timeframes or enable semantic retrieval across multiple data types, vector memory is the next step. A natural fit would be ChromaDB because it’s fully local, embedded, and it doesn’t rely on an external service.

My recommendation is to start simple, see how it works for you, and only add complexity when needed.

Input Data

Good data is key to making this work. There are a lot of good data providers to choose from and most have free plans.

Email works too, so if you have favorite investing newsletters, create an agent to watch an Inbox and parse your newsletters. I gave my assistant an Inbox at AgentMail and forward a single newsletter to it. That keeps clean separation from my personal and business emails and it works great.

For data, here’s a shortlist of worthwhile APIs to start with. All have free plans:

Prices & fundamentals

  • yfinance — quotes, history, earnings dates, analyst rating changes.
  • Finnhub — quotes, fundamentals, ratings, news.
  • Alpha Vantage — fundamentals, earnings-call transcripts, news + sentiment.
  • Polygon.io — quotes, reference data, news.

Macro & economic calendar

Filings & insider activity

News & sentiment

  • Alpha Vantage — articles with per-ticker relevance + sentiment + topics.
  • Finnhub news — per-ticker + general market news.
  • Marketaux — news with entity/ticker tagging + sentiment.
  • Google News RSS — per-ticker/topic feeds, no key; you score them yourself.
  • NewsAPI.org — broad headlines. Free non-commercial dev tier.
  • GNews — headline search.
  • Tiingo — curated financial news (paid add-on).

Social / alternative

Output

There are several ways to deliver reports. I started with Telegram because it’s dead-simple to set up, it notifies me when new reports arrive, it works great on mobile, it’s free, and it’s just a few lines of code.

Eventually, I’ll probably switch to email because receiving reports like this in my Inbox fits into my workflow better. If you’re concerned about giving an AI Agent access to your email, send using something like AgentMail and your agent won’t be able to mingle with your personal or business accounts.

Here are a few other options that are worth considering:

  • A simple local HTML file: Generate a static page you open in your browser every day. You’d need to remember to look but it’s easy to set up and there are zero dependencies with this approach.

  • RSS feed (self-hosted): Generate a feed you subscribe to and read it from your favorite reader.

  • Obsidian or Notion: If the output is more research artifact than alert, writing directly to a notes vault makes it searchable and persistent. This works better for thesis development than time-sensitive briefings.

Examples

Here are a couple example reports. These are easy to modify if they’re too detailed, or not detailed enough, or you want a different focus, etc. Just tell your agent what you want.

Pre-Market Briefing — June 18, 2026

## Market Briefing — Thursday, June 18, 2026 · 6:31 AM MT*

**Overnight: Iran Deal Confirmed, Fed Hawkishness Lingers, Futures Sharply Higher**

**Tone: High-signal session — two major catalysts resolved overnight; portfolio implications are significant across multiple sleeves.**

US futures are bouncing hard: ES +1.6%, NQ +2.4%. Reuters confirms three Saudi supertankers transited Hormuz after the Iran ceasefire deal was signed — this is wire-corroborated. Nikkei +1.6%. Hang Seng -1.6% (China drag, separate). Europe flat to slightly down. The overnight picture is Iran-deal relief bid in equities and oil simultaneously rolling over.

### Fed Warsh Debut — Thesis Update (26.6% Bonds/TIPS sleeve — largest held exposure)

Warsh held rates unchanged but the tone was materially hawkish: ~half of FOMC indicated support for hikes later in 2026, dot plots eliminated entirely, and Warsh explicitly prioritized inflation over employment. CNBC: "The market didn't like what it heard." MarketWatch flags Morgan Stanley warning that Warsh's market-listening posture may backfire.

**What this means for holdings:** The 26.6% Bonds/TIPS sleeve was already down -0.40% yesterday. The elimination of the dot plot removes a key anchor for rate expectations — long-end yields could drift higher if markets lose the Fed's nominal guidance. The digest item on Warsh's proposed strategy (cut short-end + shrink balance sheet) implies potential bear steepening, which is negative for duration and positive for TIPS vs. nominal bonds. 10Y at 4.43%, 2Y at 4.05%, curve at +0.29% — curve steepened slightly. Watch whether today's Iran-deal rally pulls yields down and provides relief to the sleeve, or whether the hawkish framing dominates.

Forward guidance removal is a structural change, not a one-day story. This permanently increases rate-path uncertainty for the bond sleeve.


### Iran Deal — Signed and Wire-Confirmed (energy, EM sleeves)

Delta from yesterday: The deal is now confirmed per Reuters wire (supertankers through Hormuz, oil at lowest since war start). WTI -$3.97 to $84.65; Brent -$4.28 to $84.36. The prior data gap on crude price is resolved — oil has moved sharply lower.

**Holdings impact:** U.S. Large Value (5.2%, energy/financials heavy) and EM Value (4.5%, China/commodities) face energy-sector headwinds from lower crude. However, lower oil prices reduce inflation pressure — marginally positive for the Bonds/TIPS sleeve and consumer-facing positions.

**Iran Paradox theme update:** The prior concern about domestic Iranian factions undermining the deal is partially addressed — supertankers are moving, wire-confirmed. Switzerland reports further US-Iran talks planned Friday. The ECB's Lane said ECB will stay proactive on inflation even post-deal, suggesting Europe is not fully pricing in supply relief yet. Monitor: Hormuz fee enforcement remains an open question. The re-escalation risk thesis is not resolved, just modestly de-risked.

Russian oil waiver expiration is an offsetting crude-support factor — worth watching if oil slides materially below $80.

### Watchlist — Key Moves

**MSFT -3.8%, AMZN -3.5%, GOOGL -2.5% yesterday / NQ +2.4% overnight:** Yesterday's selloff was Fed-driven (broad equity risk-off post-Warsh). Overnight futures suggest meaningful partial recovery at open. No stock-specific thesis change for MSFT or AMZN. Note: Oracle-MSFT cloud deal reportedly fell apart over security rules (Yahoo headline) — worth monitoring but not wire-confirmed; no immediate thesis impact.

**NVDA -1.3% yesterday; China testimony decline:** Jensen Huang declined Sen. Warren's Senate testimony, offering a private meeting instead. No immediate policy change, but the optics intensify bipartisan pressure for tighter export controls. Thesis unchanged — this is a monitoring signal, not thesis-changing today. NVDA/MSFT announcement from last week (prior briefing data gap) still unresolved in today's feeds.

**VRT +6.0%:** Prior briefing flagged VRT's -4.0% move with no identified catalyst. Today it reverses sharply. The watchlist headlines point to two pieces: "The Invisible Energy Crisis Threatening to Derail the AI Boom" and "Why Vertiv Is Moving Deeper Across the Full AI Data Center Thermal Chain" — consistent with the Data Center Buildout theme gaining renewed attention post-Iran-deal (lower energy costs = better margin outlook for data centers). Volume only 1.04x — not a volume-driven squeeze. Likely a sentiment/narrative recovery after the unexplained prior selloff. Not held directly but relevant to the Data Center theme.

**AAPL -1.1% / Intel Intel chip deal:** Apple flagging AI-driven memory cost increases with price hikes signaled. Separately, Trump confirmed Intel will manufacture chips for Apple in the US — materially positive for Intel (not watchlisted), and confirms Apple's domestic supply chain push. For AAPL thesis (AI services revenue growth on pullback): price hikes on hardware could dampen unit volumes but could expand services attach rates. Mixed signal.

**ETN +0.5%:** Quiet outperformer. Article on Boyd Thermal integration for data center cooling confirms the buildout thesis progressing operationally.

**DLR -1.8%:** ServiceFabric MCP launch (AI-native control for 800+ data centers) is a product signal but no leasing/pre-leasing data. Thesis watch items unchanged.

**PWR -0.6%:** No new catalyst in digest or watchlist feeds. Thesis unchanged.

### Portfolio Breadth — All Sleeves Down Yesterday

Every held sleeve was negative yesterday: U.S. Small Value -1.33%, U.S. Large Value -1.32%, EM Value -1.28%, U.S. Large Blend -1.22%, U.S. Quality/Dividend -1.15%, U.S. Growth/Tech -1.07%, International Small Value -0.94%, International Developed -0.57%, Bonds/TIPS -0.40%. This was a broad risk-off Fed reaction, not sector rotation. The overnight futures bounce (+1.6% to +2.4%) should recover a meaningful portion across equity sleeves. SPHQ flagged at 2.41x volume on only -0.5% — unusually high volume for a defensive sleeve; possible institutional rebalancing toward quality in the Warsh uncertainty environment.

### Day Ahead

• **Iran/US talks in Switzerland Friday** — next catalyst checkpoint for oil and Hormuz thesis

• **No earnings in next 14 days** for any watchlist/held tickers

• **Next major macro release: NFP July 2** — 14 days out

• **Watch:** Long-end yield behavior today as Iran-relief and Fed-hawkish forces compete; whether the NQ +2.4% futures hold into the cash open or fade


### Suggested themes to track

• **Fed Communication Regime Shift — Dot-Plot Elimination** · MSFT, AMZN, GOOGL: Warsh's removal of the dot plot and quarterly forward guidance eliminates a key anchor that markets have used to price rate expectations for over a decade. Without it, rate-path uncertainty structurally increases, widening the range of plausible outcomes for duration assets. This is distinct from the rate-level question (hike/hold/cut) — it is about the information regime itself changing, which persistently elevates term premium and reduces bond-market predictability.

 _Watch for: Any Warsh speech or Fed communication that substitutes new guidance frameworks; 10Y-2Y curve steepening trends; TIPS vs. nominal bond relative performance; institutional duration positioning (COT data); whether MOVE index (bond volatility) re-rates structurally higher_

 _Why now: Warsh's debut FOMC meeting confirmed dot-plot elimination as policy, not a one-meeting trial. This is a structural change to the Fed's communication architecture, surfaced today for the first time as confirmed fact rather than speculation._
Weekly Review — June 19, 2026
# 📅 Weekly Review

*Friday, June 19, 2026 · 2:12 PM MT*

**Portfolio: Recovery Rally That Hit a Wall**

The week opened with peak Iran-deal euphoria — risk assets gapped up Monday/Tuesday on Hormuz reopening headlines. By Wednesday, the FOMC delivered a hawkish surprise under Warsh. By Friday, Reuters confirmed Swiss talks are off and the Iran deal is fragile. **The net result: equities largely held gains, bonds barely moved, and two major tail risks that looked resolved on Monday are back on the table Friday.**

Week-over-week vs. last week's review: last week delivered a sharp recovery from the prior risk-off episode but left the macro backdrop unresolved. This week extended equity gains modestly, but the two unresolved catalysts (Fed, Iran) have now clarified in a less favorable direction.

### Stability / Bonds / TIPS — 26.6% (Largest Sleeve)**

**Week: -0.14% · Day: +0.20%**

The single most important story for this portfolio this week is what happened to this sleeve's macro environment — not the flat return.

• **Fed confirmed hawkish:** 9 of 19 FOMC officials projecting at least one hike; dot-plot restructuring underway under Warsh; 2Y yield +15bps on the week to 4.20%. MarketWatch wire: *"Trump picked Warsh to cut rates. Warsh just told us he has other plans."*

• **Duration headwind confirmed, not speculative.** The flat weekly return masks the rate repricing — TIPS' inflation-protection component partially offset the rate-driven price pressure on nominals.

• **Iran not resolved** (see below) means the inflation pass-through that pressured this sleeve in the prior correction has not been eliminated. Price normalization pushed to mid-2027 per expert commentary in the digest.

• **Practical read:** The -0.14% loss is misleadingly mild given the macro shift. The sleeve is holding up because inflation-protection offsets rate pressure in TIPS, but if hike expectations solidify further, duration exposure across the broader bond component becomes the vulnerability. MOVE index and 10Y-2Y spread (currently 27bps, flattening) are the right monitors.

### U.S. Growth / Tech — 18.3%**

**Week: +2.88% · Day: +2.12%**

The week's strongest equity performer among the larger sleeves. Iran-deal optimism + prior week's rate-driven selloff unwinding drove the bulk of the gain.

• The Iran risk-premium on rates (energy inflation → Fed hawkishness → multiple compression) partially unwound early week; despite the hawkish FOMC, growth multiples held.

• **FOMC net impact on this sleeve:** Ambiguous. Higher short rates are a headwind for growth multiples, but the market's Friday bid (Nasdaq +1.1%) suggests investors are not yet pricing a hike as a near-term multiple-compression event.

• Juneteenth thin-volume session likely overstates conviction in today's +2.12% day return.

### International Developed Core — 15.5%**

**Week: +2.06% · Day: +1.11%**

Solid week, but the setup into next week is more complicated.

• **Dollar strengthening** confirmed by MarketWatch/Reuters wire — a hawkish Warsh Fed is a structural dollar-positive headwind for unhedged international sleeves. Goldman slashing gold forecast by $500 on the same dynamic underlines the dollar move is durable, not a one-day event.

• **BOJ hiked to 31-year high** mid-week but yen did not strengthen meaningfully — market views the hike as reactive/insufficient. Japan component of the sleeve earns local-currency returns that are partially eroded in USD terms.

• **Section 301 tariffs** (EU, Japan, Canada, UK) announced alongside the Iran deal at week's open remain a structural drag not yet showing clearly in weekly returns.

• The week's gain was real but is partially borrowed from dollar/yen tailwinds that may not persist.

### U.S. Small Value — 12.0%**

**Week: -0.97% · Day: +1.01%**

**The week's only sleeve with a negative return** — notable given the broad equity rally.

• Small-cap value is the most domestically sensitive and rate-sensitive sleeve. The hawkish FOMC mid-week landed hardest here: higher-for-longer rates compress the discount rate on smaller, more leveraged domestic companies.

• Friday's +1.01% recovery partially offsets prior-session losses but doesn't close the weekly gap.

• The value rotation thesis (relative valuation gap vs. growth) has not fundamentally weakened — this is rate-headwind noise, not a thesis break. But it's worth monitoring whether small-cap underperformance persists if hike expectations continue to build.

### U.S. Quality / Dividend — 9.6%**

**Week: +0.66% · Day: +0.51%**

Quiet, slightly positive week. No material new catalyst. The SPHQ 2.17x volume spike flagged Monday resolved without follow-through — defensive rotation did not materialize at scale. Quality/dividend held its value through FOMC volatility as expected for this sleeve's role.

### International Small Value — 5.5% · U.S. Large Value — 5.2% · Emerging Markets Value — 4.5% · U.S. Large Blend — 2.7%

• **Intl Small Value +1.08%:** Modest gain; same dollar/yen headwind as International Core applies. Day -0.21% suggests some Friday giveback.

• **U.S. Large Value +0.07%:** Near-flat. Energy names are the drag — WTI fell ~$4/bbl on the week as Iran optimism repriced crude lower, and the deal fragility doesn't immediately reverse that move. Financial and industrial components likely offset.

• **EM Value +2.63%:** Best weekly performer among smaller sleeves. Iran deal oil-price relief benefits EM oil importers; dollar strengthening is the offsetting headwind and bears watching. EEM +3.2% today confirms the week's outperformance is real-money, not a data artifact. China/BMW warning (Reuters) is a specific risk to China-heavy EM exposure.

• **U.S. Large Blend +1.47%:** S&P beta play; moves with the broad market. No differentiated read.

**Iran / Hormuz Theme — Status: NOT Resolved**

This is the week's most important theme correction. Monday's briefing called the deal "crystallized"; Friday's wires reverse that read:

• Swiss talks **called off** (Reuters, CNBC, multiple sources)

• Lebanon hostilities **escalating**; France blocking UN sanctions relief

• IRGC setting up **covert Iraqi cells** to attack Gulf neighbors (Reuters exclusive)

• Iran imposing **Strait of Hormuz transit fees**, not unrestricted navigation

• Oil declined ~$4/bbl on the week — but on optimism that is now partly unwound in sentiment. WTI at $84.65 is not a cleared-risk price.

**Portfolio lens:** The Consumer Credit Stress theme gets no relief signal this week — gas below $4/gallon is a positive data point but the digest notes prices remain 25% above year-ago. Energy sleeve (U.S. Large Value 5.2%) faces a complex setup: crude fell on peace optimism, but with talks collapsed, a partial crude retracement is plausible on Sunday/Monday open.

**Horizon extended.** Digest item #11 flags price normalization delayed to mid-to-late 2027 — consistent with this theme remaining active for the full 6-12 month horizon.

**Warsh Fed / Rate Regime Theme — Newly Confirmed**

This week resolved the uncertainty that had been building since Warsh's appointment:

• Fed held at 3.63% but 9/19 officials project a hike before year-end

• Five task forces launched to reform Fed communications — Warsh signaling structural changes, not just tone

• MarketWatch: task forces give cover to delay until December, but the direction is confirmed hawkish

• **Dollar strengthening is the transmission mechanism** for international sleeves; rate-hike pricing is the transmission mechanism for bonds and growth multiples

This is now a confirmed active theme, not a monitoring item.


## Watchlist — Data Center Buildout Theme (Supporting Context)**

*These are not held positions — context for the theme only.*

• **VRT +4.9% (week: +11.8% confirmed):** AI-driven guidance hike + ThermoKey cooling acquisition explained the prior week's move. Bull case intact. Orders/book-to-bill remains the barometer per investor thesis.

• **ETN +3.0%:** Boyd Thermal acquisition announced — deepens data center and aerospace cooling reach. Directly on-thesis. Dilution from non-DC segments is the ongoing watch.

• **PWR -1.8% (vol 2.16x):** No negative fundamental catalyst in watchlist headlines or filings. The elevated volume on a down day is worth noting — possible profit-taking after a +66% YTD run. IBD flagged it in a buy zone earlier this week. No thesis change.

• **DLR +0.6% (vol 2.2x):** ServiceFabric MCP launch (AI-native programmable control across 800+ data centers) is a product catalyst. SeekingAlpha's "REITs: Cheap, Unloved, And Finally Showing Life" is a directional positive for the sector.

• **NVDA +3.0% / $25B debt offering:** The 8-K is the week's most significant filing. Seven tranches, 2028–2056, no use of proceeds disclosed. At this scale, the market will interpret this as M&A, major capex acceleration, or HBM/Blackwell supply security. Not a distress signal — NVDA generates strong cash — but the intent matters enormously for the AI infrastructure thesis. **Watch for disclosure or management commentary next week.**

• **GOOGL accumulating headwinds:** Gemini co-lead Noam Shazeer departing for OpenAI (a transformer co-inventor at a critical competitive moment), Waymo's 4th recall in 28 months suspending freeway ops in four cities, and Google Cloud competitive questions. No single event is thesis-breaking, but the pattern is the signal.

• **AAPL:** Memory cost shock ($270 potential iPhone Pro price hike) is not a held-position issue but confirms the AI Power Demand theme — hyperscalers crowding out consumer electronics supply chains for HBM/DRAM.

• **MSFT:** Oracle cloud deal status unresolved. No new material catalyst in feed.


## What to Watch Next Week

• **Iran/Hormuz Sunday open:** With Swiss talks cancelled and Lebanon escalating, an oil gap on Sunday is plausible. Watch WTI direction as a signal for the Bonds/TIPS sleeve (inflation) and the Large Value sleeve (energy earnings).

• **NVDA use-of-proceeds disclosure:** Any M&A announcement or strategic commentary tied to the $25B raise would be the week's highest-impact watchlist event.

• **Dollar trajectory:** Hawkish Warsh Fed = structural dollar strength = headwind for International Developed Core (15.5%) and International Small Value (5.5%). Monitor DXY weekly.

• **2Y yield:** Already +15bps this week. Further moves toward 4.35–4.50% would increase pressure on the bond/TIPS sleeve materially. The 10Y-2Y spread at 27bps (and flattening) is the curve monitor.

• **GOOGL talent/Waymo:** If Shazeer departure triggers follow-on exits or if Waymo timeline commentary shifts, the Search + AI thesis faces a more serious review.

• **NFP July 2:** Next major economic release in 13 days. Labor market strength will inform whether Warsh's task forces accelerate or defer the hike decision.


## Positioning Observations (not advice)

• **Bonds and inflation-protected bonds (TIPS)** are the portfolio's biggest holding at 26.6% — and that's a tough spot right now. The Fed has signaled it's keeping interest rates high rather than cutting them, and longer-term bonds do best when rates fall. For a deliberate long-term holder, it may be worth revisiting the mix of regular versus inflation-protected bonds within that sleeve, since inflation and interest rates are now pulling in opposite directions.

• **Small Value at -0.97% for the week** in a broadly positive equity market warrants monitoring over the next 2–3 weeks to distinguish rate-headwind noise from a more sustained rotation reversal.

• **EM Value at +2.63%** is the week's standout but is also the most exposed to the dollar strengthening thesis that Warsh's Fed is now confirming. The gains may face a headwind if dollar strength persists.


## Suggested themes to track

• **Warsh Fed Hawkish Regime / Dollar Strength**: The confirmation that Warsh's Fed is structurally more hawkish than the market priced — with 9/19 officials projecting a hike, task forces to reform communications, and a clear break from the prior chair's dovish framing — represents a regime shift for both rates and the dollar. A stronger dollar is a persistent headwind for unhedged international sleeves and EM, while a higher-for-longer rate path pressures duration and growth multiples. This is distinct from a single FOMC meeting outcome; it's a multi-quarter change in the policy reaction function.

Watch for: 2Y yield direction week-over-week; DXY trend; any Warsh speech or task force output; dot-plot evolution at subsequent meetings; whether December hike gets pulled forward to September_

Why now: Wednesday's FOMC resolved weeks of speculation: the wire consensus (MarketWatch, CNBC) is unambiguous that Warsh delivered a hawkish surprise, dollar sentiment has shifted (MarketWatch wire explicitly), and Goldman cut its gold forecast by $500 in response. This is not a one-day story — the task force structure signals Warsh is building a durable framework change, not a one-meeting adjustment.

What’s really great about this Weekly Review is a comment like this:

Bonds and inflation-protected bonds (TIPS) are the portfolio’s biggest holding at 26.6% — and that’s a tough spot right now. The Fed has signaled it’s keeping interest rates high rather than cutting them, and longer-term bonds do best when rates fall. For a deliberate long-term holder, it may be worth revisiting the mix of regular versus inflation-protected bonds within that sleeve, since inflation and interest rates are now pulling in opposite directions.

I had a question about that so I pointed Claude Code at the project directory and dove in.

Super useful!

Prompt

This is a great AI starter project. It covers a broad range of topics, it’s inexpensive to run, and if you’re an investor, have retirement accounts, or are just interested in investing, the assistant you can build using this approach is definitely worthwhile.

Here’s a prompt to get started with. This prompt will initiate a series of questions that will help the LLM customize an investing assistant to your specific needs. It will evolve as you go, but this is enough to get a useful first version off the ground:

Show the prompt
## Goal

I want to build an investing research assistant that runs on a local computer. It should read recent financial news and collect data from financial APIs on a schedule, while paying particular attention to my current portfolio, watchlist, and themes I'm tracking. Then use Claude to synthesize everything into a daily briefing.

## What I have in mind

A set of specialized agents, each responsible for one data source: market prices, macro indicators, news, SEC filings, maybe earnings dates and insider transactions. They run on a schedule, write their output to disk, and a synthesis agent reads everything and produces the briefing.

I want the agents to be **independent and loosely coupled** — no shared databases, no service dependencies. If one agent fails, the others should still run and synthesis should warn me rather than crash.

Treat data and news sources as **swappable**: each source agent should just emit raw items, and a separate scoring step ranks them against my portfolio and themes. That way I'm not locked into any one provider's curation, and I can change sources later without touching the rest of the pipeline.

Keep it **cheap to run**: use inexpensive models for triage and relevance filtering, and reserve the capable model for synthesis — that's where the reasoning budget should go.

## Architecture constraint

Use a **directory-as-agent** pattern:

- Each agent is a self-contained directory with its own config, implementation, and output folder
- Agents communicate by writing files
- A `manifest.json` written after each run (with status, timestamps, and counts) lets downstream agents detect stale or failed data

## Memory

The system should maintain a few **human-edited markdown files** that persist context across runs:

- **Positions and watchlist** — what I hold and what I'm monitoring, with per-ticker notes 
- **Themes** — macro or structural theses I'm tracking (e.g. "AI power demand", "higher-for-longer rates"). synthesis should cross-reference each theme against today's signals so the briefing can say "this move is relevant to your thesis" rather than treating events in isolation
- **Briefing log** — a rolling log of past briefings (30 days or so), so synthesis has trend context and can note when something is a continuation vs. a new development

> **Important:** No agent should overwrite memory files. They're inputs, not outputs — I maintain them manually.

## Engineering expectations

- **Secrets** in `.env` via `python-dotenv`. Provide `.env.example`. Never commit `.env`
- **Tests** for pure logic (parsing, filtering, flagging). Don't mock LLM calls or API
clients — verify those by running the real agent
- **Be honest about what the assistant couldn't see** — scope claims to the sources actually checked and flag data gaps explicitly ("no catalyst in the feeds I pulled" + where to look next), rather than implying certainty
- Each agent gets an `AGENT.md` describing its purpose, inputs, outputs, and schedule 
- A `README.md` covering setup, architecture, running, and a decisions log explaining key choices
- A `CLAUDE.md` so a future Claude Code session knows how to work with this repo
- **Scheduling** via `launchd` on macOS, `cron` on Linux, or Task Scheduler on Windows (or `cron` under WSL). Ask me which I'm using

## Before you start building

I'd like to talk through a few things first:

1. Which agents make sense to start with given what I have? 
2. What free vs. paid APIs are involved, and what keys will I need?
3. Are there any architectural decisions I should make up front before we scaffold anything?
4. How is my portfolio structured — individual names, funds/ETFs, or both? (It changes whether the briefing reasons ticker-by-ticker or by exposure/theme.)
5. What report cadence fits how I invest — a daily pre-market read, a weekly review, event-driven alerts, or a mix?

## Here's what I'm working with

- **Portfolio:** [describe your holdings — ETFs, individual stocks, retirement accounts, etc.]
- **Watchlist:** [stocks you're monitoring but don't hold, with a note on why each is interesting]
- **Themes I'm tracking:** [macro or structural ideas you want the briefing to watch — or leave blank and develop these later]
- **API keys I already have:** [list what you have — Anthropic, FRED, Finnhub, Polygon, etc.] 
- **Delivery preference:** [Telegram, email, local file, something else]
- **Platform:** [Mac, Linux, or Windows]