Repo status
Skill VictorAurelius/claude-starter-kit/skills/workflow/repo-status
π€ Battle-tested Claude Code skills, rules & workflow templates β extracted from a real 200+ PR project. Governance-first. Bilingual VN/EN.
npx -y skills add VictorAurelius/claude-starter-kit --skill repo-statusAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when the user says 'status', 'repo status', 'tΓ¬nh trαΊ‘ng repo', 'health check', 'is the repo OK?', 'security', 'CVE', 'vuln', or when starting a conversation that needs a quick remote-repo assessment. Checks: CI, PRs/branches, audit gaps, GitHub Security (Dependabot + code-scanning + secret-scanning) β output level GREEN/YELLOW/ORANGE/RED/BLACK.
SKILL.md
6.3 KB, as published. Nobody here has run it
/repo-status β Remote Repo Health Check
Usage: /repo-status or /repo-status --quick
Assess remote-repo health across 4 factors, output a status level.
Instructions
Step 1: Gather data
If the project provides a helper script scripts/repo-status.sh, use it:
./scripts/repo-status.sh # full report
./scripts/repo-status.sh --json # JSON for parsing
./scripts/repo-status.sh --level # level only (quick check)
If no such script exists, gather the 4 factors directly with gh / git (Steps below). If --quick: report the level in one line and stop.
Step 2: Analyze the 4 factors
Factor 1 β CI: if CI is failing on the default branch, find root cause:
DEFAULT=$(git symbolic-ref --quiet --short refs/remotes/origin/HEAD | sed 's@^origin/@@'); DEFAULT=${DEFAULT:-main}
FAILED_RUN=$(gh run list --branch "$DEFAULT" --limit 5 \
--json databaseId,workflowName,conclusion \
--jq '.[] | select(.conclusion=="failure") | .databaseId' | head -1)
gh run view "$FAILED_RUN" --log-failed 2>/dev/null | tail -30
Factor 2 β PRs/Branches: check whether stale branches are WIP or abandoned:
git for-each-ref --sort=-committerdate \
--format='%(refname:short) %(committerdate:relative)' refs/remotes/ \
| grep -vE "main|master|HEAD"
Factor 3 β Audit Gaps (optional β only if the project runs audits): read the latest audit report under documents/04-quality/audits/** (if present) to understand gap context. Cross-check: do gaps already have a merged PR fix? (compare against gh pr list --state merged since the audit date). If the project has no audit pipeline, skip this factor.
Factor 4 β GitHub Security: 3 endpoints via gh api:
REPO=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
gh api "repos/$REPO/dependabot/alerts?state=open" # β 403 if disabled
gh api "repos/$REPO/code-scanning/alerts?state=open" # β [] if no scanner
gh api "repos/$REPO/secret-scanning/alerts?state=open" # β public/enterprise only
Severity mapping:
- Dependabot
criticalβ BLACK;highβ RED;mediumβ YELLOW - Code scanning
errorβ HIGH (counts as CVE);warningβ MEDIUM;noteβ LOW - Any secret-scanning alert β BLACK (credential exposure)
- Dependabot disabled (HTTP 403) β minimum ORANGE (silent-drift risk)
If Dependabot is disabled, prompt the user to enable it (repo Settings β Code security and analysis).
Step 3: Output Report
## Repo Status: [LEVEL] β [Label]
**Date:** [date]
**Branch:** [default] @ [commit hash]
### Factor 1: CI
- Status: β
/β [details]
- Days since green: [N]
- Root cause (if fail): [description]
### Factor 2: PRs & Branches
- Open PRs: [N]
- Stale branches: [N]
- Details: [list]
### Factor 3: Audit Gaps (omit if no audit pipeline)
- Latest audit: [date] β [score]
- Unfixed P0/P1/P2: [counts]
### Factor 4: GitHub Security
- Dependabot: enabled/disabled β [critical/high/medium/low counts]
- Code scanning: [N errors / N warnings / N notes] β top finding: [rule.id + file]
- Secret scanning: [N open alerts] (BLACK if >0)
### Recommended Actions
1. [Highest priority]
2. [Next]
Step 4: Recommend actions
| Level | Action |
|---|---|
| GREEN | Continue normal development |
| YELLOW | Note minor items, fix when convenient |
| ORANGE | Fix before opening new PRs |
| RED | Fix now β top priority |
| BLACK | Stop all work, fix CI/security first |
Level Definitions
Detail: reference/level-definitions.md
| Level | Label | Trigger |
|---|---|---|
| GREEN | Healthy | CI green + 0 open PRs/stale branches + 0 P0/P1 gaps + 0 CVE + Dependabot enabled |
| YELLOW | Minor Issues | CI green + minor gaps (P2/P3) OR 1-2 stale branches OR code-scan warnings |
| ORANGE | Needs Attention | CI green + P1 gaps, OR >2 stale items, OR Dependabot disabled, OR β₯3 warnings |
| RED | Degraded | CI red on default branch OR unfixed P0 gaps OR β₯1 HIGH CVE |
| BLACK | Broken | CI red >7 days OR CRITICAL CVE OR secret-scanning alert |
Rules
- Run the helper script first if it exists β don't infer status by hand.
- LUΓN giao tiαΊΏp tiαΊΏng Viα»t (per kit bilingual convention).
- If a check fails (GitHub API unavailable) β report it, don't guess.
- Cross-reference audit gaps with merged PRs β a gap may already be fixed but not re-audited.
- Recommended actions must be actionable (PR scope, estimate).
Gotchas
- All checks need
ghauthenticated (gh auth status). ci_days_redis based on last-success date, not first-failure date.- Audit gaps (Factor 3) parse via P0/P1/P2 markers β if a project's report format differs, adapt the parse.
- Stale branches = unmerged into default branch, may be valid WIP β check commit date before recommending delete.
- Security factor (F4):
gh apisecurity endpoints return 403 if Dependabot disabled. Use a jq type-check (type=="array"= enabled) to distinguish a disabled object from an empty-but-enabled array. Do NOT grep the response body β CVE descriptions may contain the word "disabled" and cause false positives. - Secret-scanning endpoint is only available for public repos or GitHub Enterprise β returns 404 for private repos β treat as "disabled".
- Code-scanning alerts only populate when a CodeQL/Trivy/SARIF upload workflow runs. No scanner = empty
[], not disabled.
Skill contents
SKILL.mdβ this filereference/level-definitions.mdβ 5-level definitions + decision matrix + per-factor detail
Related
.claude/skills/workflow/start-session/SKILL.mdβ faster routine entry (consumes repo level).claude/rules/mcp-first-with-fallback.mdβ prefer GitHub MCP overghCLI when connected.claude/rules/output-review-mandate.mdβ health reports are reviewable outputs