This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
yarn install # REQUIRED — must use yarn (not npm) for workspace resolution
npm run build # TypeScript compilation (tsc) + config schema generation
npm run test # lint + build + tests with coverage (via pretest hook)
npm run jasmine # tests only — no lint/build/coverage
npm run lint # ESLint (flat config in eslint.config.mjs)To run a single test: edit spec/jasmine-runner.ts to filter spec_files, then npm run jasmine. Tests are Jasmine specs under spec/ (unit + acceptance) and within individual packages.
Workspace package — part of yarn workspaces and lerna. Built automatically by npm run build via the build:mcp script. Has its own tsconfig.json (ES2022/ESM, separate from root CJS config).
npm run build:mcp # build MCP server (also runs as part of npm run build)
cd packages/igniteui-mcp/igniteui-doc-mcp
npm run build:db # build SQLite DB from compressed docs (manual step)
npm run pipeline:angular # incremental doc pipeline (also: react, blazor, webcomponents)
npm run pipeline:angular:full # full rebuild pipeline
npm run inspector # test with MCP InspectorMonorepo managed with lerna + yarn workspaces. Five packages:
| Package | npm | Path |
|---|---|---|
| CLI (entry point) | igniteui-cli |
packages/cli |
| Core (shared logic) | @igniteui/cli-core |
packages/core |
| Angular Templates | @igniteui/angular-templates |
packages/igx-templates |
| Angular Schematics | @igniteui/angular-schematics |
packages/ng-schematics |
| MCP Server | @igniteui/mcp-server |
packages/igniteui-mcp/igniteui-doc-mcp |
Core is the dependency root — changes to packages/core affect all other packages. Always rebuild the full monorepo after core changes.
- TypeScript compiled with
tscdirectly (no bundler). Two configs:tsconfig.json(dev) andtsconfig-pack.json(production). packages/core/types/Config.tsis source of truth for config schema. Modifying it requiresnpm run config-schema(included innpm run build).- Monorepo targets ES6/CommonJS. MCP server targets ES2022 with Node16 module resolution (
"type": "module"). - Path aliases in tsconfig:
@igniteui/cli-core→packages/core,@igniteui/angular-templates→packages/igx-templates, etc.
- Handlebars for template processing
- Templates in
packages/cli/templates/**/files/andpackages/igx-templates/ - Component/template IDs (e.g., "grid", "combo") used by
ig addcommand - Default framework is jQuery when not specified
McpServerfrom@modelcontextprotocol/sdkwith stdio transport- Two modes: Remote (default, proxies to
DOCS_BACKEND_URL) and Local (--localflag, uses sql.js WASM with FTS4) - Framework detection via component prefix:
Igx→ Angular,Igr→ React,Igc→ Web Components,Igb→ Blazor - DB build uses
better-sqlite3(native, dev only); runtime usessql.js(WASM) - Doc compression uses OpenAI API (
OPENAI_API_KEYin.env) - Git submodules under
packages/igniteui-mcp/igniteui-doc-mcp/provide documentation source repos - Consult
packages/igniteui-mcp/igniteui-doc-mcp/docs/knowledgebase.mdbefore debugging pipeline problems
- yarn for install, npm for scripts
- CI runs on Node 20 with
yarn --frozen-lockfile - ESLint:
no-var,no-eval,prefer-const,no-console(off in test files),no-duplicate-imports - Test files match pattern
*[sS]pec.ts— found inspec/,packages/cli/migrations/,packages/igx-templates/,packages/ng-schematics/