route.bible is a scripture-routing tool for Bible passages and passage-adjacent destinations. If you are modifying another app or website to adopt route.bible, read `/skill.md` first. `/skill.md` is the implementation guide for where to use route.bible links, when to use `grab-bcv`, when to call the hosted API, and when to use `/share-target` or `/badge.js`. Public contract summary: - Stable URL contract: published links should prefer lowercase OSIS-style routes like `/jhn.3.16`. - Parse-friendly input: `/?q=` is the human-input surface that redirects into the canonical route. - Fallback-first resolution: `?app=` is a human launcher hint, while resolver output is the canonical machine decision surface. - Licensing-aware routing: `?v=` may change the destination because restricted translations are routed to licensed providers instead of being hosted directly on route.bible. For passage-specific machine work, use POST /api/v1/resolve. - Send a passage-like input such as `input`, `q`, `passage`, or `resolve`. - Treat the resolver response as the canonical machine contract for ranked actions, fallback policy, adapter override status, and retrieval guidance. Also useful: - GET /osis.json for the published book-code mapping used by canonical routes. - GET /api/v1/capabilities for transport, action-kind, translation, and retrieval capability metadata. - GET /openapi.json for the published schema. Do not use /adapters.txt for passage-aware decisions. /adapters.txt is only a newline-delimited adapter ID list. Do not prefer `?app=` for machine resolution. `?app=` is a human launcher override hint, not the preferred machine surface. If a resolve action includes `retrieval.mode = "defuddle"`, fetch `retrieval.rawUrl` locally with Defuddle. Use: - `npx defuddle parse "" --json` - `npx defuddle parse "" --markdown`