Claude Code構築の経験:私たちがSkillsをどのように活用しているか
AnthropicのClaude Codeチームが、内部で数百個のSkills(技能拡張)を活用した実践的な分類体系と作成ノウハウを公開し、開発効率化のための体系的なアプローチを提供している。
キーポイント
Skillsの本質的理解
Skillsは単なるマークダウンファイルではなく、スクリプトやリソースを含むフォルダ構造であり、動的フックなどの豊富な設定オプションを持つ拡張ポイントである。
6つの実践的カテゴリー分類
内部使用の数百のSkillsを分析し、ライブラリ/ツール支援、検証、データ接続、ワークフロー自動化、ボイラープレート生成、コード品質管理の6つのカテゴリーに分類した体系的な枠組みを提示している。
実用的な作成ノウハウ
良いSkillsの特徴として、明確なカテゴリー分類、参考コードと落とし穴リストの提供、検証用スクリプトの組み込み、実行結果のログ保存などの具体的な実装テクニックを紹介している。
チーム導入のベストプラクティス
Skillsのチーム内での普及方法として、明確なカテゴリー分けによる理解促進、検証Skillsへの専任エンジニア投入、自動実行フックの設定などの実践的なアドバイスを提供している。
Skillの効果的な記述方法
Skillのdescriptionフィールドは、Skillが何をするかではなく、どのような状況でそのSkillをトリガーすべきかを記述する必要がある。Claudeはこの記述を基に適切なSkillを選択する。
Skill開発におけるコンテキストエンジニアリング
Skillは単一のマークダウンファイルではなく、参照資料、スクリプト、テンプレートなどを含むフォルダ構造として設計すべきである。これにより、Claudeが必要に応じて情報を段階的に読み込むことができる。
Skillsのデータ保存と管理
Skillsは内部データを保存して記憶機能を実装でき、テキストログやJSONファイル、SQLiteデータベースなどが利用可能。ただしSkillディレクトリのデータはアップグレード時に削除される可能性があるため、安定したフォルダ(${CLAUDE_PLUGIN_DATA})に保存する必要がある。
影響分析・編集コメントを表示
影響分析
この記事は、AI支援開発ツールの実践的な活用方法に関する貴重な内部知見を公開しており、Claude Codeユーザーだけでなく、AIエージェント開発プラットフォーム全体のベストプラクティス確立に貢献する可能性がある。特に、大規模な内部使用実績に基づく分類体系は、類似ツールの設計や評価基準として業界標準化される可能性を秘めている。
編集コメント
AI支援開発の実践現場から得られた貴重なノウハウ記事。特に、数百の内部使用事例に基づく体系的な分類は、類似ツールの設計や評価基準として業界全体に影響を与える可能性が高い。
Claude Code の構築経験:Skills の活用方法
著者:Thariq Shihipar 原文:Lessons from Building Claude Code: How We Use Skills
本文の著者 Thariq Shihipar(@trq212)は、Anthropic の Claude Code チームに所属するエンジニアであり、Skills 機能の中核を担う推進者の一人です。Anthropic 入社前には MIT Media Lab で修士課程在籍中にオープンソースの学術出版プラットフォーム「PubPub」を共同設立し、その後 Y Combinator(W20 バッチ)に参加しました。X では Claude Code の実用的な使用経験や新機能に関する情報を頻繁に共有しています。
この記事の価値は、Anthropic 内部チームによる実践的な総括である点にあります。Anthropic 社内では現在数百個の Skills が活発に利用されており、本稿で示される分類体系や作成テクニックは、これら実際の社内運用から抽出されたものです。
すでに Claude Code を使用しているが、Skills について体系的に取り組んでいない場合、この記事は「どのような種類の Skills を作るか」「どのように記述するか」「チーム内でどう普及させるか」という点において、システム化された思考の枠組みを提供します。
Skills は、Claude Code において最も広く利用されている拡張ポイント(extension points)の一つとなっています。それらは柔軟で、作成も容易であり、配布も簡単です。
しかし、その柔軟さゆえに「どのように使うのが最善か」を判断するのは困難です。どのような種類の Skills に価値があるのか?優れた Skill を作成する秘訣は何か?いつ他者と共有すべきなのか?
Anthropic 社内では Claude Code の Skills(技能拡張)を大量に活用しており、現在数百個が活発に使用されています。以下は、Skills を活用して開発を加速させる過程で得られた経験則です。
Skills についてまだ詳しくない場合は、まず公式ドキュメントや最新の Skilljar で提供されている「Agent Skills」コースをご覧ください。本稿では、すでに Skills に関する基本的な知識があると仮定しています。
よくある誤解として、「Skills は単なる markdown ファイルに過ぎない」という考えがありますが、Skills の最も興味深い点は、それらがテキストファイルではないことにあります。Skills はフォルダであり、スクリプトやリソースファイル、データなどを格納できます。エージェントはこれらのコンテンツを発見し、探索し、利用することが可能です。
Claude Code において、Skills は動的フック(hooks)の登録など、豊富な設定オプションを備えています。
私たちが発見したのは、Claude Code において最も興味深い Skills の多くが、これらの設定オプションやフォルダ構造を創造的に活用しているという点です。
すべての Skills を整理した結果、それらは大まかにいくつかの反復出現するカテゴリに分類できることがわかりました。優れた Skills は明確に一つのカテゴリに属しており、混乱を招く Skills は複数のカテゴリにまたがっている傾向があります。これは究極のリストではありませんが、チーム内で不足している種類の Skills がないか確認するための良い指針となります。

