mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
docs: add custom spellcheck dictionary and fix docs typos (#22457)
* docs: fix typos and add docs spellcheck workflow * docs: add changelog entry for docs spellcheck updates * docs: fix FAQ TOC fragment links for markdownlint * docs: fix TOC nesting and spellcheck dictionary flags
This commit is contained in:
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@@ -259,6 +259,7 @@ jobs:
|
||||
- name: Check types and lint and oxfmt
|
||||
run: pnpm check
|
||||
|
||||
|
||||
# Report-only dead-code scans. Runs after scope detection and stores machine-readable
|
||||
# results as artifacts for later triage before we enable hard gates.
|
||||
# Temporarily disabled in CI while we process initial findings.
|
||||
@@ -298,7 +299,7 @@ jobs:
|
||||
name: dead-code-${{ matrix.tool }}-${{ github.run_id }}
|
||||
path: .artifacts/deadcode
|
||||
|
||||
# Validate docs (format, lint, broken links) only when docs files changed.
|
||||
# Validate docs (spellcheck, format, lint, broken links) only when docs files changed.
|
||||
check-docs:
|
||||
needs: [docs-scope]
|
||||
if: needs.docs-scope.outputs.docs_changed == 'true'
|
||||
@@ -317,6 +318,9 @@ jobs:
|
||||
- name: Check docs
|
||||
run: pnpm check:docs
|
||||
|
||||
- name: Spellcheck docs
|
||||
run: pnpm docs:spellcheck
|
||||
|
||||
secrets:
|
||||
runs-on: blacksmith-16vcpu-ubuntu-2404
|
||||
steps:
|
||||
|
||||
@@ -6,6 +6,7 @@ Docs: https://docs.openclaw.ai
|
||||
|
||||
### Changes
|
||||
|
||||
- Docs: fix FAQ typos and add documentation spellcheck automation with a custom codespell dictionary/ignore list, including CI coverage. (#22457) Thanks @vincentkoc.
|
||||
- Dev tooling: add dead-code scans to CI via Knip/ts-prune/ts-unused-exports and report unused dependencies/exports in non-blocking checks. (#22468) Thanks @vincentkoc.
|
||||
- Dev tooling: move `@larksuiteoapi/node-sdk` out of root `package.json` and keep it scoped to `extensions/feishu` where it is used. (#22471) Thanks @vincentkoc.
|
||||
- Dev tooling: remove unused root dependency `signal-utils` from core manifest after confirming it was only used by extension-only paths. (#22471) Thanks @vincentkoc.
|
||||
|
||||
@@ -10,7 +10,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
||||
## Table of contents
|
||||
|
||||
- [Quick start and first-run setup]
|
||||
- [Im stuck whats the fastest way to get unstuck?](#im-stuck-whats-the-fastest-way-to-get-unstuck)
|
||||
- [Im stuck what's the fastest way to get unstuck?](#im-stuck-whats-the-fastest-way-to-get-unstuck)
|
||||
- [What's the recommended way to install and set up OpenClaw?](#whats-the-recommended-way-to-install-and-set-up-openclaw)
|
||||
- [How do I open the dashboard after onboarding?](#how-do-i-open-the-dashboard-after-onboarding)
|
||||
- [How do I authenticate the dashboard (token) on localhost vs remote?](#how-do-i-authenticate-the-dashboard-token-on-localhost-vs-remote)
|
||||
@@ -126,7 +126,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
||||
- [Why did context get truncated mid-task? How do I prevent it?](#why-did-context-get-truncated-midtask-how-do-i-prevent-it)
|
||||
- [How do I completely reset OpenClaw but keep it installed?](#how-do-i-completely-reset-openclaw-but-keep-it-installed)
|
||||
- [I'm getting "context too large" errors - how do I reset or compact?](#im-getting-context-too-large-errors-how-do-i-reset-or-compact)
|
||||
- [Why am I seeing "LLM request rejected: messages.N.content.X.tool_use.input: Field required"?](#why-am-i-seeing-llm-request-rejected-messagesncontentxtooluseinput-field-required)
|
||||
- [Why am I seeing "LLM request rejected: messages.content.tool_use.input field required"?](#why-am-i-seeing-llm-request-rejected-messagescontenttool_useinput-field-required)
|
||||
- [Why am I getting heartbeat messages every 30 minutes?](#why-am-i-getting-heartbeat-messages-every-30-minutes)
|
||||
- [Do I need to add a "bot account" to a WhatsApp group?](#do-i-need-to-add-a-bot-account-to-a-whatsapp-group)
|
||||
- [How do I get the JID of a WhatsApp group?](#how-do-i-get-the-jid-of-a-whatsapp-group)
|
||||
@@ -262,7 +262,7 @@ Quick answers plus deeper troubleshooting for real-world setups (local dev, VPS,
|
||||
|
||||
## Quick start and first-run setup
|
||||
|
||||
### Im stuck whats the fastest way to get unstuck
|
||||
### Im stuck what's the fastest way to get unstuck
|
||||
|
||||
Use a local AI agent that can **see your machine**. That is far more effective than asking
|
||||
in Discord, because most "I'm stuck" cases are **local config or environment issues** that
|
||||
@@ -440,7 +440,7 @@ Newest entries are at the top. If the top section is marked **Unreleased**, the
|
||||
section is the latest shipped version. Entries are grouped by **Highlights**, **Changes**, and
|
||||
**Fixes** (plus docs/other sections when needed).
|
||||
|
||||
### I cant access docs.openclaw.ai SSL error What now
|
||||
### I can't access docs.openclaw.ai SSL error What now
|
||||
|
||||
Some Comcast/Xfinity connections incorrectly block `docs.openclaw.ai` via Xfinity
|
||||
Advanced Security. Disable it or allowlist `docs.openclaw.ai`, then retry. More
|
||||
@@ -464,7 +464,7 @@ that same version to `latest`**. That's why beta and stable can point at the
|
||||
See what changed:
|
||||
[https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md](https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md)
|
||||
|
||||
### How do I install the beta version and whats the difference between beta and dev
|
||||
### How do I install the beta version and what's the difference between beta and dev
|
||||
|
||||
**Beta** is the npm dist-tag `beta` (may match `latest`).
|
||||
**Dev** is the moving head of `main` (git); when published, it uses the npm dist-tag `dev`.
|
||||
@@ -581,7 +581,7 @@ Two common Windows issues:
|
||||
If you want the smoothest Windows setup, use **WSL2** instead of native Windows.
|
||||
Docs: [Windows](/platforms/windows).
|
||||
|
||||
### The docs didnt answer my question how do I get a better answer
|
||||
### The docs didn't answer my question how do I get a better answer
|
||||
|
||||
Use the **hackable (git) install** so you have the full source and docs locally, then ask
|
||||
your bot (or Claude/Codex) _from that folder_ so it can read the repo and answer precisely.
|
||||
@@ -1839,7 +1839,7 @@ If it keeps happening:
|
||||
|
||||
Docs: [Compaction](/concepts/compaction), [Session pruning](/concepts/session-pruning), [Session management](/concepts/session).
|
||||
|
||||
### Why am I seeing LLM request rejected messagesNcontentXtooluseinput Field required
|
||||
### Why am I seeing "LLM request rejected: messages.content.tool_use.input field required"?
|
||||
|
||||
This is a provider validation error: the model emitted a `tool_use` block without the required
|
||||
`input`. It usually means the session history is stale or corrupted (often after long threads
|
||||
@@ -1906,7 +1906,7 @@ openclaw directory groups list --channel whatsapp
|
||||
|
||||
Docs: [WhatsApp](/channels/whatsapp), [Directory](/cli/directory), [Logs](/cli/logs).
|
||||
|
||||
### Why doesnt OpenClaw reply in a group
|
||||
### Why doesn't OpenClaw reply in a group
|
||||
|
||||
Two common causes:
|
||||
|
||||
@@ -1915,7 +1915,7 @@ Two common causes:
|
||||
|
||||
See [Groups](/channels/groups) and [Group messages](/channels/group-messages).
|
||||
|
||||
### Do groupsthreads share context with DMs
|
||||
### Do groups/threads share context with DMs
|
||||
|
||||
Direct chats collapse to the main session by default. Groups/channels have their own session keys, and Telegram topics / Discord threads are separate sessions. See [Groups](/channels/groups) and [Group messages](/channels/group-messages).
|
||||
|
||||
@@ -2335,7 +2335,7 @@ To target a specific agent:
|
||||
openclaw models auth order set --provider anthropic --agent main anthropic:default
|
||||
```
|
||||
|
||||
### OAuth vs API key whats the difference
|
||||
### OAuth vs API key what's the difference
|
||||
|
||||
OpenClaw supports both:
|
||||
|
||||
@@ -2423,7 +2423,7 @@ Fix:
|
||||
- In the Control UI settings, paste the same token.
|
||||
- Still stuck? Run `openclaw status --all` and follow [Troubleshooting](/gateway/troubleshooting). See [Dashboard](/web/dashboard) for auth details.
|
||||
|
||||
### I set gatewaybind tailnet but it cant bind nothing listens
|
||||
### I set gatewaybind tailnet but it can't bind nothing listens
|
||||
|
||||
`tailnet` bind picks a Tailscale IP from your network interfaces (100.64.0.0/10). If the machine isn't on Tailscale (or the interface is down), there's nothing to bind to.
|
||||
|
||||
@@ -2506,7 +2506,7 @@ Service/supervisor logs (when the gateway runs via launchd/systemd):
|
||||
|
||||
See [Troubleshooting](/gateway/troubleshooting#log-locations) for more.
|
||||
|
||||
### How do I startstoprestart the Gateway service
|
||||
### How do I start/stop/restart the Gateway service
|
||||
|
||||
Use the gateway helpers:
|
||||
|
||||
@@ -2732,7 +2732,7 @@ more susceptible to instruction hijacking, so avoid them for tool-enabled agents
|
||||
or when reading untrusted content. If you must use a smaller model, lock down
|
||||
tools and run inside a sandbox. See [Security](/gateway/security).
|
||||
|
||||
### I ran start in Telegram but didnt get a pairing code
|
||||
### I ran start in Telegram but didn't get a pairing code
|
||||
|
||||
Pairing codes are sent **only** when an unknown sender messages the bot and
|
||||
`dmPolicy: "pairing"` is enabled. `/start` by itself doesn't generate a code.
|
||||
|
||||
@@ -70,6 +70,8 @@
|
||||
"docs:check-links": "node scripts/docs-link-audit.mjs",
|
||||
"docs:dev": "cd docs && mint dev",
|
||||
"docs:list": "node scripts/docs-list.js",
|
||||
"docs:spellcheck": "if command -v codespell >/dev/null 2>&1; then codespell README.md docs --skip='*.png,*.jpg,*.jpeg,*.gif,*.svg' -D - -D scripts/codespell-dictionary.txt -I scripts/codespell-ignore.txt; else pnpm dlx codespell README.md docs --skip='*.png,*.jpg,*.jpeg,*.gif,*.svg' -D - -D scripts/codespell-dictionary.txt -I scripts/codespell-ignore.txt; fi",
|
||||
"docs:spellcheck:fix": "if command -v codespell >/dev/null 2>&1; then codespell README.md docs --skip='*.png,*.jpg,*.jpeg,*.gif,*.svg' -D - -D scripts/codespell-dictionary.txt -I scripts/codespell-ignore.txt -w; else pnpm dlx codespell README.md docs --skip='*.png,*.jpg,*.jpeg,*.gif,*.svg' -D - -D scripts/codespell-dictionary.txt -I scripts/codespell-ignore.txt -w; fi",
|
||||
"format": "oxfmt --write",
|
||||
"format:all": "pnpm format && pnpm format:swift",
|
||||
"format:check": "oxfmt --check",
|
||||
|
||||
3
scripts/codespell-dictionary.txt
Normal file
3
scripts/codespell-dictionary.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
messagesNcontentXtooluseinput->messages.content.tool_use.input
|
||||
groupsthreads->groups/threads
|
||||
startstoprestart->start/stop/restart
|
||||
2
scripts/codespell-ignore.txt
Normal file
2
scripts/codespell-ignore.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
iTerm
|
||||
FO
|
||||
Reference in New Issue
Block a user