Overview
The Retrospective Agent is an automation tool for Agile Product Managers or Development Leads for creating focused and useful Retrospective documents in Google Docs from Jira data.
Retrospective Agent:
- Fetches Jira issues for an epic
- Builds a timeline for executives
- Computes team insights (cycle time and throughput)
- Generates retrospective talking points by giving examples of tasks that:
- ✅ What went well (<= 5 day cycle time)
⚠️ What didn't go as planned (>5 day cycle time)- 🔁 What to try differently next time (based on the above)
- Writes everything into a formatted Google Doc specifically to the root of "My Drive" based on the epic name.
This helps teams run faster, more consistent, and more data-informed retrospectives.
npm run dev
In a second terminal window after running the app above, you'll want to run the following command:
curl -X POST http://localhost:3000/run -H "Content-Type: application/json" -d '{"board_name":"[JIRA_BOARD_NAME_GOES_HERE]","epic_key":"[JIRA_EPIC_KEY_GOES_HERE]}'
EXAMPLE: curl -X POST http://localhost:3000/run -H "Content-Type: application/json" -d '{"board_name":"assessment js","epic_key":"AJ-581"}'
- Node.js (ESM)
- TypeScript
- Express
- Jira REST API
- Google Docs API
- Zod
- date-fns / date-fns-tz
git clone https://github.com/YOUR_ORGANIZATION/retrospective-agent.git cd retrospective-agent
npm install
cp .env.example .env
JIRA_BASE_URL=https://your_organization.atlassian.net
JIRA_EMAIL=your-email@your_organization.com
JIRA_API_TOKEN=your_jira_api_token
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REFRESH_TOKEN=your_google_refresh_token
npm run dev
npm run build
npm start
src/
- index.ts # Entry point (Express server / orchestration)
- tools/
- buildRetrospective.ts # Core retrospective generation logic
- integrations/
- jira.ts # Jira API integration
- google.ts # Google Docs integration and styling
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Create API token
- Copy into .env
- Create project in Google Cloud Console
- Enable Docs + Drive APIs
- Create OAuth credentials (Ben has a helper script to generate these if desired)
- Generate refresh token via OAuth Playground
- Never commit .env
- Ensure tokens are correct
- Avoid hardcoding Google Docs indices