特定のライブラリ、コマンドラインツール、または SDK を正しく使用するためのサポートを提供する Skills です。これらは内部ライブラリ向けにも、Claude Code が時々誤りを犯す一般的なライブラリ向けにも作成できます。此类 Skills には通常、参考となるコードスニペットを格納したフォルダと、Claude がコードを書く際に避けるべき注意点(gotchas)のリストが含まれます。
billing-lib — あなたの内部請求処理ライブラリ:境界ケースや、よくある落とし穴(footguns)など
internal-platform-cli — 内部 CLI ツールの各サブコマンドとその使用例
frontend-design — Claude にあなたのデザインシステムをより深く理解させるためのスキル
コードが正常に動作しているかどうかをテストまたは検証する方法を記述するスキル。通常、Playwright や tmux などの外部ツールを組み合わせて検証を行います。
検証用スキルは、Claude の出力の正しさを保証するために非常に有用です。エンジニアに週単位で時間を割いて、検証スキルの磨き上げを任せる価値があります。
例えば、Claude に実行プロセスの動画を録画させて、実際に何をテストしたかを確認できるようにするといった工夫も考えられます。あるいは、各ステップでプログラム的な状態アサーション(state assertion)を強制することも有効です。これらは通常、スキル内に各種スクリプトを含めることで実現されます。
signup-flow-driver — ヘッドレスブラウザ上で登録→メール検証→オンボーディングフローを完走させ、各ステップに状態アサーションのフックを挿入可能にするドライバー
checkout-verifier — Stripe のテストカードを使用してチェックアウト UI を駆動し、最終的にインボイスが正しいステータスに至ったかを検証するツール
tmux-cli-driver — TTY が必要な対話型コマンドラインテスト専用のドライバー
データや監視システムに接続するスキル。これらには認証情報を伴うデータ取得ライブラリ、特定のダッシュボード ID、そして一般的なワークフローやデータ取得方法に関する説明が含まれる場合があります。
funnel-query — 「登録→アクティベーション→課金へのコンバージョンを見るにはどのイベントを紐付ける必要があるか?」という問いに対し、正規の user_id が格納されている実際のテーブルを指し示すスキル
cohort-compare — 2 つのユーザーセグメント間のリテンション率や転換率を比較し、統計的に有意な差異をマーク付け、セグメント定義へのリンクを提供する機能
grafana — データソース UID、クラスター名、問題からダッシュボードまでの対応表を管理するスキル
反復的なワークフローを単一のコマンドに自動化するスキル。これらのスキルは通常、指示がシンプルですが、他のスキルや MCP(Model Context Protocol:モデルコンテキストプロトコル)に依存することがあります。此类スキルでは、過去の執行結果をログファイルに保存しておくことで、モデルの一貫性を保ち、過去の執行状況を振り返ることを支援できます。
standup-post — タスクトラッカー、GitHub の活動履歴、および以前の Slack メッセージを統合し、フォーマットされたスタンドアップ報告を生成する機能。変更点のみ(delta-only)を報告します。
create--ticket — スキーマの強制(有効な列挙値と必須フィールド)に加え、作成後のワークフロー(レビュアーへの通知、Slack でのリンク送信)を実行します。
weekly-recap — マージされた PR、クローズされたチケット、デプロイ記録を統合し、フォーマットされた週次レポートを生成します。
コードベース内の特定機能に対してフレームワークのボイラープレート(boilerplate:雛形コード)を生成するスキル。これらのスキルはスクリプトと組み合わせて使用できます。あなたのスケフォールディング(scaffolding:骨組み作成)に自然言語での要件があり、コードのみではカバーしきれない場合に、この種のスキルが特に有用です。
new--workflow — アノテーションを用いて新しいサービス/ワークフロー/プロセッサを構築します。
new-migration — データベースマイグレーションファイルのテンプレートと、よくある失敗ポイント(pitfalls)を記載します。
create-app — 内部アプリケーションの新規作成。認証、ログ、デプロイ設定が事前にプロビジョニングされた状態で提供されます。
チーム内でコード品質基準を実行し、コードレビューを支援するスキル。最大限の信頼性を確保するための決定論的なスクリプトやツールを含めることができます。これらのスキルはフックの一部として自動的に実行するか、GitHub Actions 内で実行することを検討してください。
adversarial-review — 生成一个全新视角的子智能体来挑刺,实施修复,反复迭代直到发现的问题退化为吹毛求疵【注:子智能体(subagent)是指 Claude Code 在执行任务时启动的另一个独立 Claude 实例。这里的做法是让一个“没见过这段代码”的新实例来做代码审查,避免原实例的思维惯性。】
code-style — 强制执行代码风格,特别是那些 Claude 默认做不好的风格
testing-practices — 关于如何写测试以及测试什么的指导
帮你拉取、推送和部署代码的 Skills。这类 Skills 可能会引用其他 Skills 来收集数据。
babysit-pr — 监控一个 PR→重试不稳定的 CI→解决合并冲突→启用自动合并
deploy- — 构建→冒烟测试→渐进式流量切换并对比错误率→指标恶化时自动回滚
cherry-pick-prod — 隔离的工作树(worktree)→cherry-pick→解决冲突→用模板创建 PR
接收一个现象(比如一条 Slack 消息、一条告警或者一个错误特征),引导你走完多工具排查流程,最后生成结构化报告的 Skills。
-debugging — 把现象对应到工具→查询模式,覆盖你流量最大的服务
oncall-runner — 拉取告警→检查常见嫌疑→格式化输出排查结论
log-correlator — 给定一个请求 ID,从所有可能经过的系统中拉取匹配的日志
执行日常维护和运维操作的 Skills——其中一些涉及破坏性操作,需要安全护栏。这些 Skills 让工程师在执行关键操作时更容易遵循最佳实践。
-orphans — 找到孤立的 Pod/Volume→发到 Slack→等待观察→用户确认→级联清理
dependency-management — 你所在组织的依赖审批工作流
cost-investigation — “我们的存储/出口带宽费用为什么突然涨了”,附带具体的存储桶和查询模式

