1時間で開発を完了する。Claude Code の Skill で社内プロジェクトを仕組み化した話
この記事は Claude on SonicGarden の記事です。ソニックガーデンのプログラマが、Claude Codeの活用について書いています。#claude_on_sonicgarden
はじめに
複数の業務を抱えていると、どうしても優先度が下がってしまうタスクがあります。私の場合、それは 社内プロジェクトの開発 でした。
本記事では、その社内プロジェクト開発を気合いではなく「仕組み」で前に進めるために、Claude Code の Skill を活用してチームの開発フローを自動化した取り組みについて紹介します。
なぜ社内プロジェクトが後回しになっていたか
社内プロジェクトの定例はZoom で実施しており、そこで決まったタスクを 翌週の定例までにデモできる状態 に仕上げる必要があります。
ただし、いきなりPO の前でデモするのは理想的ではありません。チームでは、その前に開発メンバー間で事前確認を行う 「前うち」 を設けており、ここでデモ可能な状態にしてから相互にフィードバックし合うのが本来あるべき進め方です。
しかし実態としては、
- 開発には着手しているものの、レビューや動作確認が終わりきっていない
- 懸念点や PO への確認事項を具体的に議論できない
といった問題が度々発生していました。
「忙しい中で前うちに間に合わせる」のではなく、そもそも仕組みとして間に合う状態をつくれないだろうか?
これが今回の出発点です。
「後うち」の時間を開発時間に変える
チームでは定例終了後、振り返りを兼ねた 「後うち」 という時間を設けており、そこで定例で決まったタスクを各担当者に割り振っていました。
ここで考えたのが、
後うちの時間内で「割り振り」だけでなく「実装〜テストまで」終わらせてしまえないか?
という発想です。
ただし、これを人力で愚直にやろうとするのは継続的ではありません。そこで Claude Code の Skill を使い、後うちの時間内に複数タスクを並列で回せる仕組みを構築しました。
仕組みの全体像
実装した Skill のワークフローは以下の通りです。
- プロジェクト管理ツールから情報を取得し、ユーザーから渡されるzoomの要約と照らし合わせて、その週に優先して取り組むタスクを決定する
- 複数タスクに対して サブエージェントを並列起動し、実装〜テスト作成までを一気に進める。
- PR を自動作成し、社内タスク管理ツールのステータスを 「未着手」→「確認中」 に変更。PR の URL を担当者メンション付きでタスク管理ツールに投稿する
ここで重要だったのは、メンバー各自がバラバラに Skill を実行するのではなく、全員分のタスクを一括で並列起動する という点です。
理由はシンプルで、「このタスクが終わらないと次のタスクに着手できない」といった依存関係に縛られず、その日のうちに全員のタスクを完了状態に持っていきたかった からです。後うちという限られた時間内でこれを実現するには、並列実行が前提条件でした。
Skill の構成
実装にあたっては、Claude Code の Skill / Rules / Subagents をそれぞれ役割分担させて構成しました。
1. ~/.claude/skills/start/SKILL.md
ワークフロー全体のエントリーポイントとなる Skill です。
---
description: Zoom要約と社内タスク管理ツールから今週の実装計画を立て、worktreeごとに並列実装する
argument-hint: <PROJECT_ID>
---
# 今週の実装ワークフロー
PROJECT_ID: $ARGUMENTS
以下を **厳密に順番通り** 実行してください。各 USER GATE では必ず停止し、ユーザーの明示的な承認を待つこと。
---
## Step 0: Zoom 要約の受領
ユーザーに以下を提示し、Zoom 要約のテキストを貼ってもらう:
> 定例 Zoom の要約を貼ってください。
返ってきたテキストを「Zoom要約」として保持する。空であれば停止して再依頼。
以下実装手順に関する指示
ポイントを補足します。
-
argument-hintは Skill コマンド呼び出し時に渡せる引数のヒントを示すフィールドで、Skill を起動するときに「どんな引数を渡すべきか」をユーザーに伝えるために使っています。 -
$ARGUMENTSは Claude Code の組み込み変数で、Skill 呼び出し時に渡されたすべての引数を参照できます。 - 今回は社内タスク管理ツールの運用ルールを
.claude/rules/tools.mdに定義し、その中でPROJECT_IDを宣言しています。.claude/rules配下のファイルはCLAUDE.md経由で常時コンテキストに載るため、コマンド側に「引数なしならここで定義された PROJECT_ID を採用してよい」と書いておくことで、事実上の引数省略 が可能になっています。
2. ~/.claude/rules/project.md
プロジェクト管理ツールと連携するためのルールを Claude に指示するファイルです。
3. ~/.claude/agents/task-implementer.md
タスクを並列実行するためのサブエージェント設定です。
---
name: task-implementer
description: 単一の開発タスクをworktree内で プラグインに委譲して実装する担当エージェント
tools: Read, Write, Edit, Bash, Grep, Glob, Skill
---
tools に Skill を含めているのは、Subagents 内で plugin としてインストールした Skill コマンドを呼び出すためです。これにより、Subagents が「単純なコード生成だけをするエージェント」ではなく、社内独自の設計〜実装〜テスト作成プロセスに沿って動くエージェント として振る舞えるようにしています。
参考リンク:
前うちの時間をより議論することに使えそう
今回は「業務を効率化するために、自分が本当に使いたい Skill」というテーマで作成してみました。
コマンドを実行するだけで、
- タスクの優先順位付け
- 並列での設計〜実装〜テスト作成
- PR 作成とステータス更新、担当者への通知
までを一気通貫で自動化できるのは、かなり便利な仕組みになったと感じています。何より、「動く状態のもの」を起点にチーム内の議論ができる ようになることで、レビューや前うちの時間を「コードを動かすこと」ではなく 「考えること」に使える のは大きな変化です。
仕組みのレールは敷けましたが、ここからが本番です。今後は実際に使いながら、
- 実装の精度向上
- プロンプトやルールのチューニング
- サブエージェントの役割分割の見直し
といった改善を継続的に回し、チームにとってより自然に組み込まれた開発フローへと育てていきたいと考えています。
Discussion