Skip to content

Commit ae9f779

Browse files
committed
docs: typography hygiene + 1 in-body H1 removal across 6 pages
Replaced 84 typography characters (curly quotes, apostrophes, em/en dashes, non-breaking hyphens) with ASCII equivalents per docs/CLAUDE.md heading and content hygiene rules. - docs/gateway/tools-invoke-http-api.md: 14 chars; removed the duplicate '# Tools Invoke (HTTP)' H1 (Mintlify renders title from frontmatter; the in-body H1 with parens produced a brittle anchor). - docs/tools/browser-control.md: 14 chars - docs/security/formal-verification.md: 14 chars - docs/gateway/configuration-reference.md: 14 chars - docs/concepts/agent.md: 14 chars - docs/channels/qa-channel.md: 14 chars
1 parent d71c119 commit ae9f779

6 files changed

Lines changed: 68 additions & 70 deletions

File tree

docs/channels/qa-channel.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ read_when:
77
- You are iterating on end-to-end QA automation
88
---
99

10-
`qa-channel` is a bundled synthetic message transport for automated OpenClaw QA. It is not a production channel it exists to exercise the same channel plugin boundary used by real transports while keeping state deterministic and fully inspectable.
10+
`qa-channel` is a bundled synthetic message transport for automated OpenClaw QA. It is not a production channel - it exists to exercise the same channel plugin boundary used by real transports while keeping state deterministic and fully inspectable.
1111

1212
## What it does
1313

@@ -38,20 +38,20 @@ read_when:
3838

3939
Account keys:
4040

41-
- `enabled` master toggle for this account.
42-
- `name` optional display label.
43-
- `baseUrl` synthetic bus URL.
44-
- `botUserId` Matrix-style bot user id used in target grammar.
45-
- `botDisplayName` display name for outbound messages.
46-
- `pollTimeoutMs` long-poll wait window. Integer between 100 and 30000.
47-
- `allowFrom` sender allowlist (user ids or `"*"`).
48-
- `defaultTo` fallback target when none is supplied.
49-
- `actions.messages` / `actions.reactions` / `actions.search` / `actions.threads` per-action tool gating.
41+
- `enabled` - master toggle for this account.
42+
- `name` - optional display label.
43+
- `baseUrl` - synthetic bus URL.
44+
- `botUserId` - Matrix-style bot user id used in target grammar.
45+
- `botDisplayName` - display name for outbound messages.
46+
- `pollTimeoutMs` - long-poll wait window. Integer between 100 and 30000.
47+
- `allowFrom` - sender allowlist (user ids or `"*"`).
48+
- `defaultTo` - fallback target when none is supplied.
49+
- `actions.messages` / `actions.reactions` / `actions.search` / `actions.threads` - per-action tool gating.
5050

5151
Multi-account keys at the top level:
5252

53-
- `accounts` record of named per-account overrides keyed by account id.
54-
- `defaultAccount` preferred account id when multiple are configured.
53+
- `accounts` - record of named per-account overrides keyed by account id.
54+
- `defaultAccount` - preferred account id when multiple are configured.
5555

5656
## Runners
5757

@@ -81,8 +81,8 @@ Builds the QA site, starts the Docker-backed gateway + QA Lab stack, and prints
8181

8282
## Related
8383

84-
- [QA overview](/concepts/qa-e2e-automation) overall stack, transport adapters, scenario authoring
85-
- [Matrix QA](/concepts/qa-matrix) example live-transport runner that drives a real channel
84+
- [QA overview](/concepts/qa-e2e-automation) - overall stack, transport adapters, scenario authoring
85+
- [Matrix QA](/concepts/qa-matrix) - example live-transport runner that drives a real channel
8686
- [Pairing](/channels/pairing)
8787
- [Groups](/channels/groups)
8888
- [Channels overview](/channels)

docs/concepts/agent.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ read_when:
55
title: "Agent runtime"
66
---
77

8-
OpenClaw runs a **single embedded agent runtime** one agent process per
8+
OpenClaw runs a **single embedded agent runtime** - one agent process per
99
Gateway, with its own workspace, bootstrap files, and session store. This page
1010
covers that runtime contract: what the workspace must contain, which files get
1111
injected, and how sessions bootstrap against it.
1212

1313
## Workspace (required)
1414

15-
OpenClaw uses a single agent workspace directory (`agents.defaults.workspace`) as the agents **only** working directory (`cwd`) for tools and context.
15+
OpenClaw uses a single agent workspace directory (`agents.defaults.workspace`) as the agent's **only** working directory (`cwd`) for tools and context.
1616

