<?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: lin zhongjiong</title>
    <description>The latest articles on DEV Community by lin zhongjiong (@lin_zhongjiong_3be1375c95).</description>
    <link>https://dev.to/lin_zhongjiong_3be1375c95</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%2F3982453%2F1df3825d-4181-4007-bd05-50f6a05b7132.png</url>
      <title>DEV Community: lin zhongjiong</title>
      <link>https://dev.to/lin_zhongjiong_3be1375c95</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lin_zhongjiong_3be1375c95"/>
    <language>en</language>
    <item>
      <title>How to Build Autonomous AI Agent Skills for Claude Code</title>
      <dc:creator>lin zhongjiong</dc:creator>
      <pubDate>Sat, 13 Jun 2026 09:27:54 +0000</pubDate>
      <link>https://dev.to/lin_zhongjiong_3be1375c95/how-to-build-autonomous-ai-agent-skills-for-claude-code-6h2</link>
      <guid>https://dev.to/lin_zhongjiong_3be1375c95/how-to-build-autonomous-ai-agent-skills-for-claude-code-6h2</guid>
      <description>&lt;h1&gt;
  
  
  How to Build Autonomous AI Agent Skills for Claude Code: A Practical Guide
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;2000 words · 8 min read&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Last week I ran an experiment: can an AI agent, running autonomously as a set of Claude Code skills, actually make money on the internet? The answer so far is nuanced — and the journey taught me more about skill design than any documentation could.&lt;/p&gt;

&lt;p&gt;Here's what I learned about building effective, autonomous Claude Code skills that actually ship work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Claude Code Skills Actually Are
&lt;/h2&gt;

&lt;p&gt;Forget the marketing. A "skill" in Claude Code is simply a markdown file with instructions that the AI follows. It lives in &lt;code&gt;~/.claude/skills/&lt;/code&gt; and gets loaded at session start. That's it.&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="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;my-skill&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;What this skill does&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# My Skill&lt;/span&gt;

&lt;span class="gu"&gt;## Steps&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Do this
&lt;span class="p"&gt;2.&lt;/span&gt; Then that
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The magic isn't in the format. It's in how you structure the instructions. A well-written skill makes the agent 10x more effective. A badly-written one produces endless loops of confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Layers of Effective Skills
&lt;/h2&gt;

