Skip to content

docs: rewrite READMEs as storytelling registry landing pages#94

Closed
brentrager wants to merge 1 commit into
mainfrom
th-readmes
Closed

docs: rewrite READMEs as storytelling registry landing pages#94
brentrager wants to merge 1 commit into
mainfrom
th-readmes

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Problem

The READMEs read as feature lists that under-sold the engine, marked the TypeScript/Python/.NET ports as "Planned" (they're at parity now), carried inconsistent test-count claims, and never mentioned the headline permission system + deny-policy that just landed across all five languages.

What changed

Every README — the root and each per-language registry landing page (crates.io, npm, PyPI, pkg.go.dev, nuget.org) — was rewritten to tell a story:

hook → one engine in five languages → observe→think→act → the permission gate + deny-policy that makes an agent safe to point at production → build → get started.

  • Root README: new opening hook + tagline, a dedicated "Permissions & deny-policy — draw lines the agent can't cross" section (the prod-AWS / DB-writer safety story) with a Rust example, a refreshed polyglot table (language → package → registry, no more "Planned"), and normalized test-count language.
  • Per-language pages (Rust, TypeScript, Python, Go, C#/.NET): each opens with a hook, leads with an agent + tool quickstart in that language's idiom (the mock scripted to call the tool, then answer), adds a Permissions + deny-policy feature bullet, and a safety-story section with a language-native deny-policy example — with_deny_policy (Rust), denyPolicy/permissionMode options (TS/Py), WithDenyPolicy (Go/C#).

Honesty / accuracy

Every API snippet was checked against the real source (type + method names: AutoMode, DenyPolicy::from_toml/FromToml/from_toml, with_predicate/WithPredicate, DenyPredicate, PermissionHook, mock pushToolCall/push_tool_call, tool shapes per language). Only shipped features are described. No product/vendor names.

Registry wiring

Already present — no manifest edits needed: Rust readme = "README.md", pyproject readme = "README.md", csproj <PackageReadmeFile> + packed ..\README.md; npm ships README.md by default regardless of files.

Docs only — no code changes. Changeset added (@smooai/smooth-operator-core patch).

🤖 Generated with Claude Code

Elevate every README (root + Rust/TS/Python/Go/.NET package pages) from a
feature list into a narrative: hook → one engine in five languages →
observe→think→act → the permission gate + deny-policy that makes an agent safe
to point at production → build → get started.

- Each package page leads with an agent+tool quickstart in its own idiom (mock
  scripted to call the tool, then answer), verified against the real API.
- Adds the headline permission system + deny-policy (AutoMode, circuit-breakers,
  declarative TOML rules + semantic predicates) to every features list and gives
  it a dedicated safety-story section with a language-native example
  (with_deny_policy in Rust, denyPolicy/permissionMode in TS/Py, WithDenyPolicy
  in Go/C#).
- Refreshes the root polyglot table (language → package → registry), fixes the
  stale "Planned" statuses (TS/Python/.NET are at parity now) and inconsistent
  test-count claims.

Docs only — no code changes. Registry readme-pointers already wired (Cargo
readme, pyproject readme, csproj PackageReadmeFile+packed README; npm ships
README by default).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a702c5f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@smooai/smooth-operator-core Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager

Copy link
Copy Markdown
Contributor Author

Folded into #93 so the first lockstep release is a single 1.7.0 (avoids a stray second release).

@brentrager brentrager closed this Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant