> ## Documentation Index
> Fetch the complete documentation index at: https://www.onyxresearch.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Docs Maintenance

> Keep Onyx docs aligned with onyx-research and onyx-agent changes.

Documentation drift is part of the change, not a later cleanup.

## Update Docs When These Change

* Public research workflow: projects, campaigns, experiments, graph, timeline, file, or diff behavior.
* CLI command behavior in `onyx-agent`.
* Agent skill workflow or runner contract.
* `/api/v1` endpoint shape, auth, response envelopes, or OpenAPI output.
* Auth, team roles, API key, profile, or login behavior.
* GitHub App access, lazy project provisioning, repository access, or repository sync behavior.
* `projectPath`, `onyx/setup.json`, `onyx/validation.json`, `onyx/onyx.md`, `onyx/tools/*`, workflow runs, local runtime files, repository sync, or research reporting semantics.
* Install, release, or local development commands.

## Sources of Truth

Paths are relative to the onyx-research repository root; the docs live in its
`docs/` directory.

| Topic                | Source                                    |
| -------------------- | ----------------------------------------- |
| Product architecture | `AGENTS.md`, `README.md`, `CLAUDE.md`     |
| CLI commands         | `packages/agent/src/main.ts`              |
| Agent skill          | `packages/agent/skills/onyx/SKILL.md`     |
| API contracts        | `packages/contracts/src`                  |
| Generated OpenAPI    | `packages/contracts/openapi/openapi.json` |
| Product UI flows     | `apps/web`                                |

## API Reference Sync

After changing contracts or route metadata, from the onyx-research repo root:

```bash theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
cd packages/contracts && bun run export:openapi
cd ../.. && node docs/scripts/sync-openapi.mjs
```

## Local Preview

Run `mint dev` from the `docs/` directory to preview changes locally before
merging; merges to `main` deploy automatically through Mintlify.