确定了要做什么 Skill 之后,怎么写呢?以下是我们总结的一些最佳实践和技巧。
我们最近还发布了 Skill Creator,让在 Claude Code 中创建 Skills 变得更加简单。
Claude Code 对你的代码库已经非常了解,Claude 本身对编程也很在行,包括很多默认的观点。如果你发布的 Skill 主要是提供知识,那就把重点放在能打破 Claude 常规思维模式的信息上。
frontend design 这个 Skill 就是一个很好的例子——它是 Anthropic 的一位工程师通过与用户反复迭代、改进 Claude 的设计品味而构建的,专门避免那些典型的套路,比如 Inter 字体和紫色渐变。

任何 Skill 中信息量最大的部分就是踩坑点章节。这些章节应该根据 Claude 在使用你的 Skill 时遇到的常见失败点逐步积累起来。理想情况下,你会持续更新 Skill 来记录这些踩坑点。

前述の通り、Skill(スキル)は単なる Markdown ファイルではなく、一つのフォルダです。あなたはファイルシステム全体を、コンテキストエンジニアリング(Context Engineering)と漸進的開示(progressive disclosure)のツールとして扱うべきです。Claude にあなたの Skill 内にどのようなファイルがあるかを伝えることで、必要な時にそれらを読み取らせることができます。【注:コンテキストエンジニアリング(Context Engineering)は 2025 年に Andrej Karpathy 氏らによって提唱され広まった概念で、大規模言語モデルに与える入力情報の文脈を綿密に設計・管理し、モデルの出力品質を最大化するものです。漸進的開示(progressive disclosure)は UI デザインからの借用された概念であり、一度にすべての情報をモデルに詰め込むのではなく、必要な時に読み取らせることで、コンテキストウィンドウのスペースを節約する手法です。】
最もシンプルな漸進的開示の形式は、Claude に使用させる他の Markdown ファイルへの参照です。例えば、詳細な関数シグネチャや使用例を references/api.md といったファイルに分割して保存できます。
別の例として、最終的な出力が Markdown ファイルになる場合、assets/ フォルダ内にコピー用のテンプレートファイルを配置することができます。
Claude がより効率的に作業できるよう、リファレンス資料、スクリプト、サンプルなどを格納するフォルダを設けることも可能です。
Claude を過度に制限しないこと
Claude は通常、あなたの指示に従おうと努めますが、Skill の再利用性が高いことを考慮し、指示をあまりにも具体的に書きすぎないよう注意が必要です。Claude に必要な情報を提供しつつ、具体的な状況への適応のための柔軟性は残しておきましょう。例えば:


