--- name: document-ai-hero-api description: "Generate or update documentation for the AI Hero API by reading the source code at ~/repos/ai/course-builder. Use when user wants to document, update docs for, or understand the AI Hero API endpoints." disable-model-invocation: true --- # Document AI Hero API Generate/update API documentation by reading the AI Hero source code. ## Prerequisites: Ensure Read Permissions Before reading the AI Hero source, update `.claude/settings.local.json` to include read permission for the course-builder repo. Add this entry to the `permissions.allow` array if not already present: ``` "Read(/home/mattpocock/repos/ai/course-builder/**)" ``` ## Workflow ### 1. Scan API Source Read the AI Hero API source at `~/repos/ai/course-builder/apps/ai-hero/src/`. Focus on: - **REST endpoints**: `src/app/api/` — each folder is a route segment. Read every `route.ts` file. - **tRPC routers**: `src/trpc/api/routers/` — each file is a typed RPC router. - **Database schema**: `src/db/schema.ts` — table definitions and relationships. - **Auth**: `src/app/api/auth/` and any middleware files for auth patterns. ### 2. For Each Endpoint, Capture - HTTP method + path (REST) or procedure name + type (tRPC query/mutation) - Request body / query params with TypeScript types - Response shape with TypeScript types - Auth requirements (public, Bearer token, session, HMAC) - Side effects (Inngest events, webhooks, S3 uploads) ### 3. Cross-Reference with This Project Check how endpoints are consumed in this codebase: - `app/services/ai-hero-auth-service.ts` — OAuth device flow - `app/services/ai-hero-upload-service.ts` — Upload & post creation - `app/features/upload-manager/` — SSE client for progress Flag any endpoints used here that have changed in the source. ### 4. Write Documentation Output to `docs/ai-hero-api.md` in this repo. Follow the structure in [TEMPLATE.md](TEMPLATE.md). ### 5. Summary After updating, print a short summary of: - Number of endpoints documented - Any breaking changes detected vs. current usage - Any new endpoints not yet consumed by this project