← 所有文章

Commands、Skills、Subagents、Rules:整理139个扩展后的经验总结

在为Claude Code构建了95个hooks、44个skills、85个commands和11个rule文件之后,我深刻体会到:选错抽象比做错功能浪费的时间更多。一个本该作为rule的skill让我的上下文膨胀了40%。一个本该作为skill的command迫使我每次操作API端点时都要记住输入/fastapi1

TL;DR

Claude Code提供四种扩展行为的方式:Commands(用户触发的提示词)、Skills(自动调用的上下文)、Subagents(委托式任务执行器)和Rules(始终生效的约束)。在整理了139个扩展之后,我发现决策框架其实很简单:Rules用于不变量,Skills用于领域专业知识,Commands用于工作流,Subagents用于隔离。真正困难的是识别选错的时机并进行迁移。


四种抽象(附真实案例)

Commands:”/commit”及其他84个

Commands在我输入/command-name时激活。每个command会展开为一个提示词模板。2

我的85个commands包括/commit(智能git提交)、/review(启动代码审查agents)、/deploy(部署检查清单)、/publish-check(博客发布前验证)和/deliberate(多agent研究)。

我犯过的错误: 我把/fastapi构建为一个command,用于按需注入FastAPI模式。问题在于:我有一半的时间忘记输入它。每次忘记调用,agent就会遗漏我希望强制执行的模式。解决方案是将/fastapi迁移为一个具有自动激活功能的Skill。

Skills:44个自动激活的知识模块

Skills会在对话匹配skill描述时自动激活。我无需输入任何command;系统会根据上下文自动注入相关专业知识。3

---
description: FastAPI backend development patterns and conventions
---
# FastAPI Skill
When working on FastAPI endpoints, follow these patterns...

我的44个skills涵盖: - 领域知识(8个):FastAPI、SwiftUI、HTMX/Alpine、数据库、测试、调试、架构、安全 - 博客基础设施(7个):blog-writer-core、blog-evaluator、citation-verifier、SEO playbook - 理念/质量(5个):Shokunin(Jiro)、No Shortcuts、Rubin essence、设计原则 - 多agent(3个):deliberation、review、内容创作 - 项目专属(4个):个人网站内容、ResumeGeni博客、Obsidian capture

40%上下文膨胀事件: 早期,我把完整的FastAPI模式指南(800行)放进了一个Rule文件。Rules会加载到每个会话中。当我处理iOS应用、CSS或博客内容时,800行无关的FastAPI模式消耗了大量上下文token。将内容迁移到描述为”FastAPI backend development”的Skill后问题得到解决:该skill仅在API相关工作时加载。4

Subagents:隔离的审查者

Subagents在自己独立的上下文窗口中运行,拥有受限的工具访问权限和独立的权限设置。5

我的subagents包括security-reviewer(只读访问,OWASP漏洞扫描)、test-runner(运行测试、分析失败原因)和conventions-reviewer(项目规范检查)。

为什么隔离很重要: 在代码审查过程中,审查者不应该能够编辑文件。Skill可以注入审查知识,但审查仍然在主上下文中进行,拥有完整的写入权限。Subagent从架构层面强制执行只读访问。

Rules:11个始终生效的约束文件

Rules会自动加载到每个对话中。我的11个rule文件涵盖:6

~/.claude/rules/
├── security.md        # Never commit secrets, parameterized queries
├── git-workflow.md    # Conventional commits, branch naming
├── corrections.md     # Always use Claude (not OpenAI), current date
├── quality-loop.md    # Quality review loop, pride check
├── api-design.md      # REST conventions, response format
├── testing.md         # pytest conventions, coverage targets
└── aio.md             # AI Overview optimization for web content

规模控制的教训: 我的rules总共约180行,分布在11个文件中。每一行都会加载到每个会话中。最初我有400多行,后来将特定主题的内容迁移到了Skills。180行的rule集合覆盖了真正的不变量(安全约束、git工作流、纠错项)。其他所有内容都应放在Skills中。


决策框架