一部の Skill では、初期設定を完了させるためにユーザーからの文脈情報が必要になる場合があります。例えば、スタンドアップミーティングの内容を Slack に投稿する Skill を作成した場合、Claude にはまずどの Slack チャンネルに送信するかをユーザーに尋ねてほしいと考えるかもしれません。
良いプラクティスとして、上記の例のように、設定情報を Skill ディレクトリ内の config.json ファイルに保存します。まだ設定が完了していない場合、エージェントはユーザーに対して関連情報の入力を求めます。
エージェントにユーザーに対して構造化された多肢選択式の問題を表示させたい場合は、Claude に AskUserQuestion ツールを使用させることができます。
description フィールドはモデル向けです
Claude Code がセッションを開始する際、利用可能なすべての Skill とその説明のリストを構築します。Claude はこのリストをスキャンして「このリクエストに対応する Skill があるか?」を判断します。つまり、description フィールドは要約ではなく、いつこの Skill をトリガーすべきかを記述したものです。【注:このアドバイスはしばしば見落とされます。多くの人が description を書く際に「この Skill は何をするものか」を書いてしまいますが、Claude が必要としているのは「どのような状況でこの Skill を使うべきか」です。優れた description は機能説明というよりも、if-then(もし〜なら〜)の条件文のように読めるはずです。】


一部の Skills は、内部にデータを保存することで何らかの形の記憶を実現できます。最もシンプルな方法としては、追記専用のテキストログファイルや JSON ファイルを使用する方法があり、より複雑な方法としては SQLite データベース(SQLite)などを利用することも可能です。
例えば、standup-post Skill では standups.log を保持し、自分が行ったすべてのスタンドアップ報告を記録します。次回実行時には Claude が自身の履歴を読み取るため、昨日から現在までに何らかの変化があったかを把握できます。
Skills ディレクトリ内のデータは、Skill のアップデート時に削除される可能性があるため、データを保存する際は安定したフォルダを使用してください。現時点では ${CLAUDE_PLUGIN_DATA} を提供しています。
Claude に与えることができる最も強力なツールの一つがコードです。スクリプトやライブラリを Claude に提供し、その精力を組み合わせやオーケストレーション(編成)に集中させましょう。つまり、次に行うべきことを決定することに注力させる一方で、ボイラープレートコードの再構築は行わないようにします。
例えば、データサイエンス用の Skill には、イベントソースからデータを取得する関数群を配置できます。Claude により高度な分析を行わせるためには、以下のような補助関数群を提供することも可能です:

Claude はこれらの機能を組み合わせてスクリプトを即時生成し、より高度な分析を実行できます。例えば、「火曜日に何があったか?」といった質問に答えるようなタスクです。

