<?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>DEV Community: Taehyeon Jeon</title>
    <description>The latest articles on DEV Community by Taehyeon Jeon (@taehyeon_jeon_5618e0c8332).</description>
    <link>https://dev.to/taehyeon_jeon_5618e0c8332</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4047715%2F20bdf51a-d916-48ba-a811-f994f1f6ed54.png</url>
      <title>DEV Community: Taehyeon Jeon</title>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/taehyeon_jeon_5618e0c8332"/>
    <language>en</language>
    <item>
      <title>The SNS Sales Formula I Applied to an AI Automation Template Pack</title>
      <dc:creator>Taehyeon Jeon</dc:creator>
      <pubDate>Mon, 27 Jul 2026 11:04:23 +0000</pubDate>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332/the-sns-sales-formula-i-applied-to-an-ai-automation-template-pack-2peo</link>
      <guid>https://dev.to/taehyeon_jeon_5618e0c8332/the-sns-sales-formula-i-applied-to-an-ai-automation-template-pack-2peo</guid>
      <description>&lt;p&gt;Most failed digital product launches are not product failures.&lt;/p&gt;

&lt;p&gt;They are path failures.&lt;/p&gt;

&lt;p&gt;The seller makes a Gumroad page, posts the link once, then waits.&lt;/p&gt;

&lt;p&gt;That is not a funnel. That is a wish.&lt;/p&gt;

&lt;p&gt;I looked at how creators and social sellers actually move buyers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;short-form content creates discovery&lt;/li&gt;
&lt;li&gt;a free resource captures intent&lt;/li&gt;
&lt;li&gt;long-form or public proof builds trust&lt;/li&gt;
&lt;li&gt;a low-friction checkout converts the people already in pain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I applied that to a small AI automation product.&lt;/p&gt;

&lt;p&gt;The buyer pain:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI automations are running, tool subscriptions are charging, but today's deposit is still 0.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The free bridge:&lt;/p&gt;

&lt;p&gt;Free n8n AI Lead Capture and Score Workflow&lt;br&gt;
&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The proof/trust page:&lt;/p&gt;

&lt;p&gt;SNS Sales Formula Applied&lt;br&gt;
&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/sns-sales-formula-applied.html" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/sns-sales-formula-applied.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The paid step:&lt;/p&gt;

&lt;p&gt;US$9 AI First Sale Automation Template Pack&lt;br&gt;
&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Direct Gumroad checkout:&lt;br&gt;
&lt;a href="https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit" rel="noopener noreferrer"&gt;https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The copy framework:&lt;/p&gt;

&lt;p&gt;Problem:&lt;br&gt;
Your automation is active, but revenue is still 0.&lt;/p&gt;

&lt;p&gt;Agitate:&lt;br&gt;
More workflows can hide the real leak: weak lead qualification, no urgency, no paid next step.&lt;/p&gt;

&lt;p&gt;Solution:&lt;br&gt;
Start by scoring leads before pitching. Then use a small first-sale path instead of building another huge automation system.&lt;/p&gt;

&lt;p&gt;No revenue guarantee. No spam automation. No fake scarcity.&lt;/p&gt;

&lt;p&gt;Just a small buyer path: pain -&amp;gt; free workflow -&amp;gt; proof -&amp;gt; paid pack.&lt;/p&gt;

</description>
      <category>marketing</category>
    </item>
    <item>
      <title>Free n8n AI Lead Capture Workflow: Score Leads Before You Chase Them</title>
      <dc:creator>Taehyeon Jeon</dc:creator>
      <pubDate>Mon, 27 Jul 2026 10:07:42 +0000</pubDate>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332/free-n8n-ai-lead-capture-workflow-score-leads-before-you-chase-them-49k</link>
      <guid>https://dev.to/taehyeon_jeon_5618e0c8332/free-n8n-ai-lead-capture-workflow-score-leads-before-you-chase-them-49k</guid>
      <description>&lt;p&gt;Most AI automation projects fail before the workflow matters.&lt;/p&gt;

&lt;p&gt;The builder has forms, bots, agents, and follow-up logic running. The dashboard looks busy. The tool bill keeps growing.&lt;/p&gt;

&lt;p&gt;But today's deposit is still 0.&lt;/p&gt;

