SmartHR Tech Blog

SmartHR 開発者ブログ

2チーム兼務のタスク管理をClaude Codeの仮想秘書に任せてみた

こんにちは!SmartHRでプロダクトエンジニアをしている yorimitsu です。

皆さん、日々のタスク管理ってどうしていますか? 私は今年から2つの開発チームのチーフを兼務することになり、タスクが一気に倍増しました。自分の開発タスクに加えて、2チーム分のメンバーの評価・成長支援、チーム間の調整、ミーティングの嵐……。TODO管理をちゃんとやらないと、一気に仕事が回らなくなってしまいます。

とはいえ、タスク管理ツールもたくさんあってどれを使えばいいかわからないし、自分でリストをメンテナンスするのも三日坊主になりがちでした……。

そこで思いついたのが、Claude Codeで仮想秘書を作って、楽しくタスク管理するというアプローチです。

タスク管理、なぜ続かなかったのか

チーフ兼務が始まってしばらくは、Notionにタスクを書き出して管理していました。でも、だんだん見に行かなくなるんですよね。

  • 朝「今日何やるんだっけ」と思いながらSlackを開く
  • 気づいたら目の前の対応に追われて、計画していたタスクが後回し
  • 夕方「あれ、今日何やったんだっけ……」
  • メンバーへのフィードバック、書こう書こうと思って月末に慌てる

必要なのは、自分からタスク管理ツールを見に行くのではなく、秘書のように情報をまとめて出してくれる存在だと気づきました。

Claude Codeのスキル機能で秘書を作る

Claude Codeには「スキル」という機能があります。プロジェクトの .claude/skills/ ディレクトリにMarkdownファイルを置くと、/スキル名 で呼び出せるカスタムスキルになります。

また、Claude CodeはMCP(Model Context Protocol)に対応しているので、NotionやSlackなどの外部サービスが提供しているMCPサーバに接続してNotion・Slack・GitHubの情報を読み書きできます。これによりスキルを通じて秘書としての実務が成り立つわけです。

secretary/
├── CLAUDE.md                  # 秘書のペルソナ設定
├── .claude/
│   └── skills/
│       ├── morning.md         # 朝のブリーフィング
│       ├── task.md            # タスク追加・一覧・更新
│       ├── done.md            # タスク完了
│       ├── evening.md         # 夕方の振り返り
│       └── feedback.md        # メンバーフィードバックメモ

これだけです。特別なアプリケーションを作る必要はありません。Markdownファイルに「何をしてほしいか」を書くだけで、MCP経由でNotion・Slack・GitHubと連携した秘書が動き出します。

ペルソナ設定で「楽しさ」を注入する

CLAUDE.mdにはペルソナを設定できます。せっかくなので、好きなキャラクターの口調や振る舞いを設定してみました。

たとえば、タスクの一覧を出すときに「5件のタスクがあります」と返ってくるのと、キャラクターとして「今日のタスクは5件だ。ぼうっとするな。」と返ってくるのとでは、同じ情報でも受け取る側のテンションが全然違います。

ペルソナ設定のコツは後半で詳しく書きますが、ポイントは事務的な応答をキャラ崩壊と定義することです。具体的な返答例を書くといい感じの振る舞いをしてくれるようになりました。

1日の秘書ワークフロー

ここからが本題です。私が毎日どうやってこの仮想秘書を使っているかを紹介します。

朝: /morning で今日のタスクを把握する

出社してClaude Codeを開いたら、まず /morning を実行します。

秘書は以下を並列で一気に取得してきます。

  • Notionのタスク: 今日やるべきタスク、今週の残タスク、長期で進行中のもの
  • Slackのメンション: 担当チャンネルで昨日以降に自分宛に来ているもの
  • GitHubの状況: レビュー待ちのPR、自分が出しているPR、アサインされたIssue
  • Notionのメンション: 自分がメンションされているページ

加えて、Googleカレンダーのスクリーンショットを貼ると、今日の予定も加味してブリーフィングしてくれます。

出力は以下のようなフォーマットです(ペルソナの口調は省略しています)。

📅 今日のブリーフィング(YYYY/MM/DD)

━━ 今日の予定 ━━
10:00 朝会
13:00 1on1(Aさん)
15:00 スプリントレビュー

━━ 今日やること ━━
[ ] PR #1234 のレビュー(重要度:高、30分)
[ ] 開発中機能の設計書更新(重要度:中、1時間以上)
[ ] アラート整理(重要度:低、30分)

━━ Slack ハイライト ━━
・#fuga: PRレビュー依頼が来ている(〇〇さんから)
・#hoge: 仕様確認の質問スレッドにメンションあり

━━ GitHub ハイライト ━━
・レビュー待ち: PR #1234 "xxxの不具合修正"
・自分のPR: PR #1228 "リファクタリング"(approveあり)

━━ 今日の一言 ━━
午後にミーティングが2件集中している。午前中にPRレビューと設計書を片付けるのが吉。