Skills には、その Skill が呼び出された際にのみアクティブ化するフック(On Demand Hooks)を含めることができ、セッション全体を通じて有効に保つことが可能です。これは、主観的な判断を要するものや、常時実行したくないが、時々非常に有用なフックに適しています。
/careful — PreToolUse マッチャーを使用して、Bash 内の rm -rf、DROP TABLE、force-push、kubectl delete をインターセプトします。これは、自分が本番環境を操作していることを明確に知っている場合のみ必要です。常時有効にすると非常にストレスが溜まります【注:PreToolUse は Claude Code のフック(hook)メカニズムの一つで、Claude がツールを呼び出すたびにトリガーされます。このフック内で Claude が実行しようとしているコマンドを確認し、危険な操作に該当する場合は実行を阻止できます。ここで紹介されている /careful は、ユーザーが手動で呼び出した場合にのみ登録される、オンデマンド型の Skill です。】
/freeze — 特定のディレクトリ以外に対する Edit/Write 操作をすべてブロックします。デバッグ時に特に有用です。「ログを追加したいが、ついでに無関係なコードを誤って修正してしまう」といったケースに対応できます。
Skills の最大の利点の一つは、チームの他のメンバーと共有できることです。
Skills を共有する方法は以下の 2 通りあります:
- コードリポジトリに Skills をプッシュする(./.claude/skills 配下に配置)
- プラグインとしてパッケージ化し、Claude Code プラグインマーケットプレイス(Plugin Marketplace)を構築して、ユーザーがプラグインのアップロードやインストールを行えるようにする(詳細はドキュメントを参照)
コードリポジトリ数が少ない小チームであれば、Skills をリポジトリにコミットするだけで十分です。ただし、各コミットされた Skill はモデルのコンテキストにわずかな負荷を追加します。規模が拡大すると、内部プラグイン市場を通じて Skills を配布し、メンバー自身がどのスキルをインストールするかを選択できるようになります。
どのような Skills をプラグイン市場に含めるべきか、またどのように提出すべきかについてはどうでしょうか?
これらを決定するための専任の中央チームはありません。むしろ、最も有用な Skills が自然に浮上することを好んでいます。試してほしい Skill がある場合は、GitHub のサンドボックスフォルダにアップロードし、Slack やその他のフォーラムで推奨してください。
ある Skill が十分な注目を集めた場合(その判断は Skill の作者が行います)、PR を提出してプラグイン市場へ移動させることができます。
注意すべき点として、質の低いまたは重複する Skills を作成するのは容易であるため、正式リリース前に何らかの審査メカニズムを設けることが重要です。
Skills 同士が相互に依存することを望む場合もあるかもしれません。例えば、ファイルをアップロードするための「ファイルアップロード Skill」と、CSV を生成してアップロードするための「CSV 生成 Skill」を持つようなケースです。この種の依存関係管理は現在、プラグイン市場や Skills 自体ではサポートされていませんが、他の Skills を名前で直接参照することは可能です。相手がインストール済みであれば、モデルが自動的に呼び出します。
Skill のパフォーマンスを把握するために、私たちは社内環境で Skill の使用状況を記録する「PreToolUse」フック(事前ツール使用フック)を使用しています(サンプルコードはこちら)。これにより、どの Skills が人気があるか、あるいは期待される頻度よりもトリガー回数が少ないかを特定できます。
Skills は AI エージェント(AI Agent)にとって極めて強力かつ柔軟なツールですが、これはまだ初期段階であり、私たちはその使い方を模索している最中です。
この記事を権威あるガイドとして捉えるのではなく、私たちの実践で検証された実用的なテクニックの集まりと捉えてください。Skills を理解する最良の方法は、実際に手を動かして始め、不断に実験し、何が自分に合うかを確認することです。私たちが持つ Skills の多くは、最初は数行のコードといくつかの失敗点から始まり、Claude が直面する新たな境界条件に対してメンバーが継続的に追加していくことで、徐々に改善されていきました。
この記事がお役に立てば幸いです。ご質問等ございましたら、お気軽にお知らせください。
原文を表示
构建 Claude Code 的经验:我们如何使用 Skills
作者:Thariq Shihipar 原文:Lessons from Building Claude Code: How We Use Skills
本文作者 Thariq Shihipar(@trq212)是 Anthropic 的 Claude Code 团队工程师,也是 Skills 功能的核心推动者之一。在加入 Anthropic 之前,他在 MIT Media Lab 读研期间联合创建了开源学术发布平台 PubPub,后来参加了 Y Combinator(W20 批次)。他在 X 上经常分享 Claude Code 的一手使用经验和新功能动态。
这篇文章的价值在于:它是来自 Anthropic 内部团队的实战总结。Anthropic 内部活跃使用的 Skills 已经有几百个,文中的分类体系和编写技巧都是从这些真实的内部实践中提炼出来的。
如果你已经在用 Claude Code 但还没认真做过 Skills,这篇文章能帮你建立一个系统化的思路:做什么类型的 Skills、怎么写、怎么在团队里推广。
Skills 已经成为 Claude Code 中使用最广泛的扩展点(extension points)之一。它们灵活、容易制作,分发起来也很简单。
但也正因为太灵活,你很难知道怎样用才最好。什么类型的 Skills 值得做?写出好 Skill 的秘诀是什么?什么时候该把它们分享给别人?
我们在 Anthropic 内部大量使用 Claude Code 的 Skills(技能扩展),目前活跃使用的已经有几百个。以下就是我们在用 Skills 加速开发过程中总结出的经验。
如果你还不了解 Skills,建议先看看我们的文档或最新的 Skilljar 上关于 Agent Skills 的课程,本文假设你已经对 Skills 有了基本的了解。
我们经常听到一个误解,认为 Skills“只不过是 markdown 文件”。但 Skills 最有意思的地方恰恰在于它们不只是文本文件——它们是文件夹,可以包含脚本、资源文件、数据等等,智能体可以发现、探索和使用这些内容。
在 Claude Code 中,Skills 还拥有丰富的配置选项,包括注册动态钩子(hooks)。
我们发现,Claude Code 中最有意思的那些 Skills,往往就是创造性地利用了这些配置选项和文件夹结构。
在梳理了我们所有的 Skills 之后,我们注意到它们大致可以归为几个反复出现的类别。最好的 Skills 清晰地落在某一个类别里;让人困惑的 Skills 往往横跨了好几个。这不是一份终极清单,但如果你想检查团队里是否还缺了什么类型的 Skills,这是一个很好的思路。

