
GitHub पर नकली जुड़ाव का स्वचालित पता लगाना और ट्रैकिंग — दैनिक CI, शून्य बुनियादी ढांचा
GitHub पर नकली जुड़ाव का स्वचालित पता लगाना और ट्रैकिंग
एक JS Labs परियोजना —
AI Slop Intelligence पहल का हिस्सा।
प्रतिदिन चलता है। हर संदिग्ध खाते को स्कोर करता है। समन्वित बॉट अभियानों का पता लगाता है।
समझौता किए गए रिपॉजिटरी पर सीधे issues दर्ज करता है ताकि अनुरक्षक कार्रवाई कर सकें।
इस परियोजना का समर्थन करें
BTC 3QjWqhQbHdHgWeYHTpmorP8Pe1wgDjJy54
ETH 0x5851e6145F4773d1585b8686095FB16E368a4dA1
ZEC t1KSR5YkNPbjqRSCoLKo5AddFWdm9Kzxh1B
GitHub Stars एक विश्वास संकेत हैं। वे यह तय करने का तरीका हैं कि डेवलपर किसका मूल्यांकन करें, किस पर निर्भर रहें और किसकी सिफारिश करें। उस संकेत को व्यवस्थित रूप से दूषित किया जा रहा है।
2024-2026 के AI बूम के दौरान, बॉट फार्मों का एक उद्योग उभरा जो निम्न-गुणवत्ता, अक्सर दुर्भावनापूर्ण रिपॉजिटरी के लिए विश्वसनीयता उत्पन्न करता है। एक प्रोजेक्ट जिसे 48 घंटों में 800 स्टार मिलते हैं, वह खोज परिणामों को स्कैन करने वाले डेवलपर को वैध लगता है। यही बात है। नकली जुड़ाव का लक्ष्य स्टार नहीं हैं; यह वह सामाजिक प्रमाण है जो वे स्टार उत्पन्न करते हैं, और वह डाउनस्ट्रीम निर्णय जो उस सामाजिक प्रमाण से प्रभावित होते हैं।
पैटर्न पहचाना जा सकता है। एक ही सप्ताह बनाए गए खाते, कोई बायो नहीं, कोई अनुयायी नहीं, कोई मूल रिपॉजिटरी नहीं, 2 घंटे की खिड़की में समान 15 रिपोज को स्टार कर रहे हैं। एक नहीं, बल्कि दर्जनों अभियान एक साथ चल रहे हैं, हर दिन, हजारों खातों में। डेटा उन रिपोज को दिखाता है जहां 185 में से 185 जुड़ाव करने वाले बॉट हैं। 100% नकली अनुपात। पूरी तरह से कुछ भी नहीं पर बने ट्रेंडिंग प्लेसमेंट।
phantomstars इसलिए बनाया गया क्योंकि यह समस्या हल करने योग्य है। GitHub के सार्वजनिक API में सिग्नल-टू-शोर अनुपात अभी भी इतना अधिक है कि समन्वित अभियान स्पष्ट फिंगरप्रिंट छोड़ते हैं। यह प्रोजेक्ट उन फिंगरप्रिंट को पढ़ता है, कच्चा डेटा प्रकाशित करता है, और प्रभावित रिपॉजिटरी अनुरक्षकों को सीधे सूचित करता है।
यह JS Labs में व्यापक AI Slop Intelligence कार्य का हिस्सा है, जो डेवलपर इकोसिस्टम में निम्न-गुणवत्ता AI-जनित सामग्री के तंत्र और मापने योग्य प्रभावों पर चल रहे शोध हैं। नकली जुड़ाव कोई गौण मुद्दा नहीं है। यह वह वितरण तंत्र है जो स्लॉप को वास्तविक उपयोगकर्ताओं के सामने लाता है।
phantomstars एक दैनिक GitHub Actions जॉब चलाता है जो:
r/osinttools और r/coolgithubprojects में हाल के Reddit पोस्ट से अतिरिक्त उम्मीदवार रिपोज सीड करता है, पिछले 2 दिनों के GitHub repo लिंक निकालकरकोई सर्वर नहीं। कोई डेटाबेस नहीं। कोई बुनियादी ढांचा बिल नहीं।
हाँ। जब किसी रिपो का नकलीपन अनुपात 40% से अधिक हो जाता है या एक समन्वित अभियान का पता चलता है, तो phantomstars सीधे उस रिपॉजिटरी पर एक issue खोलता है। Issue में पूर्ण संदिग्ध तालिका, अभियान सदस्यता, समग्र स्कोर और खाता निर्माण तिथियां होती हैं: वह सब कुछ जो एक अनुरक्षक को जांच करने और GitHub को रिपोर्ट करने के लिए चाहिए।
यदि लक्षित रिपो पर issues अक्षम हैं, तो सूचना चुपचाप छोड़ दी जाती है और स्कैन लॉग में दर्ज की जाती है।
हाँ।
owner/repo रूप में एक रिपो सबमिट करें और एक लक्षित स्कैन चलाएं।विभाजन क्यों:
हाँ। यदि आपका खाता data/suspects.jsonl में दिखाई देता है और आप मानते हैं कि वर्गीकरण गलत है, तो प्रदान किए गए टेम्पलेट का उपयोग करके एक झूठी सकारात्मक issue खोलें। किसी भी अनुमति सूची में जोड़ने से पहले रिपोर्ट की मैन्युअल समीक्षा की जाती है। अनुमति सूची data/allowlist.txt में संग्रहीत है; वहां सूचीबद्ध खातों को सभी भविष्य के स्कैन और संदिग्ध लेजर से बाहर रखा गया है।
एक अभियान आईडी (जैसे c-a3f9b2e1) उस अभियान में सदस्य लॉगिन के क्रमबद्ध सेट के SHA-256 हैश से प्राप्त एक निर्धारणात्मक 8-अक्षर हेक्स फिंगरप्रिंट है। खातों का एक ही समूह स्वतंत्र स्कैन रन में एक ही अभियान आईडी उत्पन्न करेगा, जो अनुदैर्ध्य ट्रैकिंग को सक्षम करता है। यह एक रेपो नाम, उपयोगकर्ता नाम, या कोई बाहरी पहचानकर्ता नहीं है।
स्थिरता: आईडी तब तक स्थिर है जब तक अभियान का सदस्य सेट अपरिवर्तित है। यदि स्कैन के बीच बॉट जोड़े या निलंबित किए जाते हैं, तो आईडी बदल जाती है क्योंकि सदस्यता बदल गई। यह अपेक्षित है और बॉट फार्म संरचना में वास्तविक दुनिया के बहाव को दर्शाता है।
हाँ। प्रत्येक खाते की निर्माण तिथि GitHub GraphQL API (createdAt फ़ील्ड) से लाई जाती है और प्रत्येक संदिग्ध रिकॉर्ड में account_created_at के रूप में संग्रहीत की जाती है। यह खाता आयु स्कोर का प्राथमिक इनपुट भी है, जो नकली खातों के लिए सबसे मजबूत एकल संकेत है। जुड़ाव के 2 दिनों के भीतर बनाए गए खाते अकेले आयु पर 1.0 स्कोर करते हैं।
व्यक्तिगत स्कोर में सार्थक झूठी सकारात्मक दरें होती हैं। एक नया डेवलपर विरल प्रोफाइल के साथ वैध रूप से 0.75+ स्कोर कर सकता है। उपकरण इसके लिए issues दर्ज करने से पहले अभियान-स्तर के साक्ष्य की आवश्यकता के द्वारा खाता रखता है; एक अकेला संदिग्ध खाता पर्याप्त नहीं है। 40+ खातों का एक समन्वित समूह, सभी एक ही सप्ताह बनाए गए, सभी 0.75+ स्कोर कर रहे हैं, सभी 90 मिनट के भीतर जुड़ रहे हैं, एक अलग बात है। वहां पर विश्वास कार्रवाई योग्य हो जाता है।
डेटा हमेशा संभाव्य होता है। Issue बॉडी में यह स्पष्ट रूप से कहा गया है। लक्ष्य अनुरक्षकों को संकेत और कच्चा साक्ष्य देना है ताकि वे अपना निर्णय ले सकें।
प्रत्येक खाते को चार संकेतों से एक समग्र संदेह स्कोर (0.0 = साफ, 1.0 = संभावित नकली) प्राप्त होता है:
वर्गीकरण सीमाएं:
| स्कोर | वर्गीकरण |
|---|---|
| ≥ 0.75 | संभावित नकली |
| ≥ 0.45 | संदिग्ध |
| < 0.45 | स्वच्छ (संग्रहीत नहीं) |
एक अभियान संदिग्ध खातों का एक समूह (≥ 4) है जो सभी एक ही रिपो के साथ 3 घंटे की खिड़की के भीतर जुड़े। एल्गोरिदम कनेक्टेड घटकों के निर्माण के लिए यूनियन-फाइंड का उपयोग करता है; जो खाते खिड़की के भीतर सह-जुड़े हैं वे विलय हो जाते हैं, और न्यूनतम आकार से ऊपर का कोई भी घटक एक समन्वित अभियान के रूप में चिह्नित किया जाता है।
अभियान आईडी क्रमबद्ध सदस्य सेट के स्थिर SHA-256 फिंगरप्रिंट हैं। एक ही अभियान लगातार दिनों में पाया गया होगा वही आईडी जब तक सदस्यता अपरिवर्तित है।
अभियान ही वास्तविक संकेत क्यों हैं: व्यक्तिगत स्कोर में सार्थक झूठी सकारात्मक दरें होती हैं। एक नया डेवलपर विरल प्रोफाइल के साथ अकेले 0.80 स्कोर कर सकता है। चालीस खाते सभी 0.75+ स्कोर कर रहे हैं, एक ही सप्ताह बनाए गए, सभी एक ही रिपो को 90 मिनट के भीतर स्टार कर रहे हैं, यह कोई संयोग नहीं है। अभियान संकेत वह जगह है जहां डेटा कार्रवाई योग्य हो जाता है: एक संदिग्ध डेटा बिंदु और एक समन्वित संचालन के साक्ष्य के बीच का अंतर।
सभी निष्कर्ष data/suspects.jsonl और data/repos.jsonl में प्रतिबद्ध किए जाते हैं, प्रति पंक्ति एक JSON रिकॉर्ड, append-only। GitHub Actions जॉब सारांश (प्रत्येक रन के बाद Actions UI में दृश्यमान) प्रति स्कैन स्वरूपित रिपोर्ट प्रदान करता है।
suspects.jsonl — प्रति स्कैन प्रति चिह्नित खाते एक रिकॉर्ड:```json { "login": "user98432", "account_age_score": 0.9, "profile_score": 0.8, "repo_pattern_score": 0.8, "activity_score": 0.85, "composite": 0.842, "classification": "likely_fake", "campaign_id": "c-a3f9b2e1", "scan_date": "2026-05-17", "account_created_at": "2026-05-15", "target_repos": ["owner/repo-a", "owner/repo-b"] }
**repos.jsonl** — प्रत्येक स्कैन में लक्षित रिपॉज़िटरी के लिए एक रिकॉर्ड:```json
{
"full_name": "owner/suspicious-repo",
"total_scanned": 87,
"likely_fake": 62,
"suspicious": 18,
"known_likely_fake": 27,
"known_likely_fake_ratio": 0.310,
"repeat_offenders": 11,
"allowlisted_excluded": 3,
"fakeness_ratio": 0.713,
"classification": "likely_fake",
"campaign_count": 3,
"discovery_sources": ["github_search_recent", "reddit_osinttools"],
"event_sample_complete": false,
"scan_date": "2026-05-17"
}
प्रश्न उदाहरण:```bash
jq 'select(.scan_date == "2026-05-17" and .classification == "likely_fake") | .login' data/suspects.jsonl
jq 'select(.account_created_at >= "2026-05-14") | [.login, .account_created_at, .classification] | @tsv' -r data/suspects.jsonl
jq 'select(.scan_date == "2026-05-17") | [.full_name, .fakeness_ratio, .likely_fake] | @tsv' -r data/repos.jsonl | sort -t$'''\t''' -k2 -rn
jq 'select(.scan_date == "2026-05-17") | [.full_name, .known_likely_fake_ratio, .repeat_offenders] | @tsv' -r data/repos.jsonl | sort -t$'''\t''' -k2 -rn
jq 'select(.campaign_id == "c-a3f9b2e1") | [.login, .account_created_at, .composite] | @tsv' -r data/suspects.jsonl
jq 'select(.login == "user98432") | .target_repos[]' data/suspects.jsonl
jq 'select(.fakeness_ratio >= 0.6) | [.full_name, .fakeness_ratio, .campaign_count] | @tsv' -r data/repos.jsonl | sort -t$'\t' -k2 -rn
---
## सेटअप
### 1. इस रिपॉजिटरी को फोर्क करें
आपका फोर्क डेटा का मालिक है। प्रतिदिन रन के बाद परिणाम `data/suspects.jsonl` और `data/repos.jsonl` पर आपके फोर्क में कमिट हो जाते हैं।
### 2. GitHub PAT सीक्रेट जोड़ें
एक **क्लासिक** पर्सनल एक्सेस टोकन बनाएं जिसमें ये स्कोप हों:
- `public_repo`: सार्वजनिक रिपॉजिटरी इवेंट्स और स्टारगेज़र्स पढ़ें, सार्वजनिक रिपॉजिटरी पर इश्यू बनाएं
- `read:user`: GraphQL के माध्यम से उपयोगकर्ता प्रोफाइल प्राप्त करें
**सेटिंग्स → सीक्रेट्स और वेरिएबल्स → एक्शन्स → नई रिपॉजिटरी सीक्रेट** → इसे `GH_TOKEN` नाम दें।
> डिफ़ॉल्ट `GITHUB_TOKEN` में प्रतिबंधित रेट लिमिट होती है और यह उपयोगकर्ता GraphQL एंडपॉइंट को पूरी क्षमता से कॉल नहीं कर सकता। एक PAT आवश्यक है।
### 3. एक्शन्स सक्षम करें
**एक्शन्स → अपने फोर्क पर GitHub Actions सक्षम करें**। वर्कफ़्लो `Europe/London` घड़ी का उपयोग करके **प्रतिदिन UK समय 07:00** पर चलता है:
- **06:00 UTC** ब्रिटिश समर टाइम के दौरान
- **07:00 UTC** ग्रीनविच मीन टाइम के दौरान
कोई अतिरिक्त शेड्यूलिंग एनवायरनमेंट वेरिएबल की आवश्यकता नहीं है। GitHub Actions क्रोन केवल UTC है, इसलिए वर्कफ़्लो दोनों UTC घंटों पर ट्रिगर होता है और केवल तभी आगे बढ़ता है जब स्थानीय लंदन समय 07:00 हो। मैन्युअल ट्रिगर **एक्शन्स → डेली फैंटम स्टार्स स्कैन → वर्कफ़्लो चलाएं** के माध्यम से उपलब्ध है।
प्रत्येक रन के बाद, फ़ॉर्मेटेड स्कैन रिपोर्ट **एक्शन्स → [run] → सारांश** में दिखाई देती है।
### 4. स्थानीय रूप से चलाएं```bash
git clone https://github.com/YOUR_USERNAME/phantomstars.git
cd phantomstars
python -m venv venv && source venv/bin/activate
pip install -e .
GH_TOKEN=ghp_your_token python -m phantomstars.main
एक आकस्मिक स्थानीय रन के लिए सेटअप के बाद:```bash GH_TOKEN=ghp_your_token python -m phantomstars.main
सामान्य खोज सेट के बजाय एक रिपॉजिटरी को स्कैन करने के लिए:```bash
PHANTOMSTARS_TARGET_REPO=owner/repo GH_TOKEN=ghp_your_token python -m phantomstars.main
उपयोगकर्ता एकमुश्त रेपो जांच दो तरीकों से अनुरोध कर सकते हैं:
Repo Check Request समस्या टेम्पलेट खोलें और लक्ष्य रेपो साथ ही अनुरोधित गहराई प्रदान करें।target_repo: owner/reporequest_depth: recent या lifetime-requestवर्तमान व्यवहार:
recent: लक्षित हालिया-सहभागिता स्कैन तुरंत चलाता है।lifetime-request: केवल उस रेपो के ऐतिहासिक स्टार्स और फोर्क्स पर लक्षित आजीवन स्कैन चलाता है।आजीवन मोड के लिए सुरक्षा उपाय:
phantomstars/ ├── .github/ │ ├── workflows/daily-scan.yml # Runs daily at 07:00 Europe/London │ └── ISSUE_TEMPLATE/false_positive.yml ├── src/phantomstars/ │ ├── config.py # All constants, no argparse, no env parsing │ ├── models.py # Frozen dataclasses │ ├── github_client.py # REST + GraphQL, tenacity retries, rate-limit aware │ ├── heuristics.py # Per-user composite scoring engine │ ├── campaigns.py # Timestamp clustering + union-find │ ├── storage.py # JSONL append + query helpers │ ├── reporter.py # README dashboard injector │ ├── notifier.py # GitHub Issues notifier (files on targeted repos) │ └── main.py # Orchestration entry point ├── tests/ │ ├── conftest.py │ ├── test_heuristics.py │ └── test_campaigns.py ├── data/ │ ├── suspects.jsonl # Append-only account findings ledger │ ├── repos.jsonl # Append-only per-repo intelligence │ └── allowlist.txt # Accounts excluded from future scans └── pyproject.toml
---
## सीमाएँ और ज्ञात विफलता के कारण
- **इवेंट्स API की सीमा:** प्रति रिपॉजिटरी अधिकतम 300 हालिया इवेंट्स। जिन रिपॉजिटरी में एक दिन में हज़ारों स्टार्स होते हैं, उनका आंशिक कवरेज होता है।
- **कवरेज फ़्लैग:** जो रिपॉजिटरी 300 इवेंट्स की सीमा तक पहुँच जाती हैं, उन्हें रिपोर्ट और डैशबोर्ड में `capped` के रूप में चिह्नित किया जाता है; उन रिपॉजिटरी पर अनुपात रूढ़िवादी नमूने होते हैं, पूरे दिन की गणना नहीं।
- **खोज सूचकांक की देरी:** GitHub का खोज सूचकांक अंततः संगत होता है। स्कैन सीमा से सेकंड पहले बनाई गई रिपॉजिटरी छूट सकती हैं।
- **ह्यूरिस्टिक बहाव:** बॉट ऑपरेटर अनुकूलन करते हैं। स्कोर भार (weights) को समय-समय पर समायोजन की आवश्यकता हो सकती है; `config.py` में स्थिरांकों को समायोजित करें।
- **व्यक्तिगत गलत सकारात्मक:** एक नए डेवलपर का विरल प्रोफ़ाइल अलग-थलग 0.75+ स्कोर करता है। अभियान सदस्यता उच्च-विश्वसनीयता संकेत है।
- **अभियान आईडी बहाव:** यदि स्कैन के बीच बॉट फार्म की सदस्यता बदलती है (बॉट निलंबित, नए बॉट जोड़े गए), तो अभियान आईडी बदल जाती है। यह वास्तविक अभियान विकास को दर्शाता है, कोई बग नहीं।
- **दर सीमाएँ:** प्रमाणित PAT पर 5,000 API अनुरोध/घंटा। मानक ट्रेंडिंग पृष्ठ आकारों के लिए सीमा के भीतर।
- **अक्षम मुद्दे:** कुछ लक्षित रिपॉजिटरी मुद्दों को अक्षम कर देती हैं। उन रिपॉजिटरी के लिए सूचनाएँ चुपचाप छोड़ दी जाती हैं।
---
## गलत सकारात्मक प्रक्रिया
यदि आपका खाता `data/suspects.jsonl` में दिखाई देता है और आप मानते हैं कि इसे गलत वर्गीकृत किया गया है:
1. अपनी प्रविष्टि खोजें: `jq 'select(.login == "YOUR_LOGIN")' data/suspects.jsonl`
2. अपने लॉगिन, वर्गीकरण, स्कैन तिथि और स्पष्टीकरण के साथ [एक गलत सकारात्मक समस्या खोलें](../../issues/new?template=false_positive.yml)
3. रिपोर्ट की मैन्युअल समीक्षा की जाती है। सत्यापित गलत सकारात्मक को `data/allowlist.txt` में जोड़ा जाता है और भविष्य के सभी स्कैन, रिपॉजिटरी अनुपात और समस्या सूचनाओं से बाहर रखा जाता है।
नोट: समस्या खोलने से किसी भी मौजूदा डेटा में संशोधन या हटाव नहीं होता है। संदिग्ध लेज़र (ledger) केवल-जोड़ने योग्य है। अनुमति सूची केवल भविष्य के स्कैन को प्रभावित करती है।
---
## योगदान```bash
pip install -e ".[dev]"
python -m black .
python -m ruff check .
python -m mypy src
python -m pytest
All four must pass before a PR.
यह उपकरण आधिकारिक GitHub API का उपयोग करके सार्वजनिक GitHub डेटा का केवल-पढ़ने के लिए विश्लेषण करता है। जहाँ लक्षित रिपॉजिटरी पर मुद्दे दायर किए जाते हैं, उनमें संभाव्य निष्कर्ष होते हैं और स्पष्ट रूप से स्वचालित के रूप में लेबल किए जाते हैं। निष्कर्ष संकेत हैं, आरोप नहीं। गलत सकारात्मक परिणाम मौजूद हैं और अपेक्षित हैं।
AI को कोडिंग पार्टनर के रूप में उपयोग करके बनाया गया, एक पारिस्थितिकी तंत्र समस्या के जवाब में जो आंशिक रूप से AI द्वारा निर्मित हुई।
Apache 2.0. देखें LICENSE
tg12 द्वारा निर्मित · GitHub
एक JS Labs परियोजना · AI Slop Intelligence Dashboards
| तिथि | स्कैन किए गए | संभावित नकली | संदिग्ध | अभियान | नए नकली (24 घंटे) |
|---|
| 2026-06-16 | 1846 | 221 | 1625 | 56 | 190 |
| 2026-06-15 | 2274 | 418 | 1856 | 61 | 397 |
| 2026-06-14 | 1953 | 355 | 1598 | 44 | 310 |
| 2026-06-13 | 2012 | 301 | 1711 | 47 | 251 |
| 2026-06-12 | 2298 | 336 | 1962 | 57 | 300 |
| 2026-06-11 | 1957 | 385 | 1572 | 42 | 356 |
| 2026-06-10 | 2043 | 687 | 1356 | 50 | 665 |
| 2026-06-09 | 2199 | 690 | 1509 | 44 | 632 |
| 2026-06-08 | 1913 | 450 | 1463 | 50 | 424 |
| 2026-06-07 | 1797 | 658 | 1139 | 30 | 618 |
| 2026-06-06 | 2625 | 712 | 1913 | 40 | 620 |
| 2026-06-05 | 2403 | 673 | 1730 | 53 | 617 |
| 2026-06-04 | 2237 | 441 | 1796 | 41 | 367 |
| 2026-06-03 | 2331 | 488 | 1843 | 53 | 431 |
| 2026-06-02 | 2795 | 773 | 2022 | 37 | 616 |
| 2026-06-01 | 2490 | 533 | 1957 | 39 | 355 |
| 2026-05-31 | 2302 | 458 | 1844 | 32 | 280 |
| 2026-05-30 | 2576 | 530 | 2046 | 20 | 356 |
| 2026-05-29 | 2838 | 733 | 2105 | 42 | 369 |
| 2026-05-28 | 2748 | 694 | 2054 | 39 | 396 |
| 2026-05-27 | 2193 | 560 | 1633 | 32 | 491 |
| 2026-05-26 | 1930 | 236 | 1694 | 43 | 190 |
| 2026-05-25 | 1526 | 214 | 1312 | 32 | 158 |
| 2026-05-24 | 2170 | 358 | 1812 | 39 | 265 |
| 2026-05-23 | 2548 | 426 | 2122 | 43 | 317 |
| 2026-05-22 | 2318 | 340 | 1978 | 47 | 247 |
| 2026-05-21 | 1981 | 348 | 1633 | 25 | 277 |
| 2026-05-20 | 1613 | 268 | 1345 | 23 | 163 |
| 2026-05-19 | 5463 | 630 | 4121 | 67 | 442 |
| 2026-05-18 | 8838 | 670 | 7950 | 128 | 340 |
| रिपो | जुड़ाव करने वाले | संभावित नकली | ज्ञात नकली % | नकलीपन % | अभियान | कवरेज | स्रोत |
|---|
| freeCodeCamp/freeCodeCamp | 264 | 26 | 0.0% | 9.8% | 1 | complete | github_trending |
| Lolner95/use-kimi-on-cursor | 116 | 17 | 26.7% | 14.7% | 1 | complete | github_search_recent |
| zmustafa/AzureSupportAgent | 33 | 16 | 36.4% | 48.5% | 1 | complete | github_search_recent |
| Free-TV/IPTV | 291 | 14 | 0.3% | 4.8% | 1 | complete | github_trending |
| Panniantong/Agent-Reach | 292 | 14 | 0.3% | 4.8% | 1 | capped | github_trending |
| jwasham/coding-interview-university | 288 | 12 | 0.3% | 4.2% | 1 | capped | github_trending |
| Alex-Shayo/bakkes-mod-install | 37 | 10 | 0.0% | 27.0% | 1 | complete | github_search_recent |
| Timgt86/yt-downloader-savetube | 37 | 10 | 0.0% | 27.0% | 1 | complete | github_search_recent |
| devassisthub/Zelda-TP-PC-Port | 35 | 9 | 0.0% | 25.7% | 1 | complete | github_search_recent |
| imohammedyasin/steam-tools | 35 | 9 | 0.0% | 25.7% | 1 | complete | github_search_recent |
| lol-toolkit/ltk-manager-lol | 35 | 9 | 0.0% | 25.7% | 1 | complete | github_search_recent |
| tor-browser-download/tor-browser | 36 | 9 | 0.0% | 25.0% | 1 | complete | github_search_recent |
| claude-code-ai-anthropic/free-claude-code-ai-desktop-app | 38 | 9 | 0.0% | 23.7% | 1 | complete | github_search_recent |
| vitaliikapliuk/modelharness | 60 | 9 | 31.7% | 15.0% | 1 | complete | github_search_recent |
| shiyu-coder/Kronos | 282 | 9 | 1.1% | 3.2% | 1 | complete | github_trending |
| snanas/Forza-Horizon-Spotify-Radio | 34 | 8 | 0.0% | 23.5% | 1 | complete | github_search_recent |
| bingook/bingo | 45 | 8 | 2.2% | 17.8% | 2 | complete | github_search_recent |
| darricke/claude-fable-5-desktop-free | 49 | 8 | 0.0% | 16.3% | 1 | complete | github_search_recent |
| Ponzuu84/MaaNTE | 32 | 7 | 0.0% | 21.9% | 1 | complete | github_search_recent |
| iDesignStudioz/yellowkey-bitlocker | 33 | 7 | 0.0% | 21.2% | 1 | complete | github_search_recent |
| chatwoot/chatwoot | 230 | 7 | 0.0% | 3.0% | 1 | complete | github_trending |
| Open-Builders/pumpfun-bundler-pump.fun-bundler-solana-token-bundler-bot | 18 | 6 | 33.3% | 33.3% | 1 | complete | github_search_recent |
| taisly/agent | 23 | 6 | 17.4% | 26.1% | 2 | complete | github_search_recent |
| iptv-org/iptv | 193 | 6 | 0.0% | 3.1% | 1 | complete | github_trending |
| itsfatduck/optimizerDuck | 293 | 6 | 0.3% | 2.0% | 1 | complete | github_trending |
| संकेत | भार | माप |
|---|
| खाता आयु | 35% | < 2 दिन → 1.00 · < 7 दिन → 0.90 · < 30 दिन → 0.55 · < 90 दिन → 0.20 · पुराना → 0.00 |
| प्रोफाइल पूर्णता | 30% | के लिए अंक: कोई बायो नहीं (+0.25), कोई स्थान नहीं (+0.15), कोई कंपनी नहीं (+0.10), शून्य अनुयायी (+0.30), शून्य अनुसरण (+0.10), बॉट-पैटर्न उपयोगकर्ता नाम (+0.20) |
| रिपॉजिटरी पैटर्न | 25% | शून्य रिपोज → 0.90 · सभी रिपोज फोर्क हैं → 0.80 · >85% फोर्क अनुपात → 0.55 |
| गतिविधि इतिहास | 10% | 14 दिन से अधिक पुराने खाते जिनमें शून्य रिपोज + शून्य सामाजिक ग्राफ → 0.80 (भूत खाते)। केवल शून्य रिपोज → 0.60। सभी-फोर्क + कोई सामाजिक ग्राफ नहीं → 0.50 |