Skill
Use when a full GitHub repository URL (github.com/owner/repo) appears in conversation, when the user asks to check, review, or analyze a GitHub repo, or when the user runs /gitgauge. Does not trigger on npm packages, file paths, org pages, or issue/PR links.From its SKILL.md
npx -y skills add Davey2Waveyy/gitgauge --skill skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- reads credentialsReads from 1 credential source: `$GITHUB_TOKEN`.
- 4 stars4 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.
- runs commandsInstructs the agent to run 4 commands, including `python ~/.claude/skills/gitgauge/scripts/score.py owner/repo` and 3 more.
SKILL.md
5.1 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
GitGauge
Score GitHub repos for authenticity. Mirrors the GitGauge Chrome extension algorithm exactly.
The GitGauge output line is the announcement β no separate announce needed. Run the scorer first, then engage with the repo.
When to run
| Trigger | Output mode |
|---|---|
| GitHub URL appears passively in conversation | Compact one-liner, then continue |
| User asks to review / analyze a repo | Compact score + brief breakdown, then review |
User runs /gitgauge owner/repo | Full report: sub-scores, flags, metadata |
Do not run on:
- GitHub profile URLs, org pages, gist links, issue links, PR links, or commit links
- npm package references (
@scope/package), file paths, or bareowner/repowith no GitHub URL context - Repos already scored in the current conversation
Running the scorer
python ~/.claude/skills/gitgauge/scripts/score.py owner/repo
# macOS / Linux: use python3 instead of python
With a token (removes rate limit):
python ~/.claude/skills/gitgauge/scripts/score.py owner/repo --token ghp_yourtoken
For the full report mode (parse JSON to build structured output):
python ~/.claude/skills/gitgauge/scripts/score.py owner/repo --json
Pass full GitHub URLs too β the script strips the github.com/ prefix automatically.
Output formats
Compact (passive trigger)
GitGauge: π’ 4.1/5.0 β Likely Authentic
Standard (review / analyze trigger)
GitGauge: π’ 4.1/5.0 β Likely Authentic
β 2,400 stars π΄ 310 forks π 47 watchers π 18 issues
Fork ratio: 12.9% | Watcher ratio: 1.96% | Issue ratio: 0.75%
Full report (/gitgauge command)
Use --json output. Show score, label, all ratios, sub-scores, flags, and metadata (language, description, topics).
Score labels
| Score | Label | Emoji |
|---|---|---|
| 1.0β1.4 | Likely Fake | π΄ |
| 1.5β2.4 | Suspicious | π |
| 2.5β3.4 | Mixed Signals | π‘ |
| 3.5β4.4 | Likely Authentic | π’ |
| 4.5β5.0 | Highly Authentic | β |
Warning threshold
If score < 2.5, show a soft warning before engaging with the repo:
β οΈ GitGauge flagged
owner/repoas Suspicious (1.8/5.0) β low engagement relative to star count may indicate star farming or an inactive project. Proceeding anyway.
Never block the user β the score is additive context, not a gate.
Error handling
| Error | What to show |
|---|---|
| 404 / not found | GitGauge: β Repo not found or private β skipping score |
| Rate limited | GitGauge: β οΈ Rate limited β pass --token to continue (see Token Setup below) |
| Unscoreable (< 50 stars) | GitGauge: βͺ Unscoreable β fewer than 50 stars |
| Bad token | GitGauge: β GitHub token invalid or expired |
In all error cases: continue engaging with the repo normally.
Edge case flags
The script returns these flags in output β always surface them:
| Flag | What to tell the user |
|---|---|
is_fork | "This is a fork β metrics reflect fork activity, not the original repo" |
archived | "Repo is archived β activity metrics are frozen" |
low_stars | "Under 100 stars β signal may not be reliable" |
new_repo | "Under 30 days old β insufficient history for a reliable score" |
Zero issues + many stars: Script automatically scores this as 1.5 (Suspicious). Large repos with zero open issues usually have issues disabled, not zero bugs.
Token setup (optional)
Without a token: 60 GitHub API requests/hour per IP. Sufficient for most sessions.
- Create a token at https://github.com/settings/tokens β no scopes needed for public repos
- Pass inline:
--token ghp_yourtoken - Or set
GITHUB_TOKENin your environment and update the Bash call to read$GITHUB_TOKEN
Scoring algorithm
Full implementation is in scripts/score.py β a direct port of the GitGauge Chrome extension.
- Minimum threshold: repos with < 50 stars return unscoreable
- Fork score (weight: 35% with watchers, 55% without): forks Γ· stars
- Watcher score (weight: 35%, omitted if watchers = 0): watchers Γ· stars
- Issue score (weight: 30% with watchers, 45% without): issues Γ· stars
- Final score clamped to [1.0, 5.0], rounded to one decimal
Breakpoints and interpolation logic are defined as constants at the top of score.py.
Quick reference
| Situation | What to do |
|---|---|
| GitHub URL in message | Run scorer β compact one-liner β continue |
| "Review this repo" | Run scorer β standard output β review |
/gitgauge owner/repo | Run scorer with --json β full report |
| Score < 2.5 | Show warning before engaging, then proceed |
| Any API error | Show error line, still engage with repo |
| Flag in output | Always mention it to the user |
| Already scored this session | Skip β don't score twice |
What ships with it: 1 file
8.4 KB alongside SKILL.md, 1 of them executable
scripts/
- score.pyruns8.4 KB