帮助你正确使用某个库、命令行工具或 SDK 的 Skills。它们既可以针对内部库,也可以针对 Claude Code 偶尔会犯错的常用库。这类 Skills 通常会包含一个参考代码片段的文件夹,以及一份 Claude 在写代码时需要避免的踩坑点(gotchas)列表。
billing-lib — 你的内部计费库:边界情况、容易踩的坑(footguns)等
internal-platform-cli — 内部 CLI 工具的每个子命令及其使用场景示例
frontend-design — 让 Claude 更好地理解你的设计系统
描述如何测试或验证代码是否正常工作的 Skills。通常会搭配 Playwright、tmux 等外部工具来完成验证。
验证类 Skills 对于确保 Claude 输出的正确性非常有用。值得安排一个工程师花上一周时间专门打磨你的验证 Skills。
可以考虑一些技巧,比如让 Claude 录制输出过程的视频,这样你就能看到它到底测试了什么;或者在每一步强制执行程序化的状态断言。这些通常通过在 Skill 中包含各种脚本来实现。
signup-flow-driver — 在无头浏览器中跑完注册→邮件验证→引导流程,每一步都可以插入状态断言的钩子
checkout-verifier — 用 Stripe 测试卡驱动结账 UI,验证发票最终是否到了正确的状态
tmux-cli-driver — 针对需要 TTY 的交互式命令行测试
连接你的数据和监控体系的 Skills。这类 Skills 可能会包含带有凭证的数据获取库、特定的仪表盘 ID 等,以及常用工作流和数据获取方式的说明。
funnel-query — “要看注册→激活→付费的转化,需要关联哪些事件?”,再加上真正存放规范 user_id 的那张表
cohort-compare — 对比两个用户群的留存或转化率,标记统计显著的差异,链接到分群定义
grafana — 数据源 UID、集群名称、问题→仪表盘对照表
把重复性工作流自动化为一条命令的 Skills。这类 Skills 通常指令比较简单,但可能会依赖其他 Skills 或 MCP(Model Context Protocol,模型上下文协议)。对于这类 Skills,把之前的执行结果保存在日志文件中,有助于模型保持一致性并反思之前的执行情况。
standup-post — 汇总你的任务追踪器、GitHub 活动和之前的 Slack 消息→生成格式化的站会汇报,只报变化部分(delta-only)
create-<ticket-system>-ticket — 强制执行 schema(合法的枚举值、必填字段)加上创建后的工作流(通知审查者、在 Slack 中发链接)
weekly-recap — 已合并的 PR + 已关闭的工单 + 部署记录→格式化的周报
为代码库中的特定功能生成框架样板代码(boilerplate)的 Skills。你可以把这些 Skills 和脚本组合使用。当你的脚手架(scaffolding)有自然语言需求、无法纯靠代码覆盖时,这类 Skills 特别有用。
new-<framework>-workflow — 用你的注解搭建新的服务/工作流/处理器
new-migration — 你的数据库迁移文件模板加上常见踩坑点
create-app — 新建内部应用,预配好你的认证、日志和部署配置
在团队内部执行代码质量标准并辅助代码审查的 Skills。可以包含确定性的脚本或工具来保证最大的可靠性。你可能希望把这些 Skills 作为钩子的一部分自动运行,或者放在 GitHub Action 中执行。
adversarial-review — 生成一个全新视角的子智能体来挑刺,实施修复,反复迭代直到发现的问题退化为吹毛求疵【注:子智能体(subagent)是指 Claude Code 在执行任务时启动的另一个独立 Claude 实例。这里的做法是让一个“没见过这段代码”的新实例来做代码审查,避免原实例的思维惯性。】
code-style — 强制执行代码风格,特别是那些 Claude 默认做不好的风格
testing-practices — 关于如何写测试以及测试什么的指导
帮你拉取、推送和部署代码的 Skills。这类 Skills 可能会引用其他 Skills 来收集数据。
babysit-pr — 监控一个 PR→重试不稳定的 CI→解决合并冲突→启用自动合并
deploy-<service> — 构建→冒烟测试→渐进式流量切换并对比错误率→指标恶化时自动回滚
cherry-pick-prod — 隔离的工作树(worktree)→cherry-pick→解决冲突→用模板创建 PR
接收一个现象(比如一条 Slack 消息、一条告警或者一个错误特征),引导你走完多工具排查流程,最后生成结构化报告的 Skills。
<service>-debugging — 把现象对应到工具→查询模式,覆盖你流量最大的服务
oncall-runner — 拉取告警→检查常见嫌疑→格式化输出排查结论
log-correlator — 给定一个请求 ID,从所有可能经过的系统中拉取匹配的日志
执行日常维护和运维操作的 Skills——其中一些涉及破坏性操作,需要安全护栏。这些 Skills 让工程师在执行关键操作时更容易遵循最佳实践。
<resource>-orphans — 找到孤立的 Pod/Volume→发到 Slack→等待观察→用户确认→级联清理
dependency-management — 你所在组织的依赖审批工作流
cost-investigation — “我们的存储/出口带宽费用为什么突然涨了”,附带具体的存储桶和查询模式