1717
Recommended: use `openclaw setup` to create `~/.openclaw/openclaw.json` if missing and initialize the workspace files.
1818

@@ -26,18 +26,18 @@ per-session workspaces under `agents.defaults.sandbox.workspaceRoot` (see
2626

2727
Inside `agents.defaults.workspace`, OpenClaw expects these user-editable files:
2828

29-
- `AGENTS.md` operating instructions + memory
30-
- `SOUL.md` persona, boundaries, tone
31-
- `TOOLS.md` user-maintained tool notes (e.g. `imsg`, `sag`, conventions)
32-
- `BOOTSTRAP.md` one-time first-run ritual (deleted after completion)
33-
- `IDENTITY.md` agent name/vibe/emoji
34-
- `USER.md` user profile + preferred address
29+
- `AGENTS.md` - operating instructions + "memory"
30+
- `SOUL.md` - persona, boundaries, tone
31+
- `TOOLS.md` - user-maintained tool notes (e.g. `imsg`, `sag`, conventions)
32+
- `BOOTSTRAP.md` - one-time first-run ritual (deleted after completion)
33+
- `IDENTITY.md` - agent name/vibe/emoji
34+
- `USER.md` - user profile + preferred address
3535

3636
On the first turn of a new session, OpenClaw injects the contents of these files into the system prompt's Project Context.
3737

3838
Blank files are skipped. Large files are trimmed and truncated with a marker so prompts stay lean (read the file for full content).
3939

40-
If a file is missing, OpenClaw injects a single missing file marker line (and `openclaw setup` will create a safe default template).
40+
If a file is missing, OpenClaw injects a single "missing file" marker line (and `openclaw setup` will create a safe default template).
4141

4242
`BOOTSTRAP.md` is only created for a **brand new workspace** (no other bootstrap files present). While it is pending, OpenClaw keeps it in Project Context and adds system-prompt bootstrap guidance for the initial ritual instead of copying it into the user message. If you delete it after completing the ritual, it should not be recreated on later restarts.
4343

@@ -51,7 +51,7 @@ To disable bootstrap file creation entirely (for pre-seeded workspaces), set:
5151

5252
Core tools (read/exec/edit/write and related system tools) are always available,
5353
subject to tool policy. `apply_patch` is optional and gated by
54-
`tools.exec.applyPatch`. `TOOLS.md` does **not** control which tools exist; its
54+
`tools.exec.applyPatch`. `TOOLS.md` does **not** control which tools exist; it's
5555
guidance for how _you_ want them used.
5656

5757
## Skills
@@ -100,7 +100,7 @@ Block streaming sends completed assistant blocks as soon as they finish; it is
100100
**off by default** (`agents.defaults.blockStreamingDefault: "off"`).
101101
Tune the boundary via `agents.defaults.blockStreamingBreak` (`text_end` vs `message_end`; defaults to text_end).
102102
Control soft block chunking with `agents.defaults.blockStreamingChunk` (defaults to
103-
8001200 chars; prefers paragraph breaks, then newlines; sentences last).
103+
800-1200 chars; prefers paragraph breaks, then newlines; sentences last).
104104
Coalesce streamed chunks with `agents.defaults.blockStreamingCoalesce` to reduce
105105
single-line spam (idle-based merging before send). Non-Telegram channels require
106106
explicit `*.blockStreaming: true` to enable block replies.

docs/gateway/configuration-reference.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ Dedicated deep references:
2727
- [Slash commands](/tools/slash-commands) for the current built-in + bundled command catalog
2828
- owning channel/plugin pages for channel-specific command surfaces
2929

30-
Config format is **JSON5** (comments + trailing commas allowed). All fields are optional OpenClaw uses safe defaults when omitted.
30+
Config format is **JSON5** (comments + trailing commas allowed). All fields are optional - OpenClaw uses safe defaults when omitted.
3131

3232
---
3333

3434
## Channels
3535

36-
Per-channel config keys moved to a dedicated page see
37-
[Configuration channels](/gateway/config-channels) for `channels.*`,
36+
Per-channel config keys moved to a dedicated page - see
37+
[Configuration - channels](/gateway/config-channels) for `channels.*`,
3838
including Slack, Discord, Telegram, WhatsApp, Matrix, iMessage, and other
3939
bundled channels (auth, access control, multi-account, mention gating).
4040

4141
## Agent defaults, multi-agent, sessions, and messages
4242

43-
Moved to a dedicated page see
44-
[Configuration agents](/gateway/config-agents) for:
43+
Moved to a dedicated page - see
44+
[Configuration - agents](/gateway/config-agents) for:
4545