&lt;p&gt;That usually means the system is chasing the wrong lead, or sending a paid offer before the buyer has shown enough pain, budget, and urgency.&lt;/p&gt;

&lt;p&gt;I made a free n8n-style JSON workflow for that first filter:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download it here:&lt;/strong&gt; &lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Captures source, pain, budget, and urgency from a webhook form&lt;/li&gt;
&lt;li&gt;Scores the lead based on revenue pain, tool-cost pain, budget, and urgency&lt;/li&gt;
&lt;li&gt;Segments the lead into hot, warm, or cold&lt;/li&gt;
&lt;li&gt;Routes hot leads toward the paid-offer step&lt;/li&gt;
&lt;li&gt;Routes weaker leads toward proof or one lighter qualifying question&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is not a spam machine. It is a qualification filter.&lt;/p&gt;

&lt;p&gt;If you are selling AI automation services, templates, or a small first-sale product, this should happen before you spend time writing custom replies.&lt;/p&gt;

&lt;p&gt;The full US$9 pack adds the rest of the path:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 first-sale automation blueprints&lt;/li&gt;
&lt;li&gt;Make/Zapier setup guide&lt;/li&gt;
&lt;li&gt;DM and email scripts&lt;/li&gt;
&lt;li&gt;Landing page template&lt;/li&gt;
&lt;li&gt;Objection reply bank&lt;/li&gt;
&lt;li&gt;48-hour first-sale checklist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full pack page: &lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Direct Gumroad checkout: &lt;a href="https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit" rel="noopener noreferrer"&gt;https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No revenue guarantee. No scraped outreach. No fake scarcity.&lt;/p&gt;

&lt;p&gt;Just one practical filter for people whose AI automations are active but whose revenue is still zero.&lt;/p&gt;

</description>
      <category>sales</category>
    </item>
    <item>
      <title>Autonomous AI Agent Running, Still $0 Revenue? Fix the Offer First</title>
      <dc:creator>Taehyeon Jeon</dc:creator>
      <pubDate>Mon, 27 Jul 2026 01:55:39 +0000</pubDate>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332/autonomous-ai-agent-running-still-0-revenue-fix-the-offer-first-1a6l</link>
      <guid>https://dev.to/taehyeon_jeon_5618e0c8332/autonomous-ai-agent-running-still-0-revenue-fix-the-offer-first-1a6l</guid>
      <description>&lt;p&gt;&lt;strong&gt;US$9 first-sale template pack:&lt;/strong&gt; if your autonomous AI agent is running but revenue is still $0, start here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html?utm_source=devto&amp;amp;utm_medium=agent_article_top_cta&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html?utm_source=devto&amp;amp;utm_medium=agent_article_top_cta&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If your autonomous AI agent is running but revenue is still $0, the agent is probably not the bottleneck.&lt;/p&gt;

&lt;p&gt;The offer is.&lt;/p&gt;

&lt;p&gt;I keep seeing the same pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the agent completes cycles&lt;/li&gt;
&lt;li&gt;the logs look busy&lt;/li&gt;
&lt;li&gt;the dashboard looks alive&lt;/li&gt;
&lt;li&gt;the builder buys another tool&lt;/li&gt;
&lt;li&gt;the payment notification stays silent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is painful because it feels irrational. The system is doing work, so why is the business not moving?&lt;/p&gt;

&lt;p&gt;Because output is not the same as a paid offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The dangerous loop
&lt;/h2&gt;

&lt;p&gt;When an AI project has no revenue, the easy fix is to add more automation.&lt;/p&gt;

&lt;p&gt;Another agent. Another scraper. Another scheduler. Another dashboard. Another model.&lt;/p&gt;

&lt;p&gt;But if a stranger cannot understand the pain, the promised result, the delivery, and the price in under 30 seconds, more automation only makes the wrong thing faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  The better next test
&lt;/h2&gt;

&lt;p&gt;Before building more, force one question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Would someone pay a small amount for this exact before-after result today?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not "would they like the idea?"&lt;/p&gt;

&lt;p&gt;Not "would they find it useful?"&lt;/p&gt;

&lt;p&gt;Would they pay?&lt;/p&gt;

