Docs Publishing Ops
Source: docs/runbooks/docs-publishing-ops.md
---
title: Docs Publishing Operations Runbook
description: Operating guide for publishing and maintaining public and internal docs surfaces on Vercel.
owner: ops
last_reviewed: 2026-03-03
audience: internal
status: active
---
# Docs Publishing Operations Runbook
## Purpose
Run and support the dual-surface docs deployment:
- Public: `https://docs.rgl8r.com`
- Internal: `https://docs-internal.rgl8r.com`
This runbook defines preflight checks, release steps, validation, and rollback.
## Architecture
Source of truth:
- Canonical docs: `docs/`
- Publication manifests:
- `docs/public-manifest.yaml`
- `docs/private-manifest.yaml`
- Frontmatter policy: `docs/docs-frontmatter.schema.json`
Docs app:
- `apps/docs` (single app, dual runtime mode via `DOCS_MODE`)
- `DOCS_MODE=public` for customer-safe docs
- `DOCS_MODE=internal` for allowlisted internal routes at `/internal/**`
## Release Preconditions
Before merge to `main`, all must pass:
1. `Docs Quality Gate` workflow green.
2. Public docs frontmatter valid.
3. Public link check passes.
4. Sensitive-content scan passes.
5. Public build and internal build both pass.
## Vercel Configuration
Two projects, same code root (`apps/docs`):
1. `rgl8r-docs-public`
- Domain: `docs.rgl8r.com`
- Env:
- `DOCS_MODE=public`
- `NEXT_PUBLIC_APP_URL` (recommended)
2. `rgl8r-docs-internal`
- Domain: `docs-internal.rgl8r.com`
- Env:
- `DOCS_MODE=internal`
- `DOCS_INTERNAL_CLERK_ORG_IDS`
- `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY`
- `CLERK_SECRET_KEY`
- `NEXT_PUBLIC_APP_URL` (optional)
## Release Procedure
1. Merge approved docs PR to `main`.
2. Confirm `Docs Quality Gate` passed on merge commit.
3. Confirm Vercel deployments triggered for both docs projects.
4. Validate endpoints:
- `GET https://docs.rgl8r.com` returns `200`
- `GET https://docs-internal.rgl8r.com` redirects/challenges when unauthenticated
- Internal allowlisted user can access `/internal/docs`
5. Spot-check required public docs pages:
- Public API contract
- Integration kit
- OpenAPI `v1.1.0`
- Route namespace contract
- Legal terms/privacy
## Incident Handling
### Public docs leak risk
Trigger examples:
- Sensitive-content check bypassed
- Public manifest accidentally includes internal paths
Actions:
1. Revert offending PR on `main`.
2. Confirm fresh Vercel deploy completes.
3. Verify leaked page returns `404` or no longer contains sensitive content.
4. Record incident and remediation in launch evidence.
### Internal auth misconfiguration
Trigger examples:
- Internal users blocked unexpectedly
- Internal docs accessible without proper org membership
Actions:
1. Validate `DOCS_INTERNAL_CLERK_ORG_IDS` values.
2. Validate Clerk keys are set and current.
3. If exposure risk exists, remove `docs-internal.rgl8r.com` custom domain until fixed.
4. Redeploy and re-verify with allowlisted + non-allowlisted users.
## Rollback Procedure
1. Revert latest docs PR affecting docs app/manifests/content.
2. Merge revert to `main`.
3. Confirm both Vercel docs projects redeploy cleanly.
4. Re-run endpoint probes and internal auth probe.
5. Update `docs/operations/p19-e-docs-launch-evidence-2026-03-03.md` with rollback record.
## Operator Checklist
- [ ] Docs Quality Gate passed on target commit
- [ ] Public domain healthy (`200`, TLS valid)
- [ ] Internal domain auth behavior validated
- [ ] Public nav and key links work
- [ ] Evidence file updated with timestamp and commit SHA