Skip to content

Docs Source And Sync

Capell docs are assembled from the docs shell in capell-app/capell-docs and public Markdown from the source repositories checked out under _sources/ during sync.

The Capell Extensions explorer and extension pages are generated from package manifests and public docs in capell-4/packages, published from the capell-app/packages repository.

SourceLocal sync pathPublic docs copied
capell-app/capell_sources/coredocs/; packages/**/README.md and packages/**/docs/**
capell-app/packages_sources/packagesdocs/; packages/**/README.md and packages/**/docs/**

Use local sync when working against sibling checkouts of capell-4 and capell-4/packages:

Terminal window
npm run sync:local

Use source-specific syncs when you only need one side refreshed:

Terminal window
npm run sync:local:core
Terminal window
npm run sync:local:packages

The sync intentionally excludes internal, specs, and superpowers directories at every docs level before content reaches the public site.

Published docs search is powered by Typesense through starlight-docsearch-typesense. The deploy workflow builds the static site, rsyncs the built files to the public docs directory, then runs the DocSearch scraper against the live docs URL into the capell_docs collection.

The browser client uses only PUBLIC_TYPESENSE_URL and PUBLIC_TYPESENSE_SEARCH_KEY. The scraper uses TYPESENSE_ADMIN_KEY plus either TYPESENSE_URL or the explicit TYPESENSE_HOST, TYPESENSE_PORT, and TYPESENSE_PROTOCOL connection values.

The scraper stores DocSearch facets for package, version, audience, docs area, runtime context, product group, and tier. High-level pages set those values in docsearch frontmatter, generated package pages get package values from manifests, and src/config/docsearch-metadata.ts fills safe defaults for ordinary docs pages.

Run a local config check without requiring credentials:

Terminal window
npm run search:index:dry-run

Skip indexing for a manual deploy if Docker or Typesense credentials are not available:

Terminal window
scripts/deploy-local.sh --yes --skip-search-index