helpers/skills/team-weekly-report/SKILL.md
Generate a weekly team status report combining JIRA and GitHub data. Fetches closed, open, stale, and blocked issues plus PR activity for each team member. Requires a team config YAML file with JIRA project, GitHub repos, and team member mappings. Use when the user asks for a weekly report, team status, or team update.
npx skillsauth add opendatahub-io/ai-helpers team-weekly-reportInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a comprehensive weekly status report for an engineering team by combining JIRA issue data and GitHub PR activity.
acli must be installed and authenticated (acli jira auth)gh CLI must be installed and authenticated (gh auth login)jq and yq must be installed and available in PATHCreate a YAML file with your team's details:
team:
name: "My Team"
jira:
url: "https://mycompany.atlassian.net"
project: "PROJ"
component: "MyComponent" # optional
github:
repositories:
- "org/repo1"
- "org/repo2"
members:
- name: "Engineer One"
jira_username: "712020:account-id-here"
github_username: "eng1"
- name: "Engineer Two"
jira_username: "712020:account-id-here"
github_username: "eng2"
defaults:
jira_lookback_days: 7
github_lookback_days: 7
stale_threshold_days: 7
Finding JIRA account IDs: In Jira Cloud, go to a user's profile page.
The account ID is the long string in the URL after /people/.
Parse $ARGUMENTS for the --config flag and optional --days flag.
If no --config is provided, ask the user:
"Which team config file should I use? Provide the path to your YAML config file (e.g.,
~/team-config.yaml)."
Validate the config file exists before proceeding.
Run the JIRA fetch script to collect closed, open, stale, and blocked issues for every team member:
"${CLAUDE_SKILL_DIR}/scripts/fetch_team_jira.sh" --config <CONFIG_PATH> --days <N>
The script outputs JSON to stdout with a members array. Each member
entry contains closed_issues, open_issues, stale_issues, and
blocked_issues arrays. Capture the full JSON output for analysis.
If the script fails, display the error and stop.
Run the GitHub fetch script to collect open and merged PRs for every team member across the configured repositories:
"${CLAUDE_SKILL_DIR}/scripts/fetch_team_github.sh" --config <CONFIG_PATH> --days <N>
The script outputs JSON to stdout with a members array. Each member
entry contains open_prs and merged_prs arrays. Capture the full
JSON output.
If the script fails, display the error but continue with JIRA data only.
Combine the JIRA and GitHub JSON outputs and produce the report in the format below. Base everything on actual data — do not assume or invent.
For each team member, correlate their JIRA activity with their GitHub activity to build a complete picture.
# Weekly Status Report — <Team Name>
**Period:** <start_date> to <end_date>
**Generated:** <current_date>
## Executive Summary
[2-3 sentences: major accomplishments, key metrics, overall team health.
Mention any critical blockers or risks.]
## Team Velocity
- Issues closed this week: [count]
- Issues currently open: [count]
- PRs merged: [count]
- PRs open for review: [count]
- Blocked issues: [count]
- Stale issues (no update in N+ days): [count]
## Individual Updates
[For each team member:]
### <Engineer Name>
**Completed:** [Issues closed this week — list key, summary]
**In Progress:** [Open issues — list key, summary, status]
**PRs:** [Open and merged PRs with repo and title]
**Blockers:** [Any blocked issues, or "None"]
## Open PRs
| Author | Repo | PR | Title | Age |
|--------|------|----|-------|-----|
[List all open PRs from team members. Age = days since created.]
## PRs Merged This Week
| Author | Repo | PR | Title | Merged |
|--------|------|----|-------|--------|
[List all PRs merged in the lookback window.]
## Stale Issues (No Updates in N+ Days)
[Group by engineer. These are potential risks — work that may be stuck.]
| Engineer | Key | Summary | Status | Last Updated |
|----------|-----|---------|--------|--------------|
## Blockers & Risks
[List all blocked issues with key, summary, and assignee.
Flag stale issues as additional risk signals.
Note any team members with no activity.]
acli jira authgh auth loginUser: /team-weekly-report --config ~/team-config.yaml
Assistant: [Runs both scripts, produces weekly report]
User: /team-weekly-report --config ~/team-config.yaml --days 14
Assistant: [Produces report covering last 14 days]
User: /team-weekly-report
Assistant: Which team config file should I use? Provide the path...
tools
Use this skill to filter a pre-fetched set of Hacker News stories down to those that report supply-chain security threats relevant to software developers — including malicious packages on npm or PyPI, compromised developer tooling, and attacks targeting source code repositories or CI/CD infrastructure. Reads stories from stories.json in the workspace, performs semantic analysis (fetching HN threads when the title alone is ambiguous), and writes the stories worth alerting on to findings.json.
development
Run hexora static analysis on a Python package repository to detect suspicious code patterns, then triage findings with deterministic rules and AI reasoning to produce a structured risk report section.
development
Inspect recent git history of a Python package repository for suspicious commits touching supply-chain-sensitive files, then triage findings with AI reasoning to produce a structured risk report section.
development
Scan a Python package repository for compiled/binary files using Fromager-style detection and malcontent YARA analysis, then triage findings with deterministic rules and AI reasoning to produce a structured risk report section.