<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Lon Riesberg</title>
<link>https://lonriesberg.com/writing.html</link>
<atom:link href="https://lonriesberg.com/writing.xml" rel="self" type="application/rss+xml"/>
<description></description>
<generator>quarto-1.9.37</generator>
<lastBuildDate>Mon, 22 Jun 2026 06:00:00 GMT</lastBuildDate>
<item>
  <title>Investing with Agents</title>
  <dc:creator>Lon Riesberg</dc:creator>
  <link>https://lonriesberg.com/posts/investing-with-agents/</link>
  <description><![CDATA[ 





<section id="what-i-wanted" class="level2">
<h2 class="anchored" data-anchor-id="what-i-wanted">What I Wanted</h2>
<p>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.</p>
<p>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 <em>somewhere</em> in an investing stack, right? So I asked Claude:</p>
<div class="conversation">
<div class="user-turn">
<p>If I were to use an LLM to invest, what would be the best use of your skills?</p>
</div>
<div class="ai-turn">
<p>Great question. Here’s where LLMs genuinely add value in investing — and where they don’t:</p>
<p><strong>Where LLMs are actually useful</strong></p>
<p><strong>Research synthesis</strong> — 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.</p>
<p><strong>Comparative analysis</strong> — 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.</p>
<p><strong>Thesis articulation</strong> — 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?”</p>
<p><strong>Sentiment and narrative tracking</strong> — Parsing large volumes of text (news, social media, filings) to spot shifts in how a company or sector is being talked about.</p>
<p><strong>Scenario modeling prompts</strong> — Stress-testing assumptions. “What are the bear case risks to this thesis that I haven’t considered?”</p>
<p><strong>Learning and frameworks</strong> — Explaining valuation methods, walking through DCF mechanics, explaining what a specific financial ratio means in context.</p>
<hr>
<p><strong>Where LLMs are NOT useful (and actively risky)</strong></p>
<ul>
<li><strong>Price prediction</strong> — No LLM can reliably tell you where a stock is going. Anyone claiming otherwise is selling something.</li>
<li><strong>Overconfidence</strong> — LLMs sound confident even when wrong. In investing, that’s dangerous. Always verify numbers independently.</li>
<li><strong>Replacing your own judgment</strong> — The final call on risk tolerance, position sizing, and conviction has to be yours.</li>
</ul>
<p><strong>The best mental model:</strong> 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.</p>
<p>Given your growth-focused, risk-tolerant approach, the highest-leverage use is probably <strong>thesis stress-testing and sector deep-dives</strong> — areas where reading volume is the bottleneck, not judgment.</p>
</div>
<div class="user-turn">
<p>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?</p>
</div>
<div class="ai-turn">
<p>Great framing. Here’s what I’d want:</p>
<p><strong>Tier 1: Essential</strong></p>
<ul>
<li><strong>Live market data feed</strong> — Prices, volume, options flow, futures. Even a free API like Polygon.io or Alpaca covers the basics.</li>
<li><strong>News</strong> — RSS aggregator or an API like NewsAPI, Diffbot, or The Economist/FT feeds. Ideally categorized by sector.</li>
<li><strong>SEC EDGAR filings</strong> — Earnings, 10-Ks, 8-Ks (material events). EDGAR has a free API. This is underused alpha.</li>
<li><strong>Earnings calendar</strong> — So I know what’s coming and can prep pre-earnings context.</li>
</ul>
<p><strong>Tier 2: High value</strong></p>
<ul>
<li><strong>Social/alternative sentiment</strong> — Reddit (r/investing, r/SecurityAnalysis), X, Bluesky</li>
<li><strong>Macro data</strong> — FRED (Fed economic data), BLS releases, CME FedWatch for rate expectations.</li>
<li><strong>Transcript access</strong> — Earnings call transcripts via Koyfin, Seeking Alpha, or a paid service like Sentieo/AlphaSense.</li>
<li><strong>Insider trading filings</strong> — SEC Form 4s. Quiet signal that’s often overlooked.</li>
</ul>
<p><strong>Tier 3: Nice to have</strong></p>
<ul>
<li><strong>Patent filings</strong> — For tech/biotech, a leading indicator of R&amp;D direction.</li>
<li><strong>Job postings data</strong> — Hiring patterns reveal where companies are actually investing.</li>
<li><strong>Satellite/alternative data</strong> — Foot traffic, shipping, credit card spend. Expensive but powerful.</li>
<li><strong>Central bank communications globally</strong> — ECB, BOJ, PBOC statements.</li>
</ul>
<hr>
<p><strong>The architecture I’d want</strong></p>
<p>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:</p>
<ol type="1">
<li><strong>Structured memory</strong> — A SQLite or Postgres store that tracks your positions, thesis notes per ticker, and historical context so I’m not starting cold each session.</li>
<li><strong>Alert triggers</strong> — Not just a daily briefing, but event-driven pings (8-K filed, price moves &gt;5%, Fed speaks).</li>
<li><strong>A “devil’s advocate” prompt layer</strong> — Every bull thesis gets automatically stress-tested with a bear case pass.</li>
</ol>
</div>
</div>
<p>All of this sounds reasonable and seems like a good foundation for an investment research assistant so I built it.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>You don’t have to be an engineer to build this
</div>
</div>
<div class="callout-body-container callout-body">
<p>There’s a <a href="../../posts/investing-with-agents/#prompt">ready-to-use prompt</a> at the end of this post and you can start building everything here by pasting the prompt into an AI coding agent like <a href="https://www.anthropic.com/claude-code">Claude Code</a>.</p>
</div>
</div>
</section>
<section id="how-to-build-it" class="level2">
<h2 class="anchored" data-anchor-id="how-to-build-it">How to Build It</h2>
<p>Initially, I built this using <a href="https://openclaw.ai/">OpenClaw</a>, 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.</p>
<p>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.</p>
<p>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.</p>
<p>It will evolve but so far, I’m happy with it.</p>
<p>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.</p>
<section id="architecture" class="level3">
<h3 class="anchored" data-anchor-id="architecture">Architecture</h3>
<p>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:</p>
<ol type="1">
<li><p>Minimal security issues. Agents don’t have the ability to access information from elsewhere on my machine.</p></li>
<li><p>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.</p></li>
<li><p>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.</p></li>
</ol>
<details class="code-fold wrap-code">
<summary>
Directory-as-Agent Pattern
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode default code-with-copy"><code class="sourceCode default"><span id="cb1-1"></span>
<span id="cb1-2">agents/ ... each agent is self-contained in its own directory</span>
<span id="cb1-3"></span>
<span id="cb1-4">    ├── analyst_ratings/</span>
<span id="cb1-5">    ├── company_news/</span>
<span id="cb1-6">    ├── earnings_calendar/</span>
<span id="cb1-7">    ├── earnings_transcripts/</span>
<span id="cb1-8">    ├── econ_calendar/</span>
<span id="cb1-9">    ├── filings/</span>
<span id="cb1-10">    ├── insider_transactions/</span>
<span id="cb1-11">    ├── macro_data/</span>
<span id="cb1-12">    ├── market_data/</span>
<span id="cb1-13">    ├── news/</span>
<span id="cb1-14">    ├── synthesis/</span>
<span id="cb1-15">    └── watchdog/</span>
<span id="cb1-16"></span>
<span id="cb1-17"></span>
<span id="cb1-18">memory/ ... markdown-based memory makes it easy to manage, read, edit</span>
<span id="cb1-19"></span>
<span id="cb1-20">    ├── briefing_log.md</span>
<span id="cb1-21">    ├── buckets.md</span>
<span id="cb1-22">    ├── positions.md</span>
<span id="cb1-23">    ├── themes.md</span>
<span id="cb1-24">    └── watchlist.md</span>
<span id="cb1-25"></span>
<span id="cb1-26"></span>
<span id="cb1-27">shared/ ... orchestration code that ties it all together</span>
<span id="cb1-28"></span>
<span id="cb1-29">    ├── db.py</span>
<span id="cb1-30">    ├── llm.py</span>
<span id="cb1-31">    ├── memory.py</span>
<span id="cb1-32">    └── notify.py</span>
<span id="cb1-33"></span>
<span id="cb1-34"></span>
<span id="cb1-35">├── CLAUDE.md ... personalization</span>
<span id="cb1-36"></span>
<span id="cb1-37">engineering &amp; maintenance:</span>
<span id="cb1-38">├── logs/</span>
<span id="cb1-39">├── README.md</span>
<span id="cb1-40">├── requirements.txt</span>
<span id="cb1-41">└── tests/</span></code></pre></div></div>
</details>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><a href="research_agent_flow.png" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Data Flow"><img src="https://lonriesberg.com/posts/investing-with-agents/research_agent_flow.png" class="img-fluid figure-img" alt="Data Flow"></a></p>
<figcaption>Data Flow</figcaption>
</figure>
</div>
</section>
<section id="memory" class="level3">
<h3 class="anchored" data-anchor-id="memory">Memory</h3>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<details class="code-fold wrap-code">
<summary>
themes.md
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb2-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;"># Investment Themes</span></span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;!-- Active macro and structural themes to track across briefings. The synthesis agent cross-references these against current news, filings, and market data. </span></span>
<span id="cb2-4"></span>
<span id="cb2-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">FORMAT:</span></span>
<span id="cb2-6"></span>
<span id="cb2-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## Theme Title</span></span>
<span id="cb2-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Thesis:** </span></span>
<span id="cb2-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Watch for:** </span></span>
<span id="cb2-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** </span></span>
<span id="cb2-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Horizon:** </span></span>
<span id="cb2-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Status:** Active | Monitoring | Resolved </span></span>
<span id="cb2-13"></span>
<span id="cb2-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">Set Status to `Resolved` to stop including a theme in briefings.</span></span>
<span id="cb2-15"></span>
<span id="cb2-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">EXAMPLES:</span></span>
<span id="cb2-17"></span>
<span id="cb2-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## AI Inference Cost Discovery / Subscription Model Stress</span></span>
<span id="cb2-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**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.</span></span>
<span id="cb2-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Watch for:** Flat-rate → consumption repricing announcements, Copilot/Gemini/AWS AI seat &amp; usage trends, enterprise AI ROI and budget surveys, hyperscaler AI-revenue growth vs. prior guidance, AI-segment margin commentary</span></span>
<span id="cb2-21"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** MSFT, GOOGL, AMZN</span></span>
<span id="cb2-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Horizon:** 1-3 years</span></span>
<span id="cb2-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Status:** Monitoring</span></span>
<span id="cb2-24"></span>
<span id="cb2-25"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## Consumer Credit Stress / Demand Destruction</span></span>
<span id="cb2-26"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**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. </span></span>
<span id="cb2-27"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**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</span></span>
<span id="cb2-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** XRT, VCR, COF</span></span>
<span id="cb2-29"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Horizon:** 6-18 months</span></span>
<span id="cb2-30"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Status:** Monitoring</span></span>
<span id="cb2-31"></span>
<span id="cb2-32"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">--&gt;</span></span>
<span id="cb2-33"></span></code></pre></div></div>
</details>
<details class="code-fold wrap-code">
<summary>
watchlist.md
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb3-1"></span>
<span id="cb3-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;"># Watchlist</span></span>
<span id="cb3-3"></span>
<span id="cb3-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;!-- FORMAT</span></span>
<span id="cb3-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">* One ticker per line with an optional note.</span></span>
<span id="cb3-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">* Optional indented bullet annotations below capture the reasoning. The synthesis agent reads these as context to connect today's data to prior conclusions:</span></span>
<span id="cb3-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  — dated observations</span></span>
<span id="cb3-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  — position changes</span></span>
<span id="cb3-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  — thesis updates</span></span>
<span id="cb3-10"></span>
<span id="cb3-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">EXAMPLES:</span></span>
<span id="cb3-12"></span>
<span id="cb3-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**NVDA** - core AI infrastructure</span></span>
<span id="cb3-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  - 2026-05-21: Q1 print confirmed thesis ($44B, +69% YoY)</span></span>
<span id="cb3-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  - 2026-05-21: China overhang quantified — $8B Q2 hole, no replacement SKU</span></span>
<span id="cb3-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  - watch for: any China SKU announcement</span></span>
<span id="cb3-17"></span>
<span id="cb3-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**AAPL** - Watching AI services revenue growth; considering for Roth IRA on pullback</span></span>
<span id="cb3-19"></span>
<span id="cb3-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">--&gt;</span></span></code></pre></div></div>
</details>
<details class="code-fold wrap-code">
<summary>
positions.md
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb4-1"></span>
<span id="cb4-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;"># Retirement Portfolio</span></span>
<span id="cb4-3"></span>
<span id="cb4-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;!-- FORMAT</span></span>
<span id="cb4-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">* One account per section with role label and portfolio weight.</span></span>
<span id="cb4-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">* Holdings listed as TICKER: allocation% - brief description</span></span>
<span id="cb4-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">* Optional indented bullet annotations capture reasoning and thesis:</span></span>
<span id="cb4-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  — dated observations</span></span>
<span id="cb4-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  — allocation changes</span></span>
<span id="cb4-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  — rebalance triggers</span></span>
<span id="cb4-11"></span>
<span id="cb4-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">EXAMPLES:</span></span>
<span id="cb4-13"></span>
<span id="cb4-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**401K** - Distribution Anchor | 33%</span></span>
<span id="cb4-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  NEAR: 20% - ultra-short bond, stability anchor</span></span>
<span id="cb4-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  SCHP: 25% - TIPS inflation hedge</span></span>
<span id="cb4-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  FXAIX: 8% - S&amp;P 500 core (Fidelity)</span></span>
<span id="cb4-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  AVUV: 6% - small-cap value tilt</span></span>
<span id="cb4-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  - 2026-05-01: shifted toward TIPS-heavy barbell; macro thesis: persistent inflation + dollar weakness</span></span>
<span id="cb4-20"></span>
<span id="cb4-21"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**ROTH IRA** - Growth Engine | 49%</span></span>
<span id="cb4-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  SCHG: 23% - large-cap growth core</span></span>
<span id="cb4-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  AVUV: 15% - small-cap value tilt</span></span>
<span id="cb4-24"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  SCHF: 18% - international developed</span></span>
<span id="cb4-25"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  AVES: 8% - emerging markets value</span></span>
<span id="cb4-26"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  IYW: 6% - tech sleeve (watch overlap with SCHG)</span></span>
<span id="cb4-27"></span>
<span id="cb4-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**SEP IRAs** - Moderate Growth | 12%</span></span>
<span id="cb4-29"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  SCHD: 25% - yield + quality anchor</span></span>
<span id="cb4-30"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  SCHF: 30% - international overweight</span></span>
<span id="cb4-31"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  AVUV: 15% - small-cap value tilt</span></span>
<span id="cb4-32"></span>
<span id="cb4-33"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**HSAs** - Long-term Growth | 6%</span></span>
<span id="cb4-34"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  SCHG: 30% - growth core</span></span>
<span id="cb4-35"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  AVUV: 15% - small-cap value</span></span>
<span id="cb4-36"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">  AVES/AVDV: 20% - EM + intl small-cap value</span></span>
<span id="cb4-37"></span>
<span id="cb4-38"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">--&gt;</span></span></code></pre></div></div>
</details>
<p>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 <em>exposure</em>. 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.</p>
<details class="code-fold wrap-code">
<summary>
buckets.md
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb5-1"></span>
<span id="cb5-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;"># Exposure Buckets</span></span>
<span id="cb5-3"></span>
<span id="cb5-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;!-- 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.</span></span>
<span id="cb5-5"></span>
<span id="cb5-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">FORMAT:</span></span>
<span id="cb5-7"></span>
<span id="cb5-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## Bucket Name</span></span>
<span id="cb5-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Weight:** portfolio weight %</span></span>
<span id="cb5-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** constituent ETFs</span></span>
<span id="cb5-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Drivers:** comma-separated keyword phrases — shown in the briefing AND matched against news headlines for relevance</span></span>
<span id="cb5-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Watch for:** prose list of signals to watch</span></span>
<span id="cb5-13"></span>
<span id="cb5-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">EXAMPLES:</span></span>
<span id="cb5-15"></span>
<span id="cb5-16"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## Stability / Bonds / TIPS</span></span>
<span id="cb5-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Weight:** 26.6%</span></span>
<span id="cb5-18"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** NEAR, EVSD, SCHP, VTIP, SCHZ</span></span>
<span id="cb5-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Drivers:** interest rates, Fed policy, inflation, breakevens, real yields, credit spreads, Treasury yields</span></span>
<span id="cb5-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Watch for:** FOMC decisions and dot plot, CPI/PCE prints, 2Y/10Y yield moves, breakeven inflation, credit-spread widening</span></span>
<span id="cb5-21"></span>
<span id="cb5-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## U.S. Growth / Tech</span></span>
<span id="cb5-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Weight:** 18.3%</span></span>
<span id="cb5-24"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** SCHG, IYW</span></span>
<span id="cb5-25"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Drivers:** growth multiples, real yields, AI capex, data center, semiconductors, mega-cap earnings</span></span>
<span id="cb5-26"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Watch for:** 10Y real yield, big-tech earnings and guidance, AI capex commentary, semiconductor demand</span></span>
<span id="cb5-27"></span>
<span id="cb5-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">## Emerging Markets Value</span></span>
<span id="cb5-29"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Weight:** 4.5%</span></span>
<span id="cb5-30"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Tickers:** AVES</span></span>
<span id="cb5-31"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Drivers:** dollar, China, commodities, emerging markets, global liquidity, capital flows </span></span>
<span id="cb5-32"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">**Watch for:** dollar direction, China stimulus and data, commodity prices, EM central-bank policy</span></span>
<span id="cb5-33"></span>
<span id="cb5-34"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">--&gt;</span></span></code></pre></div></div>
</details>
<p>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 <a href="https://docs.trychroma.com/docs/overview/getting-started">ChromaDB</a> because it’s fully local, embedded, and it doesn’t rely on an external service.</p>
<p>My recommendation is to start simple, see how it works for you, and only add complexity when needed.</p>
</section>
<section id="input-data" class="level3">
<h3 class="anchored" data-anchor-id="input-data">Input Data</h3>
<p>Good data is key to making this work. There are a lot of good data providers to choose from and most have free plans.</p>
<p>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 <a href="https://www.agentmail.to/">AgentMail</a> and forward a single newsletter to it. That keeps clean separation from my personal and business emails and it works great.</p>
<p>For data, here’s a shortlist of worthwhile APIs to start with. All have free plans:</p>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-2-contents" aria-controls="callout-2" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Data sources to start from
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-2" class="callout-2-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<p><strong>Prices &amp; fundamentals</strong></p>
<ul>
<li><a href="https://github.com/ranaroussi/yfinance">yfinance</a> — quotes, history, earnings dates, analyst rating changes.</li>
<li><a href="https://finnhub.io/docs/api">Finnhub</a> — quotes, fundamentals, ratings, news.</li>
<li><a href="https://www.alphavantage.co/documentation/">Alpha Vantage</a> — fundamentals, earnings-call transcripts, news + sentiment.</li>
<li><a href="https://polygon.io/">Polygon.io</a> — quotes, reference data, news.</li>
</ul>
<p><strong>Macro &amp; economic calendar</strong></p>
<ul>
<li><a href="https://fred.stlouisfed.org/docs/api/fred/">FRED</a> — macro series + scheduled release dates.</li>
<li><a href="https://www.bls.gov/developers/">BLS</a> — CPI/jobs data + schedule.</li>
<li><a href="https://fiscaldata.treasury.gov/api-documentation/">U.S. Treasury (Fiscal Data)</a> — daily yield curve.</li>
</ul>
<p><strong>Filings &amp; insider activity</strong></p>
<ul>
<li><a href="https://www.sec.gov/search-filings/edgar-application-programming-interfaces">SEC EDGAR</a> — 8-Ks, Form 4 insider trades, full-text search.</li>
<li><a href="https://www.federalreserve.gov/feeds/feeds.htm">Federal Reserve</a> — FOMC statements via RSS.</li>
</ul>
<p><strong>News &amp; sentiment</strong></p>
<ul>
<li><a href="https://www.alphavantage.co/documentation/#news-sentiment">Alpha Vantage</a> — articles with per-ticker relevance + sentiment + topics.</li>
<li><a href="https://finnhub.io/docs/api/company-news">Finnhub news</a> — per-ticker + general market news.</li>
<li><a href="https://www.marketaux.com/documentation">Marketaux</a> — news with entity/ticker tagging + sentiment.</li>
<li><a href="https://news.google.com/rss/search?q=NVDA+stock">Google News RSS</a> — per-ticker/topic feeds, no key; you score them yourself.</li>
<li><a href="https://newsapi.org/docs">NewsAPI.org</a> — broad headlines. Free non-commercial dev tier.</li>
<li><a href="https://gnews.io/docs/">GNews</a> — headline search.</li>
<li><a href="https://www.tiingo.com/documentation/news">Tiingo</a> — curated financial news (paid add-on).</li>
</ul>
<p><strong>Social / alternative</strong></p>
<ul>
<li><a href="https://docs.bsky.app/">Bluesky / AT Protocol</a> — public firehose + search; the raw version of a curated digest.</li>
<li><a href="https://www.reddit.com/dev/api/">Reddit</a> — investing subreddits.</li>
</ul>
</div>
</div>
</div>
</section>
<section id="output" class="level3">
<h3 class="anchored" data-anchor-id="output">Output</h3>
<p>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.</p>
<p>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 <a href="https://www.agentmail.to/">AgentMail</a> and your agent won’t be able to mingle with your personal or business accounts.</p>
<p>Here are a few other options that are worth considering:</p>
<ul>
<li><p><strong>A simple local HTML file:</strong> 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.</p></li>
<li><p><strong>RSS feed (self-hosted):</strong> Generate a feed you subscribe to and read it from your favorite reader.</p></li>
<li><p><strong>Obsidian or Notion:</strong> 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.</p></li>
</ul>
</section>
</section>
<section id="examples" class="level2">
<h2 class="anchored" data-anchor-id="examples">Examples</h2>
<p>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.</p>
<details class="code-fold wrap-code">
<summary>
Pre-Market Briefing — June 18, 2026
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode default code-with-copy"><code class="sourceCode default"><span id="cb6-1"></span>
<span id="cb6-2">## Market Briefing — Thursday, June 18, 2026 · 6:31 AM MT*</span>
<span id="cb6-3"></span>
<span id="cb6-4">**Overnight: Iran Deal Confirmed, Fed Hawkishness Lingers, Futures Sharply Higher**</span>
<span id="cb6-5"></span>
<span id="cb6-6">**Tone: High-signal session — two major catalysts resolved overnight; portfolio implications are significant across multiple sleeves.**</span>
<span id="cb6-7"></span>
<span id="cb6-8">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.</span>
<span id="cb6-9"></span>
<span id="cb6-10">### Fed Warsh Debut — Thesis Update (26.6% Bonds/TIPS sleeve — largest held exposure)</span>
<span id="cb6-11"></span>
<span id="cb6-12">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.</span>
<span id="cb6-13"></span>
<span id="cb6-14">**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.</span>
<span id="cb6-15"></span>
<span id="cb6-16">Forward guidance removal is a structural change, not a one-day story. This permanently increases rate-path uncertainty for the bond sleeve.</span>
<span id="cb6-17"></span>
<span id="cb6-18"></span>
<span id="cb6-19">### Iran Deal — Signed and Wire-Confirmed (energy, EM sleeves)</span>
<span id="cb6-20"></span>
<span id="cb6-21">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.</span>
<span id="cb6-22"></span>
<span id="cb6-23">**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.</span>
<span id="cb6-24"></span>
<span id="cb6-25">**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.</span>
<span id="cb6-26"></span>
<span id="cb6-27">Russian oil waiver expiration is an offsetting crude-support factor — worth watching if oil slides materially below $80.</span>
<span id="cb6-28"></span>
<span id="cb6-29">### Watchlist — Key Moves</span>
<span id="cb6-30"></span>
<span id="cb6-31">**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.</span>
<span id="cb6-32"></span>
<span id="cb6-33">**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.</span>
<span id="cb6-34"></span>
<span id="cb6-35">**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.</span>
<span id="cb6-36"></span>
<span id="cb6-37">**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.</span>
<span id="cb6-38"></span>
<span id="cb6-39">**ETN +0.5%:** Quiet outperformer. Article on Boyd Thermal integration for data center cooling confirms the buildout thesis progressing operationally.</span>
<span id="cb6-40"></span>
<span id="cb6-41">**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.</span>
<span id="cb6-42"></span>
<span id="cb6-43">**PWR -0.6%:** No new catalyst in digest or watchlist feeds. Thesis unchanged.</span>
<span id="cb6-44"></span>
<span id="cb6-45">### Portfolio Breadth — All Sleeves Down Yesterday</span>
<span id="cb6-46"></span>
<span id="cb6-47">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.</span>
<span id="cb6-48"></span>
<span id="cb6-49">### Day Ahead</span>
<span id="cb6-50"></span>
<span id="cb6-51">• **Iran/US talks in Switzerland Friday** — next catalyst checkpoint for oil and Hormuz thesis</span>
<span id="cb6-52"></span>
<span id="cb6-53">• **No earnings in next 14 days** for any watchlist/held tickers</span>
<span id="cb6-54"></span>
<span id="cb6-55">• **Next major macro release: NFP July 2** — 14 days out</span>
<span id="cb6-56"></span>
<span id="cb6-57">• **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</span>
<span id="cb6-58"></span>
<span id="cb6-59"></span>
<span id="cb6-60">### Suggested themes to track</span>
<span id="cb6-61"></span>
<span id="cb6-62">• **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.</span>
<span id="cb6-63"></span>
<span id="cb6-64"> _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_</span>
<span id="cb6-65"></span>
<span id="cb6-66"> _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._</span></code></pre></div></div>
</details>
<details class="code-fold wrap-code">
<summary>
Weekly Review — June 19, 2026
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb7-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;"># 📅 Weekly Review</span></span>
<span id="cb7-2"></span>
<span id="cb7-3">*Friday, June 19, 2026 · 2:12 PM MT*</span>
<span id="cb7-4"></span>
<span id="cb7-5">**Portfolio: Recovery Rally That Hit a Wall**</span>
<span id="cb7-6"></span>
<span id="cb7-7">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.**</span>
<span id="cb7-8"></span>
<span id="cb7-9">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.</span>
<span id="cb7-10"></span>
<span id="cb7-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">### Stability / Bonds / TIPS — 26.6% (Largest Sleeve)**</span></span>
<span id="cb7-12"></span>
<span id="cb7-13">**Week: -0.14% · Day: +0.20%**</span>
<span id="cb7-14"></span>
<span id="cb7-15">The single most important story for this portfolio this week is what happened to this sleeve's macro environment — not the flat return.</span>
<span id="cb7-16"></span>
<span id="cb7-17">• **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."*</span>
<span id="cb7-18"></span>
<span id="cb7-19">• **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.</span>
<span id="cb7-20"></span>
<span id="cb7-21">• **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.</span>
<span id="cb7-22"></span>
<span id="cb7-23">• **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.</span>
<span id="cb7-24"></span>
<span id="cb7-25"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">### U.S. Growth / Tech — 18.3%**</span></span>
<span id="cb7-26"></span>
<span id="cb7-27">**Week: +2.88% · Day: +2.12%**</span>
<span id="cb7-28"></span>
<span id="cb7-29">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.</span>
<span id="cb7-30"></span>
<span id="cb7-31">• The Iran risk-premium on rates (energy inflation → Fed hawkishness → multiple compression) partially unwound early week; despite the hawkish FOMC, growth multiples held.</span>
<span id="cb7-32"></span>
<span id="cb7-33">• **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.</span>
<span id="cb7-34"></span>
<span id="cb7-35">• Juneteenth thin-volume session likely overstates conviction in today's +2.12% day return.</span>
<span id="cb7-36"></span>
<span id="cb7-37"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">### International Developed Core — 15.5%**</span></span>
<span id="cb7-38"></span>
<span id="cb7-39">**Week: +2.06% · Day: +1.11%**</span>
<span id="cb7-40"></span>
<span id="cb7-41">Solid week, but the setup into next week is more complicated.</span>
<span id="cb7-42"></span>
<span id="cb7-43">• **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.</span>
<span id="cb7-44"></span>
<span id="cb7-45">• **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.</span>
<span id="cb7-46"></span>
<span id="cb7-47">• **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.</span>
<span id="cb7-48"></span>
<span id="cb7-49">• The week's gain was real but is partially borrowed from dollar/yen tailwinds that may not persist.</span>
<span id="cb7-50"></span>
<span id="cb7-51"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">### U.S. Small Value — 12.0%**</span></span>
<span id="cb7-52"></span>
<span id="cb7-53">**Week: -0.97% · Day: +1.01%**</span>
<span id="cb7-54"></span>
<span id="cb7-55">**The week's only sleeve with a negative return** — notable given the broad equity rally.</span>
<span id="cb7-56"></span>
<span id="cb7-57">• 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.</span>
<span id="cb7-58"></span>
<span id="cb7-59">• Friday's +1.01% recovery partially offsets prior-session losses but doesn't close the weekly gap.</span>
<span id="cb7-60"></span>
<span id="cb7-61">• 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.</span>
<span id="cb7-62"></span>
<span id="cb7-63"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">### U.S. Quality / Dividend — 9.6%**</span></span>
<span id="cb7-64"></span>
<span id="cb7-65">**Week: +0.66% · Day: +0.51%**</span>
<span id="cb7-66"></span>
<span id="cb7-67">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.</span>
<span id="cb7-68"></span>
<span id="cb7-69"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">### International Small Value — 5.5% · U.S. Large Value — 5.2% · Emerging Markets Value — 4.5% · U.S. Large Blend — 2.7%</span></span>
<span id="cb7-70"></span>
<span id="cb7-71">• **Intl Small Value +1.08%:** Modest gain; same dollar/yen headwind as International Core applies. Day -0.21% suggests some Friday giveback.</span>
<span id="cb7-72"></span>
<span id="cb7-73">• **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.</span>
<span id="cb7-74"></span>
<span id="cb7-75">• **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.</span>
<span id="cb7-76"></span>
<span id="cb7-77">• **U.S. Large Blend +1.47%:** S&amp;P beta play; moves with the broad market. No differentiated read.</span>
<span id="cb7-78"></span>
<span id="cb7-79">**Iran / Hormuz Theme — Status: NOT Resolved**</span>
<span id="cb7-80"></span>
<span id="cb7-81">This is the week's most important theme correction. Monday's briefing called the deal "crystallized"; Friday's wires reverse that read:</span>
<span id="cb7-82"></span>
<span id="cb7-83">• Swiss talks **called off** (Reuters, CNBC, multiple sources)</span>
<span id="cb7-84"></span>
<span id="cb7-85">• Lebanon hostilities **escalating**; France blocking UN sanctions relief</span>
<span id="cb7-86"></span>
<span id="cb7-87">• IRGC setting up **covert Iraqi cells** to attack Gulf neighbors (Reuters exclusive)</span>
<span id="cb7-88"></span>
<span id="cb7-89">• Iran imposing **Strait of Hormuz transit fees**, not unrestricted navigation</span>
<span id="cb7-90"></span>
<span id="cb7-91">• 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.</span>
<span id="cb7-92"></span>
<span id="cb7-93">**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.</span>
<span id="cb7-94"></span>
<span id="cb7-95">**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.</span>
<span id="cb7-96"></span>
<span id="cb7-97">**Warsh Fed / Rate Regime Theme — Newly Confirmed**</span>
<span id="cb7-98"></span>
<span id="cb7-99">This week resolved the uncertainty that had been building since Warsh's appointment:</span>
<span id="cb7-100"></span>
<span id="cb7-101">• Fed held at 3.63% but 9/19 officials project a hike before year-end</span>
<span id="cb7-102"></span>
<span id="cb7-103">• Five task forces launched to reform Fed communications — Warsh signaling structural changes, not just tone</span>
<span id="cb7-104"></span>
<span id="cb7-105">• MarketWatch: task forces give cover to delay until December, but the direction is confirmed hawkish</span>
<span id="cb7-106"></span>
<span id="cb7-107">• **Dollar strengthening is the transmission mechanism** for international sleeves; rate-hike pricing is the transmission mechanism for bonds and growth multiples</span>
<span id="cb7-108"></span>
<span id="cb7-109">This is now a confirmed active theme, not a monitoring item.</span>
<span id="cb7-110"></span>
<span id="cb7-111"></span>
<span id="cb7-112"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Watchlist — Data Center Buildout Theme (Supporting Context)**</span></span>
<span id="cb7-113"></span>
<span id="cb7-114">*These are not held positions — context for the theme only.*</span>
<span id="cb7-115"></span>
<span id="cb7-116">• **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.</span>
<span id="cb7-117"></span>
<span id="cb7-118">• **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.</span>
<span id="cb7-119"></span>
<span id="cb7-120">• **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.</span>
<span id="cb7-121"></span>
<span id="cb7-122">• **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.</span>
<span id="cb7-123"></span>
<span id="cb7-124">• **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&amp;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.**</span>
<span id="cb7-125"></span>
<span id="cb7-126">• **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.</span>
<span id="cb7-127"></span>
<span id="cb7-128">• **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.</span>
<span id="cb7-129"></span>
<span id="cb7-130">• **MSFT:** Oracle cloud deal status unresolved. No new material catalyst in feed.</span>
<span id="cb7-131"></span>
<span id="cb7-132"></span>
<span id="cb7-133"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## What to Watch Next Week</span></span>
<span id="cb7-134"></span>
<span id="cb7-135">• **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).</span>
<span id="cb7-136"></span>
<span id="cb7-137">• **NVDA use-of-proceeds disclosure:** Any M&amp;A announcement or strategic commentary tied to the $25B raise would be the week's highest-impact watchlist event.</span>
<span id="cb7-138"></span>
<span id="cb7-139">• **Dollar trajectory:** Hawkish Warsh Fed = structural dollar strength = headwind for International Developed Core (15.5%) and International Small Value (5.5%). Monitor DXY weekly.</span>
<span id="cb7-140"></span>
<span id="cb7-141">• **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.</span>
<span id="cb7-142"></span>
<span id="cb7-143">• **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.</span>
<span id="cb7-144"></span>
<span id="cb7-145">• **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.</span>
<span id="cb7-146"></span>
<span id="cb7-147"></span>
<span id="cb7-148"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Positioning Observations (not advice)</span></span>
<span id="cb7-149"></span>
<span id="cb7-150">• **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.</span>
<span id="cb7-151"></span>
<span id="cb7-152">• **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.</span>
<span id="cb7-153"></span>
<span id="cb7-154">• **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.</span>
<span id="cb7-155"></span>
<span id="cb7-156"></span>
<span id="cb7-157"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Suggested themes to track</span></span>
<span id="cb7-158"></span>
<span id="cb7-159">• **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.</span>
<span id="cb7-160"></span>
<span id="cb7-161">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_</span>
<span id="cb7-162"></span>
<span id="cb7-163">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.</span></code></pre></div></div>
</details>
<p>What’s really great about this Weekly Review is a comment like this:</p>
<blockquote class="blockquote">
<p>• <strong>Bonds and inflation-protected bonds (TIPS)</strong> 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.</p>
</blockquote>
<p>I had a question about that so I pointed Claude Code at the project directory and dove in.</p>
<p>Super useful!</p>
</section>
<section id="prompt" class="level2">
<h2 class="anchored" data-anchor-id="prompt">Prompt</h2>
<p>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.</p>
<p>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:</p>
<details class="code-fold wrap-code">
<summary>
Show the prompt
</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode" id="cb8" style="background: #f1f3f5;"><pre class="sourceCode markdown code-with-copy"><code class="sourceCode markdown"><span id="cb8-1"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Goal</span></span>
<span id="cb8-2"></span>
<span id="cb8-3">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.</span>
<span id="cb8-4"></span>
<span id="cb8-5"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## What I have in mind</span></span>
<span id="cb8-6"></span>
<span id="cb8-7">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.</span>
<span id="cb8-8"></span>
<span id="cb8-9">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.</span>
<span id="cb8-10"></span>
<span id="cb8-11">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.</span>
<span id="cb8-12"></span>
<span id="cb8-13">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.</span>
<span id="cb8-14"></span>
<span id="cb8-15"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Architecture constraint</span></span>
<span id="cb8-16"></span>
<span id="cb8-17">Use a **directory-as-agent** pattern:</span>
<span id="cb8-18"></span>
<span id="cb8-19"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>Each agent is a self-contained directory with its own config, implementation, and output folder</span>
<span id="cb8-20"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>Agents communicate by writing files</span>
<span id="cb8-21"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>A <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`manifest.json`</span> written after each run (with status, timestamps, and counts) lets downstream agents detect stale or failed data</span>
<span id="cb8-22"></span>
<span id="cb8-23"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Memory</span></span>
<span id="cb8-24"></span>
<span id="cb8-25">The system should maintain a few **human-edited markdown files** that persist context across runs:</span>
<span id="cb8-26"></span>
<span id="cb8-27"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Positions and watchlist** — what I hold and what I'm monitoring, with per-ticker notes </span>
<span id="cb8-28"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**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</span>
<span id="cb8-29"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**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</span>
<span id="cb8-30"></span>
<span id="cb8-31"><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">&gt; **Important:** No agent should overwrite memory files. They're inputs, not outputs — I maintain them manually.</span></span>
<span id="cb8-32"></span>
<span id="cb8-33"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Engineering expectations</span></span>
<span id="cb8-34"></span>
<span id="cb8-35"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Secrets** in <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`.env`</span> via <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`python-dotenv`</span>. Provide <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`.env.example`</span>. Never commit <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`.env`</span></span>
<span id="cb8-36"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Tests** for pure logic (parsing, filtering, flagging). Don't mock LLM calls or API</span>
<span id="cb8-37">clients — verify those by running the real agent</span>
<span id="cb8-38"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**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</span>
<span id="cb8-39"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>Each agent gets an <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`AGENT.md`</span> describing its purpose, inputs, outputs, and schedule </span>
<span id="cb8-40"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>A <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`README.md`</span> covering setup, architecture, running, and a decisions log explaining key choices</span>
<span id="cb8-41"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>A <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`CLAUDE.md`</span> so a future Claude Code session knows how to work with this repo</span>
<span id="cb8-42"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Scheduling** via <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`launchd`</span> on macOS, <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`cron`</span> on Linux, or Task Scheduler on Windows (or <span class="in" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">`cron`</span> under WSL). Ask me which I'm using</span>
<span id="cb8-43"></span>
<span id="cb8-44"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Before you start building</span></span>
<span id="cb8-45"></span>
<span id="cb8-46">I'd like to talk through a few things first:</span>
<span id="cb8-47"></span>
<span id="cb8-48"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">1. </span>Which agents make sense to start with given what I have? </span>
<span id="cb8-49"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">2. </span>What free vs. paid APIs are involved, and what keys will I need?</span>
<span id="cb8-50"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">3. </span>Are there any architectural decisions I should make up front before we scaffold anything?</span>
<span id="cb8-51"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">4. </span>How is my portfolio structured — individual names, funds/ETFs, or both? (It changes whether the briefing reasons ticker-by-ticker or by exposure/theme.)</span>
<span id="cb8-52"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">5. </span>What report cadence fits how I invest — a daily pre-market read, a weekly review, event-driven alerts, or a mix?</span>
<span id="cb8-53"></span>
<span id="cb8-54"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">## Here's what I'm working with</span></span>
<span id="cb8-55"></span>
<span id="cb8-56"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Portfolio:** <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">describe your holdings — ETFs, individual stocks, retirement accounts, etc.</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">]</span></span>
<span id="cb8-57"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Watchlist:** <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">stocks you're monitoring but don't hold, with a note on why each is interesting</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">]</span></span>
<span id="cb8-58"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Themes I'm tracking:** <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">macro or structural ideas you want the briefing to watch — or leave blank and develop these later</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">]</span></span>
<span id="cb8-59"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**API keys I already have:** <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">list what you have — Anthropic, FRED, Finnhub, Polygon, etc.</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">]</span> </span>
<span id="cb8-60"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Delivery preference:** <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">Telegram, email, local file, something else</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">]</span></span>
<span id="cb8-61"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">- </span>**Platform:** <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">[</span><span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">Mac, Linux, or Windows</span><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">]</span></span></code></pre></div></div>
</details>


</section>

 ]]></description>
  <category>AI agents</category>
  <category>LLM-as-judge</category>
  <category>investing</category>
  <guid>https://lonriesberg.com/posts/investing-with-agents/</guid>
  <pubDate>Mon, 22 Jun 2026 06:00:00 GMT</pubDate>
  <media:content url="https://lonriesberg.com/posts/investing-with-agents/research_agent_flow.png" medium="image" type="image/png" height="60" width="144"/>
</item>
</channel>
</rss>
