본문으로 건너뛰기
cccskills
무료GitHub에 공개

github:last-week

Weekly repository report - deep issue analysis, PR health, CI trends, actionable recommendations

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl스타 303(GitHub 303 + cccskills 0)
연동 도구GitHub

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md8.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Last Week Report

Deep weekly analysis of repository health: issue investigation, PR status, CI trends.

Table of Contents

Variables

Set at session start:

export OWNER=<org-or-user>
export REPO=<repo-name>

When to Use

  • Weekly standup preparation
  • Sprint retrospective input
  • Tracking project health over time

Auto-approved: All gh read commands are auto-approved.

Workflow

Phase 0: Gather Data (MUST run first)

Run the data gathering script to get a consistent snapshot of all issues, PRs, and CI runs. This prevents stale data from long-running analysis.

./.github/scripts/reports/weekly-report-data.sh 7 $OWNER/$REPO

This creates JSON files in /tmp/rossoctl/github/data/:

  • merged-prs.json — PRs merged in the period
  • open-prs.json — Currently open PRs (live snapshot)
  • open-issues.json — Currently open issues (live snapshot)
  • new-issues.json — Issues created in the period
  • ci-runs.json — CI runs on main
  • ci-runs-all.json — All CI runs

IMPORTANT: All subsequent phases MUST read from these JSON files, NOT re-query gh. This ensures consistency — PRs won't change state mid-analysis.

Phase 1: Quick Stats

Read from the gathered data:

echo "Merged PRs: $(jq length /tmp/rossoctl/github/data/merged-prs.json)"
echo "Open PRs: $(jq length /tmp/rossoctl/github/data/open-prs.json)"
echo "Open issues: $(jq length /tmp/rossoctl/github/data/open-issues.json)"
echo "New issues: $(jq length /tmp/rossoctl/github/data/new-issues.json)"

Phase 2: Deep Issue Analysis

For EVERY open issue (from open-issues.json), investigate:

Read from gathered data (do NOT re-query gh):

cat /tmp/rossoctl/github/data/open-issues.json | jq '.[].number'

For each issue, determine:

  1. Still relevant? — Check if the bug still exists on upstream/main

    • Search codebase for the affected code/component
    • Check if a fix was merged since the issue was created
    • Check if a test covers this scenario
  2. Work in progress? — Check if any PR references this issue

    gh pr list --repo $OWNER/$REPO --state all --search "issue-number" --json number,title,state
    
  3. Severity classification:

    • Security: Credential leaks, auth bypass, injection
    • Blocking: Breaks deployment, tests, or user workflow
    • Bug: Broken behavior but workaround exists
    • Feature: New capability request
    • Epic: Multi-PR initiative (track progress)
    • Stale: No activity >30 days, may be outdated
  4. Actionable recommendation: Close, update, assign, or create PR

Phase 3: Deep PR Analysis

For EVERY open PR (from open-prs.json), investigate:

cat /tmp/rossoctl/github/data/open-prs.json | jq '.[].number'

For each PR, determine:

  1. CI status: Does it pass all checks?
  2. Needs /run-e2e?: Does it touch rossoctl/charts/deployments/.github paths?
  3. Review status: Approved, changes requested, or waiting?
  4. Health: Is it stale (>14 days)? Has merge conflicts?
  5. Summary: What does this PR do? (read the body)

Classify each PR:

HealthCriteriaNext Step
Ready to mergeApproved + CI passingMerge it
Needs reviewCI passing, no reviewRequest review
Needs /run-e2eTouches deploy paths, no HyperShift runComment /run-e2e
CI failingHas failuresInvestigate with rca:ci
StaleNo update >14 daysPing author or close
ConflictsMergeable = CONFLICTINGAuthor needs to rebase
Changes requestedReviewer asked for changesAuthor needs to address

Phase 3b: CI Failure Timeline

Get all runs on main (last 7 days):

gh run list --repo $OWNER/$REPO --branch main --limit 30 --json databaseId,conclusion,name,createdAt,headSha,displayTitle

For each failed run, get the failing job and step:

gh run view <run-id> --repo $OWNER/$REPO --json jobs --jq '.jobs[] | select(.conclusion == "failure") | "\(.name): \(.steps[] | select(.conclusion == "failure") | .name)"'

Get the commit that triggered the failure:

