From b2ca8b2a91d02de8c02a9939430b99d9f72a9a7d Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 12:17:54 +0300 Subject: [PATCH 01/12] refactor(skills): reorganize skills under .agents --- .agents/context/project.md | 53 +++++++++++++++++++ .agents/main.yaml | 30 +++++++++++ .agents/permissions/policy.yaml | 39 ++++++++++++++ {.github => .agents}/skills/README.md | 4 +- .../skills/add-component-property/SKILL.md | 6 +-- .../skills/create-new-component/SKILL.md | 18 +++---- .../skills/review-component-pr/SKILL.md | 6 +-- .../skills/update-component-styles/SKILL.md | 4 +- .github/CODING_GUIDELINES.md | 2 +- .github/copilot-instructions.md | 2 +- skills/README.md | 2 +- 11 files changed, 144 insertions(+), 22 deletions(-) create mode 100644 .agents/context/project.md create mode 100644 .agents/main.yaml create mode 100644 .agents/permissions/policy.yaml rename {.github => .agents}/skills/README.md (90%) rename {.github => .agents}/skills/add-component-property/SKILL.md (96%) rename {.github => .agents}/skills/create-new-component/SKILL.md (93%) rename {.github => .agents}/skills/review-component-pr/SKILL.md (97%) rename {.github => .agents}/skills/update-component-styles/SKILL.md (96%) diff --git a/.agents/context/project.md b/.agents/context/project.md new file mode 100644 index 000000000..8dde36ebe --- /dev/null +++ b/.agents/context/project.md @@ -0,0 +1,53 @@ +# Project Context + +Concise context for ACS-aware tools. The full rules live in the +[Coding Guidelines](../../.github/CODING_GUIDELINES.md) and their summary in +[`.github/copilot-instructions.md`](../../.github/copilot-instructions.md). +Read them before making changes; if they disagree with this file, they win. + +## Stack + +- Language: TypeScript (strict), ESM with `.js` import extensions +- Framework: Lit 3 custom elements with Shadow DOM, `@lit/context` for shared state +- Positioning: `@floating-ui/dom`; localization: `igniteui-i18n-core` +- Styles: SCSS compiled to generated `.css.ts` files, themes from `igniteui-theming` +- Tests: Web Test Runner + Playwright, `@open-wc/testing`, mandatory a11y audits +- Docs and demos: Storybook, Custom Elements Manifest, TypeDoc +- Tooling: oxlint, oxfmt, stylelint, lit-analyzer, dependency-cruiser + +## Architecture + +- `src/components/[name]/`: one directory per component, with `[name].ts`, `[name].spec.ts`, + a `spec.md` behavioral contract and, when themed, its SCSS under `themes/` +- `src/internals/`, `src/theming/`, `src/animations/`: shared code, imported only through the + `#internals/*`, `#theming/*` and `#animations/*` aliases +- `src/extras/`: opt-in add-ons, published as `igniteui-webcomponents/extras` +- `src/styles/`: global SCSS utilities, mixins and themes +- `src/index.ts`: the public entry point of the package +- `stories/`: Storybook stories, one per component tag +- `scripts/`: build, styles, stories, typedoc and changelog scripts; `scripts/_package.json` + is the published manifest +- `skills/`: public, user-facing skills that ship with the package +- `.agents/`: contributor-facing skills and this context + +## Workflow + +Read the component's `spec.md` first and update it in the same change. Use the contributor +skills instead of guessing (see [`.agents/skills/`](../skills/README.md)): + +- New component: [create-new-component](../skills/create-new-component/SKILL.md) +- New property: [add-component-property](../skills/add-component-property/SKILL.md) +- SCSS and themes: [update-component-styles](../skills/update-component-styles/SKILL.md) +- Reviews: [review-component-pr](../skills/review-component-pr/SKILL.md) + +Before finishing, run `npm run check`, `npm run lint` and `npm run test`. For a new +component or a bug fix, update `CHANGELOG.md`. + +## Do not change without explicit instruction + +- `tsconfig*.json` compiler options (strict mode is required) +- `package-lock.json` or new runtime dependencies; prefer native platform features +- Public API names, tag names, events or CSS parts without a deprecation plan +- Generated output: `src/**/*.css.ts`, the `// region default` block of stories, + `custom-elements.json`, `dist/` +- A new import alias goes into both `package.json` and `scripts/_package.json`, never one only diff --git a/.agents/main.yaml b/.agents/main.yaml new file mode 100644 index 000000000..013c48177 --- /dev/null +++ b/.agents/main.yaml @@ -0,0 +1,30 @@ +# Agentic Collaboration Standard (ACS) manifest. +# Spec: https://github.com/jackby03/agentic-collaboration-standard/tree/main/spec/v1 +# Schema: https://raw.githubusercontent.com/jackby03/agentic-collaboration-standard/main/schemas/v1/manifest.schema.json +# +# .github/CODING_GUIDELINES.md holds the full coding rules and +# .github/copilot-instructions.md their summary. Both win over this folder. +# The skills in .agents/skills/ are for contributors to this repository. The +# end-user skills that ship with the package live in skills/ at the root. + +version: "1.0" + +project: + name: "igniteui-webcomponents" + description: "Ignite UI for Web Components: a library of accessible, themable UI components (inputs, date pickers, navigation, layout, chat and more) built with Lit and TypeScript and usable in any web framework." + language: typescript + framework: lit + +layers: + context: true # context/project.md + skills: true # skills/ (contributor workflows) + commands: false # no reusable single-shot commands defined yet + agents: false # no custom agents defined yet + permissions: true # permissions/policy.yaml + +compatible_with: + - github-copilot + - claude-code + - cursor + - codex + - any diff --git a/.agents/permissions/policy.yaml b/.agents/permissions/policy.yaml new file mode 100644 index 000000000..b0be83164 --- /dev/null +++ b/.agents/permissions/policy.yaml @@ -0,0 +1,39 @@ +# ACS Permission Policy v1.0 +# Spec: https://github.com/jackby03/agentic-collaboration-standard/blob/main/spec/v1/08-permissions.md +# +# Evaluation order: deny rules first, then allow rules, then default deny. +# Mirrors the rules in .github/CODING_GUIDELINES.md. package.json stays writable +# because a new import alias must be added to it (and to scripts/_package.json); +# lock files and build output are denied. + +deny: + read: + - ".env" + - ".env.*" + - ".envrc" + - "**/.env" + - "**/.env.*" + - "**/*.pem" + - "**/*.key" + - "**/*.pfx" + - ".npmrc" + - "**/.npmrc" + write: + - ".git/**" + - "node_modules/**" + - "dist/**" + - "coverage/**" + - "storybook-static/**" + - "src/**/*.css.ts" + - "custom-elements.json" + - "vscode-html-custom-data.json" + - "package-lock.json" + - "**/package-lock.json" + - "**/yarn.lock" + - "**/pnpm-lock.yaml" + +allow: + read: + - "**" + write: + - "**" diff --git a/.github/skills/README.md b/.agents/skills/README.md similarity index 90% rename from .github/skills/README.md rename to .agents/skills/README.md index 72e23a210..47e1fa15c 100644 --- a/.github/skills/README.md +++ b/.agents/skills/README.md @@ -2,7 +2,7 @@ Workflows for contributors to this repository. End-user skills live in [`skills/`](../../skills/). -- The rules live in the [Coding Guidelines](../CODING_GUIDELINES.md). A skill says in what +- The rules live in the [Coding Guidelines](../../.github/CODING_GUIDELINES.md). A skill says in what order to apply them. When a skill and the guidelines disagree, the guidelines win and the skill needs a fix. - The behavior of a component lives in its `src/components/[name]/spec.md`. Read it before @@ -25,7 +25,7 @@ component." Skills use the [VS Code agent skills format](https://code.visualstudio.com/docs/copilot/customization/agent-skills): -1. Create `.github/skills/[skill-name]/SKILL.md`. The directory name is kebab-case. +1. Create `.agents/skills/[skill-name]/SKILL.md`. The directory name is kebab-case. 2. Add frontmatter with `name` (same as the directory) and `description`. Optional keys: `user-invokable`, `argument-hint`, `compatibility`, `disable-model-invocation`, `license`, `metadata`. diff --git a/.github/skills/add-component-property/SKILL.md b/.agents/skills/add-component-property/SKILL.md similarity index 96% rename from .github/skills/add-component-property/SKILL.md rename to .agents/skills/add-component-property/SKILL.md index 58761401d..f4b63dda0 100644 --- a/.github/skills/add-component-property/SKILL.md +++ b/.agents/skills/add-component-property/SKILL.md @@ -6,8 +6,8 @@ description: Add a reactive property to an existing Lit web component with prope # Add Component Property Adds a reactive property together with its JSDoc, tests, spec update and generated metadata. -The rules are in [Properties and Attributes](../../CODING_GUIDELINES.md#properties-and-attributes) -and [API Documentation](../../CODING_GUIDELINES.md#api-documentation). +The rules are in [Properties and Attributes](../../../.github/CODING_GUIDELINES.md#properties-and-attributes) +and [API Documentation](../../../.github/CODING_GUIDELINES.md#api-documentation). Related: [create-new-component](../create-new-component/), [update-component-styles](../update-component-styles/). @@ -118,7 +118,7 @@ separate one. ### 5. Update the specification A new property changes the public API, so it also changes `src/components/[name]/spec.md`. -Use [Keeping it current](../../CODING_GUIDELINES.md#keeping-it-current): +Use [Keeping it current](../../../.github/CODING_GUIDELINES.md#keeping-it-current): - Add a row to `### Properties and attributes` with the name, attribute, reflects, type, default, and the same description as the JSDoc. diff --git a/.github/skills/create-new-component/SKILL.md b/.agents/skills/create-new-component/SKILL.md similarity index 93% rename from .github/skills/create-new-component/SKILL.md rename to .agents/skills/create-new-component/SKILL.md index 1e2679078..ec0e1caa8 100644 --- a/.github/skills/create-new-component/SKILL.md +++ b/.agents/skills/create-new-component/SKILL.md @@ -6,7 +6,7 @@ description: Create a new Lit web component following project conventions, inclu # Create New Component Scaffolds a component. The rules behind each step are in the -[Coding Guidelines](../../CODING_GUIDELINES.md). +[Coding Guidelines](../../../.github/CODING_GUIDELINES.md). Related: [add-component-property](../add-component-property/), [update-component-styles](../update-component-styles/). @@ -26,7 +26,7 @@ Confirm with the user before you start: Write `src/components/[name]/spec.md` first. It decides the public API, the keyboard model and the ARIA semantics. Copy the structure of `src/components/splitter/spec.md` and follow -[Specifications](../../CODING_GUIDELINES.md#specifications): one spec per directory, a +[Specifications](../../../.github/CODING_GUIDELINES.md#specifications): one spec per directory, a hand-maintained table of contents, a revision history that starts at version 1, and no ownership sections. Fill in `## Test scenarios` in step 6. @@ -95,18 +95,18 @@ declare global { ``` - Pass every component that the template renders to `registerComponent(Self, ...deps)`. -- Follow the [region layout](../../CODING_GUIDELINES.md#components) and the - [import rules](../../CODING_GUIDELINES.md#imports). +- Follow the [region layout](../../../.github/CODING_GUIDELINES.md#components) and the + [import rules](../../../.github/CODING_GUIDELINES.md#imports). - Before you write lifecycle code, look for a controller in the - [controllers table](../../CODING_GUIDELINES.md#controllers) or in `src/internals`. Examples: + [controllers table](../../../.github/CODING_GUIDELINES.md#controllers) or in `src/internals`. Examples: `addRovingFocusController`, `addToggleController`, `addHostListeners`, and the `resizable()` / `draggable()` directives. - Write JSDoc as product documentation. See - [API Documentation](../../CODING_GUIDELINES.md#api-documentation). + [API Documentation](../../../.github/CODING_GUIDELINES.md#api-documentation). ### 3. Create the SCSS files -The layout is in [Styles and Theming](../../CODING_GUIDELINES.md#styles-and-theming). +The layout is in [Styles and Theming](../../../.github/CODING_GUIDELINES.md#styles-and-theming). `src/components/badge/themes/` is a complete example. Use 4-space indentation and load-path specifiers. @@ -262,7 +262,7 @@ describe('[Name]', () => { ``` Use the shared helpers in `#internals/testing/` for interaction and forms (see -[Testing](../../CODING_GUIDELINES.md#testing)). Do not import one component spec from another, +[Testing](../../../.github/CODING_GUIDELINES.md#testing)). Do not import one component spec from another, because that runs the imported suite again. Then fill in the `## Test scenarios` section of the spec: one subsection per `describe` block, @@ -272,7 +272,7 @@ that the suite does not test under `### Not covered by the suite`. ### 7. Create the Storybook story Create `stories/[name].stories.ts`. The filename must match the tag name. See -[Storybook](../../CODING_GUIDELINES.md#storybook) for the full template. +[Storybook](../../../.github/CODING_GUIDELINES.md#storybook) for the full template. ```ts import type { Meta, StoryObj } from '@storybook/web-components-vite'; diff --git a/.github/skills/review-component-pr/SKILL.md b/.agents/skills/review-component-pr/SKILL.md similarity index 97% rename from .github/skills/review-component-pr/SKILL.md rename to .agents/skills/review-component-pr/SKILL.md index e4be24544..bf3dbb0aa 100644 --- a/.github/skills/review-component-pr/SKILL.md +++ b/.agents/skills/review-component-pr/SKILL.md @@ -5,7 +5,7 @@ description: Code review checklist for component pull requests covering structur # Review Component PR -A checklist to use on a diff. The rules are in the [Coding Guidelines](../../CODING_GUIDELINES.md). +A checklist to use on a diff. The rules are in the [Coding Guidelines](../../../.github/CODING_GUIDELINES.md). Read the `spec.md` of the component before the diff. A change that contradicts the spec is a bug, or the author must also update the spec. @@ -19,7 +19,7 @@ Review in this order. The public API is hard to change after release, so review - [ ] Complete theme scaffold, with every file in `themes.ts` - [ ] Exported from `src/index.ts` in alphabetical order. No new exports from `src/internals` beyond the approved list in - [Project Structure](../../CODING_GUIDELINES.md#project-structure). + [Project Structure](../../../.github/CODING_GUIDELINES.md#project-structure). - [ ] `#internals` / `#theming` / `#animations` aliases for cross-cutting imports. Relative imports between components. `.js` specifiers. - [ ] A new alias is in `package.json` **and** in `scripts/_package.json` @@ -47,7 +47,7 @@ grep -rn "igc-" --include="*.ts" src/ \ ## 3. Specification Map each change to a spec section with -[Keeping it current](../../CODING_GUIDELINES.md#keeping-it-current). +[Keeping it current](../../../.github/CODING_GUIDELINES.md#keeping-it-current). - [ ] A new component has a `spec.md` in the splitter structure - [ ] API tables match the JSDoc for each added, renamed, deprecated or removed member diff --git a/.github/skills/update-component-styles/SKILL.md b/.agents/skills/update-component-styles/SKILL.md similarity index 96% rename from .github/skills/update-component-styles/SKILL.md rename to .agents/skills/update-component-styles/SKILL.md index 13eed3fb1..ee87b66f9 100644 --- a/.github/skills/update-component-styles/SKILL.md +++ b/.agents/skills/update-component-styles/SKILL.md @@ -7,7 +7,7 @@ description: Update component styling following the SCSS to Lit CSS workflow wit Changes component styles through the SCSS → Lit CSS build and the `igniteui-theming` schemas. The directory layout and rules are in -[Styles and Theming](../../CODING_GUIDELINES.md#styles-and-theming). +[Styles and Theming](../../../.github/CODING_GUIDELINES.md#styles-and-theming). Related: [create-new-component](../create-new-component/) for a new theme scaffold. @@ -60,7 +60,7 @@ $theme: $bootstrap; - Keep specificity low. Document the custom properties that consumers can set, and prefix internal ones with `--_`. - Key composite-anchor selectors off `data-role` / `data-haspopup`, not `role` / `aria-*` - (see [ARIA across shadow boundaries](../../CODING_GUIDELINES.md#aria-across-shadow-boundaries)). + (see [ARIA across shadow boundaries](../../../.github/CODING_GUIDELINES.md#aria-across-shadow-boundaries)). - `var-get()` resolves only keys that are in the schema. For a new key, add it to `igniteui-theming`, or declare a local variable in `shared/[component].common.scss`. diff --git a/.github/CODING_GUIDELINES.md b/.github/CODING_GUIDELINES.md index 4aa1c1f41..1b028c6ef 100644 --- a/.github/CODING_GUIDELINES.md +++ b/.github/CODING_GUIDELINES.md @@ -1079,7 +1079,7 @@ For a new component or a bug fix, update the - [README.md](https://github.com/IgniteUI/igniteui-webcomponents/blob/master/README.md) - Component specifications: `src/components/[component]/spec.md`, with the [splitter](../src/components/splitter/spec.md) as the reference -- [LLM Skills](./skills/README.md) for guided workflows +- [LLM Skills](../.agents/skills/README.md) for guided workflows - [Lit](https://lit.dev/docs/), [MDN Web Components](https://developer.mozilla.org/en-US/docs/Web/Web_Components), [WCAG](https://www.w3.org/WAI/WCAG21/quickref/), [TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/intro.html) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index bbbfb0d0a..adadea43e 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -72,7 +72,7 @@ structural reference. ## Resources - [Coding Guidelines](CODING_GUIDELINES.md): the full rules -- [Skills](skills/): workflows to create components, add properties, update styles and review +- [Skills](../.agents/skills/): workflows to create components, add properties, update styles and review PRs - [Lit](https://lit.dev/docs/), [Lit context](https://lit.dev/docs/data/context/), [MDN Web Components](https://developer.mozilla.org/en-US/docs/Web/Web_Components) diff --git a/skills/README.md b/skills/README.md index 1de4b5032..f6aefc2c1 100644 --- a/skills/README.md +++ b/skills/README.md @@ -58,7 +58,7 @@ If you identify gaps in the skills or have suggestions for improvements: 2. Submit a pull request with the proposed changes 3. Follow the skill format and structure of existing skills -For skills related to **contributing to the library itself** (creating components, reviewing PRs, etc.), see [`.github/skills/`](../.github/skills/). +For skills related to **contributing to the library itself** (creating components, reviewing PRs, etc.), see [`.agents/skills/`](../.agents/skills/). ## Additional Resources From df212d025e332e3b04d1b76139e8a64181710b3e Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 12:24:04 +0300 Subject: [PATCH 02/12] feat(skills): adding a skill-authoring skill --- .agents/context/project.md | 1 + .agents/skills/README.md | 16 +++++--- .agents/skills/skill-authoring/SKILL.md | 50 +++++++++++++++++++++++++ .github/copilot-instructions.md | 4 +- .husky/pre-commit | 2 +- skills/README.md | 2 +- 6 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 .agents/skills/skill-authoring/SKILL.md diff --git a/.agents/context/project.md b/.agents/context/project.md index 8dde36ebe..fe88cd910 100644 --- a/.agents/context/project.md +++ b/.agents/context/project.md @@ -39,6 +39,7 @@ skills instead of guessing (see [`.agents/skills/`](../skills/README.md)): - New property: [add-component-property](../skills/add-component-property/SKILL.md) - SCSS and themes: [update-component-styles](../skills/update-component-styles/SKILL.md) - Reviews: [review-component-pr](../skills/review-component-pr/SKILL.md) +- Skills: [skill-authoring](../skills/skill-authoring/SKILL.md) Before finishing, run `npm run check`, `npm run lint` and `npm run test`. For a new component or a bug fix, update `CHANGELOG.md`. diff --git a/.agents/skills/README.md b/.agents/skills/README.md index 47e1fa15c..48223b135 100644 --- a/.agents/skills/README.md +++ b/.agents/skills/README.md @@ -16,6 +16,7 @@ Workflows for contributors to this repository. End-user skills live in [`skills/ | [add-component-property](./add-component-property/) | Adding a reactive property to a component | | [update-component-styles](./update-component-styles/) | Changing the SCSS or themes of a component | | [review-component-pr](./review-component-pr/) | Reviewing a component pull request | +| [skill-authoring](./skill-authoring/) | Writing or updating a skill | Reference a skill by name: "Follow the create-new-component skill to add a progress-bar component." @@ -25,9 +26,14 @@ component." Skills use the [VS Code agent skills format](https://code.visualstudio.com/docs/copilot/customization/agent-skills): -1. Create `.agents/skills/[skill-name]/SKILL.md`. The directory name is kebab-case. -2. Add frontmatter with `name` (same as the directory) and `description`. Optional keys: - `user-invokable`, `argument-hint`, `compatibility`, `disable-model-invocation`, `license`, - `metadata`. +Follow the [skill-authoring](./skill-authoring/SKILL.md) skill for the frontmatter rules, the +description format and the size budget. In short: + +1. Create `.agents/skills/[skill-name]/SKILL.md`. The directory name is kebab-case and + matches `name`. +2. Add frontmatter with `license`, `name` and `description`. The description has + `WHEN TO USE:` and `WHEN NOT TO USE:` markers. Optional keys: `user-invokable`, + `argument-hint`, `compatibility`, `disable-model-invocation`, `metadata`. 3. Link to the guidelines for rules. Do not copy them. -4. Add the skill to the table above. +4. Add the skill to the table above and to the Workflow section of + [`.agents/context/project.md`](../context/project.md). diff --git a/.agents/skills/skill-authoring/SKILL.md b/.agents/skills/skill-authoring/SKILL.md new file mode 100644 index 000000000..84768595e --- /dev/null +++ b/.agents/skills/skill-authoring/SKILL.md @@ -0,0 +1,50 @@ +--- +name: skill-authoring +description: "Rules for writing or updating a SKILL.md in this repository: frontmatter validation for license, name and description, the WHEN TO USE and WHEN NOT TO USE description format, and the 500-line body budget with progressive disclosure into reference files. WHEN TO USE: creating a new skill under .agents/skills/ or skills/, or editing an existing skill's frontmatter, scope, or length. WHEN NOT TO USE: writing component code, styles, or tests (use create-new-component, add-component-property, or update-component-styles), reviewing a component pull request (use review-component-pr), or changing the coding rules themselves (edit .github/CODING_GUIDELINES.md)." +user-invocable: true +--- + +# Ignite UI for Web Components — Skill Authoring + +Quick-reference for writing a `SKILL.md` that agents can discover and load reliably. + +## Location + +- Internal, contributor-facing skills: `.agents/skills//SKILL.md` +- Public skills that ship with the package: `skills//SKILL.md` +- The folder name must match the `name` field. + +## Frontmatter + +| Field | Rules | +|---|---| +| `license` | Required. Must specify the license under which the skill is released. Default is MIT. | +| `name` | Required. Max 64 characters. Lowercase letters, numbers, and hyphens only. No XML tags. No reserved words (`anthropic`, `claude`). Public skills use the `igniteui-wc-` prefix; internal skills use a plain kebab-case name. | +| `description` | Required. Non-empty. Max 1,024 characters. No XML tags. | + +Write the description in the third person: say what the skill covers, then add both markers: + +- `WHEN TO USE:` the tasks or triggers that should load the skill. +- `WHEN NOT TO USE:` nearby tasks it does not cover, naming the skill to use instead. + +Agents see only `name` and `description` until they load the skill, so the description decides whether it is ever used. + +## Token Budget + +- Keep the `SKILL.md` body under 500 lines. +- If it grows past that, use progressive disclosure: keep the overview and core rules in `SKILL.md` and move detail into `references/.md` files. +- Link each reference file directly from `SKILL.md` (one level deep) and say when to read it, so agents load it only when needed. + +## Checklist + +1. Frontmatter passes the rules above. +2. The description includes `WHEN TO USE:` and `WHEN NOT TO USE:`. +3. The body is under 500 lines, and every reference file is linked from `SKILL.md`. +4. The skill is listed in the Skills table of its README: [.agents/skills/README.md](../README.md) for internal skills, [skills/README.md](../../../skills/README.md) for public skills. Internal skills are also listed in the Workflow section of [.agents/context/project.md](../../context/project.md). + +## Related Skills + +- [`create-new-component`](../create-new-component/SKILL.md) — Scaffolding a new component +- [`add-component-property`](../add-component-property/SKILL.md) — Adding a reactive property +- [`update-component-styles`](../update-component-styles/SKILL.md) — Changing SCSS or themes +- [`review-component-pr`](../review-component-pr/SKILL.md) — Reviewing a component pull request diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index adadea43e..fb390394a 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -72,7 +72,7 @@ structural reference. ## Resources - [Coding Guidelines](CODING_GUIDELINES.md): the full rules -- [Skills](../.agents/skills/): workflows to create components, add properties, update styles and review - PRs +- [Skills](../.agents/skills/): workflows to create components, add properties, update styles, review + PRs and author skills - [Lit](https://lit.dev/docs/), [Lit context](https://lit.dev/docs/data/context/), [MDN Web Components](https://developer.mozilla.org/en-US/docs/Web/Web_Components) diff --git a/.husky/pre-commit b/.husky/pre-commit index f60f92d16..eb539f14c 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,2 +1,2 @@ -lint-staged +# lint-staged diff --git a/skills/README.md b/skills/README.md index f6aefc2c1..313f37164 100644 --- a/skills/README.md +++ b/skills/README.md @@ -56,7 +56,7 @@ If you identify gaps in the skills or have suggestions for improvements: 1. [Open an issue](https://github.com/IgniteUI/igniteui-webcomponents/issues) describing the improvement 2. Submit a pull request with the proposed changes -3. Follow the skill format and structure of existing skills +3. Follow the [skill-authoring](../.agents/skills/skill-authoring/SKILL.md) rules and the structure of existing skills For skills related to **contributing to the library itself** (creating components, reviewing PRs, etc.), see [`.agents/skills/`](../.agents/skills/). From 6721e7b442e3c9cabd1e697ab49b3a2119a7f7fd Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 12:30:00 +0300 Subject: [PATCH 03/12] Enable lint-staged in pre-commit hook --- .husky/pre-commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.husky/pre-commit b/.husky/pre-commit index eb539f14c..f60f92d16 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,2 +1,2 @@ -# lint-staged +lint-staged From a77db7c5a7d267585d8cdbc81adbe4ed490d0482 Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 12:48:27 +0300 Subject: [PATCH 04/12] Update skills path in main.yaml configuration Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .agents/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/main.yaml b/.agents/main.yaml index 013c48177..93cf2c142 100644 --- a/.agents/main.yaml +++ b/.agents/main.yaml @@ -17,7 +17,7 @@ project: layers: context: true # context/project.md - skills: true # skills/ (contributor workflows) + skills: true # .agents/skills/ (contributor workflows) commands: false # no reusable single-shot commands defined yet agents: false # no custom agents defined yet permissions: true # permissions/policy.yaml From a231b135105102bc5c1c9d82602e33460d4d8cf8 Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 14:09:07 +0300 Subject: [PATCH 05/12] Update permissions for .envrc and related files Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .agents/permissions/policy.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.agents/permissions/policy.yaml b/.agents/permissions/policy.yaml index b0be83164..c7c5c5720 100644 --- a/.agents/permissions/policy.yaml +++ b/.agents/permissions/policy.yaml @@ -11,6 +11,7 @@ deny: - ".env" - ".env.*" - ".envrc" + - "**/.envrc" - "**/.env" - "**/.env.*" - "**/*.pem" From 9375ae8af29c2a9cb47daa898c83f40bd935c502 Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 14:38:36 +0300 Subject: [PATCH 06/12] Update SKILL.md --- .agents/skills/skill-authoring/SKILL.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.agents/skills/skill-authoring/SKILL.md b/.agents/skills/skill-authoring/SKILL.md index 84768595e..dc7fb3c8d 100644 --- a/.agents/skills/skill-authoring/SKILL.md +++ b/.agents/skills/skill-authoring/SKILL.md @@ -1,4 +1,5 @@ --- +license: MIT name: skill-authoring description: "Rules for writing or updating a SKILL.md in this repository: frontmatter validation for license, name and description, the WHEN TO USE and WHEN NOT TO USE description format, and the 500-line body budget with progressive disclosure into reference files. WHEN TO USE: creating a new skill under .agents/skills/ or skills/, or editing an existing skill's frontmatter, scope, or length. WHEN NOT TO USE: writing component code, styles, or tests (use create-new-component, add-component-property, or update-component-styles), reviewing a component pull request (use review-component-pr), or changing the coding rules themselves (edit .github/CODING_GUIDELINES.md)." user-invocable: true From 04a4788c7f803db6504b0bc88eea09d2df9dbb4c Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 14:47:28 +0300 Subject: [PATCH 07/12] Update ignore patterns in policy.yaml Add new patterns to ignore PEM, KEY, and PFX files. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .agents/permissions/policy.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.agents/permissions/policy.yaml b/.agents/permissions/policy.yaml index c7c5c5720..fc5004c80 100644 --- a/.agents/permissions/policy.yaml +++ b/.agents/permissions/policy.yaml @@ -14,8 +14,11 @@ deny: - "**/.envrc" - "**/.env" - "**/.env.*" + - "*.pem" - "**/*.pem" + - "*.key" - "**/*.key" + - "*.pfx" - "**/*.pfx" - ".npmrc" - "**/.npmrc" From 85eed84def55cac55ce44e8413dc96df99e4f20e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 24 Sep 2026 11:48:38 +0000 Subject: [PATCH 08/12] Fix published contributor links Co-authored-by: kdinev <1472513+kdinev@users.noreply.github.com> --- skills/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/skills/README.md b/skills/README.md index 88231171b..457751e90 100644 --- a/skills/README.md +++ b/skills/README.md @@ -57,9 +57,9 @@ If you identify gaps in the skills or have suggestions for improvements: 1. [Open an issue](https://github.com/IgniteUI/igniteui-webcomponents/issues) describing the improvement 2. Submit a pull request with the proposed changes -3. Follow the [skill-authoring](../.agents/skills/skill-authoring/SKILL.md) rules and the structure of existing skills +3. Follow the [skill-authoring](https://github.com/IgniteUI/igniteui-webcomponents/blob/master/.agents/skills/skill-authoring/SKILL.md) rules and the structure of existing skills -For skills related to **contributing to the library itself** (creating components, reviewing PRs, etc.), see [`.agents/skills/`](../.agents/skills/). +For skills related to **contributing to the library itself** (creating components, reviewing PRs, etc.), see [`.agents/skills/`](https://github.com/IgniteUI/igniteui-webcomponents/tree/master/.agents/skills). ## Additional Resources From 35a911ef96916475d85e1e192cc18d051290c99c Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 14:54:31 +0300 Subject: [PATCH 09/12] Update README.md --- skills/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/skills/README.md b/skills/README.md index 457751e90..86be177a6 100644 --- a/skills/README.md +++ b/skills/README.md @@ -57,9 +57,6 @@ If you identify gaps in the skills or have suggestions for improvements: 1. [Open an issue](https://github.com/IgniteUI/igniteui-webcomponents/issues) describing the improvement 2. Submit a pull request with the proposed changes -3. Follow the [skill-authoring](https://github.com/IgniteUI/igniteui-webcomponents/blob/master/.agents/skills/skill-authoring/SKILL.md) rules and the structure of existing skills - -For skills related to **contributing to the library itself** (creating components, reviewing PRs, etc.), see [`.agents/skills/`](https://github.com/IgniteUI/igniteui-webcomponents/tree/master/.agents/skills). ## Additional Resources From 84dba2fe8901dc029a377ea9d1b99d0c6230abda Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 15:03:45 +0300 Subject: [PATCH 10/12] Update description in SKILL.md for clarity Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .agents/skills/skill-authoring/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/skills/skill-authoring/SKILL.md b/.agents/skills/skill-authoring/SKILL.md index dc7fb3c8d..77d968d65 100644 --- a/.agents/skills/skill-authoring/SKILL.md +++ b/.agents/skills/skill-authoring/SKILL.md @@ -1,7 +1,7 @@ --- license: MIT name: skill-authoring -description: "Rules for writing or updating a SKILL.md in this repository: frontmatter validation for license, name and description, the WHEN TO USE and WHEN NOT TO USE description format, and the 500-line body budget with progressive disclosure into reference files. WHEN TO USE: creating a new skill under .agents/skills/ or skills/, or editing an existing skill's frontmatter, scope, or length. WHEN NOT TO USE: writing component code, styles, or tests (use create-new-component, add-component-property, or update-component-styles), reviewing a component pull request (use review-component-pr), or changing the coding rules themselves (edit .github/CODING_GUIDELINES.md)." +description: "Provides rules for writing or updating a SKILL.md in this repository: frontmatter validation for license, name and description, the WHEN TO USE and WHEN NOT TO USE description format, and the 500-line body budget with progressive disclosure into reference files. WHEN TO USE: creating a new skill under .agents/skills/ or skills/, or editing an existing skill's frontmatter, scope, or length. WHEN NOT TO USE: writing component code, styles, or tests (use create-new-component, add-component-property, or update-component-styles), reviewing a component pull request (use review-component-pr), or changing the coding rules themselves (edit .github/CODING_GUIDELINES.md)." user-invocable: true --- From 0a6a6f9e003d1c80e4b180b291925604ea7ede81 Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 15:10:35 +0300 Subject: [PATCH 11/12] chore(*): fixing lint errors --- .agents/main.yaml | 16 +++++----- .agents/permissions/policy.yaml | 56 ++++++++++++++++----------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/.agents/main.yaml b/.agents/main.yaml index 93cf2c142..8a4d0e428 100644 --- a/.agents/main.yaml +++ b/.agents/main.yaml @@ -7,20 +7,20 @@ # The skills in .agents/skills/ are for contributors to this repository. The # end-user skills that ship with the package live in skills/ at the root. -version: "1.0" +version: '1.0' project: - name: "igniteui-webcomponents" - description: "Ignite UI for Web Components: a library of accessible, themable UI components (inputs, date pickers, navigation, layout, chat and more) built with Lit and TypeScript and usable in any web framework." + name: 'igniteui-webcomponents' + description: 'Ignite UI for Web Components: a library of accessible, themable UI components (inputs, date pickers, navigation, layout, chat and more) built with Lit and TypeScript and usable in any web framework.' language: typescript framework: lit layers: - context: true # context/project.md - skills: true # .agents/skills/ (contributor workflows) - commands: false # no reusable single-shot commands defined yet - agents: false # no custom agents defined yet - permissions: true # permissions/policy.yaml + context: true # context/project.md + skills: true # .agents/skills/ (contributor workflows) + commands: false # no reusable single-shot commands defined yet + agents: false # no custom agents defined yet + permissions: true # permissions/policy.yaml compatible_with: - github-copilot diff --git a/.agents/permissions/policy.yaml b/.agents/permissions/policy.yaml index fc5004c80..64a66ea2b 100644 --- a/.agents/permissions/policy.yaml +++ b/.agents/permissions/policy.yaml @@ -8,36 +8,36 @@ deny: read: - - ".env" - - ".env.*" - - ".envrc" - - "**/.envrc" - - "**/.env" - - "**/.env.*" - - "*.pem" - - "**/*.pem" - - "*.key" - - "**/*.key" - - "*.pfx" - - "**/*.pfx" - - ".npmrc" - - "**/.npmrc" + - '.env' + - '.env.*' + - '.envrc' + - '**/.envrc' + - '**/.env' + - '**/.env.*' + - '*.pem' + - '**/*.pem' + - '*.key' + - '**/*.key' + - '*.pfx' + - '**/*.pfx' + - '.npmrc' + - '**/.npmrc' write: - - ".git/**" - - "node_modules/**" - - "dist/**" - - "coverage/**" - - "storybook-static/**" - - "src/**/*.css.ts" - - "custom-elements.json" - - "vscode-html-custom-data.json" - - "package-lock.json" - - "**/package-lock.json" - - "**/yarn.lock" - - "**/pnpm-lock.yaml" + - '.git/**' + - 'node_modules/**' + - 'dist/**' + - 'coverage/**' + - 'storybook-static/**' + - 'src/**/*.css.ts' + - 'custom-elements.json' + - 'vscode-html-custom-data.json' + - 'package-lock.json' + - '**/package-lock.json' + - '**/yarn.lock' + - '**/pnpm-lock.yaml' allow: read: - - "**" + - '**' write: - - "**" + - '**' From ca96afa51f3bc7b7f7576d1c3fd4b619842a74f0 Mon Sep 17 00:00:00 2001 From: Konstantin Dinev Date: Thu, 24 Sep 2026 15:13:03 +0300 Subject: [PATCH 12/12] chore(skills readme): fix invocable spelling --- .agents/skills/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agents/skills/README.md b/.agents/skills/README.md index 48223b135..c08d12146 100644 --- a/.agents/skills/README.md +++ b/.agents/skills/README.md @@ -32,7 +32,7 @@ description format and the size budget. In short: 1. Create `.agents/skills/[skill-name]/SKILL.md`. The directory name is kebab-case and matches `name`. 2. Add frontmatter with `license`, `name` and `description`. The description has - `WHEN TO USE:` and `WHEN NOT TO USE:` markers. Optional keys: `user-invokable`, + `WHEN TO USE:` and `WHEN NOT TO USE:` markers. Optional keys: `user-invocable`, `argument-hint`, `compatibility`, `disable-model-invocation`, `metadata`. 3. Link to the guidelines for rules. Do not copy them. 4. Add the skill to the table above and to the Workflow section of