{"id":"42f4992d-6293-46d6-ba34-c58fe3a94fd6","slug":"repolens","kind":"mcp","name":"repolens","summary":"Your architecture docs are already outdated. RepoLens fixes that. It scans your repo, generates living architecture docs, and publishes them to Notion, Confluence, GitHub Wiki, Obsidian, or Markdown o","owner":"CHAPIBUNNY","repoUrl":"https://github.com/CHAPIBUNNY/repolens","license":"MIT","licenseTier":"permissive","trust":"community","stars":6,"match":null,"fewStars":false,"format":"mcp","createdAt":"2026-03-08T17:11:07.000Z","addedAt":"2026-10-20T00:47:28.795Z","logoUrl":"https://avatars.githubusercontent.com/u/162579999?u=9600bb686fb0ff84786726b1345d87268425ebf6&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["files-documents","writing","developer-tools"],"tags":["ai-documentation","architecture","architecture-diagram","cli","codebase-analysis","confluence","dependency-graph","developer-tools"],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-20T14:57:26.562Z","sample":false,"url":"https://conduits.dev/tools/repolens","language":"JavaScript","transports":["stdio"],"install":{"npm":"@chappibunny/repolens"},"requirements":{"env":[{"name":"REPOLENS_WORKSPACE","secret":false,"required":false,"description":"Absolute path of the repository to read. Defaults to the process working directory. Every tool path must stay inside this directory."}],"upstreamMayCharge":false},"tools":null,"readme":"```\n    ██████╗ ███████╗██████╗  ██████╗ ██╗     ███████╗███╗   ██╗███████╗\n    ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██║     ██╔════╝████╗  ██║██╔════╝\n    ██████╔╝█████╗  ██████╔╝██║   ██║██║     █████╗  ██╔██╗ ██║███████╗\n    ██╔══██╗██╔══╝  ██╔═══╝ ██║   ██║██║     ██╔══╝  ██║╚██╗██║╚════██║\n    ██║  ██║███████╗██║     ╚██████╔╝███████╗███████╗██║ ╚████║███████║\n    ╚═╝  ╚═╝╚══════╝╚═╝      ╚═════╝ ╚══════╝╚══════╝╚═╝  ╚═══╝╚══════╝\n                        Repository Intelligence CLI\n```\n\n[![npm version](https://img.shields.io/npm/v/@chappibunny/repolens)](https://www.npmjs.com/package/@chappibunny/repolens)\n[![VS Code Extension](https://img.shields.io/badge/VS_Code-Marketplace-007ACC?logo=visualstudiocode&logoColor=white)](https://marketplace.visualstudio.com/items?itemName=repolensdox.repolensdox)\n[![Tests](https://img.shields.io/github/actions/workflow/status/CHAPIBUNNY/repolens/test.yml?label=tests)](https://github.com/CHAPIBUNNY/repolens/actions/workflows/test.yml)\n[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)\n[![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.CHAPIBUNNY%2Frepolens-6E56CF)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.CHAPIBUNNY/repolens)\n[![Gallery](https://img.shields.io/badge/Gallery-26_real_repos-0B5FFF)](https://chapibunny.github.io/repolens/)\n[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=repolens&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjaGFwcGlidW5ueS9yZXBvbGVucyIsIm1jcCJdfQ%3D%3D)\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=repolens&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40chappibunny%2Frepolens%22%2C%22mcp%22%5D%7D)\n\n**Links:** [Gallery](https://chapibunny.github.io/repolens/) · [npm](https://www.npmjs.com/package/@chappibunny/repolens) · [MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.CHAPIBUNNY/repolens) · [MCP Rush](https://mcprush.com/to/chapibunny-repolens-mcp?ref=badge) · [VS Code extension](https://marketplace.visualstudio.com/items?itemName=repolensdox.repolensdox) · [GitHub Action](action.yml)\n\n**Your architecture docs are already outdated.** RepoLens fixes that.\n\nRepoLens scans your repository, generates living architecture documentation, and publishes it to Notion, Confluence, GitHub Wiki, Obsidian, or Markdown — automatically on every push. Engineers get technical docs. Stakeholders get readable system overviews. Nobody writes a word.\n\n> Stable as of v1.0 — [API guarantees](docs/STABILITY.md) · [Security hardened](SECURITY.md) · version from [`package.json`](package.json)\n\n---\n\n## 🎬 Demo\n\n> **Try it now** — no installation required. `npx @chappibunny/repolens demo` previews the repository you point it at. It detects common languages (Python, Go, Rust, Java, JavaScript/TypeScript, and others). If the scan matches no source files, demo exits 2 and does not write empty docs. Code health scores JavaScript/TypeScript, Python, and Go.\n\n**[See it on real repos](https://chapibunny.github.io/repolens/)** — architecture pages RepoLens generated for Express, FastAPI, Django, Gin, mdBook, and other public projects. Deterministic mode, no API keys.\n\n🎬 **[Watch Demo Video](https://www.loom.com/share/8e077624e69f41319fd93acbbe03871e)** — See RepoLens generate docs in 60 seconds\n\n<table>\n<tr>\n<td width=\"50%\"><img src=\"assets/notion-screenshot.png\" alt=\"Notion output\" /></td>\n<td width=\"50%\"><img src=\"assets/confluence-screenshot.png\" alt=\"Confluence output\" /></td>\n</tr>\n<tr>\n<td align=\"center\"><em>Notion</em></td>\n<td align=\"center\"><em>Confluence</em></td>\n</tr>\n</table>\n\n<details>\n<summary>🔍 <strong>Supported Languages</strong> (16 auto-detected)</summary>\n\n`JavaScript` `TypeScript` `Python` `Go` `Rust` `Java` `C` `C++` `C#` `Ruby` `PHP` `Swift` `Kotlin` `Scala` `Shell` `SQL`\n\nPlus framework detection: **Django** · **FastAPI** · **Flask** · **Gin** · **Echo** · **Fiber** · **Actix** · **Rocket** — and all major JS frameworks (React, Next.js, Vue, Angular, Express, NestJS, Svelte, etc.)\n</details>\n\n---\n\n## 🚀 Quick Start (60 seconds)\n\n**Step 1: Install** (Node.js 18+)\n```bash\nnpm install @chappibunny/repolens\n```\n\n**Step 2: Initialize** (creates config + GitHub Actions workflow)\n```bash\nnpx @chappibunny/repolens init\n```\n\n**Step 3: Configure Publishing** (optional, skip if using Markdown only)\n\nFor Notion:\n```bash\n# Edit .env and add:\nNOTION_TOKEN=secret_xxx\nNOTION_PARENT_PAGE_ID=xxx\n```\n\nFor Confluence:\n```bash\n# Edit .env and add:\nCONFLUENCE_URL=https://your-company.atlassian.net/wiki\nCONFLUENCE_EMAIL=your-email@example.com\nCONFLUENCE_API_TOKEN=your-token\nCONFLUENCE_SPACE_KEY=DOCS\n```\n\n**Step 4: Publish**\n```bash\nnpx @chappibunny/repolens publish\n```\n\n**Done!** Numbered notes and the Markdown publisher’s files are in `.repolens/`. Notion, Confluence, GitHub Wiki, and Obsidian publish only when you configure them. Obsidian needs `obsidian.vault` in `.repolens.yml` and does not use an API key.\n\n**🔄 Upgrading from v0.3.0 or earlier?**\nRun `npx @chappibunny/repolens migrate` to automatically update your workflow files. See [MIGRATION.md](docs/MIGRATION.md) for details.\n\n---\n\n## 📋 What It Generates\n\n**17 document types** for three audiences — no manual writing required:\n\n| Audience | Documents |\n|---|---|\n| **Stakeholders** | Executive Summary |\n| **Mixed** | System Overview · Business Domains · Route Map · Data Flows · Change Impact · System Map · Architecture Drift · Code Health |\n| **Engineers** | Architecture Overview · Module Catalog · API Surface · Developer Onboarding · GraphQL Schema · TypeScript Type Graph · Dependency Graph · Security Hotspots |\n\n**Two modes:** Deterministic (free, fast, always works) or AI-Enhanced (optional — GitHub Models, OpenAI, Anthropic, Google, Azure, Ollama).\n\n---\n\n## ✨ Why RepoLens\n\n| | |\n|---|---|\n| 🤖 **Autonomous** | Runs on every push via GitHub Actions — docs stay evergreen |\n| 👥 **Multi-Audience** | Technical docs + stakeholder-readable overviews from one scan |\n| 📤 **Multi-Publisher** | Notion, Confluence, GitHub Wiki, Obsidian, Markdown — together or one at a time |\n| 🧠 **AI-Assisted** | Optional AI with zero-hallucination policy (structured context only) |\n| 🔍 **Smart Detection** | Frameworks, domains, data flows, dependencies, drift — all automatic |\n| 🔌 **Extensible** | Plugin system for custom renderers, publishers, and hooks |\n| 🛡️ **Secure** | Secret detection, injection prevention, rate limiting, supply chain hardening |\n| ⚡ **Fast** | Handles repos up to 50k files with performance guardrails |\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install @chappibunny/repolens\n```\n\nOr try instantly without installing: `npx @chappibunny/repolens demo`\n\nFor alternative methods, see [INSTALLATION.md](docs/INSTALLATION.md).\n\n---\n\n## 🎨 VS Code Extension\n\n**View your architecture directly in VS Code** — browse modules, visualize dependencies, and explore your codebase structure without leaving the editor.\n\n**Install from Marketplace:**\n```\next install repolensdox.repolensdox\n```\n\n[**→ Get it on Visual Studio Marketplace**](https://marketplace.visualstudio.com/items?itemName=repolensdox.repolensdox)\n\n**Features:**\n- 🏗️ **Architecture Explorer** — Tree view of your system structure\n- 📊 **Dependency Visualizer** — Interactive dependency graphs\n- 📁 **Module Browser** — Navigate modules by domain and function\n- 🔍 **Command Palette** — Quick access to architecture insights\n- 📈 **System Metrics** — Real-time architecture health indicators\n\nThe extension reads your `.repolens.yml` configuration and provides an interactive UI for exploring the documentation that RepoLens generates.\n\n---\n\n## 🎓 Onboarding Guide\n\nStep-by-step setup for publishers, AI features, Notion, Confluence, GitHub Wiki, Obsidian, Discord, and CI/CD automation.\n\n**[→ Full Onboarding Guide](docs/ONBOARDING.md)**\n\n---\n\n## 🎮 Commands\n\n| Command | Description |\n|---|---|\n| `npx @chappibunny/repolens` | Show help. A bare invocation does not publish |\n| `npx @chappibunny/repolens init` | **Interactive wizard** — configure publishers, AI, credentials |\n| `npx @chappibunny/repolens init --quick` | Markdown-only setup. Globs follow the detected language |\n| `npx @chappibunny/repolens init --help` | Flags for that command. Same pattern for every command below |\n| `npx @chappibunny/repolens publish` | Scan, generate, and publish documentation |\n| `npx @chappibunny/repolens publish --strict` | Exit 2 when a configured publisher is missing credentials |\n| `npx @chappibunny/repolens demo` | Local preview — no API keys. Exits 2 when 0 files match |\n| `npx @chappibunny/repolens doctor` | Validate your setup, including that scan globs match files |\n| `npx @chappibunny/repolens watch` | Auto-regenerate docs on file changes. Exits 2 if `module_roots` are missing or `scan.include` matches no files |\n| `npx @chappibunny/repolens migrate` | Upgrade from v0.3.0 workflows ([details](docs/MIGRATION.md)) |\n| `npx @chappibunny/repolens uninstall` | Remove all RepoLens files (config, docs, workflow) |\n| `npx @chappibunny/repolens uninstall --force` | Remove without confirmation prompt |\n| `npx @chappibunny/repolens feedback` | Send feedback to the team |\n| `npx @chappibunny/repolens mcp` | Start the stdio MCP server (`repolens-mcp` is the same server) |\n| `npx @chappibunny/repolens badge` | shields.io code-health JSON, SVG, or markdown. Exits 2 when nothing is scored |\n| `npx @chappibunny/repolens comment --base <ref> --head <ref>` | Architecture diff (files, modules, dependencies, health delta, new hotspots) |\n\n> **Note:** If you installed globally with `npm install -g @chappibunny/repolens`, you can use the shorter `repolens <command>` form. Init's next-steps text uses that shorter form when the command on your PATH is the global install.\n> **Warning:** Do not run bare `npx repolens` — there is an unrelated `repolens@0.0.1` placeholder package on npm. Always use the scoped name `@chappibunny/repolens`.\n\n### Exit codes\n\n| Code | Meaning |\n|---|---|\n| `0` | Success, including a cancelled wizard or help with no other work |\n| `1` | Runtime error, or an unknown command |\n| `2` | Invalid flags, missing config, target directory not found, a failed `doctor` check (including 0 files matched), `demo` or `publish` scanned 0 files, `watch` has nothing to watch (missing `module_roots`, or `scan.include` matches no files), `badge` scored 0 source files, `comment` is missing a base or head ref, `publish --strict` is missing publisher credentials, or `feedback` has no terminal |\n\n`--target` must already exist. A missing path exits 2 with `Target directory not found: <path>` before any scan. `repolens <command> --help` prints that command's flags. The ASCII banner is omitted when stdout is not a terminal or `CI` is set.\n\n---\n\n## MCP server\n\nCursor, Cline, Claude Desktop, Claude Code, and VS Code Copilot can call RepoLens over stdio. The server is read-only except for `generate_docs`, which writes Markdown inside the workspace. Deterministic mode does not use the network. Paths cannot leave the workspace root.\n\n[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=repolens&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjaGFwcGlidW5ueS9yZXBvbGVucyIsIm1jcCJdfQ%3D%3D)\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=repolens&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40chappibunny%2Frepolens%22%2C%22mcp%22%5D%7D)\n\n[![RepoLens MCP server](https://mcprush.com/badge/chapibunny-repolens-mcp/card.svg)](https://mcprush.com/to/chapibunny-repolens-mcp?ref=badge)\n\nCopy-paste configs for Cursor, Claude Desktop, and VS Code are in [docs/MCP.md](docs/MCP.md).\n\n```json\n{\n  \"mcpServers\": {\n    \"repolens\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@chappibunny/repolens\", \"mcp\"]\n    }\n  }\n}\n```\n\n### Use with Cline\n\nOpen Cline → MCP Servers → Installed → Configure MCP Servers, paste this into `cline_mcp_settings.json`, and save:\n\n```json\n{\"mcpServers\":{\"repolens\":{\"command\":\"npx\",\"args\":[\"-y\",\"@chappibunny/repolens\",\"mcp\"]}}}\n```\n\nCline starts the server with no install step (Node 18+ required). It reads the directory the server starts in. To point it at a specific repo, add `\"env\": {\"REPOLENS_WORKSPACE\": \"/absolute/path/to/repo\"}`. Six tools appear: `get_system_overview`, `list_modules`, `get_api_surface`, `get_dependency_graph`, `get_architecture_diff`, `generate_docs`. Step-by-step agent instructions are in [llms-install.md](llms-install.md).\n\nIf `npx` reports `Unknown command: mcp`, an `.npmrc` with `min-release-age` (or an old npx cache) resolved a release older than 1.14.0. Use `npx -y @chappibunny/repolens@latest mcp` or clear `~/.npm/_npx`.\n\n## GitHub Action\n\n`action.yml` is a composite action named **RepoLens Architecture Docs**. `publish`, `demo`, and `doctor` run the published npm package (`npx --yes @chappibunny/repolens@1.15.3`). `comment` and `badge` run from the action checkout. Inputs are `command` (`publish`, `demo`, `doctor`, `comment`, or `badge`), `config`, `node-version`, `pr-comment`, `version`, `badge-out`, `badge-url`, and `badge-link`.\n\nPublishing docs (the npm package at tag `v1.15.3`):\n\n```yaml\nname: Architecture docs\non:\n  pull_request:\n  push:\n    branches: [main]\npermissions:\n  contents: read\n  pull-requests: write\njobs:\n  docs:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@9f698171ed81b15d1823a05fc7211befd50c8ae0 # v6.0.3\n      - uses: CHAPIBUNNY/repolens@v1.15.3\n        with:\n          command: publish\n          config: .repolens.yml\n          node-version: \"20\"\n          pr-comment: ${{ github.event_name == 'pull_request' && 'true' || 'false' }}\n```\n\nOn `v1.15.2`, `pr-comment: true` runs the architecture diff from the action checkout and turns the published package's older short summary off. The diff lists modules, files, dependencies, the code-health delta, and new hotspots. It edits one sticky comment (`<!-- repolens:architecture-diff -->`) instead of adding a new comment each push. The footer is \"Generated by RepoLens\" and links to this repository and the [gallery](https://chapibunny.github.io/repolens/). Tag `v1.15.1` does not contain `command: comment`. Pin `v1.15.3` or a commit SHA in production.\n\n```yaml\nname: RepoLens architecture comment\non:\n  pull_request:\npermissions:\n  contents: read\n  pull-requests: write\njobs:\n  architecture:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@9f698171ed81b15d1823a05fc7211befd50c8ae0 # v6.0.3\n        with:\n          fetch-depth: 0\n      - uses: CHAPIBUNNY/repolens@v1.15.3\n        with:\n          command: comment\n```\n\n`contents: read` is only so checkout can read the repository. The comment itself uses `GITHUB_TOKEN` with `pull-requests: write`. No personal access token. Fork pull requests cannot write comments with that token. RepoLens skips the comment and writes the same markdown to the job summary. A 403 is handled the same way. `fetch-depth: 0` is required so both the base and head commits are on disk.\n\n`pr-comment: true` on `publish`, `demo`, or `doctor` (when the action ref contains this change) runs the same comment after the package and turns the package's older comment off, so the pull request still gets one comment.\n\nThe action is listed on the GitHub Marketplace only after a release is published with **Publish this Action to the GitHub Marketplace** checked. Those steps are in [docs/RELEASE.md](docs/RELEASE.md). The tag `v1.15.3` has to exist before `uses: CHAPIBUNNY/repolens@v1.15.3` resolves, and `@chappibunny/repolens@1.15.3` has to be on npm before `publish` can install it. `command: comment` and `command: badge` do not install that package.\n\n## Add the badge to your repo\n\nGenerated Markdown includes this line unless `.repolens.yml` sets `branding: false` (or `branding.badge: false`). Add the same badge to a repository README:\n\n```markdown\n[![Docs by RepoLens](https://img.shields.io/badge/Docs%20by-RepoLens-0B5FFF)](https://github.com/CHAPIBUNNY/repolens) · [Examples](https://chapibunny.github.io/repolens/)\n```\n\nGenerated docs also link to the [gallery](https://chapibunny.github.io/repolens/) after the badge.\n\n## Code health badge\n\n`repolens badge` scores JavaScript, TypeScript, Python, and Go, then prints a [shields.io endpoint](https://shields.io/badges/endpoint-badge) JSON document. The message is the average code-health score. It exits 2 when no source files were scored, and it does not print 100 for an empty tree.\n\n```bash\nnpx @chappibunny/repolens badge\nnpx @chappibunny/repolens badge --format svg --out repolens-badge.svg\nnpx @chappibunny/repolens badge --format markdown --url https://USER.github.io/REPO/repolens-badge.json --link https://USER.github.io/REPO/\n```\n\nHost the JSON where shields.io can fetch it. The action writes both files without an npm publish:\n\n```yaml\nname: RepoLens badge\non:\n  push:\n    branches: [main]\npermissions:\n  contents: read\njobs:\n  badge:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@9f698171ed81b15d1823a05fc7211befd50c8ae0 # v6.0.3\n      - uses: CHAPIBUNNY/repolens@v1.15.3\n        with:\n          command: badge\n          badge-url: https://USER.github.io/REPO/repolens-badge.json\n          badge-link: https://USER.github.io/REPO/\n      - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0\n        with:\n          name: repolens-badge\n          path: |\n            repolens-badge.json\n            repolens-badge.svg\n```\n\nCommit `repolens-badge.json` to `gh-pages` (or any public HTTPS path) if you want a live shields.io badge. `badge-url` is that public URL. The job summary prints:\n\n```markdown\n[![code health](https://img.shields.io/endpoint?url=https%3A%2F%2FUSER.github.io%2FREPO%2Frepolens-badge.json&style=flat-square)](https://USER.github.io/REPO/)\n```\n\nGallery repositories already publish this. Each one has a [score page](https://chapibunny.github.io/repolens/) with the snippet, `badge.json`, and a square SVG. The badge links back to that score page. An explained page titled \"<repo> architecture explained\" is indexed beside it (`sitemap.xml`, `robots.txt`, Open Graph, canonical URL, JSON-LD `SoftwareSourceCode`). `llms.txt` and `llms-full.txt` sit at the [site root](https://chapibunny.github.io/repolens/llms.txt) and in this repository.\n\n---\n\n## 📸 Example Output\n\n### System map\n\nPublished system maps are Unicode diagrams drawn from import edges. RepoLens does not emit Mermaid.\n\nThe publisher set is Notion, Confluence, GitHub Wiki, Obsidian, and Markdown (`src/publishers`, 7 files). 1.14.0 adds the MCP server, the Marketplace action, and the docs badge. 1.14.1 sets the registry name to `io.github.CHAPIBUNNY/repolens`. 1.14.2 adds the gallery link to the badge line, `glama.json`, and `CITATION.cff`. 1.14.3 adds Cline setup docs and `llms-install.md`. 1.15.0 detects repository languages in `init --quick`, refuses empty scans, and adds per-command help. 1.15.1 makes `watch` exit 2 when those globs match nothing, and scores code health for Python and Go as well as JavaScript and TypeScript. 1.15.2 reads Python and Go imports in the dependency graph, skips comment and type-only imports, adds `repolens badge` and `repolens comment`, and adds gallery explained pages plus `llms.txt`. 1.15.3 skips Python `TYPE_CHECKING` imports, omits Node.js built-ins from external packages, groups Go hubs by package, and ignores test files as architecture-pattern evidence. Layout and counts are in [ARCHITECTURE.md](docs/ARCHITECTURE.md).\n\n### System Overview (Technical Profile)\n\nGenerated from your `package.json`:\n\n```markdown\n## Technical Profile\n\n**Tech Stack**: Next.js, React  \n**Languages**: TypeScript  \n**Build Tools**: Vite, Turbo  \n**Testing**: Vitest, Playwright  \n**Architecture**: Medium-sized modular structure with 42 modules  \n**API Coverage**: 18 API endpoints detected  \n**UI Pages**: 25 application pages detected  \n```\n\n### Architecture Diff in PRs\n\nWhen you open a pull request, RepoLens posts:\n\n```markdown\n## 📐 Architecture Diff\n\n**Modules Changed**: 3\n**New Endpoints**: 2\n**Routes Modified**: 1\n\n### New API Endpoints\n- POST /api/users/:id/verify\n- GET /api/users/:id/settings\n\n### Modified Routes\n- /dashboard → components/Dashboard.tsx (updated)\n```\n\n---\n\n## 🔒 Privacy & Security\n\n- **Telemetry is opt-in and disabled by default** — no code, secrets, or personal data leaves your machine. See [TELEMETRY.md](docs/TELEMETRY.md).\n- **Defense-in-depth security** — input validation, secret detection (15+ patterns), rate limiting, injection prevention, supply chain hardening. See [SECURITY.md](SECURITY.md).\n- **Report vulnerabilities** to trades@rabitaitrades.com (not public issues). Response within 48 hours.\n\n---\n\n## 📚 Documentation\n\n| Guide | Description |\n|---|---|\n| [Onboarding Guide](docs/ONBOARDING.md) | Step-by-step setup: publishers, AI, Notion, Confluence, GitHub Wiki, Obsidian, Discord |\n| [Configuration](docs/CONFIGURATION.md) | Complete `.repolens.yml` schema and examples |\n| [Environment Variables](docs/ENVIRONMENT.md) | All env vars by publisher and feature |\n| [Architecture](docs/ARCHITECTURE.md) | Pipeline diagram, project structure |\n| [Development](docs/DEVELOPMENT.md) | Setup, tests, and the release process |\n| [Security](SECURITY.md) | Threat model, secret detection, validation layers |\n| [Telemetry](docs/TELEMETRY.md) | Opt-in privacy-first usage analytics |\n| [Troubleshooting](docs/TROUBLESHOOTING.md) | Common issues and fixes |\n| [Migration](docs/MIGRATION.md) | Upgrading from v0.3.0 or earlier |\n| [Stability](docs/STABILITY.md) | API contract and semver guarantees |\n| [MCP server](docs/MCP.md) | stdio server for Cursor, Claude, and VS Code |\n\n---\n\n## 🤝 Contributing\n\n**Ways to help:**\n- **Try it out**: Install and use in your projects\n- **Report issues**: Share bugs, edge cases, or UX friction\n- **Request features**: Tell us what's missing\n- **Build plugins**: Extend RepoLens with custom renderers and publishers\n- **Share feedback**: `npx @chappibunny/repolens feedback`\n\n---\n\n## 🗺️ Roadmap\n\nv1.0+ features complete — CLI, config schema, and plugin interface are frozen.\n\n**Completed:**\n- [x] VS Code extension ([available on Marketplace](https://marketplace.visualstudio.com/items?itemName=repolensdox.repolensdox))\n- [x] Obsidian vault publisher (local notes with wikilinks and frontmatter)\n- [x] MCP server (`repolens mcp`) for Cursor, Claude, and VS Code\n- [x] GitHub Action `RepoLens Architecture Docs` (`action.yml`)\n- [x] Docs by RepoLens badge on generated Markdown\n\n**Next:**\n- [ ] GitHub App for automated setup and status checks\n- [ ] Slack notifications\n- [ ] Custom webhook support\n- [ ] Cross-repository architecture analysis\n- [ ] Security boundary validation\n- [ ] Interactive HTML documentation output\n- [ ] Architecture decision records (ADR) generation\n\nSee [ROADMAP.md](docs/ROADMAP.md) for detailed planning.\n\n---\n\n## 📄 License\n\nMIT\n\n---\n\n## 💬 Support & Contact\n\n- **Troubleshooting**: [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) — installation, config, publishing, AI, and CI/CD issues\n- **Diagnostics**: Run `npx @chappibunny/repolens doctor` to validate your setup\n- **Issues**: [GitHub Issues](https://github.com/CHAPIBUNNY/repolens/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/CHAPIBUNNY/repolens/discussions)\n- **Email**: Contact repository maintainers\n\n---\n\n<div align=\"center\">\n\n**Made with ❤️ by RepoLens for developers who care about architecture**\n\n</div>\n"}