Transparent rule-based GitHub star-trajectory classifier + calibrated 100-star/48h projection
A transparent, dependency-free GitHub star-trajectory classifier. One Python file, no token, no install — point it at a repo and get its growth phase and a calibrated projection of whether it will reach a target (default 100★ in 48h), with every rule explained.
$ python3 classify.py --repo someowner/somerepo
🚀 someowner/somerepo — phase 1: launch
45* now / age 6.5h / pushed 1.0h ago
v_avg 6.95 / v_recent 11.19 pt/h / accel x1.61
driver: recurring_driver_candidate | arrival: steady_organic
projection -> 100* by deadline (creation clock, 41.5h left, decel x0.8): HIT_lean ~417*
note: direction robust; magnitude +-~30% (single-velocity projection)
JA — GitHub repo の star 成長を phase (launch / accel / sustain / maturity) に分類し、「作成+48時間で100★に届くか」を予測する、透明・依存ゼロのツールです。 トークン不要、1ファイル、すべての判定根拠を表示します。確率値ではなく方向(HIT/ BORDERLINE/MISS)で出し、外れも含めて公開実績で自己採点します。
This isn't just a tool — it runs as a public prediction engine. Every day it picks young, still-undecided repos, predicts their 48h fate before it's known, and scores itself once the deadline passes. The running track record — including the misses — is here:
Raw, machine-readable: predictions.json (the ledger) and
calibration.json (our measured direction accuracy). A
forecast you can't verify is marketing; this one you can.
HIT_lean / BORDERLINE / MISS_lean — with the uncertainty stated.pip install.GITHUB_TOKEN
or any environment variable, and never writes files.classify.py anywhere and run it.It pairs with its sibling fake-star-audit:
star-trajectory asks where is this repo headed?, fake-star-audit asks is the
growth even real? A HIT_lean built on purchased stars is noise — so the
prediction engine runs every candidate through fake-star-audit and excludes
HIGH-risk repos from the track record.
# no install needed — just the one file
python3 classify.py --repo facebook/react
python3 classify.py --repo facebook/react --json # machine-readable
python3 classify.py --repo owner/name --target-stars 250 --deadline-hours 72
python3 classify.py --repo owner/name --prior "6.7,4.1,2.8" # past velocity readings
Or install from PyPI (pip install star-trajectory) and run star-trajectory-cli.
Note: the bare star-trajectory command is the MCP server (below), not the CLI.
Drop the skill/ folder into ~/.claude/skills/ (see skill/SKILL.md),
then ask Claude Code "is github.com/owner/repo still taking off?".
An optional MCP wrapper exposes the classifier
as the classify_repo tool over stdio (your client launches it locally; it
opens no network server and reads no environment variables).
Published on PyPI as star-trajectory and in the
MCP Registry as
io.github.ardev-lab/star-trajectory:
{
"mcpServers": {
"star-trajectory": {
"command": "uvx",
"args": ["star-trajectory"]
}
}
}
From a local checkout, install mcp (pip install -r requirements.txt) and point
the client at python3 /absolute/path/to/star-trajectory/mcp_server.py.
From ≤3 anonymous API calls (repo metadata + two stargazer pages) it derives:
v_avg — lifetime average star velocity (stars ÷ age).v_recent — current velocity, from the most-recent stargazers. (GitHub's
stargazers API returns oldest-first, so the newest stars live on the
Link: rel="last" page. Backfilled pre-2012 timestamps are guarded against.)accel_ratio = v_recent / v_avg — accelerating (>1) or decelerating (<1).| phase | rule | meaning |
|---|---|---|
| 1 launch | age < 24h | initial ramp |
| 2 accel | accel_ratio > 1.3 | accelerating (incl. re-entry) |
| 3 trajectory | 0.7 ≤ accel_ratio ≤ 1.3 | sustaining near peak |
| 4 maturity | accel_ratio < 0.7 | decelerating |
created_at.--prior).projected = stars + v_recent × decel × hours_to_deadline, with a conservative
decel factor per phase (single-velocity readings over/under-shoot magnitude).
Output is a 3-level lean, never a fake-precise probability.
warnings.If you are an LLM agent triaging or recommending GitHub repos:
python3 classify.py --repo <owner>/<name> --json returns a
stable schema (phase, projection.lean, driver_vs_burst, discovery_onset).calibration.json for our measured direction accuracy
before acting on a lean.HIT_lean
on purchased stars should lower your confidence in a repo.JA — AI エージェント向け: --json で安定スキーマを返します。lean を信じる前に
calibration.json(実測の方向的中率)を読み、fake-star-audit で star の真正性も
確認してください。外れ予測の報告(issue)は閾値の再調整に直接役立ちます。
MIT © 2026 ardev. See LICENSE. Part of the GitHub repo intelligence suite — sibling: fake-star-audit.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx star-trajectoryMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-ardev-lab-star-trajectory": {
"command": "uvx",
"args": [
"star-trajectory"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceio.github.ardev-lab/star-trajectory works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.