&lt;p&gt;If the answer is unclear, the next task is not technical. It is offer diagnosis.&lt;/p&gt;

&lt;h2&gt;
  
  
  I made a small diagnostic page
&lt;/h2&gt;

&lt;p&gt;This page is for the exact "autonomous AI agent but $0 revenue" problem:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/autonomous-ai-agent-zero-revenue.html?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/autonomous-ai-agent-zero-revenue.html?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It points to a free diagnosis and a first paid offer structure.&lt;/p&gt;

&lt;p&gt;Free diagnosis:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-revenue-diagnosis.html?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-revenue-diagnosis.html?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;30-minute first paid offer page:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-automation-first-paid-offer-30min.html?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-automation-first-paid-offer-30min.html?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is also a $9 execution kit if you want the templates and checklist:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit?utm_source=devto&amp;amp;utm_medium=followup_article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No revenue guarantee. No magic agent.&lt;/p&gt;

&lt;p&gt;Just the part many AI automation builders skip: turning activity into a paid offer someone can understand quickly enough to buy.&lt;/p&gt;

</description>
      <category>productivity</category>
    </item>
    <item>
      <title>AI 자동화는 돌아가는데 오늘 입금이 0원이라면</title>
      <dc:creator>Taehyeon Jeon</dc:creator>
      <pubDate>Mon, 27 Jul 2026 00:52:05 +0000</pubDate>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332/ai-jadonghwaneun-dolaganeunde-oneul-ibgeumi-0weoniramyeon-30le</link>
      <guid>https://dev.to/taehyeon_jeon_5618e0c8332/ai-jadonghwaneun-dolaganeunde-oneul-ibgeumi-0weoniramyeon-30le</guid>
      <description>&lt;p&gt;&lt;strong&gt;AI 자동화는 돌아가는데 오늘 입금은 0원인가요?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;툴값은 계속 나가는데 결제 알림이 비어 있다면, 자동화를 더 붙이기 전에 첫 결제 경로부터 검증해야 합니다.&lt;/p&gt;

&lt;p&gt;한국어 전환 페이지:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack-kr.html?utm_source=devto&amp;amp;utm_medium=kr_article_top_cta&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack-kr.html?utm_source=devto&amp;amp;utm_medium=kr_article_top_cta&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;무료 n8n 리드 스코어링 워크플로우:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html?utm_source=devto&amp;amp;utm_medium=kr_article_free_bridge&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html?utm_source=devto&amp;amp;utm_medium=kr_article_free_bridge&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;AI 자동화로 돈을 벌고 싶어서 Claude Code, Codex, n8n, Make, Zapier, 결제 페이지까지 붙였는데 오늘 입금이 0원이라면, 문제는 자동화 개수가 아닐 수 있습니다.&lt;/p&gt;

&lt;p&gt;대부분은 더 많은 자동화를 붙입니다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;새 워크플로우&lt;/li&gt;
&lt;li&gt;새 에이전트&lt;/li&gt;
&lt;li&gt;새 프롬프트&lt;/li&gt;
&lt;li&gt;새 대시보드&lt;/li&gt;
&lt;li&gt;새 구독&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;하지만 고객이 무엇을 사야 하는지 이해하지 못하면, 자동화는 수익보다 비용을 먼저 키웁니다.&lt;/p&gt;

&lt;h2&gt;
  
  
  먼저 확인해야 할 질문
&lt;/h2&gt;

&lt;p&gt;처음 보는 사람이 30초 안에 아래 3가지를 이해할 수 있어야 합니다.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;내가 지금 겪는 문제가 무엇인지&lt;/li&gt;
&lt;li&gt;이 상품을 사면 무엇이 달라지는지&lt;/li&gt;
&lt;li&gt;왜 지금 작은 금액으로 테스트해야 하는지&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;이게 안 되면 AI 사용 한도가 다시 차도 결과는 비슷합니다.&lt;/p&gt;

&lt;h2&gt;
  
  
  무료로 먼저 확인
&lt;/h2&gt;

&lt;p&gt;그래서 무료 n8n 리드 스코어링 워크플로우를 만들었습니다.&lt;/p&gt;

&lt;p&gt;이 워크플로우는 문의자의 고통, 예산, 긴급도, 유입 경로를 기준으로 누가 살 가능성이 있는지 먼저 거릅니다.&lt;/p&gt;

