Sharpen copy for discoverability (Persona B) + fix crate-level docs#48
Merged
Conversation
Optimize the crates.io / docs.rs / README copy for developers who want to
get structured data out of an LLM but don't already know Instructor/Pydantic.
They search the problem in plain words ("structured output", "json schema",
"typed data from llm"), not the solution-by-analogy.
- Cargo.toml: lead the description with the capability in plain search terms
("Get structured, validated data out of LLMs as native Rust structs and
enums") and demote the Pydantic/Instructor analogy to the last sentence.
Swap the low-value `instructor` keyword (the crate name already matches it,
~zero search traffic) for `json-schema`, a high-intent query where the crate
was invisible. Recategorize web-programming -> science (crates.io's home for
ML/AI crates; no AI-specific slug exists).
- README: rewrite the lede in plain Persona-B vocabulary; replace "unstructured
prose" with plain text; cut the dated "reasoning-model support (GPT-5.5,
Claude 4.6, Gemini 3.1)" framing (every model reasons now).
- src/lib.rs: convert the crate overview from `///` (which attached it to the
private `mod backend` and so never rendered on docs.rs) to `//!`, so it
becomes the docs.rs front page; refresh the prose and fix the stale
"OpenAI and Anthropic clients" line to list all four providers.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Optimizes the crates.io / docs.rs / README copy for the developer who wants to get structured data out of an LLM but has never used Instructor or Pydantic. That person searches the problem in plain words —
structured output,json schema llm,typed data from llm,extract structured data— not the solution-by-analogy.Today the crate ranks well only for queries that already assume the Instructor/Pydantic mental model, and is invisible on the high-volume generic phrasings. The biggest controllable levers on crates.io are the description and keywords (its search indexes
name > keywords > description > readme; downloads don't affect ranking), so this PR points those at the plain-language vocabulary.Changes
Cargo.toml(the crates.io surface)instructor(the crate name already matches it; ~zero search traffic) and addedjson-schema— a high-intent query where the crate was previously not in the top 20.web-programming→science(crates.io's home for ML/AI crates; there's no AI-specific slug).README.mdsrc/lib.rs(docs.rs front page) — also a real bug fix///(outer doc), which attached it to the privatemod backendthat follows it, so it never rendered as the docs.rs front page (the live page only shows the Cargo.toml description). Converted the block to//!(inner doc) so it actually becomes the front page.cargo checkpasses. No code or behavior changes — copy, metadata, and doc-comment style only.Not in this PR (suggested follow-ups)
llmcrate,instructor-rs,aisdk, BAML) and a short "structured outputs from LLMs in Rust" walkthrough post are the highest-ceiling discoverability moves — happy to draft.🤖 Generated with Claude Code