Home About Me

Building an AI Agent Team with Claude Skills

"I have 57 Claude Skills, and they save me hours of work every day."

— A heavy Claude Code user, January 2026

That number is more than a collection of prompts. It points to a new way of working with AI: not as a chatbot you keep re-explaining things to, but as a team of specialized agents.

While many people still use Claude as a smart conversational assistant, early power users are already turning it into a modular system of domain experts. Each agent focuses on a narrow job. They can be combined, reused, and refined over time.

This is what it looks like to move from simply talking to AI to directing it.

Claude Skills team concept

Claude Skills, through the lens of Unix

Unix became powerful through a simple idea: do one thing and do it well.

  • grep searches
  • sed edits
  • find locates

Each tool is small, focused, and composable. Chained together, they handle surprisingly complex work.

Claude Skills bring that same philosophy into the AI era.

What a Skill actually is

A Claude Skill is a modular, self-contained capability package that turns Claude from a general assistant into a specialist agent.

Its value shows up at three levels:

  1. Specialization: each Skill acts like an expert in a specific domain
  2. Composability: multiple Skills can work together as a workflow
  3. Evolution: a Skill improves with use, because process and knowledge accumulate

Why this is different from a prompt

<table> <thead> <tr> <th>Dimension</th> <th>Traditional Prompt</th> <th>Claude Skills</th> </tr> </thead> <tbody> <tr> <td>Portability</td> <td>❌ Copy and paste every time</td> <td>✅ Invoke across projects with one command</td> </tr> <tr> <td>Context</td> <td>❌ Re-explain from scratch</td> <td>✅ Persistent domain context</td> </tr> <tr> <td>Complexity</td> <td>⚠️ Limited by token budget</td> <td>✅ Extended with scripts + references</td> </tr> <tr> <td>Team collaboration</td> <td>❌ Private to one person</td> <td>✅ Shareable as a team knowledge base</td> </tr> </tbody> </table>

The real shift is not convenience. It is that Claude stops being a one-off conversation partner and starts becoming a system that can retain working patterns.

Traditional Prompt vs Claude Skills

A concrete example: from 10 minutes to 30 seconds

Task: publish a Markdown article to a WeChat Official Account.

Traditional way (10+ minutes):

<table> <thead> <tr> <th>1 2 3 4 5</th> <th>我:"请帮我打开 Chrome,导航到公众号后台..." 我:"上传这些图片..." 我:"把 Markdown 转换为微信格式..." 我:"调整格式..." ...(来回对话)</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

With a Skill (30 seconds):

<table> <thead> <tr> <th>1 2</th> <th>Skill: baoyu-post-to-wechat args: --markdown article.md --images ./imgs/</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

The key difference is not just speed. It is a different interaction model altogether.

The three-part architecture behind a Skill

Each Skill has three parts. Together, they give it both a brain and hands.

SKILL.md: the brain

This is the core instruction file. It includes:

  • Frontmatter: metadata such as name and description
  • Body: workflow and usage guidance

A central principle here is:

  • Concise is Key: the context window is shared, so only keep essential instructions here
  • Anything detailed belongs in references/

scripts/: the hands

This folder contains executable code in Python, Bash, or TypeScript. It is useful for:

  • operations that need deterministic reliability
  • avoiding repeated regeneration of the same code
  • complex automation flows

Example: baoyu-post-to-wechat/scripts/wechat-article.ts

It handles:

  • Chrome CDP automation
  • Markdown → WeChat HTML conversion
  • image upload and placeholder replacement

references/: the knowledge base

This holds detailed material that can be loaded when needed:

  • API docs
  • domain knowledge
  • in-depth guides

The advantage is simple: SKILL.md stays lean, while reference material remains available without wasting context.

The three-layer Skill architecture

Case study 1: a blog-writing Skill bundle

The recurring problem

For a technical blogger, creating a Hugo post often means repeating the same explanations every time:

  • what the frontmatter format should be
  • how categories differs from tags
  • what the directory structure should look like
  • which SEO requirements matter
  • and so on

That back-and-forth can easily cost 5 to 8 minutes per article.

The solution: six Skills working together

<table> <thead> <tr> <th>1 2 3 4 5 6 7</th> <th>blog-writing/ ├── SKILL.md # 主技能 ├── hugo-blog-writer/ # 创建 Hugo 文章 ├── blog-quality-assurance/ # 质量检查(5 维度) ├── directory-namer/ # 智能目录命名 ├── tag-selector/ # 智能标签选择 └── markdown-formatter/ # Markdown 格式化</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

The core design decision was to define Hugo conventions explicitly in SKILL.md.

<table> <thead> <tr> <th>1 2 3 4 5 6 7 8 9</th> <th>## Frontmatter 模板 --- title: "{{title}}" description: "{{description}}" date: {{date}} slug: {{slug}} categories: {{category}} # 文本格式,非数组 tags: [{{tags}}] # 数组格式 ---</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

That alone prevents Claude from confusing categories and tags.

Five quality dimensions