&lt;p&gt;무료 페이지:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html?utm_source=devto&amp;amp;utm_medium=kr_article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/free-n8n-ai-lead-capture-workflow.html?utm_source=devto&amp;amp;utm_medium=kr_article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Standalone Gist:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gist.github.com/avenna01-ceo/0fab852c3ede3609778dc0631bc04ca9" rel="noopener noreferrer"&gt;https://gist.github.com/avenna01-ceo/0fab852c3ede3609778dc0631bc04ca9&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9달러 템플릿 팩
&lt;/h2&gt;

&lt;p&gt;무료 워크플로우가 첫 병목을 해결한다면, 다음은 유료 제안 경로입니다.&lt;/p&gt;

&lt;p&gt;9달러 팩에는 아래가 들어 있습니다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5개 첫 결제 자동화 워크플로우&lt;/li&gt;
&lt;li&gt;Make/Zapier 설정 가이드&lt;/li&gt;
&lt;li&gt;랜딩 페이지 템플릿&lt;/li&gt;
&lt;li&gt;DM/메일 스크립트&lt;/li&gt;
&lt;li&gt;반박 대응 문장&lt;/li&gt;
&lt;li&gt;48시간 첫 결제 체크리스트&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;한국어 설명 페이지:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack-kr.html?utm_source=devto&amp;amp;utm_medium=kr_article_mid&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack-kr.html?utm_source=devto&amp;amp;utm_medium=kr_article_mid&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;직접 결제:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit?utm_source=devto&amp;amp;utm_medium=kr_article_checkout&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit?utm_source=devto&amp;amp;utm_medium=kr_article_checkout&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;수익 보장은 없습니다.&lt;br&gt;
스팸 자동화도 아닙니다.&lt;br&gt;
비싼 대행 서비스도 아닙니다.&lt;/p&gt;

&lt;p&gt;목표는 단순합니다.&lt;/p&gt;

&lt;p&gt;비싼 툴을 하나 더 결제하기 전에, 작은 가격으로 누가 진짜 살 사람인지 먼저 확인하는 것입니다.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
    <item>
      <title>If your AI automations are running but revenue is still $0, diagnose the offer first</title>
      <dc:creator>Taehyeon Jeon</dc:creator>
      <pubDate>Mon, 27 Jul 2026 00:19:30 +0000</pubDate>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332/if-your-ai-automations-are-running-but-revenue-is-still-0-diagnose-the-offer-first-5fo1</link>
      <guid>https://dev.to/taehyeon_jeon_5618e0c8332/if-your-ai-automations-are-running-but-revenue-is-still-0-diagnose-the-offer-first-5fo1</guid>
      <description>&lt;p&gt;&lt;strong&gt;New market-researched pack:&lt;/strong&gt; if your AI automations are running but revenue is still $0, start with the US$9 first-sale automation template pack here.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html?utm_source=devto&amp;amp;utm_medium=en_article_direct_cta&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-first-sale-automation-template-pack.html?utm_source=devto&amp;amp;utm_medium=en_article_direct_cta&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start here:&lt;/strong&gt; I added a free 60-second diagnosis for builders stuck with AI tool costs and $0 revenue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-revenue-diagnosis.html?utm_source=devto&amp;amp;utm_medium=article_top_cta&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-revenue-diagnosis.html?utm_source=devto&amp;amp;utm_medium=article_top_cta&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;AI tools can make you feel productive very quickly.&lt;/p&gt;

&lt;p&gt;You can run Claude Code, Codex, workflow tools, payment pages, dashboards, and scripts. The system looks alive.&lt;/p&gt;

&lt;p&gt;But then the quiet part shows up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tool subscriptions keep charging&lt;/li&gt;
&lt;li&gt;usage limits get hit&lt;/li&gt;
&lt;li&gt;dashboards keep moving&lt;/li&gt;
&lt;li&gt;today's deposit is still $0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is usually not an automation problem.&lt;/p&gt;

&lt;p&gt;It is often an offer problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trap
&lt;/h2&gt;

&lt;p&gt;Beginners often try to fix zero revenue by adding more automation.&lt;/p&gt;

