Skip to main content

repo-context

Provides tech stack, package layout, conventions, and build commands for the iTwin/presentation monorepo. Use when: working on any package or app in this repo, planning changes, implementing features, reviewing code.

소스 정보

저장소
iTwin/presentation
최근 소스 활동
2026년 9월 14일 14:37
감지된 SKILL.md 언어
영어
스타
6
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
repo-context
description
Provides tech stack, package layout, conventions, and build commands for the iTwin/presentation monorepo. Use when: working on any package or app in this repo, planning changes, implementing features, reviewing code.
# iTwin/presentation Repository Context ## Overview This is a **pnpm monorepo** orchestrated with **Lage** and versioned with **Changesets**. ## Tech Stack | Area | Technology | |------|-----------| | Language | TypeScript (strict, ES2022, dual CJS/ESM builds) | | UI | React 18, iTwinUI components, SCSS | | Testing | Vitest | | Linting | ESLint 9 (flat config), oxfmt for formatting | | Platform | iTwin.js (iModels, ECSQL, Presentation APIs) | | Reactive | RxJS | | API docs | `@itwin/build-tools` (extract-api, docs) | | Node | ^24, pnpm 11 | ## Packages | Package | Path | Purpose | |---------|------|---------| | `@itwin/presentation-shared` | `packages/shared` | Shared utilities and types | | `@itwin/presentation-core-interop` | `packages/core-interop` | Interop layer with iTwin.js Core | | `@itwin/presentation-hierarchies` | `packages/hierarchies` | Hierarchy building from iModels and other sources | | `@itwin/presentation-hierarchies-react` | `packages/hierarchies-react` | React bindings for hierarchies | | `@itwin/presentation-components` | `packages/components` | React components (lists, property grids, tables) | | `@itwin/unified-selection` | `packages/unified-selection` | Unified selection storage | | `@itwin/unified-selection-react` | `packages/unified-selection-react` | React bindings for unified selection | | `@itwin/presentation-opentelemetry` | `packages/opentelemetry` | OpenTelemetry diagnostics integration | | `@itwin/presentation-models-tree` | `packages/models-tree` | Models tree widget for internal testing | | `@itwin/presentation-test-utilities` | `packages/test-utilities` | Internal test utilities | ## Apps | App | Path | Purpose | |-----|------|---------| | `full-stack-tests` | `apps/full-stack-tests` | Integration tests | | `test-app` | `apps/test-app` | Sample app (frontend + backend) | | `performance-tests` | `apps/performance-tests` | Benchmarks for hierarchies and unified selection | ## Key Conventions - Packages produce dual CJS/ESM output via `tsconfig.cjs.json` / `tsconfig.esm.json` - Public API is tracked via `extract-api` and `.api.md` report files in `api/` folders - Copyright headers are required on all source files (enforced by `copyrightLinter.js`): ``` /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ ``` - User-visible changes to released packages require a changeset (`pnpm change`); packages with `"private": true` do not require a changeset. - Build order is managed by Lage (`lage build`, dependencies via `^build`) ## Common Commands | Scope | Build | Test | Lint | Format | |-------|-------|------|------|--------| | All (repo root) | `pnpm build:all` | `pnpm cover:all` | `pnpm lint:all` | `pnpm format` | | Single package | `pnpm build` | `pnpm test` | `pnpm lint` | `pnpm -w exec oxfmt --check .` | | Scoped build | `pnpm lage build --to <package>` | — | — | — | | Format fix | `pnpm format:fix` | — | — | — |
GitHub에서 보기