前書き
タスクを行う際、特に大きなタスクの場合タスクを細かく分解して何をすればよいのかをはっきりとさせていくことはかなり業務の効率化に有効な手段となります。
普段からエクセルで業務の細分化を行っているのですが、これを今回はClaudeを用いていい感じに自動化できないだろうかというのが今回の記事の内容になります。業務の効率化を図れることはもちろん、Claudeについての知識を深めるためにも良い機会になるかと思いますので最後まで読んでいただけますと幸いです。
目標
最終的な目標としては、以下に示す画像1のような形式でタスクを細分化したものを出力してもらえることが理想です。

実際にやってみる
まずはそのまま
VSCode上で以下のプロンプトを入力し、エクセル形式で出力されるように調整してみました
「GitHubにあるissue#191の内容について画像のような形で細分化を行ってください」
添付画像は以下のよう

出力されたもの

かなりいい出来、というかもうほとんど完成といっていいレベル…w
やることの内容も少し専門用語が多いことと堅苦しいことを除けば問題ないような内容になっていると思われる
ここにAIレビュー、コードレビュー、リリースノート作成、変更セット作成を付け足すよう改善を行ったものを一旦初期段階としておく
これをコマンドで操作できるようにしていきたい
思ったより簡単にエクセル作成までできてしまったのでこれをコマンドで行うことができるようにしていきます
コマンドに関しては以下のように作成を行うことができます
1. 対象のプロジェクトの.claude/skills/に新しくフォルダを作成します(このフォルダの名前がコマンド名となります)
2. 新しく作成したフォルダ内にSKILL.mdという名前でファイルを作成します
3. SKILL.mdの内容にコマンド実行時の動作を記載していきます

