Audit and export open issues from any project tracker with summary analysis and vault archival
63%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/export-open-issues/SKILL.mdCheck agent_mode in 00-inbox/MY-PROFILE.md frontmatter:
agent_mode: team — use parallel agents to collect from all active trackers simultaneously and produce a unified reportagent_mode: solo — collect from the primary tracker sequentially/export-open-issuesRead 00-inbox/MY-INTEGRATIONS.md to determine which trackers are active
Read 00-inbox/MY-PROFILE.md for active projects
Get current timestamp: Run date '+%Y-%m-%d %H:%M' using Bash
Ask the user (if not already provided):
Launch collection agents using the Task tool with run_in_background: true:
Agent: "github-issues-collector" (if GitHub is active)
Export all open issues from GitHub.
Repository: [CUSTOMIZE: your-org/your-repo]
1. Get all open issues:
gh issue list --repo [CUSTOMIZE: your-org/your-repo] --state open --json number,title,author,assignees,labels,createdAt,updatedAt,milestone,url --limit 500
2. Get all open PRs (separate from issues):
gh pr list --repo [CUSTOMIZE: your-org/your-repo] --state open --json number,title,author,labels,createdAt,updatedAt,reviewDecision,url --limit 200
For each issue, calculate:
- Age in days (today - createdAt)
- Days since last update (today - updatedAt)
- Staleness flag: >30 days since last update = stale
Return: full issue list with calculated fieldsAgent: "linear-issues-collector" (if Linear is active)
Export all open issues from Linear.
1. Use ToolSearch to load Linear tools
2. List all teams: mcp__claude_ai_Linear_2__list_teams
3. For each relevant team, list open issues: mcp__claude_ai_Linear_2__list_issues
4. Get current cycles: mcp__claude_ai_Linear_2__list_cycles
5. Get milestones: mcp__claude_ai_Linear_2__list_milestones
For each issue, collect:
- ID, title, status, priority, assignee, labels, project
- Created date, updated date
- Cycle membership
- Blocked status
Return: full issue list with metadataAgent: "jira-issues-collector" (if Jira is active)
Export all open issues from Jira.
Project: [CUSTOMIZE: YOUR-PROJECT-KEY]
1. Search open issues:
JQL: project = "[CUSTOMIZE: YOUR-PROJECT-KEY]" AND status NOT IN (Done, Closed, Resolved) ORDER BY priority DESC, created ASC
2. For each issue, collect:
key, summary, issuetype, status, priority, assignee, reporter, labels, components, fixVersion, created, updated, duedate
Return: full issue list with metadataRun collection sequentially for the primary tracker.
Process the collected data to produce:
Total Open Issues: [N]
- By Priority: Critical [N], High [N], Medium [N], Low [N], None [N]
- By Type: Feature [N], Bug [N], Task [N], Other [N]
- By Status: To Do [N], In Progress [N], In Review [N], Blocked [N]
- By Assignee: [Name] ([N]), [Name] ([N]), Unassigned ([N])Priority Distribution:
Critical ████░░░░░░ 12%
High ████████░░ 38%
Medium ██████░░░░ 28%
Low ████░░░░░░ 22%
Age Distribution:
<7 days ██████████ 45%
7-30 days ██████░░░░ 30%
30-90 d ███░░░░░░░ 15%
>90 days ██░░░░░░░░ 10%---
type: open-issues-audit
project: [project-name]
date: [YYYY-MM-DD]
created: [YYYY-MM-DD HH:MM]
source: [github/linear/jira/multi]
tags: ["#issues-audit", "#[project-name]", "#backlog"]
summary:
total_open: [N]
critical: [N]
high: [N]
stale: [N]
unassigned: [N]
blocked: [N]
oldest_days: [N]
---
# Open Issues Audit — [Project Name]
**Date:** [YYYY-MM-DD]
**Source:** [Tracker(s) used]
**Total Open Issues:** [N]
---
## Executive Summary
[2-3 sentences: overall backlog health, biggest concerns, and recommended actions]
---
## Summary Statistics
| Category | Count | % of Total |
|----------|-------|-----------|
| **By Priority** | | |
| Critical | [N] | [%] |
| High | [N] | [%] |
| Medium | [N] | [%] |
| Low | [N] | [%] |
| No Priority | [N] | [%] |
| **By Status** | | |
| To Do | [N] | [%] |
| In Progress | [N] | [%] |
| In Review | [N] | [%] |
| Blocked | [N] | [%] |
| **By Type** | | |
| Feature/Story | [N] | [%] |
| Bug | [N] | [%] |
| Task | [N] | [%] |
| Other | [N] | [%] |
---
## Assignee Load
| Assignee | Open Issues | Critical/High | In Progress | Oldest Issue (days) |
|----------|-------------|---------------|-------------|-------------------|
| [Name] | [N] | [N] | [N] | [N] |
| [Name] | [N] | [N] | [N] | [N] |
| Unassigned | [N] | [N] | — | [N] |
---
## Health Alerts
### Stale Issues (>30 days without update)
| # | Title | Assignee | Priority | Age (days) | Last Updated |
|---|-------|----------|----------|-----------|-------------|
| [#] | [Title] | [Name] | [Priority] | [N] | [Date] |
### Blocked Issues
| # | Title | Assignee | Blocked By | Days Blocked |
|---|-------|----------|-----------|-------------|
| [#] | [Title] | [Name] | [Reason] | [N] |
### Unassigned High-Priority Issues
| # | Title | Priority | Age (days) | Labels |
|---|-------|----------|-----------|--------|
| [#] | [Title] | [Priority] | [N] | [Labels] |
### Overdue Issues
| # | Title | Assignee | Due Date | Days Overdue |
|---|-------|----------|----------|-------------|
| [#] | [Title] | [Name] | [Date] | [N] |
---
## Full Issue List
### Critical Priority
| # | Title | Status | Assignee | Age | Labels | URL |
|---|-------|--------|----------|-----|--------|-----|
| [#] | [Title] | [Status] | [Name] | [N]d | [Labels] | [URL] |
### High Priority
[Same table format]
### Medium Priority
[Same table format]
### Low Priority
[Same table format]
---
## Recommendations
1. **[Recommendation 1]** — [Specific action with rationale]
2. **[Recommendation 2]** — [Specific action with rationale]
3. **[Recommendation 3]** — [Specific action with rationale]
---
*Generated by COG Open Issues Audit | [Date]*Save to: 04-projects/[project]/audits/open-issues-YYYY-MM-DD.md
mkdir -p "04-projects/[project]/audits"Show the user:
Ask if they want:
If user requests CSV, generate alongside the markdown:
#,Title,Type,Status,Priority,Assignee,Labels,Created,Updated,Age(days),URL
[data rows]Save to: 04-projects/[project]/audits/open-issues-YYYY-MM-DD.csv
| Scenario | Behavior |
|---|---|
| No tracker active | Inform user that a project tracker integration is needed; offer to set one up |
| Tracker API fails | Retry once, then report partial results with error note |
| Too many issues (>500) | Paginate collection, warn user, offer to filter by label/milestone/assignee |
| Multiple trackers active | Collect from all and produce a unified report, noting the source for each item |
| No open issues found | Report clean backlog status (this is good news!) |
huytieu/COG-second-brain
144c7a3
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.