The blog-quality-assurance Skill checks content across five areas:

  • SEO: title, description, keywords
  • Readability: paragraph length, sentence structure
  • Content quality: logic, completeness
  • Formatting: Markdown syntax, links
  • User experience: navigation, citations

The practical difference is stark:

  • Before: 5–8 minutes of clarification and checking
  • After: one command, about 30 seconds, and the output already follows the rules

Case study 2: publishing to WeChat with a Skill

Why this task is painful

The WeChat Official Account editor is notoriously awkward:

  • ❌ no native Markdown support
  • ❌ images must be uploaded one by one
  • ❌ formatting breaks easily

The manual process usually takes 20 to 30 minutes.

The approach: Chrome CDP automation

Using Puppeteer, the entire publishing flow can be automated:

<table> <thead> <tr> <th>1 2 3 4 5 6 7</th> <th>// 核心流程 1. 打开 Chrome(保留登录会话) 2. 转换 Markdown → WeChat HTML 3. 粘贴到编辑器 4. 自动上传所有图片 5. 应用主题样式 6. 等待人工确认后发布</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

The hardest part: image placeholders

The main challenge is converting a Markdown image like ![](imgs/a.png) into an actual image inside the WeChat editor.

The working solution uses a placeholder-and-replace strategy:

  1. Conversion stage: ![](imgs/a.png)<img src="placeholder:a.png">
  2. Paste stage: paste the generated HTML into the editor
  3. Upload stage: - find all placeholders using six matching patterns - upload local images - replace placeholders with the image IDs created by the WeChat editor
<table> <thead> <tr> <th>1 2 3 4 5 6 7 8 9 10 11 12 13</th> <th>// 6 种占位符匹配策略 const placeholderPatterns = [ /placeholder:([^.]+)/, /wechat-placeholder:([^.]+)/, /data-placeholder="([^"]+)"/, // ... 更多模式 ]; // 验证粘贴是否成功 const textLength = await page.evaluate(() => { return document.body.innerText.length; }); console.log(`✅ Content check: ${textLength} chars`);</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

Lessons from the failure cases

Pitfall 1: images fail to insert

Cause: the WeChat editor loads slowly, so the HTML was not pasted correctly.

Fix:

  • increase the wait time from 3s to 5s
  • add content verification
  • generate a manual insertion guide as fallback

Pitfall 2: the paste event gets intercepted

Cause: the editor blocks simulated keyboard paste events.

Fix: use a real clipboard paste event instead.

The end result cuts the workflow from 20–30 minutes to 2–3 minutes with full automation.

Case study 3: a memory-system Skill

The underlying problem

AI does not naturally remember important information across sessions.

  • Conversation 1: you explain that you prefer charts
  • Conversation 2: you explain it again
  • Conversation 3: you explain it a third time

The solution: a four-layer memory model

<table> <thead> <tr> <th>1 2 3 4 5 6 7</th> <th>L4_核心层(价值观) ← 只能手动修改 ↑ L3_认知层(思维模式) ← 月复盘提炼 ↑ L2_行为层(习惯偏好) ← 周复盘提炼(3次+) ↑ L1_情境层(日常记录) ← 实时记录</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

How the layers work

L1_情境层 stores daily events, decisions, and emotions.

L2_行为层 captures preferences that appear at least three times.

L3_认知层 extracts higher-level principles from repeated behaviors.

L4_核心层 is special: it can only be changed manually.

Detecting recurring patterns

If a user says, “I prefer charts,” the system can check whether that preference has appeared before:

<table> <thead> <tr> <th>1 2 3</th> <th>Grep "图表" AI_MEMORY/L1_情境层/ # 结果:发现这是第 5 次出现 # 建议:记录到 L2_行为层/工作习惯.md</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

What this looks like in use

Scenario: the user expresses a preference.

<table> <thead> <tr> <th>1 2 3 4 5 6 7</th> <th>我:"我更喜欢用图表而不是大段文字" Claude: ✅ 已记录到 L1_情境层/2026-01.md 💡 检测到这是第 5 次出现"图表偏好", 是否记录到 L2_行为层/工作习惯.md?</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

This is where the “gets smarter with use” claim becomes real. Instead of restarting from zero every session, the system begins to understand stable preferences.

Advanced pattern: Skills working together

Once individual Skills are reliable, the bigger advantage comes from coordination.

1. Pipeline

<table> <thead> <tr> <th>1</th> <th>草稿 → content-digest → blog-writing → baoyu-post-to-wechat → 发布</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

Blog publishing automation pipeline

2. Router

<table> <thead> <tr> <th>1 2 3 4 5</th> <th>文章 → 判断类型 → { "技术博客": blog-writing "公众号": wechat-article-standardizer "小红书": baoyu-xhs-images }</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

3. Loop

<table> <thead> <tr> <th>1</th> <th>草稿 → blog-quality-assurance → 检查 → 有问题 → 优化 → 再检查 → 通过</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

These patterns make it possible to think in workflows rather than isolated commands.

Best practices for designing Skills