4646
- `agents.defaults.*` (workspace, model, thinking, heartbeat, memory, media, skills, sandbox)
4747
- `multiAgent.*` (multi-agent routing and bindings)
@@ -54,13 +54,13 @@ Moved to a dedicated page — see
5454
## Tools and custom providers
5555

5656
Tool policy, experimental toggles, provider-backed tool config, and custom
57-
provider / base-URL setup moved to a dedicated page see
58-
[Configuration tools and custom providers](/gateway/config-tools).
57+
provider / base-URL setup moved to a dedicated page - see
58+
[Configuration - tools and custom providers](/gateway/config-tools).
5959

6060
## Models
6161

6262
Provider definitions, model allowlists, and custom provider setup live in
63-
[Configuration tools and custom providers](/gateway/config-tools#custom-providers-and-base-urls).
63+
[Configuration - tools and custom providers](/gateway/config-tools#custom-providers-and-base-urls).
6464
The `models` root also owns global model-catalog behavior.
6565

6666
```json5
@@ -968,7 +968,7 @@ Notes:
968968
- `otel.headers`: extra HTTP/gRPC metadata headers sent with OTel export requests.
969969
- `otel.serviceName`: service name for resource attributes.
970970
- `otel.traces` / `otel.metrics` / `otel.logs`: enable trace, metrics, or log export.
971-
- `otel.sampleRate`: trace sampling rate `0``1`.
971+
- `otel.sampleRate`: trace sampling rate `0`-`1`.
972972
- `otel.flushIntervalMs`: periodic telemetry flush interval in ms.
973973
- `otel.captureContent`: opt-in raw content capture for OTEL span attributes. Defaults to off. Boolean `true` captures non-system message/tool content; the object form lets you enable `inputMessages`, `outputMessages`, `toolInputs`, `toolOutputs`, and `systemPrompt` explicitly.
974974
- `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental`: environment toggle for latest experimental GenAI span provider attributes. By default spans keep the legacy `gen_ai.system` attribute for compatibility; GenAI metrics use bounded semantic attributes.
@@ -998,7 +998,7 @@ Notes:
998998
}
999999
```
10001000

1001-
- `channel`: release channel for npm/git installs `"stable"`, `"beta"`, or `"dev"`.
1001+
- `channel`: release channel for npm/git installs - `"stable"`, `"beta"`, or `"dev"`.
10021002
- `checkOnStart`: check for npm updates when the gateway starts (default: `true`).
10031003
- `auto.enabled`: enable background auto-update for package installs (default: `false`).
10041004
- `auto.stableDelayHours`: minimum delay in hours before stable-channel auto-apply (default: `6`; max: `168`).
@@ -1162,9 +1162,9 @@ Current builds no longer include the TCP bridge. Nodes connect over the Gateway
11621162
}
11631163
```
11641164

1165-
- `maxAttempts`: maximum retries for one-shot jobs on transient errors (default: `3`; range: `0``10`).
1166-
- `backoffMs`: array of backoff delays in ms for each retry attempt (default: `[30000, 60000, 300000]`; 110 entries).
1167-
- `retryOn`: error types that trigger retries `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Omit to retry all transient types.
1165+
- `maxAttempts`: maximum retries for one-shot jobs on transient errors (default: `3`; range: `0`-`10`).
1166+
- `backoffMs`: array of backoff delays in ms for each retry attempt (default: `[30000, 60000, 300000]`; 1-10 entries).
1167+
- `retryOn`: error types that trigger retries - `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Omit to retry all transient types.
11681168

11691169
Applies only to one-shot cron jobs. Recurring jobs use separate failure handling.
11701170

@@ -1189,7 +1189,7 @@ Applies only to one-shot cron jobs. Recurring jobs use separate failure handling
11891189
- `after`: consecutive failures before an alert fires (positive integer, min: `1`).
11901190
- `cooldownMs`: minimum milliseconds between repeated alerts for the same job (non-negative integer).
11911191
- `includeSkipped`: count consecutive skipped runs toward the alert threshold (default: `false`). Skipped runs are tracked separately and do not affect execution-error backoff.
1192-
- `mode`: delivery mode `"announce"` sends via a channel message; `"webhook"` posts to the configured webhook.
1192+
- `mode`: delivery mode - `"announce"` sends via a channel message; `"webhook"` posts to the configured webhook.
11931193
- `accountId`: optional account or channel id to scope alert delivery.
11941194

11951195
### `cron.failureDestination`

docs/gateway/tools-invoke-http-api.md

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ read_when:
66
title: "Tools invoke API"
77
---
88

9-
# Tools Invoke (HTTP)
10-
11-
OpenClaw’s Gateway exposes a simple HTTP endpoint for invoking a single tool directly. It is always enabled and uses Gateway auth plus tool policy. Like the OpenAI-compatible `/v1/*` surface, shared-secret bearer auth is treated as trusted operator access for the whole gateway.
9+
OpenClaw's Gateway exposes a simple HTTP endpoint for invoking a single tool directly. It is always enabled and uses Gateway auth plus tool policy. Like the OpenAI-compatible `/v1/*` surface, shared-secret bearer auth is treated as trusted operator access for the whole gateway.
1210

1311
- `POST /tools/invoke`
1412
- Same port as the Gateway (WS + HTTP multiplex): `http://<gateway-host>:<port>/tools/invoke`
@@ -103,19 +101,19 @@ Important boundary notes:
103101

104102
Gateway HTTP also applies a hard deny list by default (even if session policy allows the tool):
105103

106-
- `exec` direct command execution (RCE surface)
107-
- `spawn` arbitrary child process creation (RCE surface)
108-
- `shell` shell command execution (RCE surface)
109-
- `fs_write` arbitrary file mutation on the host
110-
- `fs_delete` arbitrary file deletion on the host
111-
- `fs_move` arbitrary file move/rename on the host
112-
- `apply_patch` patch application can rewrite arbitrary files
113-
- `sessions_spawn` session orchestration; spawning agents remotely is RCE
114-
- `sessions_send` cross-session message injection
115-
- `cron` persistent automation control plane
116-
- `gateway` gateway control plane; prevents reconfiguration via HTTP
117-
- `nodes` node command relay can reach system.run on paired hosts
118-
- `whatsapp_login` interactive setup requiring terminal QR scan; hangs on HTTP
104+
- `exec` - direct command execution (RCE surface)
105+
- `spawn` - arbitrary child process creation (RCE surface)
106+
- `shell` - shell command execution (RCE surface)
107+
- `fs_write` - arbitrary file mutation on the host
108+
- `fs_delete` - arbitrary file deletion on the host
109+
- `fs_move` - arbitrary file move/rename on the host
110+
- `apply_patch` - patch application can rewrite arbitrary files
111+
- `sessions_spawn` - session orchestration; spawning agents remotely is RCE
112+
- `sessions_send` - cross-session message injection
113+
- `cron` - persistent automation control plane
114+
- `gateway` - gateway control plane; prevents reconfiguration via HTTP
115+
- `nodes` - node command relay can reach system.run on paired hosts
116+
- `whatsapp_login` - interactive setup requiring terminal QR scan; hangs on HTTP
119117

120118
You can customize this deny list via `gateway.tools`:
121119

docs/security/formal-verification.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
summary: Machine-checked security models for OpenClaws highest-risk paths.
2+
summary: Machine-checked security models for OpenClaw's highest-risk paths.
33
title: Formal verification (security models)
44
read_when:
55
- Reviewing formal security model guarantees or limits
66
- Reproducing or updating TLA+/TLC security model checks
77
permalink: /security/formal-verification/
88
---
99

10-
This page tracks OpenClaws **formal security models** (TLA+/TLC today; more as needed).
10+
This page tracks OpenClaw's **formal security models** (TLA+/TLC today; more as needed).
1111

1212
> Note: some older links may refer to the previous project name.
1313
@@ -20,7 +20,7 @@ misconfiguration safety), under explicit assumptions.
2020
- Each claim has a runnable model-check over a finite state space.
2121
- Many claims have a paired **negative model** that produces a counterexample trace for a realistic bug class.
2222

23-
**What this is not (yet):** a proof that OpenClaw is secure in all respects or that the full TypeScript implementation is correct.
23+
**What this is not (yet):** a proof that "OpenClaw is secure in all respects" or that the full TypeScript implementation is correct.
2424

2525
## Where the models live
2626

@@ -29,15 +29,15 @@ Models are maintained in a separate repo: [vignesh07/openclaw-formal-models](htt
2929
## Important caveats
3030

3131
- These are **models**, not the full TypeScript implementation. Drift between model and code is possible.
32-
- Results are bounded by the state space explored by TLC; green does not imply security beyond the modeled assumptions and bounds.
32+
- Results are bounded by the state space explored by TLC; "green" does not imply security beyond the modeled assumptions and bounds.
3333
- Some claims rely on explicit environmental assumptions (e.g., correct deployment, correct configuration inputs).
3434

3535
## Reproducing results
3636

3737
Today, results are reproduced by cloning the models repo locally and running TLC (see below). A future iteration could offer:
3838

3939
- CI-run models with public artifacts (counterexample traces, run logs)
40-
- a hosted run this model workflow for small, bounded checks
40+
- a hosted "run this model" workflow for small, bounded checks
4141

4242
Getting started:
4343

@@ -87,7 +87,7 @@ See also: `docs/gateway-exposure-matrix.md` in the models repo.
8787

8888
### Ingress gating (mentions + control-command bypass)
8989

90-
**Claim:** in group contexts requiring mention, an unauthorized control command cannot bypass mention gating.
90+
**Claim:** in group contexts requiring mention, an unauthorized "control command" cannot bypass mention gating.
9191

9292
- Green:
9393
- `make ingress-gating`
@@ -109,11 +109,11 @@ These are follow-on models that tighten fidelity around real-world failure modes
109109

110110
### Pairing store concurrency / idempotency
111111

112-
**Claim:** a pairing store should enforce `MaxPending` and idempotency even under interleavings (i.e., check-then-write must be atomic / locked; refresh shouldnt create duplicates).
112+
**Claim:** a pairing store should enforce `MaxPending` and idempotency even under interleavings (i.e., "check-then-write" must be atomic / locked; refresh shouldn't create duplicates).
113113

114114
What it means:
115115

116-
- Under concurrent requests, you cant exceed `MaxPending` for a channel.
116+
- Under concurrent requests, you can't exceed `MaxPending` for a channel.
117117
- Repeated requests/refreshes for the same `(channel, sender)` should not create duplicate live pending rows.
118118

119119
- Green runs:

docs/tools/browser-control.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Other runtime failures may still return `{ "error": "<message>" }` without a
7070
### Playwright requirement
7171

7272
Some features (navigate/act/AI snapshot/role snapshot, element screenshots,
73-
PDF) require Playwright. If Playwright isnt installed, those endpoints return
73+
PDF) require Playwright. If Playwright isn't installed, those endpoints return
7474
a clear 501 error.
7575

7676
What still works without Playwright:
@@ -242,12 +242,12 @@ Snapshot flags at a glance:
242242
243243
## Snapshots and refs
244244
245-
OpenClaw supports two snapshot styles:
245+
OpenClaw supports two "snapshot" styles:
246246
247247
- **AI snapshot (numeric refs)**: `openclaw browser snapshot` (default; `--format ai`)
248248
- Output: a text snapshot that includes numeric refs.
249249
- Actions: `openclaw browser click 12`, `openclaw browser type 23 "hello"`.
250-
- Internally, the ref is resolved via Playwrights `aria-ref`.
250+
- Internally, the ref is resolved via Playwright's `aria-ref`.
251251
252252
- **Role snapshot (role refs like `e12`)**: `openclaw browser snapshot --interactive` (or `--compact`, `--depth`, `--selector`, `--frame`)
253253
- Output: a role-based list/tree with `[ref=e12]` (and optional `[nth=1]`).
@@ -304,7 +304,7 @@ openclaw browser wait "#main" \
304304
305305
## Debug workflows
306306
307-
When an action fails (e.g. not visible”, “strict mode violation”, “covered):
307+
When an action fails (e.g. "not visible", "strict mode violation", "covered"):
308308
309309
1. `openclaw browser snapshot --interactive`
310310
2. Use `click <ref>` / `type <ref>` (prefer role refs in interactive mode)
@@ -334,7 +334,7 @@ Role snapshots in JSON include `refs` plus a small `stats` block (lines/chars/re
334334
335335
## State and environment knobs
336336
337-
These are useful for make the site behave like X workflows:
337+
These are useful for "make the site behave like X" workflows:
338338
339339
- Cookies: `cookies`, `cookies set`, `cookies clear`
340340
- Storage: `storage local|session get|set|clear`
@@ -374,7 +374,7 @@ Strict-mode example (block private/internal destinations by default):
374374
375375
## Related
376376
377-
- [Browser](/tools/browser) overview, configuration, profiles, security
378-
- [Browser login](/tools/browser-login) signing in to sites
377+
- [Browser](/tools/browser) - overview, configuration, profiles, security
378+
- [Browser login](/tools/browser-login) - signing in to sites
379379
- [Browser Linux troubleshooting](/tools/browser-linux-troubleshooting)
380380
- [Browser WSL2 troubleshooting](/tools/browser-wsl2-windows-remote-cdp-troubleshooting)

0 commit comments

Comments
 (0)