スキル一覧に戻る
DBS-Dev2000

get-teams-action-items

by DBS-Dev2000

Version-controlled repository for Claude Code and Claude Desktop agents and skills

0🍴 0📅 2026年1月25日
GitHubで見るManusで実行

SKILL.md


name: get-teams-action-items description: Extracts action items from Microsoft Teams messages across all chats and channels using keyword detection and @mentions. Triggers on "Get my Teams action items", "What action items do I have in Teams?", "Update Teams section in briefing entry [id]". Called by briefing-generator after get-email-summary. Transitions Phase from 3-Teams to 4-Wrike.

Get Teams Action Items

Retrieves Teams messages and identifies action items directed at the user.

Input Parameters

ParameterRequiredFormatDescription
entry_idYesUUIDNotion page ID of briefing entry
dateYesYYYY-MM-DDBriefing date
lookback_hoursNoNumberHours to look back (default: 24, range: 12-48)
max_messages_per_chatNoNumberMax messages per chat (default: 50, range: 10-100)

Action Item Detection

High Confidence Indicators

  • Direct @mention of user + action keyword
  • Message from manager/team lead
  • Urgency indicators: "urgent", "asap", "today", "EOD"
  • Specific deadline mentioned

Action Keywords

  • Assignment: "can you", "could you", "please", "need you to", "assigned to you"
  • Tasks: "action item:", "todo:", "task:", "follow up on", "get back to"
  • Reviews: "review this", "approve this", "test this", "look into"
  • Questions directed at user

Negative Signals (Exclude)

  • User's own messages
  • FYI/informational messages
  • Completed items ("done", "finished", "completed")
  • Already answered questions

Execution Workflow

Step 1: List Teams and Chats

Get Teams: m365:teams_list_teams

{ "account_id": "prisma" }

Get Chats: m365:teams_list_chats

{ "account_id": "prisma", "max_results": 50 }

Step 2: Identify Active Channels

For each team: m365:teams_list_channels

Prioritize: General, standup, daily, dev, management channels Limit: Top 10 channels per team, max 20 total

Step 3: Fetch Messages

Chats: m365:teams_get_chat_messages

{
  "account_id": "prisma",
  "chat_id": "19:...",
  "max_results": 50
}

Channels: m365:teams_get_channel_messages

{
  "account_id": "prisma",
  "team_id": "...",
  "channel_id": "...",
  "max_results": 50
}

Note: M365 tools have built-in is_action_item flag - leverage it.

Step 4: Analyze and Score Messages

// Scoring: @mention=3, action_keyword=2, question=1, urgency=2
// Threshold: score >= 3 = action item
// Exclude: own messages, completed items

Step 5: Format Output

Property format (pipe-separated, top 5):

Shaeem - Review PR | Michael - Test integration | Sarah - Budget approval

Content format:

## 💬 Teams Chat Action Items

- **Shaeem** (Dev Team) - Review PromoStandards PR before EOD ⚠️
- **Michael** (Kraken Channel) - Test AccuZIP integration with sample data
- **Sarah** (Management Chat) - Approve Kraken Phase 3 budget by Friday
- **Tom** (Daily Standup) - Update on offshore team code review status

Formatting: Bold sender, channel/chat context in parentheses, ⚠️ for urgent, limit 10 items.

Step 6: Update Notion

Tool: notion_update_page_properties

{
  "page_id": "entry_id",
  "command": "update_properties",
  "properties": {
    "Teams Action Items": "Shaeem - Review PR | Michael - Test integration",
    "Phase": "4-Wrike"
  }
}

Output Format

{
  "success": true,
  "entry_id": "...",
  "date": "2026-01-14",
  "action_items_found": 7,
  "urgent_count": 2,
  "sources": {
    "teams_checked": 2,
    "channels_checked": 8,
    "chats_checked": 12,
    "messages_analyzed": 234
  },
  "errors": []
}

Error Handling

CodeDescriptionSeverityAction
TEAMS001Teams API unavailableWarningContinue, note in output
TEAMS002Channel permission deniedWarningSkip channel, continue
NOTION001Entry not foundCriticalFail with error

Configuration

const CONFIG = {
  max_teams: 5,
  max_channels_per_team: 4,
  max_chats: 15,
  max_messages_per_chat: 50,
  detection_weights: {
    mentioned: 3,
    action_keyword: 2,
    question: 1,
    urgency: 2,
    threshold: 3
  },
  priority_channels: ["general", "standup", "daily", "dev", "management"]
};

⛔ MANDATORY: SAVE BEFORE COMPLETING

This skill is NOT complete until data is SAVED to Notion.
DO NOT return success until notion_update_page_properties succeeds.
Unsaved data WILL BE LOST on context compaction.

Integration

  • Called by: briefing-generator orchestrator after get-email-summary
  • Followed by: get-wrike-tasks (Phase 5)
  • API calls: ~24 (teams, chats, channels, messages, Notion)
  • Expected time: 15-25 seconds
  • ⛔ MUST SAVE: Teams action items to Notion BEFORE returning

スコア

総合スコア

45/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

0/5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です