This plan restructures the public docs into a shallow, task-first guide with consistent top-level sections for onboarding, client usage, API usage, support, and project metadata.
Objectives
- Make the docs readable in a guide format instead of a loose collection of indexes and deep technical references.
- Put first-run instructions and language-specific workflows ahead of internal strategy and parity material.
- Reuse existing content from the repo instead of rewriting from scratch.
- Keep the current GitHub Pages + Jekyll publish flow intact in the first implementation pass.
- Avoid external-brand references in the new end-user guide pages.
Current-State Assessment
The current docs already contain most of the raw material, but it is split across:
README.mdfor the fastest Node.js and Python starts, binary install, dashboard, downloads, and project overview.packages/client-node/README.mdfor Node-specific setup and runtime behavior.packages/client-python/README.mdfor Python-specific setup and runtime behavior.docs/guides/*.mdfor build, install, OCR, input, app control, and Node package flow.docs/reference/api/for generated Go API reference.docs/strategy/*.mdanddocs/reference/parity/*.mdfor internal architecture and parity planning.
The gaps are structural, not informational:
- No clear top-level journey from download to first working script.
- Client docs live partly in package READMEs and partly in repo docs.
- Help, contribution, license, and downloads are not first-class sections.
- The docs home page is a link list, not a guide entry point.
- The generated Go API reference exists, but there is no curated Go-facing landing page for it.
Constraints
- Docs are published from
docs/through.github/workflows/docs-pages.yml. - The site currently builds with Jekyll from raw Markdown under
docs/. - Generated API docs under
docs/reference/api/should remain script-owned. - Existing deep links should keep working during migration.
- The first pass should not require moving the site to a different docs framework.
Target Information Architecture
Primary navigation order:
DownloadsGetting StartedNode.js ClientPython ClientGolang APIGetting HelpContributionLicense
Secondary navigation:
ReferenceGuidesStrategyBenchmarks
Recommended file layout:
docs/downloads/index.mddocs/getting-started/index.mddocs/getting-started/installation.mddocs/getting-started/first-script.mddocs/getting-started/dashboard.mddocs/nodejs-client/index.mddocs/nodejs-client/installation.mddocs/nodejs-client/first-script.mddocs/nodejs-client/runtime.mddocs/nodejs-client/troubleshooting.mddocs/python-client/index.mddocs/python-client/installation.mddocs/python-client/first-script.mddocs/python-client/runtime.mddocs/python-client/troubleshooting.mddocs/golang-api/index.mddocs/golang-api/installation.mddocs/golang-api/first-program.mddocs/golang-api/core-types.mddocs/golang-api/runtime-and-reference.mddocs/getting-help/index.mddocs/getting-help/faq.mddocs/getting-help/reporting-issues.mddocs/contribution/index.mddocs/contribution/development-setup.mddocs/contribution/docs-workflow.mddocs/license/index.md
Section Plan
Downloads
Purpose:
- Give users one obvious place to choose a distribution channel.
Content:
- Go binary downloads from GitHub Releases.
- Node package install via npm/Yarn.
- Python package install via PyPI/pipx.
- Binary install helper commands.
- Platform matrix and what each download contains.
Primary source material:
README.mddocs/guides/api-publish-install.mdpackages/client-node/README.mdpackages/client-python/README.md.github/workflows/client-release.ymlscripts/clients/release-node-client.shscripts/clients/release-python-client.shscripts/clients/release-homebrew.sh
Getting Started
Purpose:
- Replace the current docs home page with the shortest successful first-run path.
Content:
- What sikuli-go is.
- Which path to choose: Node.js, Python, or Go.
- Install prerequisites.
- Run the first example.
- Start the API and dashboard.
- Verify the environment works.
Primary source material:
README.mddocs/index.mdpackages/client-node/README.mdpackages/client-python/README.md
Node.js Client
Purpose:
- Mirror the same style as the API section, but centered on the Node client workflow.
Content shape:
- Overview and intended use.
- Install and bootstrap.
- First script.
- Runtime model: auto-started binary, monitor, dashboard, ports, session store.
- Client concepts:
Screen,Region,Pattern,Match. - Links to deeper reference and advanced guides.
- Troubleshooting and compatibility notes.
Primary source material:
packages/client-node/README.mddocs/guides/node-package-user-flow.mddocs/strategy/client-strategy.mdpackages/client-node/src/*.ts
Python Client
Purpose:
- Match the Node section pattern while staying idiomatic for Python packaging and usage.
Content shape:
- Overview and intended use.
- Install and bootstrap.
- First script.
- Runtime model: bundled binary resolution, monitor, dashboard, ports, session store.
- Client concepts:
Screen,Region,Pattern,Match. - Links to deeper reference and advanced guides.
- Troubleshooting and compatibility notes.
Primary source material:
packages/client-python/README.mdpackages/client-python/sikuligo/*.pydocs/strategy/client-strategy.md
Golang API
Purpose:
- Provide a curated guide for the base implementation instead of dropping users directly into generated API output.
Content shape:
- Overview and intended use.
- Build or install the Go binary/API runtime.
- First program or first API-backed workflow.
- Core concepts: runtime,
Screen,Region,Pattern,Match, search, OCR, input, app control. - Link into generated API reference for details.
- Call out what is stable API surface versus deeper internal packages.
Primary source material:
docs/reference/api/index.mddocs/reference/api/pkg-sikuli.mddocs/guides/build-from-source.mddocs/guides/ocr-integration.mddocs/guides/input-automation.mddocs/guides/app-control.mdpackages/api/pkg/sikuli/*.go
Getting Help
Purpose:
- Make support paths explicit and reduce support traffic caused by scattered information.
Content:
- FAQ.
- Common install/runtime failures.
- How to collect version, platform, and log details.
- Where to report bugs and ask for help.
- Pointers to API reference and advanced guides when the answer is already documented.
Primary source material:
README.mdpackages/client-node/README.mdpackages/client-python/README.md- existing troubleshooting notes embedded in guides and scripts
Contribution
Purpose:
- Give contributors a clear path from local setup to a docs/code change.
Content:
- Repository layout.
- Local build/test flow.
- Docs generation and verification flow.
- Client release and API docs generation references.
- Pull request expectations.
Primary source material:
README.mddocs/guides/build-from-source.md.github/workflows/go-test.yml.github/workflows/docs-pages.yml- scripts under
scripts/
License
Purpose:
- Make project licensing visible from the public guide.
Content:
- Short plain-language summary.
- Link to full license text.
- Copyright notice source.
Primary source material:
LICENSE
Page Template Standard
Each primary section should use the same page rhythm:
- One-sentence summary.
- Who this section is for.
- Fast path or quickstart.
- Core concepts.
- Common tasks.
- Troubleshooting or next steps.
- Links to deeper reference.
This keeps the Node.js Client, Python Client, and Golang API sections visually and structurally parallel.
Navigation and Presentation Plan
Phase 1 should add a reusable docs shell inside docs/:
docs/_config.ymlfor site title, defaults, and collections if needed.docs/_layouts/guide.htmlfor a persistent guide layout.docs/_includes/sidebar.htmlfor top-level and section navigation.docs/_data/navigation.ymlto define the ordered left-nav structure.
If the layout work is deferred, the fallback is still valid:
- keep plain Markdown pages
- create section landing pages with identical heading order
- update
docs/index.mdto act as the main guide gateway
The preferred path is the reusable shell, because it is what makes the guide format feel deliberate instead of just link-heavy.
Migration Strategy
Phase 0: Freeze inputs
- Identify the canonical source for each section.
- Stop adding new end-user guidance only to package READMEs without a matching docs-page target.
Phase 1: Build the guide shell
- Add the shared layout, sidebar data, and top-level landing pages.
- Rework
docs/index.mdinto the public entry page for the guide.
Phase 2: Publish the top-level sections
- Ship
Downloads,Getting Started,Node.js Client,Python Client,Golang API,Getting Help,Contribution, andLicenseas landing pages first. - Link existing detailed guides from these pages before rewriting all detail pages.
Phase 3: Split dense pages into guide subpages
- Move install, first-run, runtime, and troubleshooting material into subpages.
- Keep generated API reference where it is and link it from
Golang API.
Phase 4: Reconcile README and docs ownership
- Shorten package READMEs so they point to the guide for canonical docs.
- Keep package READMEs useful for registry users, but stop duplicating long-form docs there.
Phase 5: Clean up and harden
- Add redirects or stub pages for moved content.
- Remove stale wording and external-brand references from new user-facing guide pages.
- Verify all internal links in the published site.
Content Ownership Rules
docs/becomes the canonical home for long-form end-user documentation.- package
README.mdfiles become package entry pages and quickstarts, not the full manual. - generated API content stays under
docs/reference/api/. - strategy and parity pages remain valuable, but they move out of the primary user journey.
Acceptance Criteria
- A new user can go from docs home to a working first script in no more than three clicks.
- Node.js, Python, and Go each have a dedicated landing page with the same structure.
- Downloads, help, contribution, and license are visible in the primary navigation.
- The Go API section explains the curated surface before linking into generated API reference.
- The docs site keeps building through the existing Pages workflow.
- New user-facing pages do not rely on external-brand references.
Recommended Execution Order
- Create the guide shell and top-level navigation.
- Publish
Getting StartedandDownloads. - Publish
Node.js Client,Python Client, andGolang API. - Publish
Getting Help,Contribution, andLicense. - Reconcile README duplication and old page links.