ix
Copilot instructions390 starsChanged 35 days agoMITView on GitHub
IX is a multi-framework design system built on Stencil Web Components with framework-specific wrappers: Monorepo Structure: pnpm workspace with Turbo for build orchestration. All packages follow workspace:\* internal dependencies. Changesets-based releases:
Where files are headingNew Copilot instructions files have more rules about branches and pull requests, and fewer about code style.
Of the Copilot instructions files we read, the 2,343 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- changeset-decisionSkill
- create-changesetSkill
- sddSkill
- visual-testing-snapshotsSkill
- ix-installationSkill
- ixSkill
The file
We split this copilot-instructions.md into the rules it gives an agent
10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
Use @Component, @Prop, @Event, @Listen decorators from Stencil
- Very specific: line 45
Theme Testing: All visual tests run against theme-classic-light, theme-classic-dark, and brand variants
- Very specific: line 51
Add changesets via pnpm changeset
- Distinctive: line 56
If the impact is unclear, prefer adding a changeset or explicitly call out why one is not needed.
- Distinctive: line 61
When reviewing pull requests, explicitly check for release-note significance, especially for changes to component behavior, public APIs, …
- Distinctive: line 62
When a changeset is not required, state that the change is internal-only and why.
- Distinctive: line 105
Use SPDX license headers in all source files
- Distinctive: line 107
When modifying components, always build first, then test visual regression changes with appropriate theme configurations.
- Distinctive: line 115
When generating ix code follow the rules:
- Distinctive: line 120
When you generate code and a figma resource is included:
≈ “Common” is an estimate: at least 1 in 5 of the 3,779 Copilot instructions files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Siemens Industrial Experience (IX) - AI Coding Instructions
Architecture Overview
IX is a multi-framework design system built on Stencil Web Components with framework-specific wrappers:
packages/core/- Stencil-based Web Components (source of truth)packages/react/,packages/angular/,packages/vue/- Auto-generated framework wrappers via Stencil output targetspackages/aggrid/,packages/echarts/- Theme packages for external libraries
Monorepo Structure: pnpm workspace with Turbo for build orchestration. All packages follow workspace:* internal dependencies.
Key Development Workflows
Component Development (Core)
- Components live in
packages/core/src/components/[component-name]/ - Each component has:
[component].tsx,[component].scss, tests, and documentation - Use
@Component,@Prop,@Event,@Listendecorators from Stencil - Framework wrappers are auto-generated via
stencil.config.tsoutput targets - never edit directly
Build & Development Commands
# Development server with watch mode
pnpm start # All packages
pnpm storybook # Component development
pnpm docs # Documentation site
# Building
pnpm build # Full build (required before tests)
pnpm build --filter @siemens/ix # Single package
# Visual regression testing (requires Docker)
pnpm build --filter \!documentation # Build first
pnpm visual-regression # All tests
pnpm visual-regression --filter @siemens/ix-aggrid # Specific packageTesting Architecture
- Unit Tests: Jest (Stencil) + Vitest (React)
- Component Tests: Playwright with
.ct.tsfiles - Visual Regression: Docker-based Playwright across multiple themes
- Theme Testing: All visual tests run against
theme-classic-light,theme-classic-dark, and brand variants
Release & Versioning
Changesets-based releases:
- Add changesets via
pnpm changeset - Prerelease mode uses
.changeset/pre.json - Snapshot releases for PR testing: comment
/releaseon PRs - Version bumps trigger framework wrapper regeneration
- Any change that is relevant for end users must include a changeset in
.changeset/. This includes public API changes, user-visible behavior changes, styling or theming changes, accessibility changes, and bug fixes that materially affect consumers. - If the impact is unclear, prefer adding a changeset or explicitly call out why one is not needed.
Copilot Review Expectations
- GitHub Copilot code review should treat a missing changeset as a review issue when a pull request contains user-facing or consumer-relevant changes.
- When reviewing pull requests, explicitly check for release-note significance, especially for changes to component behavior, public APIs, design tokens, themes, accessibility, generated wrappers, or documentation that affects usage.
- When a changeset is not required, state that the change is internal-only and why.
Critical Patterns
Stencil Component Structure
@Component({
tag: 'ix-button',
shadow: true,
styleUrl: './button.scss',
})
export class Button {
@Prop() variant: ButtonVariant = 'primary';
@Event() buttonClick: EventEmitter<void>;
}Theme System
- Themes in
packages/core/scss/theme/ - CSS custom properties for theming
- Multiple theme support: classic-light/dark, brand variants
- Theme switching handled via CSS class application
Framework Integration
- Angular: Two builds (component + standalone) via output targets
- React: Server-side rendering support via separate exports
- Vue: Experimental package with Vite build
Documentation Generation
- Auto-generated from component JSDoc comments
- Cross-platform examples via test apps
- TypeDoc for API documentation
- Storybook for component playground
File Naming & Organization Conventions
- Component folders:
kebab-casematching tag names - TypeScript:
.tsfor logic,.tsxfor components - Tests:
.spec.ts(unit),.ct.ts(component),.e2e.ts(visual) - Use SPDX license headers in all source files
When modifying components, always build first, then test visual regression changes with appropriate theme configurations.
<!-- ix-mcp-instructions:start -->Siemens iX code generation
The official Siemens iX documentation is available at https://ix.siemens.io and provides a llms.txt file following the llmstxt.org standard at https://ix.siemens.io/llms.txt. Use this resource to get an overview of available documentation and additional information regarding components.
When generating ix code follow the rules:
- For each iX component, validate generated code with
search_examples. - Copilot MUST call
get_component_detailsby default.
When you generate code and a figma resource is included:
- Most IX components have mapped Figma components. Use
get_figma_component_mappingfor a specific component or Figma ID, andlist_components_with_figma_idsto list all available mappings.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

