Repo Recap banner
rtk-ai rtk-ai

Repo Recap

Documentation community intermediate

Description

Generate a structured recap of the repository state: open PRs, open issues, recent releases, and executive summary. Output is formatted as Markdown with clickable GitHub links, ready to share.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for rtk-ai/rtk, shared by 9 entries in this directory. It describes the repository, not this entry specifically.


description: Generate a comprehensive repo recap (PRs, issues, releases) for sharing with team. Pass "en" or "fr" as argument for language (default fr).

Repo Recap

Generate a structured recap of the repository state: open PRs, open issues, recent releases, and executive summary. Output is formatted as Markdown with clickable GitHub links, ready to share.

Language

  • Check the argument passed to this skill
  • If en or english → produce the recap in English
  • If fr, french, or no argument → produce the recap in French (default)

Preconditions

Before gathering data, verify:

# Must be inside a git repo
git rev-parse --is-inside-work-tree

# Must have gh CLI authenticated
gh auth status

If either fails, stop and tell the user what's missing.

Steps

1. Gather Data

Run these commands in parallel via `gh` CLI:

# Repo identity (for links)
gh repo view --json nameWithOwner -q .nameWithOwner

# Open PRs with metadata
gh pr list --state open --limit 50 --json number,title,author,createdAt,changedFiles,additions,deletions,reviewDecision,isDraft

# Open issues with metadata
gh issue list --state open --limit 50 --json number,title,author,createdAt,labels,assignees

# Recent releases (for version history)
gh release list --limit 5

# Recently merged PRs (for contributor activity)
gh pr list --state merged --limit 10 --json number,title,author,mergedAt

Note: `author` in JSON results is an object `{login: "..."}` — always extract `.author.login` when processing.

2. Determine Maintainers

To distinguish "our PRs" from external contributions:

gh api repos/{owner}/{repo}/collaborators --jq '.[].login'

If this fails (permissions), fallback: authors with write/admin access are those who merged PRs recently. When in doubt, ask the user.

3. Analyze and Categorize

PRs — Categorize into 3 groups:

**Our PRs** (author is a repo collaborator):

  • List with PR number (linked), title, size (+additions, files count), status

**External — Reviewable** (manageable size, no major blockers):

  • Additions ≤ 1000 AND files ≤ 10
  • No merge conflicts, CI not failing
  • Include: PR link, author, title, size, review status, recommended action

**External — Problematic** (any of: too large, CI failing, overlapping, merge conflict):

  • Additions > 1000 OR files > 10
  • OR CI failing (reviewDecision = "CHANGES_REQUESTED" or checks failing)
  • OR touches same files as another open PR (= overlap)
  • Include: PR link, author, title, size, specific problem, action taken/needed

**Size labels** (use in "Taille" column for quick visual triage):

Label Additions
XS < 50
S 50-200
M 200-500
L 500-1000
XL > 1000

Format: `+{additions}, {files} files ({label})` — e.g., `+245, 2 files (S)`

Detect overlaps:

Two PRs overlap if they modify the same files. Use `changedFiles` from the JSON data. If >50% file overlap between 2 PRs, flag both as overlapping an