SKILL.mdの中身に関して
最初にYAMLフロントマター(コマンドの設定みたいなのを行う部分)を記載して、その後マークダウン形式で行ってほしい動作を記載していく
---
name: subdivision-issue
description: GitHub issueの内容を調査し、フェーズ/大分類/やることに細分化したWBSをExcel(.xlsx)形式で生成する。想定時間・実績工数の自動集計と目標工数欄も追加する。
disable-model-invocation: true
allowed-tools: Write, AskUserQuestion, Bash(gh issue view:*), Bash(mkdir:*), Bash(python:*), Bash(pip install:*), Bash(rm:*)
---
- name:コマンド名
- description:コマンド実行時の動作の説明
- disable-model-invocation: Claude側の自動呼び出しを制御(trueの場合はClaude側の自動呼び出しを止める)
- allowed-tools:コマンド実行時に確認なしで使わせるツールの指定
その後行ってほしい動作を記載していく
---
name: subdivision-issue
description: GitHub issueの内容を調査し、フェーズ/大分類/やることに細分化したWBSをExcel(.xlsx)形式で生成する。想定時間・実績工数の自動集計と目標工数欄も追加する。
disable-model-invocation: true
allowed-tools: Write, AskUserQuestion, Bash(gh issue view:*), Bash(mkdir:*), Bash(python:*), Bash(pip install:*), Bash(rm:*)
---
**引数**: `<issue番号>`(例: `/subdivision-issue 191`)
## 手順
1. `gh issue view <issue番号> --json title,body,comments,labels,url` でissue本文・既存のコード調査コメント・ラベルを取得する
2. 内容を分析し、以下のフェーズ構成でタスクを細分化する
- 事前調査
- 開発(要件ごとに大分類を分ける)
- テスト
- レビュー(AIレビュー / AIレビュー修正 / コードレビュー / レビュー後修正1 / レビュー後確認1 / レビュー後修正2、想定時間は順に 30 / 120 / 30 / 120 / 30 / 未定)
- リリース後作業(リリース後作業の確認、共有)
- その他(変更セット・リリースノート作成で計60分、要件シート最終確認)
3. `pip show openpyxl` 等で未インストールが判明したら `pip install openpyxl` を実行する
4. Pythonスクリプトを作成し(Writeツールで一時ファイルとして出力)、openpyxlで以下のレイアウトに**固定して**Excelを生成する(下記の行・列構成を変更しない)
**1〜3行目: タイトル・集計ブロック**(列: A〜Cがタイトル/URL、D〜Gが集計、H〜Iが目標値)
- `A1`(`A1:C1`結合): issueタイトル(例: `[04-20-02] 撮影管理画面修正`)。太字・やや大きめのフォント
- `A2`(`A2:C2`結合): issue URLへのハイパーリンク
- `A3`: 空欄
- `D1:E1`結合 = `合計時間`、`F1:G1`結合 = `実績合計`、`H1` = `目標工数`、`I1` = 目標工数の手入力欄(空欄)
- `D2` = `(m)`、`E2` = `=SUM(想定時間列の範囲)`、`F2` = `(m)`、`G2` = `=SUM(実績工数列の範囲)`、`H2` = `目標時間`、`I2` = `=I1*7`(1日7時間換算)
- `D3` = `(h)`、`E3` = `=E2/60`、`F3` = `(h)`、`G3` = `=G2/60`(`H3`/`I3`は空欄)
**4行目: ヘッダー行**
- 列構成: フェーズ, 大分類, やること, 想定時間, 実績工数, 完了目安, 進捗
- 背景色を青系(例: `4472C4`)にし、白文字・太字・中央揃えにする
**5行目以降: データ行**
- フェーズ列は同一値の行を縦結合する
- 大分類列は必ず値を入れる(空欄にしない)。フェーズ内にサブカテゴリがない場合はフェーズ名自体を大分類列にも入れて縦結合する
- 進捗列はチェックボックス代わりに `☐` を表示(チェック不要な行は空欄)
- 全セルに薄いグレーの罫線を付ける
集計式の `SUM` 範囲・行番号は、データ行の開始行(5行目)〜最終行に合わせて動的に算出する
5. 出力先パスは英数字のみのファイル名で一時生成する(日本語ファイル名を直接指定するとgit bash経由のPython実行でパス解釈エラーになるため)
6. 移動先 `C:\Users\<ユーザー名>\Downloads\issue<番号>_<issueタイトル>_WBS.xlsx` に同名ファイルが既に存在するかを確認する
- 存在しない場合はそのまま `shutil.move` で移動する
- 存在する場合は、既存ファイルに入力済みのデータ(実績工数・目標値など)が失われる可能性があるため、上書きしてよいか・別名で保存するかを必ずAskUserQuestionでユーザーに確認してから進める
- 開かれていてロックされている場合はその旨を伝え、閉じてもらってから上書き(`os.remove`後に`shutil.move`)する
- 上書き承諾が得られない場合は別名(例: `_v2`)で保存する
7. 一時生成したPythonスクリプト等の作業ファイルは `rm` で削除する
8. 完成したファイルパスと、追加したセクション・集計内容の概要を報告する
使用するときのコマンド
そのまま/<フォルダ名>で実行を行うことができます
引数に関しては/<フォルダ名> <引数>のように記載することになります
(#191のissueを対象にしたい場合は以下のよう)
/subdivision-issue 191
もしここから付け加えるなら…
実装できている部分をチェックしてくれるように
現在のローカルとGitのリポジトリの差分を確認して実装を行うことができている部分についてはチェックを付けてくれるようになるとより効率的になるかもしれません
細分化を基にsubissueを作ってくれるように
特に大きいタスクの場合は有用になるかもしれません。細分化したものを基にして機能ごとでsubissueを作成し、PRの分割をできるようになるとより良くなるかも
細分化のエクセルを日報に活用するように
teamsの日報の作成の際に私はこの細分化の表を張り付けるようにしているのですがこれを自動で行ってくれたりするとよいかもしれません
などなど…
まとめ
意外と簡単に実装できてしまって拍子抜けだったのですが、かなりいろいろな場面で応用できる内容になるかと思います。今回は主にコマンドの作成を行ってみましたが、そのほかにも活用できる内容はたくさんあると思いますので是非調べて、使ってみてください。
あとがき
今回のmdファイルなどはほとんどClaude君に作ってもらったのは内緒です。ほんとに賢くて「今までの動きをコマンドにして」といったような指示をするだけで勝手に作ってしまったので思わず天才すぎない?とClaude君を称賛してしまいました。
今時こういったことはAIを使えばすぐにできてしまうのでぜひ皆さんもアイデアを形にしてみてください!