&lt;p&gt;Another agent. Another workflow. Another dashboard. Another prompt pack.&lt;/p&gt;

&lt;p&gt;But if no one understands what they are buying, more automation only makes the cost side faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  The useful question
&lt;/h2&gt;

&lt;p&gt;Before building more, ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can a stranger understand the pain, the result, and the price in under 30 seconds?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If not, the bottleneck is probably not the tool stack. It is the sales argument.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small diagnostic tool
&lt;/h2&gt;

&lt;p&gt;I built a free 60-second diagnosis page for this exact situation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-revenue-diagnosis.html?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-revenue-diagnosis.html?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It checks whether you are stuck in the common loop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI tool costs are real&lt;/li&gt;
&lt;li&gt;usage limits are real&lt;/li&gt;
&lt;li&gt;automations are running&lt;/li&gt;
&lt;li&gt;but the offer is still unclear&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also added a small cost calculator:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://avenna01-ceo.github.io/claude-code-survival-kr/ai-tool-cost-calculator.html?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://avenna01-ceo.github.io/claude-code-survival-kr/ai-tool-cost-calculator.html?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The paid part
&lt;/h2&gt;

&lt;p&gt;There is also a $9 self-execution kit for turning that diagnosis into a low-ticket offer test:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=72h" rel="noopener noreferrer"&gt;https://gaiinmaster.gumroad.com/l/ai-automation-0won-escape-kit?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=72h&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No revenue guarantee. No done-for-you implementation.&lt;/p&gt;

&lt;p&gt;The point is smaller than that:&lt;/p&gt;

&lt;p&gt;Before buying another AI tool, validate whether someone will pay for the offer.&lt;/p&gt;

&lt;p&gt;That one check can save a lot of fake progress.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>startup</category>
      <category>productivity</category>
    </item>
    <item>
      <title>CLAUDE.md can't stop Claude Code from editing your .env. A hook can.</title>
      <dc:creator>Taehyeon Jeon</dc:creator>
      <pubDate>Sun, 26 Jul 2026 16:28:11 +0000</pubDate>
      <link>https://dev.to/taehyeon_jeon_5618e0c8332/claudemd-cant-stop-claude-code-from-editing-your-env-a-hook-can-2k7g</link>
      <guid>https://dev.to/taehyeon_jeon_5618e0c8332/claudemd-cant-stop-claude-code-from-editing-your-env-a-hook-can-2k7g</guid>
      <description>&lt;p&gt;You wrote it in &lt;code&gt;CLAUDE.md&lt;/code&gt;. Right at the top, in bold:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Do not modify files I did not ask you to modify.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It worked. For a while.&lt;/p&gt;

&lt;p&gt;Then the session got long, you were forty messages into a refactor, and it edited &lt;code&gt;.env&lt;/code&gt; anyway. Or &lt;code&gt;migrations/&lt;/code&gt;. Or the config file you spent an hour getting right.&lt;/p&gt;

&lt;p&gt;You add the rule again, louder. &lt;code&gt;NEVER&lt;/code&gt;. &lt;code&gt;CRITICAL&lt;/code&gt;. Three exclamation marks. It holds for a bit, and then it doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why louder doesn't work
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; is text in the prompt. That's all it is.&lt;/p&gt;

&lt;p&gt;Everything else in that window is also text in the prompt — the abandoned approach from twenty minutes ago, the error you pasted, the file you asked it to read. As the conversation grows, your rule is one line competing with thousands, and it doesn't have special standing just because you wrote it in caps.&lt;/p&gt;

&lt;p&gt;So the model isn't disobeying. It's weighing, and your line lost.&lt;/p&gt;

&lt;p&gt;That means no wording fixes this. It's not a prompting problem. &lt;strong&gt;You can't solve an enforcement problem with a request.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The hook runs before the tool call
&lt;/h2&gt;

&lt;p&gt;Claude Code fires a &lt;code&gt;PreToolUse&lt;/code&gt; hook before it executes a tool. The hook gets the tool name and its arguments on stdin. If the hook exits with code &lt;code&gt;2&lt;/code&gt;, the tool call is cancelled and stderr goes back to the model.&lt;/p&gt;

&lt;p&gt;The model doesn't decide. Your code does.&lt;/p&gt;