确定了要做什么 Skill 之后,怎么写呢?以下是我们总结的一些最佳实践和技巧。
我们最近还发布了 Skill Creator,让在 Claude Code 中创建 Skills 变得更加简单。
Claude Code 对你的代码库已经非常了解,Claude 本身对编程也很在行,包括很多默认的观点。如果你发布的 Skill 主要是提供知识,那就把重点放在能打破 Claude 常规思维模式的信息上。
frontend design 这个 Skill 就是一个很好的例子——它是 Anthropic 的一位工程师通过与用户反复迭代、改进 Claude 的设计品味而构建的,专门避免那些典型的套路,比如 Inter 字体和紫色渐变。

任何 Skill 中信息量最大的部分就是踩坑点章节。这些章节应该根据 Claude 在使用你的 Skill 时遇到的常见失败点逐步积累起来。理想情况下,你会持续更新 Skill 来记录这些踩坑点。

就像前面说的,Skill 是一个文件夹,不只是一个 markdown 文件。你应该把整个文件系统当作上下文工程(Context Engineering)和渐进式披露(progressive disclosure)的工具。告诉 Claude 你的 Skill 里有哪些文件,它会在合适的时候去读取它们。【注:上下文工程(Context Engineering)是 2025 年由 Andrej Karpathy 等人提出并广泛传播的概念,指的是精心设计和管理输入给大语言模型的上下文信息,以最大化模型的输出质量。渐进式披露(progressive disclosure)借用了 UI 设计中的概念,意思是不一次性把所有信息塞给模型,而是让它在需要时再去读取,从而节省上下文窗口空间。】
最简单的渐进式披露形式是指向其他 markdown 文件让 Claude 使用。例如,你可以把详细的函数签名和用法示例拆分到 references/api.md 里。
另一个例子:如果你的最终输出是一个 markdown 文件,你可以在 assets/ 中放一个模板文件供复制使用。
你可以有参考资料、脚本、示例等文件夹,帮助 Claude 更高效地工作。
不要把 Claude 限制得太死
Claude 通常会努力遵循你的指令,而由于 Skills 的复用性很强,你需要注意不要把指令写得太具体。给 Claude 它需要的信息,但留给它适应具体情况的灵活性。例如:


有些 Skills 可能需要用户提供上下文来完成初始设置。例如,如果你做了一个把站会内容发到 Slack 的 Skill,你可能希望 Claude 先问用户要发到哪个 Slack 频道。
一个好的做法是把这些设置信息存在 Skill 目录下的 config.json 文件里,就像上面的例子那样。如果配置还没设置好,智能体就会向用户询问相关信息。
如果你希望智能体向用户展示结构化的多选题,可以让 Claude 使用 AskUserQuestion 工具。
description 字段是给模型看的
当 Claude Code 启动一个会话时,它会构建一份所有可用 Skills 及其描述的清单。Claude 通过扫描这份清单来判断“这个请求有没有对应的 Skill?”所以 description 字段不是摘要——它描述的是何时该触发这个 Skill。【注:这条建议经常被忽略。很多人写 description 时会写“这个 Skill 做什么”,但 Claude 需要的是“什么情况下该用这个 Skill”。好的 description 读起来更像 if-then 条件,而不是功能说明。】


