lema · docs
Public record
Every decision in lema’s public corpus has a stable, no-signup URL — a decision permalink and a repo record page you can open, read, and share. The same record is available as three no-auth read endpoints. Counts and cited claims only — never a score, never a readiness percentage.
Repo records
Swap the host
Take any repo lema indexes and swap github.com for lema.sh/gh. The repo record page shows that project’s live counts — decisions, ruled-out alternatives, and cited claims — and its most recent decisions, each linking straight to its permalink.
The list beside this is what lema indexes today. Not every indexed repo is a fuse rulings corpus: rulings answer check_approach; ask-why serves cited rationale without fuse ruled-out; discussion-onlyrepos are indexed for the record page and read API but are not interactive fuse targets yet. The set grows on request rather than automatically — the authoritative current list is always GET /public/repos.
Ask for a repo that isn’t indexed and the page says exactly that — it lists what isavailable and promises nothing it can’t run. A repo that’s private, unknown, or simply not indexed yet all read the same: not indexed, never a leak of anything private.
github.com/kubernetes/enhancements lema.sh/gh/kubernetes/enhancements
Indexed today
- reactjs/rfcsReactrulings
- vuejs/rfcsVuerulings
- golang/proposalGorulings
- kubernetes/enhancementsKubernetesrulings
- rust-lang/rfcsRustrulings
- ethereum/EIPsEthereumrulings
- elizaOS/elizaelizaOSask-why
- sveltejs/svelteSveltediscussion-only
- withastro/roadmapAstrodiscussion-only
- vitejs/viteVitediscussion-only
Decisions
Every decision has a permalink
Each public decision lives at lema.sh/d/{id}— a stable, no-signup URL that shows what was chosen, what was ruled out, the recorded why, dated source citations, and the decision’s status. The id is the decision’s stable UUID, so a link you paste today keeps resolving.
Paste one into Slack, X, or Discord and it unfurls into a share card — the verdict type, the date, and the repo — generated on the page itself, no external fetch. Status is load-bearing: a superseded or rejected decision is never dressed up as a live ruling, and no recorded ruling means unknown, never approval.
Live permalinks
- Anago to Krel Migration
kubernetes/enhancements · lema.sh/d/ed7a84df-8388-4376-8c20-2154c3030f13
- Goroutine leak detection via garbage collection
golang/proposal · lema.sh/d/66b84fd1-18ca-4d1a-8c3a-c3a13213677c
- Inherit default features
rust-lang/rfcs · lema.sh/d/af2a8ee1-4b0c-4b70-8cfc-ea2b0d4cf6cf
Read API
The public read API
The same record is three no-auth GETs under https://api.lema.sh. No key, no account — the corpus is gated to public data at the source, so a private or unknown id is an indistinguishable 404 that returns nothing.
GET /public/reposThe live index of indexed repos.
GET /public/repos/{owner}/{repo}A repo’s record: live counts and its recent decisions, each with a ready-made permalink.
GET /public/decisions/{id}One decision in full — chosen, ruled out, the recorded why, and dated citations.
Every payload that names a decision or a repo carries its permalinkalready built — you never assemble a URL by hand. Follow a repo record’s recent_decisions[] into /public/decisions/{id} for the full decision.
The reads carry a generous per-IP ceiling — roughly 120 requests a minute. It’s abuse protection that absorbs crawlers and unfurl herds, not a quota to ration — and it’s a separate bucket from the ask and fuse limits, so browsing the record never eats into asking it.
$ curl https://api.lema.sh/public/repos/kubernetes/enhancements{
"repo": "kubernetes/enhancements",
"slug": "kubernetes-enhancements",
"permalink": "https://lema.sh/gh/kubernetes/enhancements",
"decisions": …, "ruled_out": …, "claims": …,
"recent_decisions": [
{
"id": "ed7a84df-8388-4376-8c20-2154c3030f13",
"title": "Anago to Krel Migration",
"status": "accepted",
"permalink": "https://lema.sh/d/ed7a84df-8388-4376-8c20-2154c3030f13"
}
]
}Trimmed. decisions / ruled_out / claims are live counts; every entry in recent_decisions carries a ready-made permalink.
Citations
Where the permalinks show up
The permalinks aren’t only for humans. On the public corpus, every citation lema returns from ask, check_approach, and fuse carries a decision_url — so an agent or a tool quoting lema can link the exact ruling it’s citing, and a reviewer can open it with no signup. See the tools reference for the field and where it appears.