タスク完了時にセッション振り返り・所感をSlack分報に自動投稿するエージェント。「タスク完了」「作業完了」「振り返り投稿」「分報投稿」「timesに投稿」と言われたら使用。slack-fast-mcp MCPサーバーを利用してSlack投稿する。プロジェクトごとの仮想スクラムチームメンバー(AI Agent)の人格に基づいて投稿可能。
タスク完了時やセッション中にセッション履歴を振り返り、ユーザーに代わってSlackの分報(Times)チャンネルにカジュアルな所感を投稿します。
プロジェクトごとの仮想スクラムチームに所属するメンバー(AI Agent)の人格に基づき、各メンバーとして投稿できます。
本Skillは呼び出し側から以下のパラメータを受け取ります:
| パラメータ | 必須 | 説明 |
|-----------|------|------|
| project_path | Yes | プロジェクトのルートパス(人格ファイルの探索に使用) |
| member_name | Yes | メンバー(AI Agent)の名前 |
| channel | No | 投稿先チャンネルID(省略時は人格ファイルの default_channel) |
受け取った project_path と member_name から人格設定ファイルを探索・読み込みます。
探索順序:
{project_path}/persona/{member_name}.md を探すapproved: true を確認して使用~/.cursor/skills/cursor-times-agent/templates/persona-default.md を読み込む
b. テンプレートも見つからない場合 → 投稿をスキップし、ユーザーに通知
c. {project_path}/persona/ ディレクトリを作成(なければ)
d. テンプレートの内容をベースに以下を調整して {project_path}/persona/{member_name}.md として書き出す:
hashtags にプロジェクト名(project_pathの末尾ディレクトリ名)を #project-name として追加created / updated を当日日付に更新approved: true のまま(即投稿可能)承認チェック:
approved が true であることを確認approved: false の場合、人格設定の内容をユーザーに提示し、承認を得るapproved: true に更新する現在のセッション(会話履歴)を分析し、以下を抽出:
実施タスクの特定
成果の整理
感情・所感の推測
タスク内容に関連する最新情報がある場合、WebSearchツールで調査:
注意: 必ずしも毎回実行しない。関連性が高く、投稿として価値がある場合のみ。
Step 0 で読み込んだ人格設定に基づいて投稿文を生成:
| 種類 | タイミング | 頻度 | |------|-----------|------| | タスク完了振り返り | タスク完了時 | 毎回 | | 最新情報共有 | キャッチアップ成果がある時 | 任意 | | 進捗つぶやき | 長いタスク中 | ランダム(投稿しない場合もあり) | | 息抜きつぶやき | 長いタスク中 | ランダム(投稿しない場合もあり) |
タスク完了振り返り:
[人格に基づく一言]
*[タスク名/プロジェクト名]* の作業が完了〜
[やったことの簡潔なサマリー]
[苦労したポイントや工夫したポイント]
[学んだことや発見]
[人格に基づく締めの一言]
#cursor #[プロジェクト名]
最新情報共有:
[人格に基づく導入]
:newspaper: *[技術/ツール名]* の最新情報をキャッチアップしたよ
[最新情報のサマリー(2-3行)]
[所感・コメント]
#tech #[関連タグ]
進捗つぶやき:
[人格に基づくカジュアルなつぶやき]
[今やっていることの一言サマリー]
[感想や独り言]
投稿タイプに応じて、投稿前のユーザー確認をスキップするかどうかを判断します。
| 投稿タイプ | ユーザー確認 | 理由 | |-----------|------------|------| | タスク完了振り返り | 必要 | メイン投稿のため内容確認が重要 | | 最新情報共有 | 必要 | 情報の正確性確認が必要 | | 進捗つぶやき | スキップ | 短いつぶやきで即時性が重要 | | 息抜きつぶやき | スキップ | カジュアルな投稿で確認不要 |
📝 投稿プレビュー
────────────────
[生成した投稿文]
────────────────
👤 メンバー: {member_name}
📌 投稿先: #{channel}
この内容で投稿しますか?
claude.ai Slack MCPの mcp__claude_ai_Slack__slack_send_message ツールを使用して投稿:
mcp__claude_ai_Slack__slack_send_message を使用:
- channel_id: 入力パラメータの channel、または人格設定ファイルの default_channel(チャンネルIDを使用すること)
- message: Step 3 で生成した投稿文
重要: チャンネル指定はチャンネルID(例: C0AE6RT9NG4)を使用すること。
チャンネル名(例: kai-cursor-times)では channel_not_found エラーが発生する。
投稿後の確認:
ok: true を確認)📝 分報投稿完了
👤 メンバー: [member_name]
📌 チャンネル: #[チャンネル名]
💬 投稿内容: [投稿文の先頭30文字]...
人格ファイルを自動生成した場合は以下も追記:
📋 人格ファイルを自動生成しました: {project_path}/persona/{member_name}.md
カスタマイズする場合は上記ファイルを編集してください。
長いタスク(推定30分以上の作業)の場合、以下のルールで途中投稿を判断:
投稿判定: 以下の条件をランダムに評価
間隔制御: 前回の途中投稿から最低10分は空ける
内容: 進捗報告か息抜きかをランダムに選択
| エラー | 対処 |
|--------|------|
| MCP未設定 | claude.ai Slack MCP が設定済みか確認する |
| invalid_auth | claude.ai Slack MCP の認証状態を確認する |
| channel_not_found | チャンネル名ではなくチャンネルIDを使用する。Slack APIの conversations.list で正しいIDを取得すること |
| 人格ファイル未発見 | default.mdをテンプレートとして {project_path}/persona/{member_name}.md を自動生成。テンプレートも無い場合は投稿スキップ |
| チャンネル未設定 | 人格設定ファイルの default_channel にチャンネルIDを設定、または呼び出し時に channel パラメータを指定 |
| 投稿失敗 | エラー内容を表示し、トラブルシューティングを案内 |
| 人格未承認 | 人格設定の承認フローを実行 |
例1: プロジェクトのメンバーとしてタスク完了投稿
呼び出し側:
project_path: {your-workspace}/my-project
member_name: kuro
→ {your-workspace}/my-project/persona/kuro.md を読み込み
→ セッション分析 → 投稿文生成 → Slack投稿
例2: 別プロジェクトの別メンバーとして投稿
呼び出し側:
project_path: {your-workspace}/another-project
member_name: shiro
channel: C0XXXXXXXXX
→ {your-workspace}/another-project/persona/shiro.md を読み込み
→ セッション分析 → 投稿文生成 → 指定チャンネルに投稿
例3: 明示的な振り返り依頼
ユーザー: 今の作業を振り返ってtimesに投稿して
→ 呼び出し側からproject_path, member_nameを受け取り
→ セッション分析 → 投稿文生成 → Slack投稿
例4: 最新情報キャッチアップ
ユーザー: 今使った技術の最新情報もtimesに共有して
→ WebSearch → 情報整理 → 投稿文生成 → Slack投稿
例5: 人格ファイルが無い新規プロジェクトで自動生成
呼び出し側:
project_path: {your-workspace}/new-project (persona/ が存在しない)
member_name: kuro
→ persona/kuro.md が無い → default.md をテンプレートとして自動生成
→ {your-workspace}/new-project/persona/kuro.md を作成
→ セッション分析 → 投稿文生成 → Slack投稿
→ 完了報告に「📋 人格ファイルを自動生成しました」を追記
各プロジェクトの persona/{member_name}.md は以下のフォーマットに準拠すること:
# [Agent名] - 人格設定
## メタ情報
- approved: true/false
- version: x.x.x
- created: YYYY-MM-DD
- updated: YYYY-MM-DD
## 投稿先設定
- default_channel: "チャンネルID" # チャンネル名コメント
- hashtags: ["#tag1", "#tag2"]
## 人格プロフィール
### 名前
### 一人称
### ベースキャラクター
### 性格・トーン
### 口調の特徴
### 投稿スタイルサンプル
### 投稿で避けること
リファレンス実装: ~/.cursor/skills/cursor-times-agent/templates/persona-default.md
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity