10 KiB
Documentation Audit — 2026-05
This document reviews the current long-form docs, README surfaces, and developer guides in opencli. It focuses on stale facts, internal contradictions, and documentation structure that now causes drift.
Scope
README.mdREADME.zh-CN.mddocs/skills/references that are linked from user-facing docs
Executive View
The docs are usable, but they are drifting in four visible ways:
- Hard-coded counts and feature claims are stale.
- Developer docs describe an older architecture and older test layout.
- English and Chinese docs are no longer updated with the same rigor.
- Some pages still describe deleted concepts or old workflows.
The highest-value work is:
- Fix the stale facts in
README*,docs/index.md,docs/zh/index.md, anddocs/guide/getting-started.md. - Rewrite
docs/developer/testing.mdanddocs/developer/architecture.mdagainst currentmain. - Make English and Chinese entry docs derive from the same source-of-truth checklist.
- Stop writing command/adapters counts by hand unless they are generated.
Priority 0 — Clearly stale or incorrect
1. Adapter / site counts are stale across multiple entry points
Affected files:
README.mdREADME.zh-CN.mddocs/guide/getting-started.mddocs/comparison.md
Current problems:
README.mdandREADME.zh-CN.mdstill say90+adapters.docs/guide/getting-started.mdstill says87+pre-built adapters.docs/comparison.mdstill says87+sites.
Current reality:
node dist/src/main.js list --format json | jq 'map(.site) | unique | length'returns106.
Why this matters:
- These are the first pages people read.
- The mismatch is easy to notice and weakens trust in the rest of the docs.
- These values will keep drifting if we maintain them manually.
Recommended fix:
- Replace all hard-coded counts with one of:
100+100+ sitesover 100 registered sites
- Best option: generate this number into docs at release time or avoid explicit counts entirely.
2. docs/developer/testing.md is materially out of date
Affected file:
docs/developer/testing.md
Current problems:
- It says adapter tests live in
clis/**/*.test.{ts,js}. - The file examples name adapter tests such as:
clis/zhihu/download.test.tsclis/twitter/timeline.test.tsclis/reddit/read.test.tsclis/bilibili/dynamic.test.ts
- Those files do not exist.
- It says E2E coverage is
5files. - Current reality is
11E2E files. - It presents
npm testas the main local gate, while current team rule is to prefer the smallest sufficient test set instead of default full-suite runs.
Current reality from the repo:
find src -name '*.test.ts' | wc -l→60find clis -iregex '.*\\.test\\.(ts|js)$' | wc -l→0find tests/e2e -name '*.test.ts' | wc -l→11find tests/smoke -name '*.test.ts' | wc -l→1
Why this matters:
- This page is the main developer testing contract.
- A new contributor following it will get the wrong mental model of the test layout.
- It encourages a heavier default test habit than the team currently wants.
Recommended fix:
- Rewrite the page from current files, not from remembered structure.
- Separate:
fast local checkstargeted validationfull CI coverage
- Remove nonexistent adapter test examples.
- Add a short rule:
- local default = smallest sufficient validation
- full-suite = broader refactor, shared runtime changes, or CI
3. docs/developer/architecture.md describes an older system shape
Affected file:
docs/developer/architecture.md
Current problems:
- It refers to
src/browser.ts, but that file does not exist. - The directory structure block says
src/clis/, but adapters live at top-levelclis/. - The architecture diagram is too simplified for the current system and omits important pieces such as:
daemon.tsexternal.tsplugin.tselectron-apps.ts- update check / diagnostics / runtime detection paths
- It says “3-tier authentication strategy” but lists
5strategies.
Why this matters:
- This is the page people read to understand the project.
- Once architecture docs are stale, all deeper docs become harder to trust.
Recommended fix:
- Rewrite this page around current modules:
- command discovery and registry
- execution
- browser / daemon bridge
- external CLI integration
- plugin system
- desktop / CDP path
- pipeline engine
- Replace the static tree with a curated module map that matches current filenames.
- Change “3-tier” to a neutral label like
authentication strategies.
4. Home pages still mention deleted concepts
Affected files:
docs/index.mddocs/zh/index.md
Current problems:
- Both home pages say:
exploresynthesizecascade
docs/developer/ai-workflow.mdexplicitly says those commands do not exist and that the skill drives the loop.
Why this matters:
- The home page is currently teaching a product vocabulary that the actual CLI does not have.
- This creates immediate confusion for users who go from docs to terminal.
Recommended fix:
- Replace those phrases with current concepts:
browser primitivesadapter-authoring skillverify loop
- Keep the homepage aligned with
docs/developer/ai-workflow.md.
5. Chinese getting-started page lists a deleted built-in command
Affected file:
docs/zh/guide/getting-started.md
Current problem:
- It says built-in commands include
list、explore、validate... exploreis not a current built-in command.
Why this matters:
- This is a hard user-facing error.
Recommended fix:
- Replace the example list with current built-ins such as:
listvalidateverifybrowserdoctorpluginadapter
Priority 1 — Inconsistent or incomplete
6. Installation pages are inconsistent about runtime support and update flow
Affected files:
README.mdREADME.zh-CN.mddocs/guide/installation.mddocs/zh/guide/installation.md
Current problems:
README.mdsays Node>= 21or Bun>= 1.0.docs/guide/installation.mdanddocs/zh/guide/installation.mdonly mention Node.README.mddocuments skill refresh on update.docs/zh/guide/installation.mdonly documents package update and omits skills refresh.
Why this matters:
- Entry docs should agree on install prerequisites and upgrade procedure.
Recommended fix:
- Pick one official runtime support statement and reuse it everywhere.
- If Bun is supported, add it consistently to guide pages.
- Mirror the post-update skill refresh guidance in the install/update guides.
7. README and docs still use top-level tables and examples that will drift by hand
Affected files:
README.mdREADME.zh-CN.md
Current problems:
- The “Built-in Commands” section is manually curated and already partially selective.
- The surrounding copy still frames it like a broad current snapshot.
Why this matters:
- Manual command snapshots go stale quickly in a repo with active adapter growth.
Recommended fix:
- Reframe the section as:
- “Representative built-in commands”
- “Sample sites”
- Keep
opencli listanddocs/adapters/index.mdas the full registry surface.
8. docs/comparison.md contains stale scale claims
Affected file:
docs/comparison.md
Current problem:
- It still says
87+sites.
Why this matters:
- Comparison pages shape market positioning.
- Stale numbers make the project look less maintained than it is.
Recommended fix:
- Remove exact numbers from comparison copy unless they are generated.
Priority 2 — Structural drift risks
9. English and Chinese docs are drifting independently
Most visible examples:
docs/index.mdanddocs/zh/index.mdboth kept the deletedexplore / synthesize / cascadelanguage.docs/zh/guide/getting-started.mdcontains a stale built-in command example that should have been caught by parity review.README.mdandREADME.zh-CN.mdboth carry the same stale adapter count.
Why this keeps happening:
- We have mirrored content with no explicit parity checklist.
- Updates land in one place and rely on memory for the rest.
Recommended fix:
- Introduce a small doc parity checklist for any change that touches:
README.mdREADME.zh-CN.mddocs/index.mddocs/zh/index.mddocs/guide/*docs/zh/guide/*
- Add one PR checklist item:
- “Did this change require an English/Chinese mirror update?”
10. Core product pages mix generated facts with narrative copy
Examples:
- command counts
- site counts
- test counts
- lists of built-in commands
Why this matters:
- Numbers and command inventories drift faster than narrative guidance.
Recommended fix:
- For fast-changing facts:
- generate them
- or generalize them
- Reserve hand-written docs for:
- mental models
- workflows
- constraints
- trade-offs
Suggested rewrite order
Pass 1 — Fix trust-breaking errors
README.mdREADME.zh-CN.mddocs/index.mddocs/zh/index.mddocs/guide/getting-started.mddocs/zh/guide/getting-started.mddocs/comparison.md
Pass 2 — Rebuild the technical source-of-truth pages
docs/developer/testing.mddocs/developer/architecture.mddocs/guide/installation.mddocs/zh/guide/installation.md
Pass 3 — Prevent the next round of drift
- Add a docs parity checklist to PR workflow.
- Remove exact counts from hand-written copy unless generated.
- Decide which pages are authoritative for:
- install
- browser bridge
- testing
- architecture
- AI workflow
Concrete edits I would make next
Small fast edits
- Replace all
87+/90+claims with100+. - Remove
explore / synthesize / cascadefrom both home pages. - Remove
explorefromdocs/zh/guide/getting-started.md. - Align install docs on Node/Bun support and skill refresh.
Medium rewrites
- Rewrite
docs/developer/testing.mdfrom current filesystem state. - Rewrite
docs/developer/architecture.mdfrom current module boundaries.
Process fix
- Add a lightweight “doc drift” checklist to PRs that touch command surface, runtime support, testing strategy, or adapter discovery.
Bottom line
The docs do not need a ground-up rewrite. They need a focused trust repair pass on entry pages, then a source-of-truth rebuild for testing and architecture, then a small process change so counts and mirrored pages stop drifting.