An AI-powered Scrum automation toolkit for managing Agile workflows, featuring Slack integration, Trello synchronization, risk prediction, and task prioritization.
This system provides a collection of tools to help Agile teams streamline their Scrum processes:
- 🤖 AI Scrum Master Bot: Facilitates daily standups, tracks blockers, and creates tickets
- 📊 Trello Integration: Creates cards from blockers, archives old cards, and syncs project data
- 🧠 Sentiment Analysis: Analyzes retrospective feedback to identify team sentiment
- 📈 Prediction Framework: Forecasts project risks and recommends actions
- 📑 Task Prioritization: Auto-prioritizes work items based on configurable rules
- 📱 Interactive Dashboard: Streamlit-based visualization of team metrics and insights
├── LICENSE
├── README.md
├── bots
│ ├── __init__.py
│ ├── retrospective.py
│ ├── slack_bot.py
│ ├── slack_standup_bot.py
│ └── trello_integration.py
├── core
│ ├── __init__.py
│ ├── config.py
│ ├── database.py
│ ├── logger.py
│ ├── security.py
│ └── utils.py
├── models
│ ├── __init__.py
│ ├── risk_predictor.py
│ └── task_prioritizer.py
├── report_generator.py
├── requirements.txt
├── scrum_ai.log
├── slack_bot.log
├── sprints.db
├── standup_bot.log
├── tests
│ ├── __init__.py
│ ├── test_dashboard.py
│ └── test_data.py
└── ui
├── __init__.py
├── assets
│ └── __init__.py
└── dashboard.py
- Automated daily standup reminders and facilitation
- Detects blockers in team messages
- Creates Trello cards for identified blockers
- Supports Socket Mode for secure communication
- Fetches board data for analysis
- Creates cards for blockers detected in Slack
- Archives old cards automatically
- Manages board organization
- Sentiment analysis of team retrospective discussions
- Uses RoBERTa model for advanced NLP processing
- Detects positive, negative, and neutral sentiment
- Provides quantitative data on team morale
- Uses Prophet forecasting model to predict sprint completion
- Identifies high-risk periods during sprints
- Suggests mitigation strategies based on risk level
- Provides visualizations of risk factors
- ML-based prioritization of backlog items
- Considers due dates, dependencies, and team capacity
- Auto-adjusts as new information becomes available
- Provides explainable priority scores
- Real-time visualization of team metrics
- Blocker tracking and highlighting
- Sentiment analysis results
- Sprint burndown with risk prediction
- Team capacity planning
- SQLite database with migration support
- Tracks predictions, tasks, team capacity and retrospectives
- Version control for schema changes
- Safe transaction handling
- GitHub Actions workflow for CI/CD
- Daily automated runs on schedule
- Caches dependencies for faster execution
- Automatic deployment to Streamlit
The application uses environment variables for configuration. Create a .env
file with:
# Slack Configuration
SLACK_BOT_TOKEN=xoxb-...
SLACK_SIGNING_SECRET=...
SLACK_APP_TOKEN=xapp-...
SLACK_TEAM_CHANNEL=general
SLACK_RETRO_CHANNEL=retrospective
# Trello Configuration
TRELLO_API_KEY=...
TRELLO_TOKEN=...
TRELLO_BOARD_ID=...
TRELLO_LIST_ID=...
TRELLO_ARCHIVE_LIST=...
# Application Settings
RISK_THRESHOLD=10
POSITIVE_THRESHOLD=0.25
CRITICAL_THRESHOLD=0.15
-
Clone the repository
git clone https://github.com/LankeSathwik7/AI-Scrum-Master.git cd AI-Scrum-Master
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables in
.env
cp .env.example .env # Edit .env with your configuration
-
Initialize the database
python core/database.py
-
Run a bot
python bots/slack_bot.py
-
Launch the dashboard
streamlit run ui/dashboard.py
- Python 3.10+
- Required packages (from requirements.txt):
- slack-bolt==1.18.0
- spacy==3.7.2
- python-dotenv==1.0.0
- requests==2.31.0
- scikit-learn==1.3.2
- streamlit==1.28.0
- plotly==5.18.0
- pandas==2.0.3
- streamlit-autorefresh==1.0.1
- slack-sdk==3.23.0
- transformers[torch]==4.36.2
- prophet==1.1.5
- accelerate==0.27.2
- tabulate==0.9.0
- flask-limiter
- python-dotenv-vault
- huggingface_hub[hf_xet]
- python-dateutil
The GitHub Actions workflow runs daily and:
- Sets up Python environment
- Caches dependencies
- Runs database migrations
- Executes risk prediction model
- Prioritizes tasks
- Runs tests
- Deploys to Streamlit dashboard
Note: GitHub Actions have been disabled in this repository. The workflow file (.github/workflows/main.yml
) is retained for reference only.
- Rate limiting for API endpoints
- Environment variable encryption support
- OAuth integration for Trello
- Proper error handling and logging
- Input validation and sanitization
pytest tests/
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Implement your changes
-
Add tests for your feature
-
Run tests to ensure everything passes
-
Create a pull request
- Slack API connection errors: Verify your token permissions and ensure Socket Mode is enabled
- Database migration failures: Check the SQLite file permissions
- Prediction model errors: Ensure you have enough historical data for accurate predictions
- Dashboard rendering issues: Verify Streamlit version compatibility
Log files are stored in the project root:
scrum_ai.log
- Main application logsslack_bot.log
- Slack bot interaction logsstandup_bot.log
- Standup facilitation logs
- Integration with GitHub/GitLab for code metrics
- Enhanced ML models for better risk prediction
- Mobile companion app
- Meeting summarization features
- Team performance analytics
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Special thanks to the open-source community for the amazing libraries that make this possible