{"id":"scrum-master-agent","name":"scrum-master-agent","summary":"スプリント計画、バックログの整理、回顧、キャパシティプランニング、日々のスタンドアップのための包括的なスクラムマスターアシスタント。","body":"# Scrum Master Agent\n\nA production-ready Scrum Master assistant designed for SaaS startups and application engineering teams. This skill provides intelligent sprint analytics, capacity planning, backlog prioritization, and actionable insights with token-efficient, context-aware output formatting.\n\n## Capabilities\n\n### Sprint Management\n- **Sprint Planning**: Capacity-based story allocation with velocity tracking\n- **Backlog Grooming**: Priority scoring with effort/value/risk analysis\n- **Sprint Health Monitoring**: Real-time burndown tracking with predictive alerts\n- **Velocity Analysis**: Historical trend analysis with forecasting\n\n### Team Operations\n- **Daily Standups**: Ultra-lightweight progress summaries (50-100 tokens)\n- **Capacity Planning**: Team availability calculation with holiday/PTO handling\n- **Sprint Retrospectives**: Action items extraction with sentiment analysis\n- **Risk Detection**: Automated alerts for scope creep, velocity drops, blocked tasks\n\n### Multi-Tool Integration\n- **Linear**: Native JSON import with Linear-specific field mapping\n- **Jira**: REST API adapter with custom field support\n- **GitHub Projects**: GraphQL integration with issue/PR tracking\n- **Azure DevOps**: Work item queries with sprint hierarchy\n\n\n### Notification Integration\n- **Slack Notifications**: Token-efficient webhook integration with rich block formatting\n- **MS Teams Notifications**: Adaptive Card integration for Microsoft Teams channels\n- **Optional/Disabled by Default**: No setup required to use skill, notifications opt-in\n- **User Choice**: Select Slack or Teams via configuration or environment variables\n- **Concise Summaries**: 50-100 token notifications with top 3 risks only\n### Intelligent Output Design\n- **Context Detection**: Automatically adapts to Claude AI Desktop vs Claude Code\n- **Token Efficiency**: Summary-first approach with progressive disclosure\n- **Conditional Alerts**: Only shows warnings/risks when they exist\n- **Format Optimization**: Markdown tables for Claude AI, ASCII charts for CLI\n\n## Input Requirements\n\n### Supported Formats\n1. **JSON** (Recommended):\n   ```json\n   {\n     \"tool\": \"linear|jira|github|azure\",\n     \"sprint_name\": \"Sprint 45\",\n     \"start_date\": \"2025-11-05\",\n     \"end_date\": \"2025-11-19\",\n     \"team_capacity\": 80,\n     \"stories\": [...]\n   }\n   ```\n\n2. **CSV**:\n   ```csv\n   story_id,title,points,status,assignee,priority,blocked\n   STORY-123,User login,5,In Progress,Alice,High,false\n   ```\n\n3. **YAML**:\n   ```yaml\n   sprint:\n     name: \"Sprint 45\"\n     team:\n       - name: Alice\n         capacity: 40\n       - name: Bob\n         capacity: 40\n   ```\n\n4. **Tool-Specific Exports**:\n   - Linear: Export to JSON from project view\n   - Jira: Use REST API or CSV export\n   - GitHub Projects: GraphQL query or CSV export\n   - Azure DevOps: Work Item Query Results\n\n### Required Fields\n- **Sprint metadata**: name, start_date, end_date, team_capacity\n- **Stories**: id, title, points, status, assignee\n- **Optional**: priority, blocked, dependencies, labels, created_date\n\n### Data Quality\n- Story points must be numeric (Fibonacci or T-shirt sizes)\n- Dates in ISO 8601 format (YYYY-MM-DD)\n- Status values normalized to: Todo, In Progress, In Review, Done\n- Team capacity in story points per sprint\n\n## Output Formats\n\n### 1. Daily Standups (Ultra-Lightweight)\n**Token Budget**: 50-100 tokens\n```\n🚀 Sprint 45 - Day 7/10\n\n✅ Completed: 3 stories (13 pts)\n🔄 In Progress: 5 stories (21 pts)\n⚠️ Blocked: 1 story (5 pts) - Needs DB access\n\nVelocity: On track (65% complete, 70% time elapsed)\n```\n\n### 2. Sprint Planning (Moderate Detail)\n**Token Budget**: 200-500 tokens\n```\n📊 Sprint 45 Planning Summary\n\nCapacity: 80 pts | Committed: 75 pts | Buffer: 5 pts\n\nHigh Priority (35 pts):\n  - STORY-123: User authentication (8 pts)\n  - STORY-124: Payment integration (13 pts)\n  - STORY-125: Dashboard redesign (8 pts)\n\nRecommendations:\n  1. P0: Address DB access blocker\n  2. P1: Reduce scope if velocity drops below 85%\n  3. P2: Consider splitting STORY-124 (13 pts is risky)\n```\n\n### 3. Sprint Review (Full Report)\n**Token Budget**: 500-1000 tokens\n\nIncludes:\n- Velocity trends (ASCII chart for CLI, table for Claude AI)\n- Burndown analysis with predictive completion date\n- Team performance metrics (throughput, cycle time)\n- Risk alerts (conditional - only if issues exist)\n- Prioritized recommendations (P0/P1/P2)\n\n### 4. Retrospective Analysis\n**Token Budget**: 300-500 tokens\n```\n🔍 Sprint 45 Retrospective\n\nWhat Went Well:\n  - 95% velocity achievement\n  - Zero production incidents\n  - Early story completion (3 days before deadline)\n\nWhat Needs Improvement:\n  - 2 stories blocked for >2 days\n  - Code review delays (avg 18 hours)\n\nAction Items:\n  [P0] Establish DB access protocol (Owner: Alice, Due: 11/12)\n  [P1] Set 8-hour code review SLA (Owner: Bob, Due: 11/15)\n  [P2] Add automated status updates (Owner: Team, Due: 11/20)\n```\n\n### 5. Optional JSON Export\nFor tool integration and dashboards:\n```json\n{\n  \"sprint\": \"Sprint 45\",\n  \"metrics\": {\n    \"velocity\": 75,\n    \"completion_rate\": 0.95,\n    \"cycle_time_avg\": 3.2\n  },\n  \"risks\": [...],\n  \"recommendations\": [...]\n}\n```\n\n## How to Use\n\n### Quick Invocations\n\n**Daily Standup**:\n```\n@scrum-master-agent\n\nGenerate a quick standup summary for Sprint 45 using the attached Linear export.\n```\n\n**Sprint Planning**:\n```\n@scrum-master-agent\n\nHelp me plan Sprint 46. Team capacity is 80 points. Here's the backlog (CSV attached).\nPrioritize based on effort, value, and risk.\n```\n\n**Burndown Analysis**:\n```\n@scrum-master-agent\n\nAnalyze Sprint 45 burndown. Are we on track? When will we likely finish?\nAttached: Jira sprint export (JSON)\n```\n\n**Retrospective**:\n```\n@scrum-master-agent\n\nGenerate retrospective report for Sprint 45. Focus on blockers and cycle time.\nAttached: GitHub Projects export (CSV)\n```\n\n**Capacity Planning**:\n```\n@scrum-master-agent\n\nCalculate team capacity for next sprint. Alice is on PTO for 3 days, Bob has 2 days of meetings.\nTeam size: 4 engineers (40 pts each normally).\n```\n\n### Advanced Usage\n\n**Multi-Tool Comparison**:\n```\nCompare velocity trends across last 3 sprints using Linear data for Sprint 43-44 and Jira data for Sprint 45.\n```\n\n**Risk Analysis**:\n```\nIdentify high-risk stories in the backlog. Flag anything with >8 points, blockers, or missing dependencies.\n```\n\n**Custom Metrics**:\n```\nCalculate sprint health score based on: velocity (40%), burndown trend (30%), blocked items (20%), team morale (10%).\n```\n\n## Scripts\n\n### Core Modules\n\n- **`parse_input.py`**: Multi-format parser (JSON/CSV/YAML) with tool-specific adapters\n- **`tool_adapters.py`**: Integration adapters for Linear, Jira, GitHub, Azure DevOps\n- **`calculate_metrics.py`**: All 6 metric calculations (velocity, burndown, capacity, priority, health, retrospective)\n- **`detect_context.py`**: Environment detection (Claude AI Desktop vs Claude Code)\n- **`format_output.py`**: Context-aware report generation with token efficiency\n- **`notify_channels.py`**: Slack and MS Teams webhook integrations (optional)\n- **`prioritize_backlog.py`**: Priority scoring with effort/value/risk analysis\n\n### Calculation Details\n\n**1. Velocity Analysis**:\n- Historical average over last 3-5 sprints\n- Trend analysis (improving/declining/stable)\n- Forecasting for next sprint\n\n**2. Burndown Tracking**:\n- Daily story point completion\n- Ideal burndown line calculation\n- Predictive completion date (linear regression)\n\n**3. Capacity Planning**:\n- Team availability calculation (PTO, holidays, meetings)\n- Story point allocation\n- Buffer recommendation (10-20% of capacity)\n\n**4. Priority Scoring**:\n- **Effort**: Story points (normalized 0-10)\n- **Value**: Business impact (High=10, Medium=5, Low=2)\n- **Risk**: Blockers, dependencies, complexity (0-10)\n- **Formula**: `priority_score = (value * 2 + (10 - effort) + (10 - risk)) / 4`\n\n**5. Sprint Health Score**:\n- **Velocity**: Actual vs committed (40% weight)\n- **Burndown**: Actual vs ideal (30% weight)\n- **Blocked Items**: Count and duration (20% weight)\n- **Team Morale**: Optional sentiment input (10% weight)\n- **Scale**: 0-100 (90+ = Excellent, 70-89 = Good, 50-69 = Fair, <50 = At Risk)\n\n**6. Retrospective Analysis**:\n- Completed vs committed stories\n- Blocked item analysis (count, duration, causes)\n- Cycle time metrics (avg time from start to done)\n- Action item extraction from retro notes\n\n## Best Practices\n\n### Data Quality\n1. **Consistent Story Pointing**: Use Fibonacci (1,2,3,5,8,13) or T-shirt sizes (XS=1, S=2, M=3, L=5, XL=8)\n2. **Accurate Status Updates**: Update story status daily (automate if possible)\n3. **Blocked Item Tracking**: Always document why items are blocked and who can unblock\n4. **Sprint Boundaries**: Never change sprint scope after day 3 (exception: critical bugs)\n\n### Workflow Integration\n1. **Daily Standups**: Generate lightweight summary every morning (automated)\n2. **Sprint Planning**: Use priority scoring to allocate top 80% of capacity\n3. **Mid-Sprint Check**: Run health score on day 5-7 to catch issues early\n4. **Retrospectives**: Generate within 24 hours of sprint end while feedback is fresh\n\n### Token Efficiency\n1. **Progressive Disclosure**: Start with summary, offer details on request\n2. **Conditional Alerts**: Only show risks if they exist (don't report \"No issues\")\n3. **Lazy Calculation**: Compute detailed metrics only when asked\n4. **Caching**: Reuse calculations across multiple report types\n\n### Team Adoption\n1. **Start Simple**: Begin with daily standups, add complexity gradually\n2. **Customize Thresholds**: Adjust health score weights based on team values\n3. **Automate Inputs**: Set up CI/CD to export tool data automatically\n4. **Iterate**: Refine priority scoring based on team feedback\n\n## Limitations\n\n### Data Requirements\n- Requires structured sprint data (not suitable for ad-hoc work)\n- Story points must be assigned (can't prioritize unpointed stories)\n- Historical data needed for velocity trends (minimum 3 sprints)\n\n### Accuracy Considerations\n- **Priority scoring** is heuristic-based, not ML-driven (no predictive analytics)\n- **Burndown predictions** assume linear velocity (doesn't account for holidays, blockers)\n- **Health score** is subjective and depends on accurate weight configuration\n\n### Scope Boundaries\n- **Does NOT**: Integrate directly with tools (requires exports)\n- **Does NOT**: Send notifications or update tool state (read-only)\n- **Does NOT**: Replace Scrum Master judgment (augments decision-making)\n\n### Tool-Specific Notes\n- **Linear**: Requires manual JSON export (no API key support in this version)\n- **Jira**: Custom fields may need mapping in `tool_adapters.py`\n- **GitHub Projects**: Beta GraphQL API may change (adapter may need updates)\n- **Azure DevOps**: Work item hierarchy can be complex (flatten in export)\n\n## When NOT to Use This Skill\n\n- **Kanban workflows**: Skill is optimized for Scrum sprints (not continuous flow)\n- **Non-software projects**: Priority scoring assumes software development context\n- **Single-person teams**: Overhead not justified for solo developers\n- **Ad-hoc work**: Requires structured sprint planning and tracking\n\n## Installation\n\n### Claude Code (Recommended)\n```bash\ncp -r scrum-master-agent ~/.claude/skills/\n```\n\n### Claude AI Desktop\nDrag the `scrum-master-agent.zip` file into Claude Desktop.\n\n### Claude API\nUse the `/v1/skills` endpoint to upload the skill package.\n\n### Notification Setup (Optional)\n\nNotifications are **disabled by default** and completely optional. The skill works perfectly without any notification setup.\n\n**Option 1: Configuration File (Recommended)**\n```bash\n# Copy example config\ncp config.example.yaml config.yaml\n\n# Edit config.yaml with your webhook URLs\n# Set enabled: true\n# Choose channel: slack or teams\n```\n\n**Option 2: Environment Variables**\n```bash\nexport NOTIFY_ENABLED=true\nexport NOTIFY_CHANNEL=slack  # or teams\nexport SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL\nexport TEAMS_WEBHOOK_URL=https://outlook.office.com/webhook/YOUR/WEBHOOK/URL\n```\n\n**Getting Webhook URLs:**\n\n*Slack*:\n1. Go to https://api.slack.com/messaging/webhooks\n2. Create app and activate Incoming Webhooks\n3. Add webhook to workspace and select channel\n4. Copy webhook URL\n\n*Microsoft Teams*:\n1. Open Teams channel\n2. Click \"...\" → Connectors → Incoming Webhook\n3. Configure webhook with name\n4. Copy webhook URL\n\n**Using Notifications:**\n```\n@scrum-master-agent\n\nGenerate daily standup summary and send notification to Slack.\n```\n\nNotifications are token-efficient (50-100 tokens max) with:\n- Sprint name and status\n- Velocity and health metrics\n- Top 3 risks only (conditional)\n- Rich formatting (Slack blocks, Teams Adaptive Cards)\n\n## Version\n\n**Version**: 1.1.0 (with Notification Support)\n**Last Updated**: 2025-11-05\n**Author**: Claude Code Skills Factory\n**License**: MIT\n\n## Support\n\nFor issues, feature requests, or contributions, see the skill's GitHub repository or contact the Skills Factory maintainers.","author":"@alirezarezvani","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/alirezarezvani/claude-code-skill-factory/tree/dev/generated-skills/scrum-master-agent","license":"MIT","category":"data","lang":"en","tokens":3260,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"calculate_metrics.py","size":17614,"sha256":"2caed8463c5e1eef180ce90ddb3af9f5dff33f110a96b276158ac22f5ba38fb2"},{"path":"config.example.yaml","size":5576,"sha256":"42e5305f4b537d04a671deb5b1b458a40cbebc1e7145e4433027b15c5fecff14"},{"path":"detect_context.py","size":8372,"sha256":"da8f6a26020a348a302b5d80a37f43e058c90f2fbb3c7673219b6dd9220ce89c"},{"path":"expected_output.json","size":2228,"sha256":"5f4cfb8669d9c524086e29214b82aa5de69f1a92cfa75f5e421c376124596fd8"},{"path":"format_output.py","size":16575,"sha256":"e788823404ec42eed366db92d5694896a53680146de319e2d56002d57ed1a641"},{"path":"HOW_TO_USE.md","size":9532,"sha256":"f6c4e44de3c3e42c5a6d1651c5d31a699e4bd60cab4a2347d1bdcb24693d4bfa"},{"path":"notify_channels.py","size":12652,"sha256":"9d16553cd3a11ae55f9bc4ef3d919e0a34542324f97e90510508afce547ba31a"},{"path":"parse_input.py","size":9483,"sha256":"68052cbe9447428e76b3d9e39965503631d46676c9ae4361c525277aa4ec37c8"},{"path":"prioritize_backlog.py","size":12503,"sha256":"c2c8342afa7b6138d9a6bf2fe0aeaf0645dfcc46e1f6bdb1f8ae235a337c4be2"},{"path":"README.md","size":14611,"sha256":"33aaacfd3efbad6e88a795473ace0cf446c4dd879351c39e3a3bbd615d0644ba"},{"path":"sample_input_csv.csv","size":547,"sha256":"5d84eb5824d1c4f62291e36950b16757cff729ad6991fd7141cda86d8338ffdc"},{"path":"sample_input_jira.json","size":1501,"sha256":"823ee83b333eb1fca0024d4deddaee512fb05e2289234f937388dcc82c7fc3a3"},{"path":"sample_input_linear.json","size":2196,"sha256":"d407b147c1b31101adbb115b9c84e3e9aeb4670f9e3bcc04f1a814e136c9063f"},{"path":"tool_adapters.py","size":12494,"sha256":"9d1de3f031cc834f041ddd825451642e7efb0b1ebd5e48bdaa85760c708569e4"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[{"code":"net.endpoints","kind":"exfiltration","excerpt":"adaptivecards.io, api.slack.com, hooks.slack.com, outlook.office.com","message":"bundled scripts reach 4 external host(s)","severity":"warn"}],"scannedAt":"2026-08-22","hasScripts":true,"networkEndpoints":["adaptivecards.io","api.slack.com","hooks.slack.com","outlook.office.com"]}}