<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: JessYT</title>
    <description>The latest articles on Forem by JessYT (@jessyt).</description>
    <link>https://forem.com/jessyt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3929396%2F258b3757-050e-4d7f-9578-f524506551bc.png</url>
      <title>Forem: JessYT</title>
      <link>https://forem.com/jessyt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jessyt"/>
    <language>en</language>
    <item>
      <title>Obsidian vs Notion: They Solve Completely Different Problems</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Fri, 15 May 2026 02:07:15 +0000</pubDate>
      <link>https://forem.com/jessyt/obsidian-vs-notion-they-solve-completely-different-problems-427c</link>
      <guid>https://forem.com/jessyt/obsidian-vs-notion-they-solve-completely-different-problems-427c</guid>
      <description>&lt;h1&gt;
  
  
  Obsidian vs Notion: They're Not the Same Tool
&lt;/h1&gt;

&lt;p&gt;Both are "note apps." But the essence is different. &lt;strong&gt;Notion is a collaborative database, Obsidian is a personal knowledge graph&lt;/strong&gt;. Where your markdown files live — that's where everything diverges.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Local vs Cloud&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;$0 vs $10/mo&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;As of 2026-05&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  01 · Essence: One is a DB, the other is files
&lt;/h2&gt;

&lt;p&gt;Comparing these two on the same line keeps going sideways. Notion was built from day one as "a database teams use together," while Obsidian is "a graph view layered on top of a markdown folder on your disk." &lt;strong&gt;Where your data lives&lt;/strong&gt; drives almost every difference.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Notion&lt;/th&gt;
&lt;th&gt;Obsidian&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Category&lt;/td&gt;
&lt;td&gt;Cloud-first · Collaboration&lt;/td&gt;
&lt;td&gt;Local-first · Personal knowledge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Type&lt;/td&gt;
&lt;td&gt;SaaS · Block-based DB&lt;/td&gt;
&lt;td&gt;Local markdown · Graph&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;Notion servers&lt;/td&gt;
&lt;td&gt;Your disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edit unit&lt;/td&gt;
&lt;td&gt;Block&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.md&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strength&lt;/td&gt;
&lt;td&gt;Team collab · DB&lt;/td&gt;
&lt;td&gt;Personal PKM · Backlinks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same category, different tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  02 · Pricing: The solo cost gap is significant
&lt;/h2&gt;

&lt;p&gt;For personal use, Obsidian is free, while Notion has a free-tier limit. The moment you need collaboration · DB features together, you're on Notion Plus ($10/user/month). &lt;strong&gt;"Same price" comparisons miss the starting point.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personal free use, cost to unlock core features&lt;/strong&gt;: &lt;del&gt;$10/mo&lt;/del&gt; → &lt;strong&gt;$0&lt;/strong&gt; (Obsidian, personal use, forever free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For personal use, Obsidian is &lt;strong&gt;fully free — app, plugins, and themes all included&lt;/strong&gt;. You only pay for add-ons like cross-device Sync or web Publish.&lt;/p&gt;

&lt;h2&gt;
  
  
  03 · Four key metrics: Four numbers tell the whole story
&lt;/h2&gt;

