Public Categories Env

WIKI_PUBLIC_CATEGORIES and WIKI_VISIBLE_CATEGORIES control public navigation and discovery; they are not the content-security boundary.

Use this page when configuring production wiki visibility. Pair it with Password Gate Setup for private content and Vercel Deploy Checklist before promotion.

Variables

Variable Effect
WIKI_PUBLIC_CATEGORIES=1 Enables the curated default public allowlist.
WIKI_VISIBLE_CATEGORIES Comma-separated category slugs; overrides the default allowlist.
WIKI_DIR Overrides the wiki root path; Vercel normally uses bundled .content/wiki.

The default public set in ui/src/lib/category-visibility.ts is: agent-docs, architecture, concepts, decisions, design, heartbeat, meta, philosophies, projects, research, resolver, skill-resolver, skills, soul, stories, style, tools, user, and workflows.

Boundary

The public category filter affects the sidebar, home page, search, sitemap, and llms.txt public discovery surfaces. Direct /wiki/... URLs for hidden categories can still resolve if the page is not private.

Actual privacy is enforced by ui/src/lib/gating.ts and the password gate:

  • private: true frontmatter.
  • private categories, slugs, slug tokens, and tags.
  • per-page gate_passwords frontmatter.
  • global WIKI_GATE_PASSWORD / WIKI_GATE_PASSWORDS.

So the correct production shape is usually both: set public categories for a clean reader surface, and configure the password gate for private pages.

Closeout

After changing visibility code or env documentation, run the UI build when practical, then npm run build-index and qmd update && qmd embed. If public/private behavior changes, update Password Gate Setup and Vercel Deploy Checklist in the same pass.


Timeline