Files
jackwener--opencli/docs/developer/documentation-audit-2026-05.md
wehub-resource-sync 9b395f5cc3
Build Chrome Extension / build (push) Waiting to run
Trigger Website Rebuild (Docs Updated) / dispatch (push) Waiting to run
E2E Headed Chrome / e2e-headed (macos-15) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (ubuntu-latest) (push) Has been cancelled
E2E Headed Chrome / e2e-headed (windows-latest) (push) Has been cancelled
CI / build (macos-latest) (push) Has been cancelled
CI / build (ubuntu-latest) (push) Has been cancelled
CI / build (windows-latest) (push) Has been cancelled
CI / unit-test (push) Has been cancelled
CI / bun-test (push) Has been cancelled
CI / adapter-test (push) Has been cancelled
CI / smoke-test (macos-latest) (push) Has been cancelled
CI / smoke-test (ubuntu-latest) (push) Has been cancelled
Security Audit / audit (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:48 +08:00

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.md
  • README.zh-CN.md
  • docs/
  • skills/ references that are linked from user-facing docs

Executive View

The docs are usable, but they are drifting in four visible ways:

  1. Hard-coded counts and feature claims are stale.
  2. Developer docs describe an older architecture and older test layout.
  3. English and Chinese docs are no longer updated with the same rigor.
  4. Some pages still describe deleted concepts or old workflows.

The highest-value work is:

  1. Fix the stale facts in README*, docs/index.md, docs/zh/index.md, and docs/guide/getting-started.md.
  2. Rewrite docs/developer/testing.md and docs/developer/architecture.md against current main.
  3. Make English and Chinese entry docs derive from the same source-of-truth checklist.
  4. 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.md
  • README.zh-CN.md
  • docs/guide/getting-started.md
  • docs/comparison.md

Current problems:

  • README.md and README.zh-CN.md still say 90+ adapters.
  • docs/guide/getting-started.md still says 87+ pre-built adapters.
  • docs/comparison.md still says 87+ sites.

Current reality:

  • node dist/src/main.js list --format json | jq 'map(.site) | unique | length' returns 106.

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+ sites
    • over 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.ts
    • clis/twitter/timeline.test.ts
    • clis/reddit/read.test.ts
    • clis/bilibili/dynamic.test.ts
  • Those files do not exist.
  • It says E2E coverage is 5 files.
  • Current reality is 11 E2E files.
  • It presents npm test as 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 -l60
  • find clis -iregex '.*\\.test\\.(ts|js)$' | wc -l0
  • find tests/e2e -name '*.test.ts' | wc -l11
  • find tests/smoke -name '*.test.ts' | wc -l1

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 checks
    • targeted validation
    • full 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-level clis/.
  • The architecture diagram is too simplified for the current system and omits important pieces such as:
    • daemon.ts
    • external.ts
    • plugin.ts
    • electron-apps.ts
    • update check / diagnostics / runtime detection paths
  • It says “3-tier authentication strategy” but lists 5 strategies.

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.md
  • docs/zh/index.md

Current problems:

  • Both home pages say:
    • explore
    • synthesize
    • cascade
  • docs/developer/ai-workflow.md explicitly 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 primitives
    • adapter-authoring skill
    • verify 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...
  • explore is 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:
    • list
    • validate
    • verify
    • browser
    • doctor
    • plugin
    • adapter

Priority 1 — Inconsistent or incomplete

6. Installation pages are inconsistent about runtime support and update flow

Affected files:

  • README.md
  • README.zh-CN.md
  • docs/guide/installation.md
  • docs/zh/guide/installation.md

Current problems:

  • README.md says Node >= 21 or Bun >= 1.0.
  • docs/guide/installation.md and docs/zh/guide/installation.md only mention Node.
  • README.md documents skill refresh on update.
  • docs/zh/guide/installation.md only 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.md
  • README.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 list and docs/adapters/index.md as 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.md and docs/zh/index.md both kept the deleted explore / synthesize / cascade language.
  • docs/zh/guide/getting-started.md contains a stale built-in command example that should have been caught by parity review.
  • README.md and README.zh-CN.md both 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.md
    • README.zh-CN.md
    • docs/index.md
    • docs/zh/index.md
    • docs/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

  1. README.md
  2. README.zh-CN.md
  3. docs/index.md
  4. docs/zh/index.md
  5. docs/guide/getting-started.md
  6. docs/zh/guide/getting-started.md
  7. docs/comparison.md

Pass 2 — Rebuild the technical source-of-truth pages

  1. docs/developer/testing.md
  2. docs/developer/architecture.md
  3. docs/guide/installation.md
  4. docs/zh/guide/installation.md

Pass 3 — Prevent the next round of drift

  1. Add a docs parity checklist to PR workflow.
  2. Remove exact counts from hand-written copy unless generated.
  3. 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 with 100+.
  • Remove explore / synthesize / cascade from both home pages.
  • Remove explore from docs/zh/guide/getting-started.md.
  • Align install docs on Node/Bun support and skill refresh.

Medium rewrites

  • Rewrite docs/developer/testing.md from current filesystem state.
  • Rewrite docs/developer/architecture.md from 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.