← All articles

Stars Only Tell You the Outcome, Not the Reason

An open source quality-check tool where you just paste a URL — the story from one embarrassing failure to nine dimensions

Stars Only Tell You the Outcome, Not the Reason
On this page 8

Have you ever wondered: why do some projects have great code but their star count grows slowly?

Star counts only tell you the outcome — someone clicked that button. They don’t tell you the reason: is it a great README? Or a complete CI setup that makes people feel safe? Or was it simply boosted by a big influencer?

I’m building a small tool called Scorecard that breaks project maturity into nine dimensions, and each dimension only looks at objective evidence — can the API retrieve it, does the file exist, what’s the status code. This time I want to talk about how it came to be, what pitfalls I hit, and how the ninth dimension, “AI readability,” ended up embarrassing me.

Why Break It Into Nine Dimensions

Most people evaluating a project look at the README and the star count. But those two carry very little information.

The question I set for myself was: “Will a stranger star this project within 10 seconds?” Pull that question apart and you get these dimensions:

Dimension What question it answers
Storefront Can I tell at a glance what this is?
Distribution Can I install it — npm / brew / Docker
Release engineering Are there semver tags, a CHANGELOG, a release cadence
Quality guardrails Are CI, tests, and lint there
Community health Are there a CONTRIBUTING and issue templates
Documentation Are the quickstart and examples sufficient
Security Any dependency vulnerabilities, is there a SECURITY.md
Metrics Star growth rate, fork ratio, download counts
AI readability Can AI crawlers read your content

Nine dimensions, each scored 0-10, then aggregated with weights. It’s not just a score — every item comes with evidence and remediation advice.

The First Version: A CLI Tool

Scorecard started life as a command-line tool:

bun run audit webkubor/scorecard

It ran and printed a Markdown report, with each dimension listing evidence, gaps, and how many points a fix would gain.

The CLI version worked, but it had one problem: nobody wants to install a tool just to check one project.

Switching to a Web Version: Paste a URL and Go

So I built a web version: paste a GitHub URL and get a full report within seconds.

Open Scorecard for a free project audit

No login required, and public repos don’t need a token. Adding a read-only token raises the rate limit from 60 requests/hour to 5000, but you can run it without one.

The backend is Bun + Hono, the frontend is Vue. The backend is the quality-check engine, the frontend is the report panel.

What the Report Looks Like

The output isn’t a single score, it’s three things:

  • Radar chart — all nine dimension scores at a glance
  • Remediation list — sorted by “impact ÷ cost”, so you fix the highest-yield items first
  • Markdown report — one-click copy, paste it straight to an AI and have it help you fix things

Every item in the remediation list carries an “estimated +X points after fixing”, not a vague “consider improving”.

The Ninth Dimension: AI Readability

The first eight dimensions are fairly conventional. The ninth is one I added, and the inspiration came from an embarrassing failure.

I’m building a small tool called Scorecard — wait, this one, right here. I ran it on my own project and found a problem: my official site blocked AI crawlers, and I had no idea.

The robots.txt rules on my site at the time restricted crawlers such as GPTBot and ClaudeBot. Google indexing and crawling by individual AI services are separate things: allowing a crawler does not guarantee that it will visit or cite a page.

The Failure, As It Happened

First cut: fixed robots.txt and allowed AI crawlers. Thought that was it.

The next day, while getting ready to share it, I checked again — fix one layer and there’s a second layer underneath. robots.txt allowed them, but the meta tags still carried noai. Services may interpret these signals differently, so both deserve inspection; neither alone proves what will be crawled or cited.

That experience made me realize: AI readability is something you have to actively check, it isn’t there by default.

What the Ninth Dimension Checks

Check What it looks at
AGENTS.md Is there working guidance for AI in the repo root
llms.txt Is there a content index for LLMs
robots.txt Does the official site allow AI crawlers
Site meta tags Any noai / noimageai

All four are objective criteria — does the file exist, what’s the status code — with no model judgment needed.

Scoring Isn’t the Goal, Action Is

Scorecard’s scoring standard has four tiers:

Score range Meaning
9-10 Category leader: channel, metrics, fully automated releases
6-8 Engineering-healthy but weak on distribution: “good code nobody sees”
3-5 Usable, but storefront/release has debt
0-2 A personal practice repo

Most personal projects land between 3-5. The code isn’t bad, the storefront just isn’t done well — README not written clearly, no CHANGELOG, no CI.

Scorecard’s core idea is: every conclusion carries evidence, every gap carries remediation advice and expected gain. Saying “the docs could be better” is useless; say “CONTRIBUTING.md is missing, adding it is estimated +0.3 points” instead.

The Engine Is Authoritative, the Skill Is Depth

Scorecard has two layers:

Layer What it does Good for
Web engine Objective scanning + report history Scanning a repository, package or webpage and comparing historical reports
AI Skill Deep diagnosis + fix plans Reading the README, proposing remediation, helping you fix it

The engine handles objective items — whatever the API can retrieve. The skill handles subjective items — things like “can the README first screen explain it in 10 seconds”, which only a model knows after reading it.

Both sides have to use the same set of dimension standards, otherwise the panel says 7 points and the skill says 4, and people don’t know who to trust.

Tech Stack

前端:Vue + Vite
后端:Bun + Hono
API:GitHub REST API
部署:Bun server 托管 dist/

The current service uses local SQLite for audit history and operation logs, with cached results; checking public projects does not require a login. The design principle is still if you can leave it out, leave it out — every dependency is a liability.

What You Can Try

Open scorecard.supercli.site and paste a repo link you’re familiar with. When it finishes you’ll see:

  • Which dimensions your project scores high on
  • Which dimensions have gaps
  • What to fix first for the biggest gain

If you think a dimension is unreasonable, or something is missing, feel free to open an issue. The scoring standard isn’t something I decide on my own.

🚀相关开源工具与实践
读完不过瘾?把文中思考变成可落地的生产力
🎛️

dsh-llm-hub

DSH 插件

DSH 模型管理层:网关可达性探测、目录拉取、余额配额与多账号 Key 轮换。

🌸

dsh-bloom-theme

DSH 主题

Bloom 莫兰迪 10 套中国风配色,OKLCH 调色,WCAG AA 认证。

🔐

kyvault

安全底座

本地加密密钥管理 CLI —— AES-256-GCM 存储,AI 只能拿到别名注入,永不泄露明文。

webkubor

关于作者 · 栖洲 (webkubor)

把审美做成工程 —— 经得起生产环境检验的 AI 系统、独立开发工作流与极客主题。