gh run view <run-id> --repo $OWNER/$REPO --json headSha --jq '.headSha'

Check what that commit changed:

gh api repos/$OWNER/$REPO/commits/<sha> --jq '.files[].filename'

Build a timeline of failures with root cause correlation:

  • Map each failure to the triggering commit
  • Identify if the same job/step fails repeatedly (infrastructure issue)
  • Identify if failures started after a specific merge (regression)

Since E2E doesn't run on every merge, find candidate PRs that could have caused a failure:

gh pr list --repo $OWNER/$REPO --state merged --json number,title,mergedAt,changedFiles --jq '.[] | select(.mergedAt > "LAST_SUCCESS_DATE" and .mergedAt < "FAILURE_DATE") | "#\(.number) \(.title) (\(.changedFiles) files)"'

For each candidate PR, check if it touched relevant paths:

  • charts/ or deployments/ → likely deploy/config issue
  • rossoctl/tests/ → test change may have introduced failure
  • .github/workflows/ or .github/scripts/ → CI infrastructure change
  • rossoctl/backend/ or rossoctl/auth/ → application logic change

Correlate the failure type with the PR changes to identify the most likely cause.

Phase 4: Generate Report

Write the full report as markdown. Structure:

# Weekly Report: [date range]

## Quick Stats
- Merged PRs: N
- New issues: N
- CI pass rate: X/Y on main

## Issue Analysis

### Security Issues
| # | Title | Status | Recommendation |
...

### Blocking Issues
| # | Title | Status | Recommendation |
...

### Bug Reports
| # | Title | Still affects main? | PR exists? | Recommendation |
...

### Feature Requests
| # | Title | Priority | Recommendation |
...

### Epics (track progress)
| # | Title | PRs merged/open | % done estimate |
...

### Issues to Close
| # | Title | Reason |
...
(Issues where fix was already merged, or issue is outdated)

## PR Analysis

### Ready to Merge
| # | Title | Author | Approved by |
...

### Needs Review (CI passing)
| # | Title | Author | Days waiting |
...

### Needs /run-e2e
| # | Title | Reason |
...

### Unhealthy PRs
| # | Title | Problem | Next step |
...

## CI Health

### Pass Rate
- Main branch: X/Y runs passed (Z%)
- HyperShift E2E: X/Y passed
- Kind E2E: X/Y passed
- Security/Lint/Build: X/Y passed

### Failure Timeline
| Date | Workflow | Job | Failure | Likely Cause |
|------|----------|-----|---------|-------------|
| ... | E2E HyperShift | Deploy & Test | timeout | Cluster creation slow |
| ... | CI | build | compile error | PR #N broke import |

### Failure Patterns
- **Recurring**: [failures that happen repeatedly — infrastructure, flaky tests]
- **One-off**: [failures tied to specific commits]
- **Trend**: [getting better/worse over time]

### Root Cause Correlation
For each failure, identify candidate PRs merged between last success
and the failure. Check which files they touched to find likely cause.

## Action Items

Single flat list, ordered by priority. No timescales.

| # | Action | Owner | Priority |
|---|--------|-------|----------|
| 1 | [Highest priority action] | [owner] | P0 |
| 2 | [Next action] | [owner] | P1 |

Save report:

# Save to /tmp/rossoctl/github/weekly-report.md

Phase 5: Ask User

After generating the report, ask:

Weekly report ready. Want me to create a GitHub issue with this? Suggested title: "📊 Weekly Report [start-date] – [end-date]"

You can also suggest a different title.

Only create the issue after user confirms title and content.

Related Skills

  • github:issues - Deep dive into individual issue triage
  • github:prs - Deep dive into individual PR health
  • git:status - Worktree and PR status overview
  • ci:status - Detailed CI check analysis
  • rca:ci - Investigate CI failures
  • repo:issue - Issue creation format

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

auth

무료

Authentication and authorization patterns for Rossoctl services

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Create confidential OAuth2 clients in Keycloak for server-to-service authentication

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Configure OpenTelemetry Collector with OAuth2 authentication for trace export

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

ci

무료

CI pipeline monitoring, status checks, and PR validation workflows

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

Monitor running CI jobs, wait for completion, create tasks for results

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

rossoctl/rossoctl3032026년 10월 25일 업데이트

rossoctl의 스킬 모두 보기

이 스킬의 문제 신고