Skip to content

Absorb the writing-style rules; one word for a survey - #189

Merged
tobert merged 5 commits into
mainfrom
style-guide
Sep 10, 2026
Merged

tobert merged 5 commits into
mainfrom
style-guide

Conversation

@tobert

@tobert tobert commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Two things, and the first explains the second.

The style pointer has been dead since 2026-08-18

AGENTS.md said: "kaibo adopts kaish's docs/style.md — that guide names kaibo as an adopter… Read it before you write help text or operator docs."

Both halves are false. kaish deleted that file in e22b0be3 ("rearrange files and remove docs/style.md") and folded its content into its own AGENTS.md § "Writing style", which no longer mentions kaibo. So for three weeks every reader told to go read it — a fresh session, a subagent with no kaish checkout, a person — has found nothing. Amy asked whether we'd ever absorbed it, after noticing #183's config prose read "very Claude-compact". This is very plausibly why.

Absorbed into AGENTS.md directly rather than a new docs/style.md (Amy's call): one file, always loaded, nothing to fetch. It costs resident context and the trade is deliberate.

Only what kaibo didn't already have. "Fast and informative failures" is covered by our error-strings paragraph, "Write for model context" by the three-audiences block, and kaish's "Published builtin text" is clap/ParamSchema-specific — we have our own published/internal rule. New:

  • Vocabulary choices — small vocabulary, plain words over figures of speech, American spelling. Framed on the reason that actually binds here: our synths are mostly not English-first.
  • One term, one meaning — including the rule for a term that differs between published and internal text.
  • Provide specific values — the exit code, the size, the default, the condition.
  • The example is the rule — show the correct example first; make it carry the rule alone.
  • A Terms table, seeded with twelve kaibo terms that carry a guarantee: backend, cast, slot, arm, lane, phase, survey, sweep, dossier, family, allowed set, published. It grows when a collision appears in real prose, not in advance — shaped to receive later analysis rather than to be complete now.

Two deduplications, because one term, one meaning applies to the guide itself: the family ruling restated what the table now defines, and the three-audiences block argued the non-English-first case in full — it now points at Vocabulary choices, where that argument lives once.

sweep and survey were two words for one thing

explore's tool description and CLI help say survey. The operator docs said sweep, 26 times, never defined. A calling agent reads the first and an operator reads the second, so the split was invisible from either seat.

survey wins in published text because it is already resident — it is in the front-door explore description every calling agent pays for each session. sweep stays the internal name in code (~450 uses, its own module). Converted 26 sites across README.md, config.example.toml, config.md, casts.md, rate-limits.md, sandbox-probes.md.

The verb sense is deliberately untouched, which is why this was done by hand rather than with sed. "Omit backend to sweep every configured backend" is ordinary English for iterating over all of something, not kaibo's noun — three sites keep it.

Not converted: ~25 occurrences in tool descriptions and clap doc comments in server.rs/cli.rs. They sit under the 2048-character resident budget and are the text the coming prompt work will most likely rewrite, so renaming them now would collide for no benefit. The Terms table states that the retirement is in progress rather than implying it's finished.

Suite: 1341 passed, 0 failed.

Overlaps #183 in docs/config.example.toml and docs/config.md — both sides now say survey, so the conflict is trivial whichever merges first.

🤖 Generated with Claude Code

tobert and others added 5 commits September 10, 2026 09:26
…26-08-18

AGENTS.md said "kaibo adopts kaish's `docs/style.md` — that guide names kaibo as
an adopter". Both halves have been false since kaish commit e22b0be3 (2026-08-18,
"rearrange files and remove docs/style.md"): the file is gone, its content folded
into kaish's own AGENTS.md, and that section no longer mentions kaibo. So for
three weeks our house rules have told every reader — a fresh session, a subagent
with no kaish checkout, a person — to go read a file that does not exist, and
"read it before you write help text" has resolved to nothing.

Amy asked whether we ever absorbed it, after noticing #183's config prose read
"very Claude-compact". The dangling pointer is the likeliest reason it did.

Absorbed into AGENTS.md directly rather than into a new docs/style.md, Amy's call:
one file, always loaded, nothing to fetch. It costs resident context, and the
trade is deliberate — her framing was that prompts should be accessible to all
organic and binary readers when we can.

Only the parts kaibo did not already have. "Fast and informative failures" is
already covered by the error-strings paragraph, "Write for model context" by the
three-audiences block, and kaish's "Published builtin text" is clap/ParamSchema
specific — we have our own published/internal rule. What is new:

- Vocabulary choices — small vocabulary, plain words over figures of speech,
  American spelling. Framed on the reason that actually applies to us: our synths
  are mostly not English-first.
- One term, one meaning — including the rule for a term that differs between
  published and internal text, which is how `survey`/`sweep` gets recorded rather
  than rediscovered.
- Provide specific values — the exit code, the size, the default, the condition.
- The example is the rule — show the correct example first, make it carry the rule.
- A Terms table, seeded with the twelve kaibo terms that carry a guarantee:
  backend, cast, slot, arm, lane, phase, survey, sweep, dossier, family,
  allowed set, published. It grows when a collision appears in real prose, not in
  advance — deliberately shaped to receive later analysis rather than to be
  complete now.

Two deduplications, because one term, one meaning applies to this guide itself.
The `family` ruling restated what the Terms table now defines, so the ruling is
gone and the table carries it. And the three-audiences block argued the
non-English-first case in full; it now points at Vocabulary choices, where that
argument lives once.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
kaibo published two words for the same thing. `explore`'s tool description and
CLI help say **survey** ("a cited survey report", "what to survey or map"); the
operator docs said **sweep**, 26 times, and never defined it. A calling agent
reads the first and an operator reads the second, so the split was invisible from
either seat. Amy found it from the config side — "sweep is not one of our terms"
— which is not quite right (it is ours, ~450 uses in code, its own module) but
points straight at the real defect.

`survey` wins in published text because it is already resident: it is in the
front-door `explore` description that every calling agent pays for each session.
`sweep` stays the internal name in code, comments, and module names. Amy's call.

Converted every occurrence of the noun sense across README.md and docs/ — 26
sites in config.example.toml, config.md, README.md, casts.md, rate-limits.md,
and sandbox-probes.md.

The verb sense is left alone, and that distinction is the point of doing this by
hand. "Omit `backend` to sweep every configured backend" is ordinary English for
iterating over all of something, not kaibo's noun; three sites in `job_list`,
`list_models`, and the `list_models` description keep it.

NOT converted: ~25 occurrences in tool descriptions and clap doc comments in
`server.rs` and `cli.rs`. Those live under the 2048-character resident budget and
are the text the coming prompt work is most likely to rewrite, so renaming them
now would collide for no benefit. The Terms table says so in as many words rather
than implying the job is finished.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
# Conflicts:
#	docs/config.example.toml
#	docs/config.md
The terms table said `docs/` was converted and the tool descriptions and CLI
help were not. The preambles are published prose too — a model reads one every
call — and they carry 39 uses of `sweep`. #190 restyled every one of them and
kept the word, which is the right call for an unfinished retirement, but it
leaves the inventory naming two of the three unconverted surfaces.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tobert
tobert merged commit 6c3e5a1 into main Sep 10, 2026
1 check 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