Vaulthalla Logo

Quick Start

Run the default docs workflow from local Markdown to GitHub Actions sync.

Quick Start

This quick start assumes the conventional docs package layout and a docs set slug of main-docs.

Create Admin Records

In Docs Globals > Sets, create:

  • title: Main Docs
  • slug: main-docs
  • branch: main
  • optional group: a group such as plugins when you want nested routes

In Docs Globals > Trusted, create:

  • owner: your GitHub owner or organization
  • limitRepos: off for the normal owner-level trust model

The set slug is the manifest source. The route base is derived from the optional group and the set slug.

Source Layout

1docs/2  index.md3skills/4  main-docs/5    codex/6      SKILL.md7    claude/8      SKILL.md9llms.txt10llms-full.txt

Markdown docs become manifest files. Skills and root AI discovery files become manifest assets, so skill files do not need docs frontmatter.

Install An Agent Skill

In the docs set target application, install a local agent skill so Codex or Claude has project-specific guidance for maintaining Markdown docs, supported frontmatter, validation, and sync safety rules.

1pnpm exec payload-markdown-docs install skill --agent codex2pnpm exec payload-markdown-docs install skill --agent claude

The Codex installer writes .agents/skills/payload-markdown-docs/ and creates or updates AGENTS.md. The Claude installer writes .claude/skills/payload-markdown-docs/ and does not modify AGENTS.md by default. Neither install syncs docs, calls Payload, or publishes content.

Install Public Asset Routes

If the consuming Next app should serve /llms.txt, /llms-full.txt, or docs-set skill URLs outside /api, commit the generated route files:

1pnpm exec payload-markdown-docs install routes --payload-app "src/app/(payload)"

Those route files delegate to the plugin-owned asset handlers. Without them, a frontend catch-all can return HTML 404 pages even when /api/... asset URLs work.

Validate Local Docs

1pnpm exec payload-markdown-docs validate --source main-docs

Generate A Manifest

1pnpm exec payload-markdown-docs manifest --source main-docs --pretty

Preview A Plan

1pnpm exec payload-markdown-docs plan --source main-docs

Push From GitHub Actions

1pnpm exec payload-markdown-docs push \2  --endpoint "$DOCS_SYNC_ENDPOINT" \3  --source main-docs \4  --github-oidc

When the docs set slug matches the repository name, --source can be omitted in GitHub Actions and the CLI infers it from GITHUB_REPOSITORY.

Why dry-run first?

Dry-runs verify authentication, replay protection, the manifest, route derivation, route collisions, and the sync plan without mutating docs records. They are the right default for pull requests.

To publish during sync, add --publish and make sure the server allows publishing. See publishing.