Jira Daily PM Radar
Ежедневный PM-радар по Jira: что изменилось со вчера, где текущий спринт завис, что в backlog уже пахнет, что плохо оформлено и что проджекту надо сделать сегодня.
Проект сделан как демонстрационный agent skill package: внутри есть Python 3.12 CLI, async Jira client, MCP server, Open Skill-папка, HTML-отчет, security gates и mock-режим без реальной Jira.
Что проверяет MVP
- изменения со вчера: новые, отмененные, sprint → backlog, backlog → sprint, priority/status/assignee/labels/epic changes
- current sprint: зависшие задачи, To Do после старта, долго в In Progress/Review/QA, blocked без движения, scope churn
- next sprint: задачи без description, AC, epic/parent, labels, tech/product, priority
- backlog smells: stale 60+ дней, high priority без движения, задачи без владельца, без epic, без labels, без описания
- possible unanswered comments: эвристика по
?, mention и отсутствию движения после вопроса - HTML + markdown summary +
signals.json+action-list.json+evidence.json
Быстрый старт
uv sync --all-extras
cp .env.example .env
uv run jira-radar doctor
uv run jira-radar daily --project DEMO --mock --out reports/
Открой отчет:
start reports/DEMO-latest/report.html # Windows
open reports/DEMO-latest/report.html # macOS
xdg-open reports/DEMO-latest/report.html # Linux
Работа с реальной Jira
Заполни .env:
JIRA_BASE_URL=https://your-domain.atlassian.net
[email protected]
JIRA_API_TOKEN=your_api_token
Запуск:
uv run jira-radar daily --project TWIN --board-id 123 --since yesterday --out reports/
Команды:
uv run jira-radar doctor
uv run jira-radar daily --project TWIN --board-id 123 --since yesterday --out reports/
uv run jira-radar sprint --project TWIN --board-id 123 --out reports/
uv run jira-radar backlog --project TWIN --board-id 123 --out reports/
uv run jira-radar issue TWIN-123 --out reports/
Skill
Skill лежит здесь:
skills/jira-daily-pm-radar/
SKILL.md
references/
config/
assets/
scripts/
Главная идея: агент сначала читает SKILL.md, затем запускает CLI для batch-анализа, а MCP использует для drilldown по конкретным задачам.
CLI + MCP модель
Skill = навигатор для агента
CLI = стабильный batch-анализ и HTML
MCP = интерактивный drilldown в Jira
LLM = интерпретация и PM-ответ
MCP server
Установка с MCP extra:
uv sync --extra mcp
Запуск stdio MCP:
uv run jira-radar-mcp
Инструменты MCP:
daily_report(project, board_id?, since?, out_dir?, mock?)sprint_report(project, board_id?, out_dir?, mock?)backlog_report(project, board_id?, out_dir?, mock?)issue_context(issue_key, out_dir?, mock?)search_issues(jql, max_results?)
Security gates
В проекте есть:
.gitignoreс запретом.env, токенов и локальных артефактов.env.exampleбез секретов- pre-commit:
- ruff format/check
- mypy
- bandit
- detect-secrets
- custom secret/env scanner
- GitHub Actions CI:
- ruff lint
- mypy type check
- pytest
- bandit security scan
Установка pre-commit:
uv run pre-commit install
uv run pre-commit run --all-files
Разработка
uv sync --all-extras
uv run ruff format .
uv run ruff check .
uv run mypy src tests
uv run pytest
uv run bandit -r src
uv run detect-secrets scan --baseline .secrets.baseline
uv run python scripts/check_no_secrets.py
Ограничения MVP
- проект read-only и не меняет Jira
- не делает velocity/capacity forecast
- не авторасставляет labels/assignee
- possible unanswered comments — эвристика, не факт
- sprint membership лучше ловится через changelog + snapshot, но кастомные Jira-поля могут требовать настройки
fields.yaml
License
MIT