1. Three principles that matter most

Principle 1: Concise is Key

A bad Skill file is bloated with explanation.

Bad example:

<table> <thead> <tr> <th>1 2 3 4</th> <th>## 如何使用这个技能 首先,你需要确保你的计算机上安装了 Node.js 环境。 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时...</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

Better:

<table> <thead> <tr> <th>1 2 3</th> <th>## Prerequisites - Node.js 18+ - Bun runtime (via `npx -y bun`)</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

The point is to preserve context budget for what actually guides execution.

Principle 2: set the right degree of freedom

<table> <thead> <tr> <th>Degree of freedom</th> <th>Best use case</th> <th>Example</th> </tr> </thead> <tbody> <tr> <td>High (text instructions)</td> <td>Many valid approaches</td> <td>content creation, strategy planning</td> </tr> <tr> <td>Medium (parameterized scripts)</td> <td>recurring patterns with variation</td> <td>template selection in blog-writing</td> </tr> <tr> <td>Low (fixed scripts)</td> <td>fragile operations</td> <td>image upload in WeChat</td> </tr> </tbody> </table>

A useful analogy is pathfinding:

  • in an open field, high freedom works well
  • on a narrow bridge, low freedom and guardrails matter

Principle 3: avoid duplication

Information should live in one place only:

  • SKILL.md: core workflow
  • references/: detailed documentation
  • ❌ both at once: wasted tokens and needless maintenance

2. Naming conventions

Recommended formats:

  • <domain>-<action>
  • <project>-<feature>

Examples:

<table> <thead> <tr> <th>1 2 3 4 5 6</th> <th>✅ blog-writing ✅ baoyu-post-to-wechat ✅ mem-record ❌ blogWriter(不要驼峰) ❌ post_wechat(不要下划线)</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

3. Version management

As the number of Skills grows, versioning becomes essential.

<table> <thead> <tr> <th>1 2 3 4 5 6</th> <th>.claude/skills/ ├── blog-writing/ │ ├── SKILL.md │ ├── CHANGELOG.md # 版本历史 │ └── ... └── iteration-log-2026-01-20.md # 技能迭代日志</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

A simple changelog and iteration log make long-term refinement much easier.

The deeper shift: from chatbot to agent team

The most important change is not technical. It is conceptual.

Shift 1: from disposable conversations to accumulated experience

Old model:

<table> <thead> <tr> <th>1</th> <th>对话 → 使用 → 遗忘 → 下次重复解释</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

New model:

<table> <thead> <tr> <th>1</th> <th>对话 → 提炼为 Skill → 持续改进 → 越用越聪明</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

A memory Skill like mem-record shows this clearly:

  • the first time, it records a decision
  • by the third repetition, it recognizes a pattern and promotes it to L2
  • over many repetitions, it becomes a stable habit model

Shift 2: from one general assistant to a specialist team

Old model:

<table> <thead> <tr> <th>1</th> <th>一个 Claude 什么都做,但什么都不精</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

New model:

<table> <thead> <tr> <th>1 2 3 4</th> <th>blog-writing (博客专家) baoyu-post-to-wechat (公众号专家) mem-record (记忆管理专家) pdf/document (文档处理专家)</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

And those specialists can cooperate:

<table> <thead> <tr> <th>1 2 3 4 5</th> <th>我 → blog-writing (创建内容) ↓ baoyu-cover-image (设计封面) ↓ baoyu-post-to-wechat (发布)</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

Shift 3: from passive response to active execution

Old model:

<table> <thead> <tr> <th>1 2 3 4</th> <th>我:"帮我做 X" Claude:"好的,怎么?" 我:"步骤 1..." Claude:"然后呢?"</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

New model:

<table> <thead> <tr> <th>1 2</th> <th>我:"Skill: blog-writing 创建一篇博客" Claude:[自动完成所有步骤]</th> </tr> </thead> <tbody> <tr> <td></td> <td></td> </tr> </tbody> </table>

Three major mindset shifts

How to start building your own AI agent team

Week 1: build the first Skill

Start with the smallest useful repetition:

  1. identify a task you have repeated at least three times
  2. create a Skill directory
  3. write SKILL.md
  4. test and iterate

Weeks 2–3: build bundles

Group related Skills into packages, such as:

  • blog-writing (6 sub-skills)
  • content creation (4 skills)
  • memory system (5 skills)

Week 4: connect the Skills

At this stage, Skills begin calling one another:

  • a blog publishing pipeline
  • automated content creation
  • a closed-loop knowledge management flow

After one month

The payoff becomes visible:

  • ✅ more than 80% of repetitive tasks automated
  • ✅ AI better aligned with your preferences over time
  • ✅ a shift from operator to orchestrator
  • ✅ a 24/7 AI agent team ready to work

What matters most about Claude Skills is not automation by itself. It is the change in how work is structured.

The tool stops behaving like a single assistant. It starts behaving like a coordinated team.

And the human role changes with it: less about writing every step by hand, more about designing, directing, and refining intelligent systems.