Skip to content

docs: rework README into per-feature sections with runnable examples - #96

Merged
deblasis merged 2 commits into
mainfrom
docs/rework-readme
Aug 23, 2026
Merged

docs: rework README into per-feature sections with runnable examples#96
deblasis merged 2 commits into
mainfrom
docs/rework-readme

Conversation

@deblasis

Copy link
Copy Markdown
Contributor

Why

The README was feature-dense but section-light: "Transports & primitives" was one
bullet blob, Profiles (shipped in #68/#69) had a blurb instead of a section, and
"Status & roadmap" was frozen at v0.3.0 while we ship v0.52.0.

What

Full restructure with a TOC and a dedicated section per feature:

  • The manifest — schema tour: port vs subdomain networking, adapter sources
    (embedded: / local / git:), per-service config, body caps.
  • Rules — complete match/when/respond walkthrough (globs, headers,
    chance/expr, latency, timeout behavior, inline|file|template bodies, faker).
  • Profiles — the full story for the first time: the three sources (per-service
    rule bundles in stunt.yaml, adapter-authored profile_active() modes, global
    presets), a driving section (CLI + up --profile + dashboard panel), and the
    semantics people get bitten by (pre-dispatch precedence, WS/GraphQL not
    intercepted, runtime-only, determinism + state-backed counter caveat).
  • Transports / State & primitives / Webhooks / Networking & TLS /
    Observability & lifecycle / Determinism
    — each with runnable snippets.
  • Status rewritten to current facts, no version-pinned narrative.

Verification

  • The profiles example block was booted verbatim: stunt plan OK → healthy
    200 → activate launch-day → 4 of 12 curls 429 under chance: 30 → clean
    deactivate. The transcript in the docs is the real CLI output.
  • Rules quickstart blocks pass stunt plan.
  • Every CLI snippet checked against --help (caught two fabrications on the way:
    snapshot restoresnapshot load, state <svc>state collections <svc>).
  • No new hand-maintained numbers introduced; the just readme-counts gate anchor
    line is intact and templating still passes. AGENTS.md drops its drifted
    "91 adapters" count and binary size instead of renumbering them.

The README was feature-dense but section-light: Transports & primitives
was one bullet blob, Profiles had a blurb instead of a section, and
Status & roadmap was frozen at v0.3.0.

New structure: TOC + a section per feature — the manifest (schema tour),
rules (full match/when/respond walkthrough), PROFILES (the three sources:
per-service bundles, adapter-authored profile_active() modes, global
presets — semantics: pre-dispatch precedence, runtime-only, determinism),
adapters, transports, state & primitives (+ lifecycle commands), webhooks,
networking & TLS, observability & lifecycle, determinism, safety.

Every example is verified runnable: the profiles block was booted
verbatim (activate launch-day -> 4/12 curls 429 under chance:30,
deactivate clean) and the rules quickstart blocks pass stunt plan.
CLI snippets checked against --help (snapshot load not restore; state is
a subcommand group). Status section rewritten to current facts with no
version-pinned narrative; AGENTS.md loses its stale '91 adapters' count
and binary size (both had drifted). No new hand-maintained numbers
introduced; the readme-counts gate anchor is intact.
Accuracy review of #96 found four inherited drifts, all fixed:
- the dashboard request inspector captures HTTP only (WS upgrades bypass
  the recorder; gRPC serves off its own listener) — README + dashboard.md
  no longer claim gRPC/WebSocket rows
- webhook delivery retries, but attempts are not surfaced anywhere —
  dropped the 'dashboard shows every attempt' clause
- '--json' scoped to the read commands that actually have it
- network.mode is required, not defaulted — wording no longer implies
  you can omit it

Two adjacent drifts the review surfaced: llm.go's in-binary reference
said 'all 95 embedded' (it's 98 — number dropped so it can't drift
again), and AGENTS.md's brew line lacked --cask (goreleaser ships a
Cask; the plain form fails).
@deblasis
deblasis merged commit 9602c2e into main Aug 23, 2026
2 checks passed
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