问题 回答 使用
是否需要开发者显式触发? Command
是否应根据主题自动激活? Skill
是否应适用于每个会话? Rule
任务是否需要隔离的上下文/工具? Subagent

迁移模式

我的.claude/结构经历了三个阶段的演进:

第一阶段(第1-2个月): 所有内容都放在Rules中。400多行始终加载的上下文。iOS模式、FastAPI模式、设计指南、测试标准。每个会话的上下文都很臃肿。

第二阶段(第3-4个月): 将特定主题的内容迁移到Skills。Rules缩减至200行。Skills增长到20多个目录。上下文膨胀减少了40%。

第三阶段(第5个月及之后): 为需要隔离的任务添加了Subagents(代码审查、安全审计)。Commands稳定在85个,用于显式工作流。随着领域专业知识的增加,Skills增长到44个。7

经验总结:从Rules开始(成本低、始终可用),发现哪些是特定主题的内容(迁移到Skills),仅在需要隔离时添加Subagents。


Skills驱动Subagents

一个强大的模式:使用skills前置字段将Skills注入Subagent上下文:

---
description: Code reviewer with security expertise
allowed-tools: [Read, Grep, Glob]
skills: [security, testing-philosophy]
---
Review code for quality, security, and test coverage...

securitytesting-philosophy skills将其内容注入到subagent的系统提示词中。审查者在隔离的只读上下文中获得专业知识。8

我的审查流水线使用了这种模式:三个subagents(correctness-reviewer、security-reviewer、conventions-reviewer)分别接收不同的skill注入。正确性审查者获得debugging-philosophy。安全审查者获得安全规则集。规范审查者获得项目的编码标准。


我的生产架构

~/.claude/
├── commands/     # 85 — User-triggered workflows
│   ├── commit.md, review.md, deploy.md
│   ├── publish-check.md, deliberate.md
│   └── morning.md, analytics.md, plan.md
│
├── skills/       # 44 — Auto-invoked expertise
│   ├── fastapi/, swiftui/, htmx-alpine/
│   ├── blog-writer-core/, citation-verifier/
│   └── jiro/, no-shortcuts/, rubin-essence/
│
├── agents/       # Isolated task executors
│   ├── security-reviewer.md
│   ├── correctness-reviewer.md
│   └── conventions-reviewer.md
│
├── rules/        # 11 files, ~180 lines — Always-on constraints
│   ├── security.md, git-workflow.md
│   ├── corrections.md, quality-loop.md
│   └── api-design.md, testing.md, aio.md
│
└── hooks/        # 95 — Lifecycle event handlers
    ├── git-safety-guardian.sh
    ├── recursion-guard.sh
    └── blog-quality-gate.sh

核心要点

对于独立开发者: - 从Rules开始,制定项目特定标准(总计保持在200行以内) - 为最常用的技术栈添加Skills;自动激活消除了”忘记调用”的问题 - 首先为三个最常见的工作流创建Commands - 仅在需要工具限制或上下文隔离时添加Subagents

对于团队: - 在项目层面标准化Rules,以确保团队一致性 - 通过公共仓库共享Skills;Skills跨项目的可移植性是其相对于项目级配置的主要优势


参考文献


  1. 作者的Claude Code扩展清单。95个hooks、44个skills、85个commands、11个rule文件。历时9个月开发(2025-2026)。 

  2. Anthropic,“Claude Code Documentation,” 2025。自定义斜杠命令。 

  3. Anthropic,“Claude Code Documentation,” 2025。Skills自动调用。 

  4. 作者的上下文优化。通过将特定主题内容迁移到Skills,Rules从400多行减少到180行。实测上下文减少40%。 

  5. Anthropic,“Claude Code Documentation,” 2025。Subagent上下文隔离和工具限制。 

  6. 作者的rule文件清单。11个文件共约180行,涵盖安全、git工作流、纠错、质量、API设计、测试和AIO。 

  7. 作者的.claude/结构在9个月内经历的三个阶段演进。 

  8. Anthropic,“Claude Code Documentation,” 2025。Skill注入到subagent上下文。