Scan Repo

SkillDev tools

Weekly repo activity scan — new discussions, issues, and PRs, ordered by effort into an action list

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Scan Repo skill

What this skill tells your AI

The instructions your AI receives, as published by gittower/git-flow-next in .claude/skills/scan-repo/SKILL.md and read by ahel’s review.

Scan all activity on gittower/git-flow-next since the last scan and produce a prioritized action list: what came in (discussions, issues, PRs), what needs a reaction from us, and in which order to tackle it — quick wins first, deeper work later, each item with the command that handles it.

Read-only: the scan never posts, labels, or replies. It only reports. Meant to be run manually about once per week.

Arguments

/scan-repo [since]

  • since — optional lookback: a duration (7d, 14d) or a date (2026-07-01). Default: the date of the most recent scan report in .ai/scans/, or 7 days if none exists.

Instructions

1. Determine the Window

ls .ai/scans/scan-*.md 2>/dev/null | sort | tail -1

Use the date in the newest filename as SINCE unless an argument was given. Fall back to 7 days ago. Get today's date with date +%Y-%m-%d.

2. Gather Activity

Collect in parallel where possible:

Discussions (GraphQL):

gh api graphql -f query='query { repository(owner: "gittower", name: "git-flow-next") {
  discussions(first: 30, orderBy: {field: UPDATED_AT, direction: DESC}) {
    nodes { number title category { name } isAnswered updatedAt createdAt
      author { login } comments(last: 3) { nodes { author { login } createdAt } } } } } }'

Flag: new discussions since SINCE; unanswered questions; threads where the last comment is not ours.

Issues:

  • New since the window: gh issue list --state open --search "created:>SINCE" --json number,title,labels,author,createdAt
  • Updated with external activity: gh issue list --state open --search "updated:>SINCE" --json number,title,labels,comments,updatedAt — for each, check whether the last comment is from an external user (awaiting our reply) or from us (awaiting theirs; no action)
  • Open needs info-type situations where the reporter has now responded

Pull requests:

  • Assess every open PR exactly as /check-prs does (read .claude/skills/check-prs/SKILL.md, steps 1–2) — status vs the review response window, days waiting, whose move it is
  • Additionally flag PRs opened since SINCE as new

Housekeeping signals (cheap checks, include only if noteworthy):

  • CI status on main: gh run list --branch main --limit 5 --json conclusion,name
  • Open spec issues (label:spec) with no linked PR — accepted work nobody started

Treat comments by repo collaborators and bots as "ours"; everyone else is external.

3. Classify by Effort

Sort every actionable item into one of three buckets:

Quick wins — minutes each, mostly judgment-free:

  • Questions we can answer directly (answer known from code/docs)
  • Obvious duplicates to link and close
  • Reporters who answered a needs-info request (unblock them)
  • Reminder-worthy PRs approaching the response window
  • Small PRs (single file, few lines, clear purpose)

One command — the autonomous pipelines do the heavy lifting; our cost is reviewing their output at the gates:

  • Untriaged bug reports and feature requests → /triage
  • Typical incoming PRs → /handle-pr
  • Lapsed response windows → /takeover-pr
  • Accepted-but-unstarted specs → /resolve-issue

Needs thinking — human design or policy judgment up front:

  • Feature requests touching architecture, config semantics, or compatibility (triage will end in a design discussion)
  • Bug reports that contradict the spec or expose unclear intended behavior
  • Large or multi-concern PRs (scope conversation with the author)
  • Anything where two pipelines conflict (e.g., PR submitted for an issue that was never accepted)

Within each bucket, order by age (oldest first) — external people are waiting.

4. Write the Report

Write .ai/scans/scan-<today>.md:

# Repo Scan <today> (since <SINCE>)

## Summary
<2-3 sentences: volume, anything urgent, overall state>

## Action List

### Quick wins
| # | Item | Waiting | Why quick | Command |
|---|------|---------|-----------|---------|
| 1 | discussion #12 — <title> | 6d | answer is in docs/gitflow-config.5.md | reply directly |
| 2 | issue #101 — <title> | 3d | duplicate of #87 | /triage 101 |

### One command
| # | Item | Waiting | Pipeline | Command |
|---|------|---------|----------|---------|
| 3 | issue #103 — <title> | 2d | bug triage | /triage 103 |
| 4 | PR #99 — <title> | 4d | review | /handle-pr 99 |

### Needs thinking
| # | Item | Waiting | What to think about |
|---|------|---------|---------------------|
| 5 | issue #104 — <title> | 5d | proposes new branch type semantics — design call needed |

## No Action Needed
<Items with recent activity that are waiting on the other side, in-window
PRs, answered discussions — one line each so nothing looks forgotten.>

## Housekeeping
<CI on main, unstarted specs, anything stale — or "all green".>

5. Report to User

Show the summary and the full action list in the conversation, in tackle order. End with the single most valuable next command (usually action #1).

Signals

GitHub stars
439
Forks
28
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
scan-repo
Source
github.com/gittower/git-flow-next