Diagram.md•14.2 kB
┌───────────────────────┐
│ Project Repo │
│ ┌───────────────┐ │
│ │ app/api/* │ │
│ │ (Next.js REST) │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ api/*.ts │ │
│ │ (API clients + │ │
│ │ GraphQL funcs) │ │
│ └───────────────┘ │
└───────────────┬───────┘
│
▼
┌─────────────────┐
│ Crawler (api) │
│----------------│
│ - Reads all API │
│ files & routes│
│ - Detects REST, │
│ API clients, │
│ GraphQL │
│ - Extracts gql │
│ strings │
└─────────┬───────┘
│
▼
┌─────────────────┐
│ Generator/hooks │
│----------------│
│ - Receives Api │
│ routes │
│ - Generates │
│ typed hooks │
│ - Supports SWR, │
│ SWR Infinite, │
│ React Query, │
│ GraphQL │
└─────────┬───────┘
│
▼
┌────────────────┐
│ hooks.ts │
│----------------│
│ - Ready-to-use │
│ typed hooks │
│ - Auto imports │
│ - Infinite scroll│
│ - GraphQL inline│
└────────────────┘
┌─────────────────────────────┐
│ Developer Pushes │
│ Code to GitHub Repo │
└─────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ GitHub Actions Workflow Run │
│ (MCP Pipeline) │
└─────────────┬──────────────┘
│
┌─────────────────┴─────────────────┐
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Checkout Code │ │ Restore Cache │
│ (actions/ │ │ ─ pnpm │
│ checkout) │ │ ─ ts-morph │
└───────────────┘ └───────────────┘
│ │
└──────────────┬────────────────────┘
▼
┌────────────────────┐
│ Install Dependencies │
│ (pnpm install) │
└────────────┬──────────┘
│
▼
┌────────────────────┐
│ MCP Server Runs │
│ (index.ts CLI) │
└────────────┬────────┘
│
┌─────────────────────┴─────────────────────┐
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Crawl API │ │ Analyze Pages │
│ (ts-morph AST) │ │ Detect Hooks, │
│ Reuses cached │ │ Infer Render │
│ AST if exists │ │ Mode │
└───────────────┘ └───────────────┘
│ │
└──────────────┬────────────────────────────┘
▼
┌─────────────────────┐
│ Generate Hooks & │
│ Documentation │
│ (mcp-docs + summary)│
└────────────┬────────┘
│
▼
┌─────────────────────┐
│ Optional Commit │
│ Updated Hooks & Docs│
└─────────────────────┘
┌─────────────────────────────┐
│ Developer Writes Code │
│ - page.tsx files │
│ - api/*.ts hooks │
│ - Optional @renderMode │
└─────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Run MCP Locally │
│ Command: pnpm start --all │
│ or individual flags: │
│ --crawl --hooks --docs │
└─────────────┬──────────────┘
│
┌──────────────┴───────────────┐
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Crawl API │ │ Analyze Pages │
│ - Detect all │ │ - Detect hooks│
│ API routes │ │ - Infer render│
│ - ts-morph AST│ │ mode │
└───────────────┘ │ - Check for │
│ @renderMode │
└───────────────┘
│
▼
┌─────────────────────┐
│ Generate Docs & Hooks│
│ - hooks/*.ts │
│ - mcp-docs/*.md │
│ - summary.md │
└────────────┬────────┘
│
┌──────────────────────────────────┴─────────────────────────────────┐
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Developer Reviews │ │ Use Hooks in Pages │
│ - page docs │ │ - import hooks.ts │
│ - suggested render │ │ - call API hooks │
│ mode │ │ (CSR/SSR/ISR) │
└─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Optional Override │ │ Push to Repo & CI │
│ - Add @renderMode │ │ MCP pipeline runs │
│ in page.tsx │ │ with caching │
└─────────────────────┘ └─────────────────────┘
┌─────────────────────────────┐
│ Developer Writes Code │
│ - page.tsx files │
│ - api/*.ts hooks │
│ - Optional @renderMode │
└─────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Run MCP Locally │
│ Command: pnpm start --all │
│ Flags: --crawl --hooks --docs│
└─────────────┬──────────────┘
│
┌──────────┴───────────┐
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Crawl API │ │ Analyze Pages │
│ - Detect all │ │ - Detect hooks│
│ API routes │ │ - Infer render│
│ - ts-morph AST│ │ mode │
└───────────────┘ │ - Check @renderMode │
└───────────────┘
│ │
└─────────────┬────────┘
▼
┌─────────────────────┐
│ Generate Hooks & Docs│
│ - hooks/*.ts │
│ - mcp-docs/*.md │
│ - summary.md │
└────────────┬────────┘
│
┌──────────────────────┴───────────────────────┐
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Developer Reviews │ │ Use Hooks in Pages │
│ - page docs │ │ - import hooks.ts │
│ - suggested render │ │ - call API hooks │
│ mode │ │ (CSR/SSR/ISR) │
└─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Optional Override │ │ Push to Repo & CI │
│ - Add @renderMode │ │ MCP pipeline runs │
│ in page.tsx │ │ with caching │
└─────────────────────┘ └─────────┬───────────┘
│
▼
┌─────────────────────────────┐
│ GitHub Actions / CI/CD │
│ - Checkout code │
│ - Restore caches: │
│ - pnpm store │
│ - ts-morph AST │
│ - Install dependencies │
│ - Run MCP pipeline │
│ - Commit generated docs/hooks│
└─────────────────────────────┘