&lt;p&gt;Pricing · storage location · extensibility · collaboration — the four metrics that most often split note-tool decisions. Just figure out &lt;strong&gt;which metric matters most in your workflow&lt;/strong&gt; and the choice almost makes itself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personal monthly cost: $0&lt;/strong&gt; (Obsidian free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage location: Local&lt;/strong&gt; (direct &lt;code&gt;.md&lt;/code&gt; files)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugin count: 2000+&lt;/strong&gt; (community market)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Realtime collaboration: Limited&lt;/strong&gt; (Notion wins)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  04 · Fit — Notion is the answer if…
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You need real-time edits on the same page with your team — comments · permissions · co-editing are Notion strengths&lt;/li&gt;
&lt;li&gt;You need DB · Kanban · Calendar inside the doc — notes themselves act as databases&lt;/li&gt;
&lt;li&gt;Web sharing · publishing is your default workflow — Publish gives you a share URL in one click&lt;/li&gt;
&lt;li&gt;You write and review often from mobile — iOS · Android apps are polished&lt;/li&gt;
&lt;li&gt;You want to grab from the template marketplace — CRM · wiki · project management out of the box&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  05 · Fit — Obsidian is the answer if…
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Your notes need to outlive the next 10 years — &lt;code&gt;.md&lt;/code&gt; files don't care if a service shuts down&lt;/li&gt;
&lt;li&gt;You want backlinks · graph to connect knowledge — PKM · Zettelkasten workflow&lt;/li&gt;
&lt;li&gt;Local-first — you avoid cloud dependence — sync via Git · iCloud · Dropbox, anything works&lt;/li&gt;
&lt;li&gt;You write text only; heavy media lives elsewhere — the editor itself is light and fast&lt;/li&gt;
&lt;li&gt;You customize your workflow with plugins — Dataview · Templater · QuickAdd, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  06 · Decide it in one line
&lt;/h2&gt;

&lt;p&gt;Even if these two look similar, migration isn't simple. One thing to flag before you move:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Migration Pitfall&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"I moved from Notion to Obsidian and all my DBs broke."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cause&lt;/strong&gt;: Notion's DB · relational properties don't map 1:1 to markdown. Plain notes move over fine, but pages where &lt;strong&gt;relation · rollup · formula&lt;/strong&gt; are the core have to be rebuilt with Obsidian's Dataview plugin to behave equivalently. Sorting out "does this page actually need DB features?" before migrating cuts the cost dramatically.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The decision rule fits in five lines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;30-second decision guide&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team views it together → &lt;strong&gt;Notion&lt;/strong&gt; (realtime collab · permissions · DB are the wins)&lt;/li&gt;
&lt;li&gt;Solo, archive forever → &lt;strong&gt;Obsidian&lt;/strong&gt; (local &lt;code&gt;.md&lt;/code&gt; = no lock-in)&lt;/li&gt;
&lt;li&gt;Frequent web publishing · external sharing → &lt;strong&gt;Notion&lt;/strong&gt; (Publish = instant share URL)&lt;/li&gt;
&lt;li&gt;You want to link and connect concepts → &lt;strong&gt;Obsidian&lt;/strong&gt; (backlinks · graph view at the core)&lt;/li&gt;
&lt;li&gt;Using both is also valid → &lt;strong&gt;Split roles&lt;/strong&gt; (sharing = Notion / personal archive = Obsidian)&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;"Choosing a note tool isn't a feature comparison. It's choosing &lt;strong&gt;who holds your data&lt;/strong&gt;."&lt;/p&gt;

&lt;p&gt;— ediblog · Devtools Daily&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These two are safest treated as &lt;strong&gt;role split&lt;/strong&gt;, not competitors. Sharing on Notion, lifelong archive on Obsidian.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Notion Official&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.notion.so" rel="noopener noreferrer"&gt;Notion Home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.notion.so/pricing" rel="noopener noreferrer"&gt;Notion Pricing — Plus $10/user/month&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Obsidian Official&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://obsidian.md" rel="noopener noreferrer"&gt;Obsidian Home — Free for personal use&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://obsidian.md/pricing" rel="noopener noreferrer"&gt;Obsidian Pricing — Sync · Publish add-ons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://obsidian.md/plugins" rel="noopener noreferrer"&gt;Community Plugins Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Related&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jessyt.tistory.com/" rel="noopener noreferrer"&gt;ediblog — Devtools series&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: Pricing · feature info as of 2026-05 official pages. No ads · no affiliates.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jessinvestment.com/obsidian-vs-notion-they-solve-completely-different-problems/" rel="noopener noreferrer"&gt;jessinvestment.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Original with full infographics and visual structure: &lt;a href="https://jessinvestment.com/obsidian-vs-notion-they-solve-completely-different-problems/" rel="noopener noreferrer"&gt;https://jessinvestment.com/obsidian-vs-notion-they-solve-completely-different-problems/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>notion</category>
      <category>notetaking</category>
      <category>pkm</category>
    </item>
    <item>
      <title>5 Token-Saving Habits From 3 Months With Claude Code</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Fri, 15 May 2026 02:01:32 +0000</pubDate>
      <link>https://forem.com/jessyt/5-token-saving-habits-from-3-months-with-claude-code-41mh</link>
      <guid>https://forem.com/jessyt/5-token-saving-habits-from-3-months-with-claude-code-41mh</guid>
      <description>&lt;h1&gt;
  
  
  5 Token-Saving Habits From 3 Months With Claude Code
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;EDIBLOG · Phase 2-1 · 3-Month Retrospective&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Hi, I'm Eddie. After 3 months running blog automations, I settled on 5 token-saving habits. Honestly — &lt;strong&gt;I broke each one at least once before they stuck&lt;/strong&gt;. This is the first deep dive I promised in the &lt;a href="https://docs.claude.com/en/docs/claude-code/memory" rel="noopener noreferrer"&gt;CLAUDE.md memory&lt;/a&gt; index post.&lt;/p&gt;

&lt;p&gt;The 5 habits: &lt;code&gt;/compact&lt;/code&gt;, agent split, &lt;code&gt;/clear&lt;/code&gt;, CLAUDE.md split, 3 Skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  01 — &lt;code&gt;/compact&lt;/code&gt;: press it on the alert, judge by the next answer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bottom line.&lt;/strong&gt; I learned &lt;code&gt;/compact&lt;/code&gt; fires when the context alert appears. The way I see it, it summarizes and compresses the conversation to free up token space. It is not lossless.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;My take after 3 months:&lt;/strong&gt; "Sometimes I lose things. When critical info disappears, the next answer can go off the rails."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My pattern — see the alert, run &lt;code&gt;/compact&lt;/code&gt;, ask one question, and if it looks wrong I &lt;code&gt;/clear&lt;/code&gt; and restart. &lt;strong&gt;No blind trust.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think being honest about limits is the better move. I accepted that &lt;strong&gt;compaction is not lossless&lt;/strong&gt;. Right after a critical code change, I now habitually restate the key facts before compacting.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;See the alert → /compact &lt;span class="o"&gt;(&lt;/span&gt;first attempt&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="go"&gt;[Claude] context window 80% used. /compact recommended.
&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/compact
&lt;span class="go"&gt;[Claude] Compaction done — 60% token space recovered.

&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Immediate one-line check after compacting
&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Show me the contents of [key file] you just worked on"&lt;/span&gt;
&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;If clean, &lt;span class="k"&gt;continue&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt; If loss detected, /clear and restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  02 — Important work goes to a separate agent, not main
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bottom line.&lt;/strong&gt; The second pattern, in my view, is role separation. I run main Claude as the coordinator and throw detail work to sub-agents.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;My separation rule:&lt;/strong&gt; "Anything I consider important — code review, benchmarking, post quality control — doesn't touch main Claude. Dedicated agents only."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I see two payoffs. &lt;strong&gt;Main context stays protected&lt;/strong&gt; + &lt;strong&gt;only the final output of the detail work surfaces back to main&lt;/strong&gt;. The biggest win is that reading a huge document once doesn't eat main context.&lt;/p&gt;

&lt;p&gt;I keep 4 custom agents as one-pager markdown files under &lt;code&gt;.claude/agents/&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;monetization-analyst&lt;/code&gt;&lt;/strong&gt; — Monetization analysis — VSD Pro · jessinvestment stage checks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;opportunity-ranker&lt;/code&gt;&lt;/strong&gt; — Opportunity ranking — sort next-sequence candidates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;dev-finance-explorer&lt;/code&gt;&lt;/strong&gt; — Dev × finance crossover — post idea discovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;asset-health-checker&lt;/code&gt;&lt;/strong&gt; — Asset health check — jobs · blog operations status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On top of that, there's the &lt;code&gt;/review&lt;/code&gt; slash command and the weekly &lt;code&gt;weekly-blog-review&lt;/code&gt; job (6-AI panel for post quality). This was the single biggest token-saving move.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Don&lt;span class="s1"&gt;'t ask main Claude
&lt;/span&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;Task(opportunity-ranker, "rank the next 10 post idea candidates")
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;→ sub-agent works in a separate context, only the result returns to main
&lt;/span&gt;&lt;span class="go"&gt;
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Main plays coordinator only
&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Heavy analysis / 6-AI panels / benchmarking all go to separate agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  03 — &lt;code&gt;/clear&lt;/code&gt;: not compression, full reset
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bottom line.&lt;/strong&gt; Third, I actively use &lt;code&gt;/clear&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;My timing rule:&lt;/strong&gt; "When the context completely shifts, I /clear and rebuild from scratch."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A typical example for me — finishing real-estate blog work and switching to debugging the trading system. I realized mixing the two contexts causes incidents.&lt;/p&gt;

&lt;p&gt;I see the two tools as different roles. &lt;code&gt;/compact&lt;/code&gt; is &lt;strong&gt;compress&lt;/strong&gt;, &lt;code&gt;/clear&lt;/code&gt; is &lt;strong&gt;full empty&lt;/strong&gt;. After clear, the first message reloads only CLAUDE.md and I rebuild context from there.&lt;/p&gt;

&lt;p&gt;This was a bit counterintuitive: &lt;strong&gt;clear isn't wasteful — NOT clearing is more expensive in most cases.&lt;/strong&gt; Without clearing, every turn has to spend tokens replaying the entire prior context.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/clear &lt;span class="k"&gt;if &lt;/span&gt;you hit ANY of these
&lt;span class="go"&gt;[ ] Complete domain switch (real-estate → trading system, etc.)
[ ] Answer feels off even after /compact (compression loss)
[ ] Conversation getting long, answers slowing down (context bloat)
[ ] Moving to another blog · project (separate CLAUDE.md folder)

&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;1+ above → don&lt;span class="s1"&gt;'t hesitate, /clear
&lt;/span&gt;&lt;span class="gp"&gt;#&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;Clear, reload CLAUDE.md, restart clean
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  04 — Slim CLAUDE.md, move the rest to side files
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bottom line.&lt;/strong&gt; The fourth is the CLAUDE.md diet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;My split rule:&lt;/strong&gt; "Only what's needed every task lives in CLAUDE.md. Everything else is request-specific — that's how you save tokens."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The reason is clear to me. CLAUDE.md is auto-loaded every session. Every line in there spends tokens every time. The conclusion: &lt;strong&gt;anything you rarely look at has to come out&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;My actual split structure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File type&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Main CLAUDE.md&lt;/strong&gt; (auto-loaded every session)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;automation/CLAUDE.md&lt;/code&gt; — ops rules, schedules, incident log&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Side files&lt;/strong&gt; (loaded only on request)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;real-estate/_series_guide.md&lt;/code&gt; · &lt;code&gt;ediblog/SKILL.md&lt;/code&gt; · &lt;code&gt;docs/INFRA_2026_05.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Archive&lt;/strong&gt; (one-line index only)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CLAUDE-archive-2026-04.md&lt;/code&gt; — old incident log moved out&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I split old incident logs into &lt;code&gt;CLAUDE-archive-2026-04.md&lt;/code&gt; and kept only a one-line index in main. The main file had been swelling past 1,000 lines — you can feel the relief. To me, this is the heart of the main-slim pattern.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Main CLAUDE.md (currently ~80 lines)&lt;/span&gt;

&lt;span class="gu"&gt;## 5. Incident log (learnings)&lt;/span&gt;

| Date | Incident | Action |
|---|---|---|
| 2026-05-09 | 4 publish failures + telegram loop | 4 self-recovery layers added |
&lt;span class="gt"&gt;
&amp;gt; 10 incidents from 2026-04-14 ~ 2026-04-18 moved to `CLAUDE-archive-2026-04.md` §A&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; 8 incidents from 2026-04-21 ~ 2026-05-04 moved to `CLAUDE-archive-2026-05.md` §A&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Main keeps only post-05-05 incidents&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  05 — 3 skills, loaded only on trigger
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bottom line.&lt;/strong&gt; The last one, in my view, is &lt;strong&gt;skills&lt;/strong&gt;. I keep 3 custom skills under &lt;code&gt;automation/.claude/skills/&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;add-launch-job&lt;/code&gt;&lt;/strong&gt; — Auto-triggered when adding a new LaunchAgent job. Checks plist TCC policy · FD limit 3-layer defense. Used heavily this past week alone creating 5 new jobs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;blog-style-guide&lt;/code&gt;&lt;/strong&gt; — Auto-triggered on post writing · review. Applies 9 base patterns + 4 evolved patterns + reviewer gate. Managed in one place across 4 daily-publishing blogs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;captcha-recovery&lt;/code&gt;&lt;/strong&gt; — Auto-triggered on captcha · session corruption. Telegram relay + zombie Chrome cleanup. Rare but mandatory when it hits.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I couldn't measure the split effect quantitatively. My read: inline = main CLAUDE.md swells past 1,000 lines and gets fully loaded every session. Split = main keeps a one-line index, and &lt;code&gt;SKILL.md&lt;/code&gt; only loads when triggered. I &lt;strong&gt;estimate ~30% main-token savings&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;~30% main tokens saved&lt;/strong&gt; (estimated, not measured)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 custom skills&lt;/strong&gt; (add · style · captcha)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 rule-change point&lt;/strong&gt; (one &lt;code&gt;SKILL.md&lt;/code&gt;)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;blog-style-guide&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;9 writing patterns + reviewer gate thresholds for blog post&lt;/span&gt;
  &lt;span class="s"&gt;writing · review · publishing in the automation project. Trigger on&lt;/span&gt;
  &lt;span class="s"&gt;ediblog · jessinvestment · luna-pick · jesslab publishing&lt;/span&gt;
  &lt;span class="s"&gt;tasks or post quality review requests.&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="c1"&gt;# Automation project blog style guide&lt;/span&gt;
&lt;span class="nn"&gt;...&lt;/span&gt;

&lt;span class="c1"&gt;# When Claude matches keywords like "write this post" / "review" / "before publishing"&lt;/span&gt;
&lt;span class="c1"&gt;# Auto-trigger → load SKILL.md → apply 9 patterns&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Coda — If I had to nail it in one line
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Token saving isn't about tools — it's about deciding &lt;strong&gt;how much to pin in main&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;— Eddie · Phase 2-1 wrap&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;All 5 only stuck after I broke them at least once each. I'd recommend looking at &lt;strong&gt;what info you actually need every session&lt;/strong&gt; before memorizing tools. That, I realized, is the essence of token saving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2 · next deep dives&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;2-2&lt;/strong&gt; Slash commands deep dive — &lt;code&gt;/run-daily&lt;/code&gt; differences across 5 blogs (soon)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2-3&lt;/strong&gt; 3 custom skills deep dive — why I built them · structure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2-4&lt;/strong&gt; CLAUDE.md operations — how the incident log accumulates&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Every line that auto-loads is a cost. I only pin what every session actually needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources · References
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Claude Code Official&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.claude.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.claude.com/en/docs/claude-code/memory" rel="noopener noreferrer"&gt;CLAUDE.md memory — auto-load behavior&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.claude.com/en/docs/claude-code/skills" rel="noopener noreferrer"&gt;Skills — load on trigger&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.claude.com/en/docs/claude-code/slash-commands#compact-and-clear" rel="noopener noreferrer"&gt;/compact · /clear official docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Series index&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can't leave my desktop — Claude Code 3 months, 6 patterns (Phase 1, series index)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Disclosure: Personal 3-month retro. No ads, no affiliates.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Original with full infographics and visual structure: &lt;a href="https://jessinvestment.com/5-token-saving-habits-from-3-months-with-claude-code/" rel="noopener noreferrer"&gt;https://jessinvestment.com/5-token-saving-habits-from-3-months-with-claude-code/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>tokensaving</category>
      <category>slashcommands</category>
      <category>aicoding</category>
    </item>
    <item>
      <title>How a Telegram Bot Lets Me Run My Blog From Anywhere</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Fri, 15 May 2026 01:55:46 +0000</pubDate>
      <link>https://forem.com/jessyt/how-a-telegram-bot-lets-me-run-my-blog-from-anywhere-3g9a</link>
      <guid>https://forem.com/jessyt/how-a-telegram-bot-lets-me-run-my-blog-from-anywhere-3g9a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F57wXb%2FdJMb997sCT0%2FAAAAAAAAAAAAAAAAAAAAAGUcRmG6tVBBJmwTst8va4jWq-XbAPR6JdchrbBahL2f%2Fimg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F57wXb%2FdJMb997sCT0%2FAAAAAAAAAAAAAAAAAAAAAGUcRmG6tVBBJmwTst8va4jWq-XbAPR6JdchrbBahL2f%2Fimg.png" alt="AI cut my writing 90% but I still couldn't leave the desktop" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  AI Cut My Writing 90% — But I Still Couldn't Leave My Desktop
&lt;/h1&gt;

&lt;p&gt;Hi, I'm Eddy. I'm writing this post &lt;strong&gt;from abroad, replying only through Telegram&lt;/strong&gt;. After two months of running this setup, my conclusion is simple: wire &lt;a href="https://docs.claude.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt; to a Telegram bot and you can basically leave your desktop off.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 sparks that pushed me to build the bot
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bottom line.&lt;/strong&gt; I hit a moment where being glued to my desktop felt wildly inefficient. Four things had stacked up at once.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Captcha block — jobs stall.&lt;/strong&gt; If a Tistory captcha pops up while I'm out, I can't see it. Publishing halts and I have no way to know.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overnight failures — caught late.&lt;/strong&gt; If a job fails at 3am, I only find out the next morning. A whole publish slot, gone.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily review — stuck at the desk.&lt;/strong&gt; Every publish meant coming back to the desk for review. No freedom to actually leave the house.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ideas — lost on the go (biggest).&lt;/strong&gt; Topics and ops ideas that hit me out walking died as memos. No way to apply them in the moment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The biggest one for me was #4. I had to break the memo-it-then-forget pattern. When a topic hit me on the street, I wanted to apply it right there.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 moments where the bot really earns its keep
&lt;/h2&gt;

&lt;p&gt;After installing the bot, four moments delivered the biggest payoff. These four, I'd argue, are the bot's real value.&lt;/p&gt;

&lt;h3&gt;
  
  
  Moment 1 — Captcha reply: Claude Code ships captcha screenshots to Telegram
&lt;/h3&gt;

&lt;p&gt;When a captcha image lands in Telegram, I reply with the text. The bot auto-fills it and publishing continues. &lt;strong&gt;Jobs don't stall even while I'm out.&lt;/strong&gt; One glance at my phone, one-line reply, done.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🔒 Tistory captcha detected
Time: 2026-05-10 14:22 KST
Post: AI Update — Claude Mythos Preview...
Session: jessyt

[Image attached — captcha]

Reply with just the captcha text.
No reply within 30 min → auto-abort + draft preserved.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Moment 2 — Interview from abroad: I'm writing this very post via Telegram interview
&lt;/h3&gt;

&lt;p&gt;The bot fires 5–6 questions per topic and I just answer. Those answers become a first-person draft as-is.&lt;/p&gt;

&lt;p&gt;I've written posts this way from planes, airports, cafés. No desktop needed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;🤖 BOT&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Today's topic — "Running 30 Claude Code slash commands"&lt;/span&gt;
        &lt;span class="s"&gt;Q 1/6&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="s"&gt;What pushed you to make your first slash command?&lt;/span&gt;

&lt;span class="na"&gt;👤 ME &lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Got tired of copy-pasting the same prompt every time. Once I&lt;/span&gt;
        &lt;span class="s"&gt;forgot a line and the output came back completely different.&lt;/span&gt;

&lt;span class="na"&gt;🤖 BOT: Q 2/6&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;How many are you running now? Any naming convention?&lt;/span&gt;
        &lt;span class="s"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Interview answers → first-person draft conversion prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# interview-to-draft.md (Claude Code slash command)
---
description: "Convert Telegram interview answers into a first-person draft"
---
&lt;/span&gt;
Take the interview Q&amp;amp;A below and write:
&lt;span class="p"&gt;1.&lt;/span&gt; Don't quote answers verbatim — restructure as first-person flow
&lt;span class="p"&gt;2.&lt;/span&gt; Match voice.md tone ("I tried ~", "I found ~")
&lt;span class="p"&gt;3.&lt;/span&gt; CLAUDE.md soft rules — 80%+ first-person / cite external sources
&lt;span class="p"&gt;4.&lt;/span&gt; Apply blog-style-guide §A~§Q
&lt;span class="p"&gt;5.&lt;/span&gt; Save HTML to drafts/ + send Telegram preview alert
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Moment 3 — Overnight failures: "3am failures? I'm just going to sleep through them."
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;24/7 alerts don't mean 24/7 response capability — I learned that the hard way.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I decided to just pass on overnight failures. Batch them the next day. Accepting &lt;strong&gt;my own limits&lt;/strong&gt; turned out to be the healthier ops mode.&lt;/p&gt;

&lt;h3&gt;
  
  
  Moment 4 — Instant feature &amp;amp; quality tweaks: the second an idea hits, I instruct the bot
&lt;/h3&gt;

&lt;p&gt;When Claude Code ships a good new feature, I push the apply-it instruction through Telegram immediately. Post quality? I grade and decide through the bot too.&lt;/p&gt;

&lt;p&gt;The biggest shift was getting an apply-on-the-spot cycle. Fastest way I found to escape the procrastinate-then-forget loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  My alert policy evolved with the scale of automation
&lt;/h2&gt;

&lt;p&gt;When I first installed the bot, every job result became an alert. At the time I was running 7 blogs, and &lt;strong&gt;so many alerts came in that I stopped looking altogether.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now I've trimmed alerts down to just two streams.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚠ &lt;strong&gt;Failures batched and reported twice daily.&lt;/strong&gt; No instant alerts — I'm going to be asleep at 3am anyway.&lt;/li&gt;
&lt;li&gt;📥 &lt;strong&gt;Drafts trigger instant alerts every time.&lt;/strong&gt; That's the exact moment my action (quality review &amp;amp; publish) is needed.&lt;/li&gt;
&lt;li&gt;✕ &lt;strong&gt;Successes &amp;amp; progress = no alert&lt;/strong&gt; — "still running fine" pings are just noise.&lt;/li&gt;
&lt;li&gt;💡 &lt;strong&gt;Once I scaled ops down to one focus, alerts stabilized on their own.&lt;/strong&gt; Cutting automation, I learned, is also a skill.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alert taxonomy:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Event&lt;/th&gt;
&lt;th&gt;Alert policy&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Job failure (publish)&lt;/td&gt;
&lt;td&gt;Batched 2x/day&lt;/td&gt;
&lt;td&gt;I sleep at 3am&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Captcha detected&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;td&gt;Reply needed in 30 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Draft saved&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;td&gt;User review + publish needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Success / progress&lt;/td&gt;
&lt;td&gt;No alert&lt;/td&gt;
&lt;td&gt;"Still running" = noise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Captcha quota near&lt;/td&gt;
&lt;td&gt;Instant + pause publish&lt;/td&gt;
&lt;td&gt;Block captcha pile-up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session corrupted&lt;/td&gt;
&lt;td&gt;Instant + alert channel&lt;/td&gt;
&lt;td&gt;Recovery procedure needed&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How my way of working changed
&lt;/h2&gt;

&lt;p&gt;Comparing before and after the bot, the biggest change is being able to operate, write, and decide anywhere, anytime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before — desktop hostage (stuck at my desk daily):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📍 Back at the desk daily for review&lt;/li&gt;
&lt;li&gt;🖥 Monitor on 24/7&lt;/li&gt;
&lt;li&gt;⛔ Captcha mid-outing stalls publishing&lt;/li&gt;
&lt;li&gt;💭 Ideas become memos, then evaporate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After — bot integrated (phone is enough):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📱 Desktop barely opens&lt;/li&gt;
&lt;li&gt;🌍 Operating &amp;amp; writing from abroad&lt;/li&gt;
&lt;li&gt;⚡ Quality &amp;amp; ops decisions instant&lt;/li&gt;
&lt;li&gt;💡 Apply ideas on the spot (no evaporation)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest payoff, for me, is being able to &lt;strong&gt;make quality and ops decisions instantly&lt;/strong&gt;. Turning the monitor off and saving electricity is a side effect at best.&lt;/p&gt;

&lt;h2&gt;
  
  
  My setup started with one line
&lt;/h2&gt;

&lt;p&gt;I didn't actually write a single line of code myself. I gave Claude Code one line of instruction and it worked.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;First prompt:&lt;/strong&gt; &lt;em&gt;"Make it so I can respond via Telegram!"&lt;/em&gt; — the exact one line I first typed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the only line I typed. Claude Code walked me through &lt;a href="https://core.telegram.org/bots#how-do-i-create-a-bot" rel="noopener noreferrer"&gt;bot token issuance&lt;/a&gt;, then dropped in the alert module, captcha image relay, and the interview polling loop, one step at a time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env python3
# lib/telegram_send.py — alert module dropped in from the first one-liner
&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;blog&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;TELEGRAM_BOT_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;chat_id_map&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;blog&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;     &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;TELEGRAM_CHAT_BLOG&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;alert&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;TELEGRAM_CHAT_ALERT&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;briefing&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;TELEGRAM_CHAT_BRIEFING&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;chat_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;chat_id_map&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;TELEGRAM_CHAT_ID&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://api.telegram.org/bot&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/sendMessage&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;chat_id&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;chat_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I didn't try to make it perfect from the start. I asked for one missing piece at a time and grew it. Starting with alerts, then captcha replies, interviews, ops instructions — I grew the cycle by iterating.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# lib/telegram_bot.py — publish review reply handling (excerpt)
&lt;/span&gt;&lt;span class="n"&gt;COMMAND_ROUTER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/publish&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="n"&gt;handle_publish_now&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;      &lt;span class="c1"&gt;# Publish immediately
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/skip&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;       &lt;span class="n"&gt;handle_skip_draft&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;       &lt;span class="c1"&gt;# Keep as draft, don't publish
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/cancel&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;     &lt;span class="n"&gt;handle_cancel_draft&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;     &lt;span class="c1"&gt;# Delete post + return to queue
&lt;/span&gt;    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/schedule&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;   &lt;span class="n"&gt;handle_schedule&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;         &lt;span class="c1"&gt;# /schedule 14:30 → schedule at 14:30
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;handle_telegram_reply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;30-min timeout polling — review possible even while out.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;''&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;()[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;COMMAND_ROUTER&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# No command match → treat as captcha reply
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;handle_captcha_answer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bot feature evolution timeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Day 1&lt;/strong&gt; — Alert module (publish success/failure alerts)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 7&lt;/strong&gt; — Captcha image relay + reply handling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 14&lt;/strong&gt; — Interview polling loop (5–6 Qs → answers → draft)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 21&lt;/strong&gt; — Batched failure reports 2x/day (kill instant alerts)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 30&lt;/strong&gt; — Ops instruction reply handling (&lt;code&gt;/publish&lt;/code&gt; &lt;code&gt;/skip&lt;/code&gt; &lt;code&gt;/schedule HH:MM&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 45&lt;/strong&gt; — Quality review gate (pre-publish card + reply branch)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 60&lt;/strong&gt; — Alerts compressed 7 streams → 2 (normalized)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You don't need every feature on day one&lt;/strong&gt; — that was my biggest lesson.&lt;/p&gt;

&lt;h2&gt;
  
  
  If I had to land it in one line
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Build the environment that lets you work anywhere, anytime — first. That's how your hours getting smarter alongside Claude Code actually grow.&lt;/p&gt;

&lt;p&gt;— Eddy, replying from abroad&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I realized the desktop isn't something to keep on — &lt;strong&gt;turning it off is the right answer&lt;/strong&gt;. That's how your time working with AI grows.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The essence of automation isn't working 24 hours — it's that work keeps rolling even when you go to sleep.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Sources &amp;amp; References
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tools used&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.claude.com/en/docs/claude-code/overview" rel="noopener noreferrer"&gt;Claude Code (Opus 4.7) — official AI agent docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://core.telegram.org/bots/api" rel="noopener noreferrer"&gt;Telegram Bot API — alerts / captcha relay / interview polling&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://core.telegram.org/bots#how-do-i-create-a-bot" rel="noopener noreferrer"&gt;BotFather — bot token issuance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Series &amp;amp; Related posts&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 real Claude Code tips I learned in 2 months (previous post)&lt;/li&gt;
&lt;li&gt;Context Engineering 3-file pattern — Claude writing in my voice&lt;/li&gt;
&lt;li&gt;How to fully use Claude Code memory&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: My personal 2-month ops log. No ads, no affiliates.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jessinvestment.com/how-a-telegram-bot-lets-me-run-my-blog-from-anywhere/" rel="noopener noreferrer"&gt;jessinvestment.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Original with full infographics and visual structure: &lt;a href="https://jessinvestment.com/how-a-telegram-bot-lets-me-run-my-blog-from-anywhere/" rel="noopener noreferrer"&gt;https://jessinvestment.com/how-a-telegram-bot-lets-me-run-my-blog-from-anywhere/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>telegrambot</category>
      <category>automation</category>
      <category>blogautomation</category>
    </item>
    <item>
      <title>Claude Finance: Anthropic Packages Wall Street Workflows Into 10 Agents</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Thu, 14 May 2026 02:09:05 +0000</pubDate>
      <link>https://forem.com/jessyt/claude-finance-anthropic-packages-wall-street-workflows-into-10-agents-1gda</link>
      <guid>https://forem.com/jessyt/claude-finance-anthropic-packages-wall-street-workflows-into-10-agents-1gda</guid>
      <description>&lt;h1&gt;
  
  
  Claude Finance: Anthropic Packages Wall Street Workflows Into 10 Agents
&lt;/h1&gt;

&lt;p&gt;On May 5, Anthropic launched Claude Finance — its first domain-specific plugin bundle. Investment banking, private equity, and wealth management workflows packaged as 10 agent templates, shipped simultaneously as Claude Cowork and Claude Code plugins plus a Managed Agents Cookbook. A clear inflection point: from the horizontal-LLM era to the vertical-domain-package era.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Launched&lt;/strong&gt; May 5&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10 agent templates&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5 domains&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MS 365 integration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adoption time&lt;/strong&gt;: days, not months&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  01 — From "horizontal LLM" to "domain package"
&lt;/h2&gt;

&lt;p&gt;Claude used to be horizontal. Each team built its own domain workflows with custom prompts and context. Claude Finance flips that — Anthropic ships the buildout itself as a package.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;Claude Finance&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Horizontal&lt;/td&gt;
&lt;td&gt;Vertical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shape&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;General-purpose LLM&lt;/td&gt;
&lt;td&gt;10 agent templates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build work&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Teams build domain workflows themselves&lt;/td&gt;
&lt;td&gt;Ready-to-run reference architecture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Time&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Months&lt;/td&gt;
&lt;td&gt;Days&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  02 — 5 domains, 10 agent templates
&lt;/h2&gt;

&lt;p&gt;Here are the five domains Anthropic announced, with the headline task for each. Wall Street's most time-consuming work — pitchbook drafting, KYC file screening, month-end close — is squarely in the crosshairs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Financial analysis&lt;/strong&gt; — Market and competitor research, &lt;strong&gt;financial modeling&lt;/strong&gt;. The automation baseline for any analyst workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Investment banking&lt;/strong&gt; — M&amp;amp;A deal document review, &lt;strong&gt;pitch deck drafting&lt;/strong&gt;. The biggest headcount sink on the IB floor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Equity research&lt;/strong&gt; — Earnings transcript parsing, &lt;strong&gt;model updates&lt;/strong&gt;. Picks-and-shovels for earnings season.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Private equity&lt;/strong&gt; — Financial data review, &lt;strong&gt;scenario modeling&lt;/strong&gt;. Aimed at deal sourcing and diligence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wealth management&lt;/strong&gt; — Portfolio analysis, &lt;strong&gt;rebalancing recommendations&lt;/strong&gt;. Per-client advisory automation.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  03 — Each agent = skills + connectors + subagents
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Each agent template packages three things: skills, connectors, and subagents."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;skills&lt;/strong&gt; = domain knowledge and task instructions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;connectors&lt;/strong&gt; = governed data access (Bloomberg, internal DBs, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;subagents&lt;/strong&gt; = dedicated models for subtasks like comparable-company selection or methodology validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, it's not a single LLM call but a &lt;strong&gt;multi-agent collaboration pattern&lt;/strong&gt;, templated.&lt;/p&gt;

&lt;p&gt;Three distribution channels shipped together: Claude Cowork plugin + Claude Code plugin + Managed Agents Cookbook. The Microsoft 365 (Excel, PowerPoint, Word, Outlook) add-in is wired in too, so work that starts in the model continues straight into the deck or sheet without re-explaining context.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;5 domains&lt;/strong&gt; (IB · Equity · PE · WM · Analysis)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10 templates&lt;/strong&gt; (ready-to-run references)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 components per agent&lt;/strong&gt; (skills · connectors · subagents)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4 MS 365 add-ins&lt;/strong&gt; (Excel · PowerPoint · Word · Outlook)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  04 — Takeaway
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"From horizontal LLMs to vertical domain packages — Anthropic's first domain plugin pointing straight at finance is the signal."&lt;/p&gt;

&lt;p&gt;— jessinvestment, launch analysis&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This isn't just another model release — it's &lt;strong&gt;a domain workflow shipped as a ready-to-run reference package&lt;/strong&gt;. Watch for the next domain expansions (healthcare, legal, education).&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Official (primary)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://claude.com/plugins/finance" rel="noopener noreferrer"&gt;Finance — Claude Plugin (claude.com)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/news/finance-agents" rel="noopener noreferrer"&gt;Anthropic — Finance agents launch announcement (2026-05-05)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/anthropics/financial-services" rel="noopener noreferrer"&gt;anthropics/financial-services — GitHub reference repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclosure: Analysis based on official announcement. No first-hand usage. No ads or affiliate links.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Canonical: &lt;a href="https://jessinvestment.com/?p=511" rel="noopener noreferrer"&gt;https://jessinvestment.com/?p=511&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Original with full infographics and visual structure: &lt;a href="https://jessinvestment.com/?p=511" rel="noopener noreferrer"&gt;https://jessinvestment.com/?p=511&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>anthropic</category>
      <category>claudefinance</category>
      <category>aiagents</category>
    </item>
    <item>
      <title>Claude Code Stops Pausing Every Turn: /goal, /loop, /batch, /background</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Thu, 14 May 2026 02:02:12 +0000</pubDate>
      <link>https://forem.com/jessyt/claude-code-stops-pausing-every-turn-goal-loop-batch-background-24nb</link>
      <guid>https://forem.com/jessyt/claude-code-stops-pausing-every-turn-goal-loop-batch-background-24nb</guid>
      <description>&lt;h1&gt;
  
  
  Claude Code Stops Pausing Every Turn: /goal, /loop, /batch, /background
&lt;/h1&gt;

&lt;p&gt;Anthropic's official docs just bundled four new slash commands: &lt;code&gt;/goal&lt;/code&gt;, &lt;code&gt;/loop&lt;/code&gt;, &lt;code&gt;/batch&lt;/code&gt;, &lt;code&gt;/background&lt;/code&gt;. The old default — wait for user input every turn — just split into four autonomy modes: condition, interval, isolation, parallel. Here's what changed and when to reach for which.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;4 autonomy modes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;/goal&lt;/strong&gt; — condition-based&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;/loop&lt;/strong&gt; — v2.1.72+&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;/batch&lt;/strong&gt; — parallel PRs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;/background&lt;/strong&gt; — v2.1.139+&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  01 · From "pause every turn" to "autonomous until condition"
&lt;/h2&gt;

&lt;p&gt;Claude Code stopped at the end of every turn. You had to type "continue" over and over. Tasks like migrations that need N replies meant you couldn't step away. These four commands change that default assumption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Default — turn-by-turn&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Waits for user input every turn&lt;/li&gt;
&lt;li&gt;1 migration = N inputs&lt;/li&gt;
&lt;li&gt;Long task = stops the moment you leave&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Autonomous — auto × 4&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Condition · interval · isolation · parallel&lt;/li&gt;
&lt;li&gt;Until condition met / re-run on interval&lt;/li&gt;
&lt;li&gt;Detached session / 5–30 parallel PRs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  02 · Four commands at a glance
&lt;/h2&gt;

&lt;p&gt;The official docs spell out, per command, how the next turn starts and what stops it. Token usage and operational overhead are the axes that diverge most.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/goal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CONDITION&lt;/td&gt;
&lt;td&gt;Haiku eval, 4000 chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/loop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;INTERVAL&lt;/td&gt;
&lt;td&gt;v2.1.72+, 1m–1h&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/batch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;PARALLEL&lt;/td&gt;
&lt;td&gt;5–30 PRs, worktree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/background&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DETACHED&lt;/td&gt;
&lt;td&gt;v2.1.139+ agent view&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  03 · Autonomy has a price tag
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Running several sessions or subagents at once multiplies token usage."&lt;br&gt;
— official docs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Key point&lt;/strong&gt;: &lt;code&gt;/batch&lt;/code&gt; spins up 5–30 background subagents simultaneously, multiplying token usage. It also requires a git repository — each subagent works in an isolated worktree, then opens a PR. &lt;code&gt;/goal&lt;/code&gt; runs a fast eval model (Haiku by default) on every turn to check the condition, but the docs note that "eval tokens are negligible compared to main-turn spend."&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/background&lt;/code&gt; processes stop after 1 hour of inactivity, but state persists on disk so &lt;code&gt;claude respawn --all&lt;/code&gt; brings them back. &lt;code&gt;/loop&lt;/code&gt; only runs while the session is open and auto-expires after 7 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  04 · When to reach for each one
&lt;/h2&gt;

&lt;p&gt;Recommended scenarios from the official docs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/goal&lt;/code&gt;&lt;/strong&gt; — Migrate a module until tests pass, implement a design doc until acceptance criteria are met, work the backlog until the queue is empty — anything with a clear stop condition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/loop&lt;/code&gt;&lt;/strong&gt; — Poll a deploy until it's done, watch a PR for new reviews, check a long-running build — anything that needs periodic re-checks. Omit the interval and Claude picks one between 1 minute and 1 hour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/batch&lt;/code&gt;&lt;/strong&gt; — Codebase-wide migrations and mechanical refactors like "migrate src/ from Solid to React." Auto-decomposed into 5–30 independent units, each landing as a worktree-scoped PR.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/background&lt;/code&gt;&lt;/strong&gt; — Detach long-running tasks like "run the tests and fix what fails" so your terminal is free for other work. Track progress in the &lt;code&gt;claude agents&lt;/code&gt; view.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These four aren't mutually exclusive. Set a &lt;code&gt;/goal&lt;/code&gt; inside &lt;code&gt;/background&lt;/code&gt; so the detached session runs autonomously until the condition is met, or use &lt;code&gt;/loop&lt;/code&gt; to poll a &lt;code&gt;/goal&lt;/code&gt;'s progress on an interval.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The era of pause-every-turn-by-default is over. Now you pick which of four autonomy modes fits the job."&lt;br&gt;
— ediblog · release notes recap&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This isn't just new features — &lt;strong&gt;Claude Code's execution model itself has branched&lt;/strong&gt;. Map your work to the right autonomy mode ahead of time and you're set.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Primary · Official docs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/commands.md" rel="noopener noreferrer"&gt;Claude Code Commands reference — full slash command list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/goal.md" rel="noopener noreferrer"&gt;/goal — autonomous progress toward a completion condition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/scheduled-tasks.md" rel="noopener noreferrer"&gt;/loop — Scheduled tasks (v2.1.72+)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/agents.md" rel="noopener noreferrer"&gt;/batch — parallel subagent orchestration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/agent-view.md" rel="noopener noreferrer"&gt;/background — Agent view (v2.1.139+)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclosure: Based on official docs. No first-hand usage report. No ads, no affiliate links.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://jessinvestment.com/?p=510" rel="noopener noreferrer"&gt;jessinvestment.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Original with full infographics and visual structure: &lt;a href="https://jessinvestment.com/?p=510" rel="noopener noreferrer"&gt;https://jessinvestment.com/?p=510&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>anthropic</category>
      <category>slashcommands</category>
      <category>aiagents</category>
    </item>
    <item>
      <title>Claude Code Stops Pausing Every Turn: /goal, /loop, /batch, /background</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Wed, 13 May 2026 21:50:19 +0000</pubDate>
      <link>https://forem.com/jessyt/claude-code-stops-pausing-every-turn-goal-loop-batch-background-3lkm</link>
      <guid>https://forem.com/jessyt/claude-code-stops-pausing-every-turn-goal-loop-batch-background-3lkm</guid>
      <description>&lt;h1&gt;
  
  
  Claude Code no longer pauses every turn. /goal, /loop, /batch, /background
&lt;/h1&gt;

&lt;p&gt;The official docs bundled four commands. /goal · /loop · /batch · /background — the default model of &lt;strong&gt;waiting for the user every turn&lt;/strong&gt; just split into four autonomous modes: condition, interval, isolation, and parallel. Here's what changed and when to reach for which.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;4 autonomous modes&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/goal&lt;/code&gt; — condition-driven&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/loop&lt;/code&gt; — v2.1.72+, interval-driven&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/batch&lt;/code&gt; — parallel PRs&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/background&lt;/code&gt; — v2.1.139+, isolated session&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  01 · From "pause every turn" to "autonomous until a condition"
&lt;/h2&gt;

&lt;p&gt;Claude Code used to stop at the end of every turn. You typed "continue" each time. Migrations and other tasks needing N replies couldn't be left unattended. These four commands rewrite that default assumption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before — default behavior (turn-by-turn)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Waits for user every turn&lt;/li&gt;
&lt;li&gt;1 migration = N inputs&lt;/li&gt;
&lt;li&gt;Long jobs stall the moment you leave&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After — autonomous runtime (auto × 4)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Condition · interval · isolation · parallel&lt;/li&gt;
&lt;li&gt;Until the goal is met / on an interval&lt;/li&gt;
&lt;li&gt;Out-of-session / 5–30 parallel PRs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  02 · The four commands at a glance
&lt;/h2&gt;

&lt;p&gt;The docs spell out, per command, how the next turn begins and what stops it. The biggest axes of difference are token cost and operational overhead.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/goal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;condition&lt;/td&gt;
&lt;td&gt;Haiku eval, 4000 chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/loop&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;interval&lt;/td&gt;
&lt;td&gt;v2.1.72+, 1m–1h&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/batch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;parallel&lt;/td&gt;
&lt;td&gt;5–30 PRs, worktree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/background&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;isolation&lt;/td&gt;
&lt;td&gt;v2.1.139+ agent view&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  03 · Autonomy comes with a price tag
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"Running several sessions or subagents at once multiplies token usage." — official docs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The point&lt;/strong&gt;: &lt;code&gt;/batch&lt;/code&gt; spawns 5–30 background subagents at once, so token spend multiplies. It also requires a git repo — each subagent works in an isolated worktree and then opens a PR. &lt;code&gt;/goal&lt;/code&gt; runs a fast evaluation model (Haiku by default) every turn to check the condition, but the docs note that "evaluation tokens are negligible compared to main-turn spend."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;/background&lt;/code&gt; pauses after 1 hour of inactivity&lt;/strong&gt;, but its state lives on disk and can be resumed with &lt;code&gt;claude respawn --all&lt;/code&gt;. &lt;code&gt;/loop&lt;/code&gt; only runs while the session stays open and auto-expires after 7 days.&lt;/p&gt;

&lt;h2&gt;
  
  
  04 · Which command for which job
&lt;/h2&gt;

&lt;p&gt;Recommended scenarios from the docs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/goal&lt;/code&gt;&lt;/strong&gt; — Migrate a module until tests pass, implement a design doc until acceptance criteria are met, drain a backlog &lt;strong&gt;until the queue is empty&lt;/strong&gt; — anything with a clear stop condition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/loop&lt;/code&gt;&lt;/strong&gt; — Poll a deploy, watch a PR for review, check on long builds — anything you want re-run on a cadence. Omit the interval and Claude picks one dynamically between 1 minute and 1 hour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/batch&lt;/code&gt;&lt;/strong&gt; — Codebase-wide migrations and mechanical refactors like "migrate src/ from Solid to React." Claude auto-splits the work into 5–30 independent units, each producing a PR from its own worktree.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/background&lt;/code&gt;&lt;/strong&gt; — Push long-running work like "run the tests and fix the failures" out of the foreground so you can use the terminal for something else. Monitor progress with the &lt;code&gt;claude agents&lt;/code&gt; view.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These four aren't mutually exclusive. You can &lt;strong&gt;nest &lt;code&gt;/goal&lt;/code&gt; inside &lt;code&gt;/background&lt;/code&gt;&lt;/strong&gt; so a background session keeps running until the condition is met, or use &lt;code&gt;/loop&lt;/code&gt; to poll the progress of a &lt;code&gt;/goal&lt;/code&gt; periodically.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;"The era when pausing every turn was the default is over. Now you pick one of four autonomous modes instead."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This isn't just a feature drop. &lt;strong&gt;Claude Code's underlying execution model itself just forked.&lt;/strong&gt; Map your work onto the right autonomous mode in advance and you're set.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;Official docs (primary):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/commands.md" rel="noopener noreferrer"&gt;Claude Code Commands reference — full slash command list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/goal.md" rel="noopener noreferrer"&gt;/goal — autonomous run until a condition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/scheduled-tasks.md" rel="noopener noreferrer"&gt;/loop — Scheduled tasks (v2.1.72+)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/agents.md" rel="noopener noreferrer"&gt;/batch — parallel subagent orchestration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.claude.com/docs/en/agent-view.md" rel="noopener noreferrer"&gt;/background — Agent view (v2.1.139+)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Disclosure&lt;/strong&gt;: Summary based on official docs. No first-hand usage report. No ads or affiliate links.&lt;/p&gt;

&lt;p&gt;Canonical: &lt;a href="https://jessinvestment.com/claude-code-stops-pausing-every-turn-goal-loop-batch-background/" rel="noopener noreferrer"&gt;https://jessinvestment.com/claude-code-stops-pausing-every-turn-goal-loop-batch-background/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Original with full infographics and visual structure: &lt;a href="https://jessinvestment.com/claude-code-stops-pausing-every-turn-goal-loop-batch-background/" rel="noopener noreferrer"&gt;https://jessinvestment.com/claude-code-stops-pausing-every-turn-goal-loop-batch-background/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>slashcommands</category>
      <category>aitooling</category>
      <category>automation</category>
    </item>
    <item>
      <title>Three Months With Claude Code: What 35 Jobs and 26 Killed Ones Taught Me</title>
      <dc:creator>JessYT</dc:creator>
      <pubDate>Wed, 13 May 2026 14:15:09 +0000</pubDate>
      <link>https://forem.com/jessyt/three-months-with-claude-code-what-35-jobs-and-26-killed-ones-taught-me-3alf</link>
      <guid>https://forem.com/jessyt/three-months-with-claude-code-what-35-jobs-and-26-killed-ones-taught-me-3alf</guid>
      <description>&lt;h1&gt;
  
  
  Three Months With Claude Code: What 35 Jobs and 26 Killed Ones Taught Me
&lt;/h1&gt;

&lt;p&gt;Bottom line up front. &lt;strong&gt;AI support cut 90% of my writing time.&lt;/strong&gt; Three months in, I built 35 automation jobs and killed 26. Volume alone doesn't make money — that part I confirmed the hard way.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3 months in&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;35 jobs&lt;/strong&gt; active&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;26 killed&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;90% writing time saved&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  01 · What I have to show for 3 months, in numbers
&lt;/h2&gt;

&lt;p&gt;Start with the tangible stuff. This is the automation surface I've built up over three months. Every morning, launchd runs the lot without me touching anything.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;35 LaunchAgent jobs&lt;/strong&gt; (26 killed)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12 project folders&lt;/strong&gt; (5 blogs + α)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 custom skills&lt;/strong&gt; (only SKILL.md loads)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;19 slash commands&lt;/strong&gt; (&lt;code&gt;/run-daily&lt;/code&gt; &amp;amp; co.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On top of that: &lt;strong&gt;13 CLAUDE.md files&lt;/strong&gt; (1 main + 12 per-project) and &lt;strong&gt;3 hook scripts&lt;/strong&gt;. Every job ships with a wrapper, plist, and log file — so the actual file count is well past 100.&lt;/p&gt;

&lt;h2&gt;
  
  
  02 · Five things that actually save tokens
&lt;/h2&gt;

&lt;p&gt;In Claude Code, context tokens are the bill. After three months, these are the five habits that stuck.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/compact&lt;/code&gt; — the moment the context warning fires.&lt;/strong&gt; When the alert pops, hit it immediately. Keeps the gist, drops the rest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Split out agents — separate roles for detail and deep work.&lt;/strong&gt; Main session is the coordinator; details go to a sub-agent. Keeps the context from getting polluted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;/clear&lt;/code&gt; — every time the task switches.&lt;/strong&gt; Going from blog work to infra debugging? Clear, no exceptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep CLAUDE.md slim — only the must-reads.&lt;/strong&gt; It auto-loads every session. Push the rest into separate files and reference them only when the task calls for it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill split — load only SKILL.md.&lt;/strong&gt; My three custom skills sit in their own files. The full text stays out of context until needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  03 · The three I actually use every day
&lt;/h2&gt;

&lt;p&gt;Out of 19 commands, 3 skills, and a pile of plugins, these are the three I genuinely reach for daily.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;How&lt;/th&gt;
&lt;th&gt;ROI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A · Daily publish&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/run-daily ×5&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;per-blog &lt;code&gt;.claude/commands/run-daily.md&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;edit one line → all 5 blogs pick it up&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B · Writing quality&lt;/td&gt;
&lt;td&gt;&lt;code&gt;blog-style-guide&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9 base patterns + 4 evolved patterns in one file&lt;/td&gt;
&lt;td&gt;tweak the guide once → every post follows the new rule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C · Design&lt;/td&gt;
&lt;td&gt;&lt;code&gt;frontend-design&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;installed 4/26, generates v2 visual components&lt;/td&gt;
&lt;td&gt;3–5 polished components per post, on demand&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;frontend-design&lt;/code&gt; plugin in particular changed what I can ship. Before it, I was hand-rolling CSS and the readability suffered. Now Hero, VS, and impact blocks come out clean in one pass. &lt;strong&gt;Eleven days in, the lift in visual quality is immediate.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  04 · Automation ≠ revenue — the hardest lesson
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"I assumed automated posts would mean automated income. Three months later, it's the opposite."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Root cause&lt;/strong&gt;: automation cuts repetition cost. Revenue is built on trust. You can ship 5 posts a day, but if every one reads like a textbook, readers click and bounce.&lt;/p&gt;

&lt;p&gt;Look at the asset count again. &lt;strong&gt;35 active&lt;/strong&gt; + &lt;strong&gt;26 killed&lt;/strong&gt;. Those 26 are the ones I built on the assumption that volume alone would pay off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Early assumption (26 killed jobs):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Auto-publish daily"&lt;/li&gt;
&lt;li&gt;Generic / textbook tone&lt;/li&gt;
&lt;li&gt;Conversion flatlined&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;After the pivot (35 active jobs):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Experiment logs + lived experience&lt;/li&gt;
&lt;li&gt;Drafts → my own review&lt;/li&gt;
&lt;li&gt;Reads trending up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automation cuts repetition cost. Revenue compounds from trust. Two completely different mechanisms — I had to kill 26 jobs to internalize that. Volume without trust is worse than zero posts.&lt;/p&gt;

&lt;h2&gt;
  
  
  05 · CLAUDE.md ≠ memory — keep them separate
&lt;/h2&gt;

&lt;p&gt;Two different contexts auto-load every session. Mix them up and things break.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Criteria&lt;/th&gt;
&lt;th&gt;CLAUDE.md (project file)&lt;/th&gt;
&lt;th&gt;Memory (auto-memory)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Holds&lt;/td&gt;
&lt;td&gt;Operating rules, publish rules, incident logs&lt;/td&gt;
&lt;td&gt;Meta info, persona, where external systems live&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update freq&lt;/td&gt;
&lt;td&gt;Often (every time something breaks)&lt;/td&gt;
&lt;td&gt;Occasionally&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trust&lt;/td&gt;
&lt;td&gt;High — source of truth for ops&lt;/td&gt;
&lt;td&gt;Supporting — meta only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The split rule is simple. &lt;strong&gt;"This needs to work in the next session"&lt;/strong&gt; goes in CLAUDE.md. &lt;strong&gt;"Who the user is, where they work"&lt;/strong&gt; goes in memory. Don't trust memory for operating rules — always pin them in CLAUDE.md. I caused several incidents over three months by getting this wrong.&lt;/p&gt;

&lt;p&gt;One more thing: don't put it in either place. &lt;strong&gt;Concrete values (cash balances, prices) or transient state.&lt;/strong&gt; They go stale fast — push them to a file or a database instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  06 · Pull quote
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"You still need a human's lived experience. Trust beats volume. But AI support did cut 90% of my writing time."&lt;/p&gt;

&lt;p&gt;— Eddie, 3 months with Claude Code&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  07 · Six follow-ups I'll go deeper on
&lt;/h2&gt;

&lt;p&gt;This post is the index. Each topic gets its own case-study post next.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Token saving deep dive&lt;/strong&gt; — each of the 5 habits, in practice&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slash commands deep dive&lt;/strong&gt; — how &lt;code&gt;/run-daily&lt;/code&gt; differs across 5 blogs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 custom skills deep dive&lt;/strong&gt; — why I built them, how they're shaped&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Running CLAUDE.md&lt;/strong&gt; — how I let incident logs accumulate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;frontend-design plugin&lt;/strong&gt; — the 30-day review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hooks, memory, agents&lt;/strong&gt; — the rest of the stack&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Productivity and trust aren't substitutes. &lt;strong&gt;AI buys back the time. The human fills in the trust.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: personal 3-month retrospective. No ads, no affiliates.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Originally published at &lt;a href="https://jessinvestment.com/three-months-with-claude-code-what-35-jobs-and-26-killed-ones-taught-me/" rel="noopener noreferrer"&gt;jessinvestment.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>aicoding</category>
      <category>automation</category>
      <category>claudecode</category>
      <category>developerproductivity</category>
    </item>
  </channel>
</rss>