有些 Skills 可以通过在内部存储数据来实现某种形式的记忆。你可以用最简单的方式——一个只追加写入的文本日志文件或 JSON 文件,也可以用更复杂的方式——比如 SQLite 数据库。
例如,一个 standup-post Skill 可以保留一份 standups.log,记录它写过的每一条站会汇报。这样下次运行时,Claude 会读取自己的历史记录,就能知道从昨天到现在发生了什么变化。
存在 Skill 目录下的数据可能会在升级 Skill 时被删除,所以你应该把数据存在一个稳定的文件夹中。目前我们提供了 ${CLAUDE_PLUGIN_DATA}
你能给 Claude 的最强大的工具之一就是代码。给 Claude 提供脚本和库,让它把精力花在组合编排上——决定下一步做什么,而不是重新构造样板代码。
例如,在你的数据科学 Skill 中,你可以放一组从事件源获取数据的函数库。为了让 Claude 做更复杂的分析,你可以提供一组辅助函数,像这样:

Claude 就可以即时生成脚本来组合这些功能,完成更高级的分析——比如回答“周二发生了什么?”这样的问题。

Skills 可以包含只在该 Skill 被调用时才激活的钩子(On Demand Hooks),并且在整个会话期间保持生效。这适合那些比较主观、你不想一直运行但有时候极其有用的钩子。
/careful — 通过 PreToolUse 匹配器拦截 Bash 中的 rm -rf、DROP TABLE、force-push、kubectl delete。你只在知道自己在操作生产环境时才需要这个——要是一直开着会让你抓狂【注:PreToolUse 是 Claude Code 的钩子(hook)机制之一,会在 Claude 每次调用工具之前触发。你可以在这个钩子里检查 Claude 即将执行的命令,如果命中危险操作就阻止执行。这里 /careful 是一个按需激活的 Skill,只有用户主动调用时才会注册这个钩子。】
/freeze — 阻止对特定目录之外的任何 Edit/Write 操作。在调试时特别有用:“我想加日志但老是不小心'修'了不相关的代码”
Skills 最大的好处之一就是你可以把它们分享给团队的其他人。
你可以通过两种方式分享 Skills:
把 Skills 提交到你的代码仓库中(放在 ./.claude/skills 下)
做成插件,搭建一个 Claude Code 插件市场(Plugin Marketplace),让用户可以上传和安装插件(详见文档)
对于在较少代码仓库上协作的小团队,把 Skills 提交到仓库中就够用了。但每个提交进去的 Skill 都会给模型的上下文增加一点负担。随着规模扩大,内部插件市场可以让你分发 Skills,同时让团队成员自己决定安装哪些。
怎么决定哪些 Skills 放进插件市场?大家怎么提交?
我们没有一个专门的中心团队来决定这些事;我们更倾向于让最有用的 Skills 自然涌现出来。如果你有一个想让大家试试的 Skill,你可以把它上传到 GitHub 的一个沙盒文件夹里,然后在 Slack 或其他论坛里推荐给大家。
当一个 Skill 获得了足够的关注(由 Skill 的作者自己判断),就可以提交 PR 把它移到插件市场中。
需要提醒的是,创建质量差或重复的 Skills 很容易,所以在正式发布之前确保有某种审核机制很重要。
你可能希望 Skills 之间互相依赖。例如,你可能有一个文件上传 Skill 用来上传文件,以及一个 CSV 生成 Skill 用来生成 CSV 并上传。这种依赖管理目前在插件市场或 Skills 中还不支持,但你可以直接按名字引用其他 Skills,只要对方已安装,模型就会调用它们。
为了了解一个 Skill 的表现,我们使用了一个 PreToolUse 钩子来在公司内部记录 Skill 的使用情况(示例代码在这里)。这样我们就能发现哪些 Skills 很受欢迎,或者哪些触发频率低于预期。
Skills 是 AI 智能体(AI Agent)极其强大且灵活的工具,但这一切还处于早期阶段,我们都在摸索怎样用好它们。
与其把这篇文章当作权威指南,不如把它看作我们实践中验证过有效的一堆实用技巧合集。理解 Skills 最好的方式就是动手开始做、不断试验、看看什么对你管用。我们大多数 Skills 一开始就是几行文字加一个踩坑点,后来因为大家不断补充 Claude 遇到的新边界情况,才慢慢变好的。
希望这篇文章对你有帮助,如果有任何问题欢迎告诉我。
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み