docs: rewrite the quickstart around bitrouter/auto and the optimize loop - #65
docs: rewrite the quickstart around bitrouter/auto and the optimize loop#65SPIKESPIGEL404 wants to merge 2 commits into
Conversation
Refocuses the quickstart on the hosted endpoint and ends it on the optimization loop instead of a static proxy walkthrough. - Drops the Cloud-vs-self-host framing, the capability parity table, and the self-host walkthrough; self-hosting is now a card in Next steps. - Replaces the two-option onboarding with a four-tab strip matching the landing hero: CLI, MCP, Agent Skills, Wizard (npx @bitrouter/agent). - Removes `bitrouter skills add` (deprecated upstream) from the quickstart, the Agent Skills page, and the CLI overlay. - Swaps the curl/Python/TypeScript tabs for OpenAI SDK / Anthropic SDK / curl, plus a table of all four natively supported request formats. - Rewrites the adaptive-routing section as "Start optimizing", built around bitrouter/auto: measure on your own workflow, publish, and the same model id routes differently for you afterwards. - Deletes seven inbound links to the removed #adaptive-routing and #self-host-or-cloud anchors. 240 -> 179 lines. `pnpm lint:docs` passes; no broken internal links. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`bitrouter optimize setup` now reads the project's eval and benchmark entrypoints, adopts a unique candidate, and prompts on ambiguity (bitrouter/bitrouter#779), so the section no longer opens with a flag a five-minute-old reader does not have a value for. The exact-argv form stays documented for the undiscoverable case. Closes the "optimize setup still needs a workflow command" gap in this PR's description. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Updated the description against what actually shipped. Two things worth pulling out, because one is good news and the other is a new blocker that did not exist when this was opened. The naming challenge resolved in this PR's favour. bitrouter/bitrouter#779 shipped The new blocker is hosted vs local. #788 implements the slug in the local daemon's Stage-0 resolver, against a locally-bound
Neither is a docs bug; the page is describing an intended product and the product is half-built. But it does mean the merge gate for this PR is now a Cloud decision rather than an OSS one. Separately, #788 shipped the slug without a default policy: with nothing bound, the request returns a One content change pushed: |
This documents a UX that is partly shipped and partly still being designed. It is opened for review of structure and framing, not to land. See Blocked on below.
What this does
Refocuses the quickstart on the hosted endpoint and ends it on the optimization loop, instead of walking through a static proxy setup. 240 → 179 lines (~880 words, for reference OpenRouter's quickstart is ~1,500).
The page now has one continuous arc: send
bitrouter/auto→ measure it on your own workflow → publish → the same model id routes differently for you.Changes
bitrouter cloud login, thecloud.bitrouter.aiconsole link).bitrouter skills addremoved (deprecated upstream) from the quickstart,usage/skills.mdx, andcli-overlays/skills.md.reviewreports, how publishing feeds back intobitrouter/auto, and how cycles compound.#adaptive-routingand#self-host-or-cloudanchors no longer exist.optimize setupno longer opens with a flag. Guided discovery landed in feat: guide @auto workflow optimization bitrouter#779, so the section leads with barebitrouter optimize setupand keeps exact argv for the undiscoverable case.Blocked on
Updated after bitrouter/bitrouter#777, #779, and #788 merged. The naming question this PR was originally challenged on is resolved in this PR's favour — see below.
Resolved
It exists as of feat: publish bitrouter/auto as the router slug bitrouter#788.bitrouter/autodoes not exist yet. Zero occurrences inbitrouter/bitrouter.bitrouter/is now a namespace BitRouter resolves itself, reserved end to end: Stage 0 claims the prefix before any provider lookup, anddist-helper registry validaterejects any catalog or provider model id underneath.Note that #779 briefly settled this the other way — it shipped
@autoand stated "bitrouter/autois not introduced as an alias", explicitly correcting this PR. #788 reversed that on the adoption argument this PR was making all along:vendor/autois the convention the ecosystem already uses, so a config pointing at some other.../automodel needs one segment changed rather than a new syntax learned. No page change is needed here — the spelling on this branch was right.Merged, and its UX revision landed in #779.bitrouter optimizeis unmerged — feat(optimize): add agentic workflow loop bitrouter#777.Still open
bitrouter/autois a local resolution, and this page is hosted. This is now the central blocker and it is a genuinely new one. #788 implements the slug in the local daemon's Stage-0 resolver, against a locally-boundpresets.autoand a signedpolicy-lock.yaml. Every code sample on this page sendsmodel: "bitrouter/auto"tohttps://api.bitrouter.ai/v1with abrk_key — a different service, which does not implement it. The reserved-namespace rule also meansbitrouter/autocan never arrive via the registry catalog the way every other id on the supported-models page does; if Cloud serves it, it has to be a Cloud-side routing feature. Needs a decision from whoever owns the cloud registry.bitrouter/autodoes not work on a fresh install. #788 deliberately shipped the spelling without a default policy: with no bound policy the request returns a400namingbitrouter optimize setup, rather than falling back to a default route. This page's "change three strings" promise assumes paste-and-go. Tracked for team decision in feat: decide whether bitrouter/auto should work on a fresh install bitrouter#787 — that issue exists precisely because this page's arc depends on the answer.npx @bitrouter/agentis not on npm. Confirmed still 404 as of this update. bitrouter-agent states it is in development.Publishing must feed back into
bitrouter/auto. True for the local daemon after #788. Not true for the hosted endpoint, which is the one this page tells readers to call — same dependency as (3).Known gaps
reviewoutput is described, not shown. Showing a real captured block would be the strongest three lines on the page; I did not invent a terminal format. #779's merge-readiness gates include capturing verified terminal output from a clean-host walkthrough — that capture is the thing to paste here.Closed by guided discovery in #779; the page now leads with bareoptimize setupstill needs a workflow command.bitrouter optimize setup.bitrouter skills addsurvives in the CLI reference atcontent/docs/(guide)/usage/cli.mdx. That page is generated from.cli-snapshot.jsonand the snapshot still contains the command — it only disappears afterpnpm snapshot:cliagainst a binary that has dropped it.bitrouter optimize(worktree baseline/candidate with an ACP judge) andnpx @bitrouter/agent optimize(readsbitrouter.db, proposes a tighter policy). The quickstart references both. Worth renaming one.components/landing/zed/hero-quickstart.tsxsaysbitrouter run claude-code;runis not in the CLI snapshot — the command isbitrouter launch. The docs usebitrouter launch claude. Not fixed here.Follow-ups not in this PR
policy.mode: frozen|adaptivereplacedwriteback,policy lock/unlockwere removed upstream, andkey_strategy: legacy_fingerprintis now rejected in favour ofagent_trace/v2|<state>|<risk>. #788'sskills/bitrouter/references/adaptive-routing.mdis a usable source for the reserved-namespace and error semantics.content/docs/(guide)/usage/configuration.mdxstill documentswriteback: locked|evolve.Verification
pnpm lint:docspasses (49 docs, 7 sections)pnpm generate:clire-run after editingcli-overlays/🤖 Generated with Claude Code