--- name: update-api-docs description: Update the API reference documentation by downloading the latest OpenAPI spec from production and regenerating the Docusaurus API docs --- # Update API Documentation This skill guides you through updating the API reference documentation from the production OpenAPI specification. ## Overview The API documentation is generated from an OpenAPI spec using `docusaurus-plugin-openapi-docs`. The workflow involves: 1. Downloading the latest `openapi.json` from production 2. Replacing the local spec file 3. Regenerating the API documentation pages ## File Locations | Purpose | Path | |---------|------| | OpenAPI spec (source) | `docs/docs/reference/openapi.json` | | Generated API docs | `docs/docs/reference/api/*.api.mdx` | | Generated sidebar | `docs/docs/reference/api/sidebar.ts` | | Docusaurus config | `docs/docusaurus.config.ts` | ## Steps ### 1. Download the OpenAPI spec from production ```bash curl -s "https://cloud.agenta.ai/api/openapi.json" -o docs/docs/reference/openapi.json ``` **Important:** The file should be saved in **minified format** (single line, no pretty-printing) to match the existing format in the repository. The curl command above preserves the original format from the server. ### 2. Install dependencies (if needed) If this is a fresh clone or dependencies haven't been installed: ```bash cd docs npm install ``` ### 3. Clean existing generated API docs ```bash cd docs npm run clean-api-docs -- agenta ``` The `agenta` argument refers to the OpenAPI config ID defined in `docusaurus.config.ts`. ### 4. Regenerate API docs ```bash cd docs npm run gen-api-docs -- agenta ``` This will generate: - Individual `.api.mdx` files for each endpoint - `.tag.mdx` files for API categories - `sidebar.ts` for navigation ### 5. Verify the changes Optionally, start the dev server to preview: ```bash cd docs npm run start ``` Then visit `http://localhost:5000/docs/reference/api` to verify the API docs render correctly. ## Commit Guidelines When committing these changes: 1. **First commit** - API docs update: ``` docs(api): update OpenAPI spec from production ``` 2. Include all changed files: - `docs/docs/reference/openapi.json` - `docs/docs/reference/api/*.api.mdx` - `docs/docs/reference/api/*.tag.mdx` - `docs/docs/reference/api/sidebar.ts` ## Troubleshooting ### "missing required argument 'id'" error The clean and generate commands require the config ID. Use: ```bash npm run clean-api-docs -- agenta npm run gen-api-docs -- agenta ``` ### "docusaurus: not found" error Run `npm install` in the `docs/` directory first. ### Deprecation warning about onBrokenMarkdownLinks This is a known warning and can be safely ignored. It will be addressed in a future Docusaurus v4 migration. ## Related Configuration The OpenAPI plugin is configured in `docs/docusaurus.config.ts`: ```typescript [ "docusaurus-plugin-openapi-docs", { id: "openapi", docsPluginId: "classic", config: { agenta: { specPath: "docs/reference/openapi.json", outputDir: "docs/reference/api", downloadUrl: "https://raw.githubusercontent.com/Agenta-AI/agenta/refs/heads/main/docs/docs/reference/openapi.json", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", }, }, }, }, ], ```