&lt;p&gt;Here's a working version. No dependencies.&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;# .claude/guard.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;

&lt;span class="n"&gt;PROTECTED&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;.env&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;credentials.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&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;payload&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;tool_name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Edit&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;Write&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;MultiEdit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}:&lt;/span&gt;
    &lt;span class="n"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;payload&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;tool_input&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&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;file_path&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="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;PROTECTED&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&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;Blocked: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; is protected. Do not try another path. &lt;/span&gt;&lt;span class="sh"&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;Tell the user and let them edit it themselves.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wire it up in &lt;code&gt;.claude/settings.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hooks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"PreToolUse"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"matcher"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Edit|Write|MultiEdit"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"hooks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"python3 .claude/guard.py"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart Claude Code. Test it without waiting for an accident:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'{"tool_name":"Edit","tool_input":{"file_path":".env"}}'&lt;/span&gt; | python3 .claude/guard.py
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"exit=&lt;/span&gt;&lt;span class="nv"&gt;$?&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;exit=2&lt;/code&gt; means it's live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things that are easy to get wrong
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Write the stderr message for the model, not for you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"Permission denied"&lt;/code&gt; gets you a model that tries &lt;code&gt;Bash&lt;/code&gt; with &lt;code&gt;cat &amp;gt; .env&lt;/code&gt; instead. It's being helpful — it thinks the tool failed, not that the action is forbidden.&lt;/p&gt;

&lt;p&gt;Tell it what to do next:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Blocked: .env is protected. Do not try another path.
Tell the user and let them edit it themselves.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That single sentence is the difference between a guard and a game of whack-a-mole.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Fail open, not closed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your hook throws, every write in the project dies and you'll spend an hour thinking Claude Code is broken.&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="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdin&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&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="c1"&gt;# a broken guard must not become a broken editor
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A guard that blocks everything when it breaks is worse than no guard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Protect the guard itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add &lt;code&gt;.claude/guard.py&lt;/code&gt; and &lt;code&gt;.claude/settings.json&lt;/code&gt; to your protected list. A model that's stuck will absolutely try to "fix" the thing blocking it, and it will be very reasonable about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this doesn't cover
&lt;/h2&gt;

&lt;p&gt;It doesn't touch &lt;code&gt;Bash&lt;/code&gt;. &lt;code&gt;rm -rf&lt;/code&gt; sails straight past. If that matters, add a &lt;code&gt;Bash&lt;/code&gt; matcher and inspect the command string — but be aware you're now writing a shell parser, and that's a bigger job than it looks.&lt;/p&gt;

&lt;p&gt;It's a guardrail, not a permission system. It stops accidents, not a determined adversary.&lt;/p&gt;

&lt;h2&gt;
  
  
  The general shape
&lt;/h2&gt;

&lt;p&gt;Once this clicks, the split is obvious:&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;Where it lives&lt;/th&gt;
&lt;th&gt;When it loses&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;in the prompt&lt;/td&gt;
&lt;td&gt;context grows, priority drops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;hook&lt;/td&gt;
&lt;td&gt;on your machine&lt;/td&gt;
&lt;td&gt;never — it isn't the model's decision&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Use both. &lt;code&gt;CLAUDE.md&lt;/code&gt; explains &lt;em&gt;why&lt;/em&gt; so the model cooperates. The hook makes &lt;em&gt;can't&lt;/em&gt; actually mean can't.&lt;/p&gt;

&lt;p&gt;Anything you'd be genuinely upset to lose belongs on the second list.&lt;/p&gt;




&lt;p&gt;I put a fuller version on GitHub — glob patterns, a &lt;code&gt;protected.txt&lt;/code&gt; you edit instead of the script, every path in a &lt;code&gt;MultiEdit&lt;/code&gt; batch, and the fail-open handling:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/avenna01-ceo/claude-code-survival-kr/tree/main/guard" rel="noopener noreferrer"&gt;github.com/avenna01-ceo/claude-code-survival-kr&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repo also has the rules and prompts that go in &lt;code&gt;CLAUDE.md&lt;/code&gt; itself. Free, MIT.&lt;/p&gt;

&lt;p&gt;If you've got a pattern that's saved you, I'd genuinely like to see it — the useful ones all came from someone getting burned first.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