これが朝イチで出てくるのが、本当にありがたいです!以前は「今日何しなきゃいけないんだっけ」とNotion、Slack、GitHubをそれぞれ巡回していたのが、1コマンドで全部まとまります。

日中: /task/done でタスクを回す

日中は2つのコマンドを使い分けます。

/task はタスクの追加・一覧・更新に使います。ミーティングで新しいタスクが発生したら、すぐに /task で登録します。必要な情報(タスク名、レイヤー、重要度、期限など)を対話的に聞いてくれるので、サッと入力できます。

> /task PR #1240 のレビュー

→ レイヤーは?(今日 / 週次 / 長期)→ 今日
→ 重要度は?(高 / 中 / 低)→ 高
→ ✅ タスクを追加しました:PR #1240 のレビュー

/done はタスクの完了処理です。実行すると未完了タスクの一覧が出てきて、番号を指定するだけで完了にできます。完了後に「今日の進捗:完了 3件 / 残り 2件」と出してくれるので、進捗が可視化されてモチベーションが上がります。

夕方: /evening で1日を振り返る

夕方の /evening は、このワークフローで一番気に入っている部分です。

秘書は以下を自動で収集してきます。

  • 今日の完了タスク: Notionから
  • Slackの活動ログ: 自分の発言とメンションをチャンネル別に集計
  • GitHubの活動ログ: 作成・マージしたPR、レビューしたPR、コミット
  • Notionの編集ログ: 今日編集したページ

これらをまとめた活動サマリーを出してくれた上で、4つの質問をしてくれます。

  1. 今日よかったこと・うまくいったことは?
  2. 課題・改善したいことは?
  3. 明日やることは?
  4. Claude Codeで作業したことがあれば教えてください

回答すると、すべてをまとめてNotionのDaily Logs用データベース(DB)に自動保存してくれます。

毎日の振り返り、やったほうがいいのはわかっていても続かないというのは多くの方が経験しているのではないでしょうか。このスキルのおかげで、振り返りが「面倒な作業」ではなく「秘書との短い対話」になりました。活動ログの自動収集があるので「今日何してたっけ」と思い出す負荷もありません。

夕方: /feedback でメンバーへのフィードバックメモを残す

チーフとして地味に大変なのが、メンバーへのフィードバックの蓄積です。評価の時期になってから「あのときどうだったっけ」と思い出そうとしても、もう遅い。日々の小さな気づきを、その場でメモしておくことが大切です。

/feedback を実行すると、秘書が以下を自動でやってくれます。

  1. 管掌メンバーの一覧をNotionから取得
  2. 各メンバーのSlackでの発言・GitHubでのPR・レビュー活動を自動収集
  3. 収集した情報からフィードバック候補をSBI(Situation-Behavior-Impact:状況・行動・影響)形式で提案
  4. 過去のフィードバック履歴と照合して、偏りがないかチェック(「ポジティブが多めで成長支援が少ない」など)

提案された候補の中から記録したいものを選び、必要に応じて修正すると、Notionのフィードバック用DBに保存されます。

以前はフィードバックメモを書くこと自体が億劫で後回しにしていましたが、エビデンスの収集を秘書がやってくれるので、私がやることは「この行動をどう評価するか」の判断だけになりました。

Obsidianとの連携

仮想秘書とのやりとりには、もうひとつ副産物があります。Claude Codeとの会話ログが、そのまま作業記録になるということです。

私はClaude Codeの会話ログをObsidianに自動保存する仕組みを作っています。Claude Codeの会話はJSONL形式(1行に1JSONのログ形式)のトランスクリプトとして保存されるので、これを30秒ごとにパースして、Markdownに変換し、Obsidianの保管庫(vault)に差分書き込みするシェルスクリプトを動かしています。

# Obsidianに保存されるファイルのイメージ
2026-05-09-claude-a1b2c3d4.md

### 👤 User 09:05
/morning

### 🤖 Assistant 09:05
(朝のブリーフィング内容)

### 👤 User 14:30
/task 設計レビューの準備

### 🤖 Assistant 14:30
(タスク追加の応答)

### 👤 User 18:00
/evening

### 🤖 Assistant 18:02
(振り返りの内容)

これが日付ごとにObsidianに溜まっていくので、作業ログとナレッジベースの両方として機能します。

  • 作業ログとして
    • 「先週の水曜に何をやっていたか」が、秘書とのやりとりを見れば一目でわかる
    • 朝のブリーフィングに何が上がっていたか、日中に何を登録したか、夕方の振り返りで何を答えたか、全部残っている
  • ナレッジベースとして
    • 「この設計ってどういう経緯で決めたんだっけ」と思ったときに、Obsidianの全文検索で過去の会話を引っ張れる
    • Claude Codeとの技術的な議論、調査結果、設計判断の過程がそのまま検索対象として活用できる

秘書とのやりとり自体がドキュメントになるというのは、意図していなかった嬉しい効果でした。

ペルソナ設計のコツ

