# lema docs — Public record

Every decision in lema's public corpus has a stable, no-signup URL — a decision permalink (lema.sh/d/{id}) and a repo record page you reach by swapping github.com for lema.sh/gh. The same record is available as three no-auth read endpoints. Counts and cited claims only — never a score.

## Swap the host

Take any repo lema indexes and swap `github.com` for `lema.sh/gh` — e.g. lema.sh/gh/kubernetes/enhancements. Not every indexed repo is a fuse rulings corpus: rulings answer check_approach; ask-why (e.g. elizaOS) serves cited rationale without fuse ruled-out; discussion-only repos (Svelte, Astro, Vite) are indexed for the record page and read API but are not interactive fuse targets yet. The set grows on request rather than automatically, and the authoritative current list is always `GET /public/repos`. A repo that's private, unknown, or not indexed reads the same: not indexed — never a leak.

## Decision permalinks

Each public decision lives at `lema.sh/d/{id}` — what was chosen, what was ruled out, the recorded why, dated citations, and status. A superseded or rejected decision is never dressed up as a live ruling, and "no recorded ruling" means unknown, never approval.

## The read API

Three no-auth GETs under https://api.lema.sh — a private or unknown id is an indistinguishable 404:

- `GET /public/repos` — the live index of indexed repos.
- `GET /public/repos/{owner}/{repo}` — a repo's record: live counts and recent decisions, each with a ready-made permalink.
- `GET /public/decisions/{id}` — one decision in full.

Every payload that names a decision or a repo carries its `permalink` already built. The reads carry a generous per-IP ceiling (roughly 120 requests a minute) — abuse protection, not a quota — separate from the ask and fuse limits.

## Where the permalinks show up

On the public corpus, every citation lema returns from `ask`, `check_approach`, and `fuse` carries a `decision_url` — the exact ruling it's citing, openable with no signup.