&lt;p&gt;After building several skills that actually ship work (and several that don't), I've found effective skills need three layers:&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1: The Guardrails
&lt;/h3&gt;

&lt;p&gt;The most important part of any autonomous skill is what it should NOT do. Without explicit guardrails, agents drift. They optimize for the wrong thing. They burn tokens on dead ends.&lt;/p&gt;

&lt;p&gt;My money-making experiment taught me this painfully. The translation skill (L1) worked because it had hard constraints: 2-day deadline, 500K token budget, stop if no PRs merged in 1.5 days. The bounty-hunting skill (L2) burned tokens faster because I didn't constrain the search space tightly enough.&lt;/p&gt;

&lt;p&gt;Every effective skill I've built starts with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Deadline&lt;/strong&gt;: When to stop trying&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Token budget&lt;/strong&gt;: Maximum burn before circuit-breaker&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Success criteria&lt;/strong&gt;: What "done" means (be specific)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Failure modes&lt;/strong&gt;: What to do when things go wrong
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Stop-Loss&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Max token budget: 500,000
&lt;span class="p"&gt;-&lt;/span&gt; Circuit breaker: if 0 PRs merged after 1.5 days, stop
&lt;span class="p"&gt;-&lt;/span&gt; Deadline: 2 days
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Layer 2: The Workflow
&lt;/h3&gt;

&lt;p&gt;Autonomous agents need explicit decision trees. Not "try your best" — that's where they fail. They need "if X, do Y. If not X, do Z."&lt;/p&gt;

&lt;p&gt;Here's the workflow that worked for my translation skill:&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="gu"&gt;### Phase 1: Find Opportunities (Day 1 morning)&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Search GitHub for repos with "help wanted" + "translation" labels
&lt;span class="p"&gt;2.&lt;/span&gt; Filter: active commits &amp;lt; 1 week, &amp;lt; 500 lines to translate
&lt;span class="p"&gt;3.&lt;/span&gt; Prioritize Chinese-English pairs (native advantage)

&lt;span class="gu"&gt;### Phase 2: Execute (Day 1)&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Fork the repo
&lt;span class="p"&gt;2.&lt;/span&gt; Pick 1-3 small issues (quality over quantity)
&lt;span class="p"&gt;3.&lt;/span&gt; Translate and submit PR

&lt;span class="gu"&gt;### Phase 3: Follow Up (Day 2)&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Check PR status every 4-6 hours
&lt;span class="p"&gt;2.&lt;/span&gt; Respond to maintainer feedback within 1 hour
&lt;span class="p"&gt;3.&lt;/span&gt; If merged: check for more translation needs
&lt;span class="p"&gt;4.&lt;/span&gt; If stale after 24h: ping once, then move on
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key insight: each phase has a clear deliverable and a time box. The agent knows exactly what "done" looks like for each step.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3: The Reflection Loop
&lt;/h3&gt;

&lt;p&gt;This is where most skills fall short. An autonomous agent needs to learn from its own output. After each run, my skills append a reflection:&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="gu"&gt;## Reflection&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Income: actual vs expected, gap reason
&lt;span class="p"&gt;2.&lt;/span&gt; Cost: token consumption, most expensive steps
&lt;span class="p"&gt;3.&lt;/span&gt; Bottleneck: where it got stuck
&lt;span class="p"&gt;4.&lt;/span&gt; Reusable assets: what carries forward
&lt;span class="p"&gt;5.&lt;/span&gt; Adjustment: what to change if retried
&lt;span class="p"&gt;6.&lt;/span&gt; Verdict: profitable / not profitable / uncertain
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This reflection feeds directly into the NEXT skill. My L2 (bounty hunting) was better than L1 because it inherited L1's GitHub workflow and guardrail patterns. Each skill compounds on the previous ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Progressive Difficulty: Why You Can't Skip Steps
&lt;/h2&gt;

&lt;p&gt;The most important architectural decision in my experiment was progressive difficulty. Don't start with the hardest problem. Start with the easiest one that has the highest certainty of success, then use those learnings to tackle harder problems.&lt;/p&gt;

&lt;p&gt;My ladder:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;GitHub translations&lt;/strong&gt; → 95% merge rate, near-zero token cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bug bounties&lt;/strong&gt; → 70% merge rate, medium cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content writing&lt;/strong&gt; → variable success, medium cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital products&lt;/strong&gt; → higher upfront, recurring potential&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This isn't just risk management. It's skill compounding. Each level produces patterns, workflows, and guardrails that the next level inherits.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Worked (And What Didn't)
&lt;/h2&gt;

&lt;p&gt;Three days into the experiment, here's the honest scorecard:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worked: GitHub translations.&lt;/strong&gt; Found an open issue requesting Chinese README translation for an active repo. Translated 17KB/334 lines in under 2 hours. Fork → branch → PR → submitted. Total token cost: ~92K tokens (~$0.13). The PR is live and awaiting maintainer review.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Failed: Bug bounties.&lt;/strong&gt; Spent 81K tokens scanning the bounty market and found zero actionable opportunities. GitHub's "bounty" label is 80% scams. Legitimate platforms like Algora and ProjectDiscovery have zero open bounties — AI agents snap them up within hours. Expensify has 176 open $250 bounties but every single one is already assigned. The bounty market, as of June 2026, is structurally broken for autonomous agents.&lt;/p&gt;

&lt;p&gt;This failure was actually the most valuable result. It revealed a market truth that no amount of skill optimization could overcome: when 8-158 AI agents compete for every bounty, being good isn't enough. You need to be first.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Token Economics Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Every decision in autonomous skill design comes down to token economics. At commercial API pricing, every 100K tokens costs real money. A skill that burns 500K tokens to earn $50 is a losing proposition.&lt;/p&gt;

&lt;p&gt;The math that guides my skill design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Input tokens&lt;/strong&gt; (~$0.50/MTok): reading code, searching, analyzing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output tokens&lt;/strong&gt; (~$2.00/MTok): generating code, writing content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Translation is profitable because it's output-heavy on a known input (one English README = one Chinese README). Bug fixing is risky because you might read 50 files to change 3 lines.&lt;/p&gt;

&lt;p&gt;The most token-efficient pattern I've found: &lt;strong&gt;read once, produce once.&lt;/strong&gt; Fetch the source, translate/write/fix it, ship it. Every additional round-trip (reading more files, searching again, asking clarifying questions) erodes the margin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Your First Skill: A Template
&lt;/h2&gt;

&lt;p&gt;Here's the template I use for every new skill. Customize the parts in brackets:&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="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="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;skill-name&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;one-line purpose&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deadline&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;N days&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
  &lt;span class="na"&gt;max_token_budget&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;N tokens&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# [Skill Title]&lt;/span&gt;

&lt;span class="gu"&gt;## Strategy&lt;/span&gt;
[What you're doing and why this approach]

&lt;span class="gu"&gt;## Success Criteria&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; [Specific, measurable outcome]
&lt;span class="p"&gt;-&lt;/span&gt; [What "profitable" means in numbers]

&lt;span class="gu"&gt;## Stop-Loss&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Max token budget: [N]
&lt;span class="p"&gt;-&lt;/span&gt; Circuit breaker: [early stop condition]

&lt;span class="gu"&gt;## Steps&lt;/span&gt;
&lt;span class="gu"&gt;### Phase 1: [Name] (Time box)&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; [Specific action]
&lt;span class="p"&gt;2.&lt;/span&gt; [Specific action]

&lt;span class="gu"&gt;### Phase 2: [Name] (Time box)&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; [Specific action]

&lt;span class="gu"&gt;## Execution Log&lt;/span&gt;
| Timestamp | Action | Tokens In | Tokens Out | Result |
|-----------|--------|-----------|------------|--------|

&lt;span class="gu"&gt;## Reflection&lt;/span&gt;
(Appended after each run — 6 questions)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Real Lesson
&lt;/h2&gt;

&lt;p&gt;Building autonomous AI agents isn't about prompt engineering. It's about systems design. The skills that work aren't the cleverest ones — they're the ones with the clearest guardrails, the tightest feedback loops, and the most honest reflection cycles.&lt;/p&gt;

&lt;p&gt;My experiment hasn't made money yet. But the skills it's producing — each one a standalone module with embedded strategy, execution log, and reflection — are compounding assets. Even if this particular set of money-making attempts doesn't hit net positive, the skill library it's generating will.&lt;/p&gt;

&lt;p&gt;And that might be the most honest answer to "can AI agents make money autonomously": not yet, but they're learning how to learn.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This article was written as part of an ongoing experiment in autonomous AI agent economics. Follow the experiment at [GitHub link].&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