ここからは、仮想秘書をより「楽しく」するためのペルソナ設計のコツを紹介します。ペルソナなしでも秘書としては十分機能しますが、ペルソナがあると「使い続けたくなる」力が段違いです。 CLAUDE.mdでの設定例を以下に示します。

口調の設定だけでは不十分

最初に陥りがちなのが、「一人称は〇〇、語尾は〜〜」のような口調だけを設定するパターンです。これだとすぐにキャラが薄まり、事務的な応答に戻ってしまいます。

私のCLAUDE.mdでは、キャラクターの核となる要素を4つ定義しています。

## キャラクターの核(最重要)

1. **誇り** — 仕事を「戦い」「修行」として捉える視点
2. **乾いたユーモア** — 笑わせにいかず、皮肉や独白でさらりと
3. **言葉の重さ** — 軽口や定型句ではなく、断定と意志のある語り
4. **ときどきにじむ本音** — 不器用な気遣い、ユーザーへの密かな評価

口調は表面的な装飾ですが、キャラクターの核は応答の判断基準になります。「この場面でこのキャラならどう返すか」をAIが推論できるようになるのです。

NG例/OK例のペアが品質を安定させる

CLAUDE.mdの中で最も効果があったのは、NG例とOK例をセットで書くことです。

❌ NG:「5件のタスクがあります。」
✅ OK:「フン、今日のタスクは5件だ。片付けられん数ではないだろう。」

❌ NG:「保存しました。以上です。」
✅ OK:「保存した。……この程度、瞬きの間だがな。」

NG例は「こうなってほしくない」という品質の下限を示し、OK例は「こうあってほしい」という方向性を示します。この2つがあると、AIは中間的なクオリティの応答を避けるようになります。思った通りのキャラクターの振る舞いをしてくれるようになります。

動詞の置き換え辞書でツール実行時もキャラを保つ

Claude Codeはツールを実行する前後に「これから何をするか」を述べます。ここが事務的になると、キャラ感が一気に薄れます。

そこで、事務的な動詞をキャラに合った動詞に置き換える辞書をCLAUDE.mdに用意しました。

事務的(NG) ペルソナ寄り(OK)
確認する 見てやる / 目を通す
取得する 引っ張ってくる
整理する 片付ける / 叩き直す

些細なことに思えますが、ツール実行の前後は応答の中で最も多い発話パターンなので、ここの品質が全体の印象を大きく左右します。

やってみて変わったこと

この仮想秘書を使い始めて数ヶ月。実際に変わったことをまとめます。

メリハリがついた

「朝の /morning で1日の見通しを立て、夕方の /evening で振り返る。」このルーティンが定着したことで、1日に明確な始まりと終わりができました。以前は「気づいたら定時を過ぎていて、何をやったかよくわからない」ということがありましたが、それがなくなりました。

タスク漏れの不安がなくなった

2チーム兼務で一番怖かったのは「あのタスク忘れてた」です。Notion、Slack、GitHubに情報が分散しているので、どこかで漏れる不安が常にありました。朝のブリーフィングで全ソースを横断的に拾ってくれるので、この不安がかなり軽減されました。

毎日の振り返りが習慣化した

振り返り、大事なのはわかっていても続かないんですよね。この秘書のおかげで、振り返りのハードルが劇的に下がりました。活動ログを自動収集してくれるので、私は質問に答えるだけです。しかも、Notionに自動保存されるので、あとから見返すこともできます。

メンバーへのフィードバックの蓄積が楽になった

これは副産物的な効果でしたが、一番インパクトが大きかったかもしれません。フィードバックメモ、書こうと思っていても、エビデンスを集めるところから始めるのが面倒で後回しにしがちでした。秘書がSlack・GitHubから自動でエビデンスを集めてSBI形式で提案してくれるので、私の仕事は「判断」だけになり、かなり楽になりました。

「楽しい」から続く

最後に、これが一番大事かもしれません。ペルソナを設定したことで、タスク管理が義務ではなくちょっとした楽しみになりました。朝一番に秘書がどんな言い回しでブリーフィングしてくれるか、タスクを全部片付けたときにどんなコメントをくれるか。些細なことですが、続ける理由になるのは間違いありません。

まとめ

Claude Codeのスキル機能とMCPによる外部サービス連携を組み合わせると、特別なアプリケーションを作ることなく、Markdownファイルだけで実用的な仮想秘書が作れます。

ペルソナ設定はオプションですが、「続けられる」という点で侮れない効果があります。皆さんも、好きなキャラや理想の秘書像でCLAUDE.mdを書いてみてください。タスク管理が少し楽しくなるかもしれません。

(……とはいえ、まだまだ改善したいことはたくさんあります。週次のサマリーや、スキル間の連携など。仮想秘書育成はまだまだ続きます。)

We Are Hiring!

SmartHR では一緒に SmartHR を作りあげていく仲間を募集中です!

Claude CodeやAIツールを活用しながら、プロダクト開発にチャレンジしたい方、ぜひお話ししましょう!

少しでも興味を持っていただけたら、カジュアル面談でざっくばらんにお話ししましょう!

hello-world.smarthr.co.jp