Skip to content

feat: Add custom agents and skills for Ignite UI CLI - #1840

Open
Marina-L-Stoyanova wants to merge 18 commits into
masterfrom
mstoyanova/custom-agents
Open

Marina-L-Stoyanova wants to merge 18 commits into
masterfrom
mstoyanova/custom-agents

Conversation

@Marina-L-Stoyanova

@Marina-L-Stoyanova Marina-L-Stoyanova commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds AI agent skills for maintaining the CLI's project and component templates.

Skills live in .agents/skills/<name>/SKILL.md (Agent Skills format). VS Code Copilot discovers them automatically: you ask for the task and it loads the matching skill. Any other assistant can use one when you name its file. .agents/README.md is the guide.

This PR changes documentation only. No CLI, template or MCP server code is touched.

Skills

Skill Kind What it does
igniteui-cli-template-version-update Workflow Updates the Ignite UI versions that ig new / ig add scaffold, for Angular, React and Web Components. Applies patch and minor updates only. Finds every pin (constants, project package.json files, hard-coded this.packages), checks peer ranges, and validates with the template specs and the smoke test. dry-run mode gives a read-only report of stale pins and peer conflicts.
igniteui-cli-component-template Workflow Adds a component template (ig add <id>) for Angular, React and/or Web Components. Checks every API it uses against the package version that is currently pinned, reuses the same id across frameworks, and validates with the template specs, the smoke test and checks inside the generated project (type-check, lint, test file).
igniteui-cli-changelog Workflow Drafts, or with write inserts, the CHANGELOG.md section for a release cut, built from the PRs merged since the previous cut and written in the existing style.
igniteui-cli-smoke-test Reference Build, running one spec file, the specs that guard templates, running scripts/smoke-test.sh, what a PASS proves per framework, checks inside a kept project, and failure triage.
igniteui-cli-template-anatomy Reference Template layout per framework, index.ts fields, placeholders, model templates to copy, every place a version is pinned (with search patterns), which package provides which component, and how to audit which templates exist in which framework.

Other changes

  • AGENTS.md (new): build/test/lint, architecture, MCP server notes, conventions, and the Maintenance Workflows rules. It is based on the previous CLAUDE.md content, updated so that:
    • npm run build is listed as also building the MCP server;
    • running a single spec uses npx jasmine <compiled spec> instead of editing spec/jasmine-runner.ts.
  • CLAUDE.md now only imports AGENTS.md (@AGENTS.md).
  • .agents/README.md (new): what each skill does, how the skills fit together, example requests, and how to maintain or add skills.

Related Issue

Closes #1839

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring / code cleanup
  • Build / CI configuration change

Affected Packages

  • igniteui-cli (packages/cli)
  • @igniteui/cli-core (packages/core)
  • @igniteui/angular-templates (packages/igx-templates)
  • @igniteui/angular-schematics (packages/ng-schematics)
  • @igniteui/mcp-server (packages/igniteui-mcp)

Checklist

  • I have tested my changes locally (npm run test)
  • I have built the project successfully (npm run build)
  • I have run the linter (npm run lint)
  • I have added/updated tests as needed
  • My changes do not introduce new warnings or errors

Additional Context

Copilot AI balanced review requested due to automatic review settings October 9, 2026 08:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Validation guidance misses hidden project manifests and Angular template tests, and misidentifies Angular’s test runner.

3 open findings
What changed in this PR

Adds ACS-style agents and reusable skills for maintaining Ignite UI CLI templates, versions, testing, and changelogs.

Changes:

  • Adds template-version, component-template, and changelog agents.
  • Documents build, smoke-test, and template workflows.
  • Defines shared context, permissions, and ACS metadata.
File Description
.agents/​README.md Documents agent usage and maintenance.
.agents/​main.yaml Defines the ACS manifest.
.agents/​context/​project.md Establishes agent working rules.
.agents/​permissions/​policy.yaml Documents access boundaries.
.agents/​agents/​template-version-update-agent.md Defines version-update automation.
.agents/​agents/​component-template-agent.md Defines component-template creation.
.agents/​agents/​changelog-agent.md Defines release-note generation.
.agents/​skills/​igniteui-cli-build-test/​SKILL.md Documents build and test commands.
.agents/​skills/​igniteui-cli-smoke-test/​SKILL.md Documents smoke-test execution and triage.
.agents/​skills/​igniteui-cli-template-anatomy/​SKILL.md Documents template structure and version pins.

🧠 Review effort: Balanced


💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .agents/agents/component-template-agent.md Outdated
Comment thread .agents/agents/template-version-update-agent.md Outdated
Comment thread .agents/skills/igniteui-cli-template-anatomy/SKILL.md Outdated
@coveralls

coveralls commented Oct 9, 2026 •

Copy link
Copy Markdown

Coverage Status

coverage: 94.559%. remained the same — mstoyanova/custom-agents into master

@kdinev

kdinev commented Oct 9, 2026

Copy link
Copy Markdown
Member

@Marina-L-Stoyanova @ChronosSF flagged to me that ACS is abandoned. Could you sync to determine what new standard we should follow?

Marina-L-Stoyanova and others added 4 commits October 12, 2026 13:27
…oke testing, template anatomy, and version updates

- Introduced `igniteui-cli-changelog` skill for drafting changelog sections based on merged PRs.
- Added `igniteui-cli-component-template` skill to create component templates for Angular, React, and Web Components.
- Created `igniteui-cli-smoke-test` skill to verify the installation and build process of generated projects.
- Developed `igniteui-cli-template-anatomy` skill to outline the structure and version pinning of templates across frameworks.
- Implemented `igniteui-cli-template-version-update` skill to manage and audit Ignite UI package versions in templates.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The version-update utility can create partial or incompatible updates by mishandling shared pins, stop statuses, and registry failures.

4 open findings
3 resolved since last review

🧠 Review effort: Balanced

Comment thread .agents/skills/igniteui-cli-template-version-update/scripts/template-pins.mjs Outdated
Comment thread .agents/skills/igniteui-cli-template-version-update/scripts/template-pins.mjs Outdated
Comment thread .github/workflows/copilot-setup-steps.yml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Framework-scope handling and targeted peer validation can produce incorrect workflow results.

1 open finding
3 resolved since last review
Previously missed (4)

In code that hasn't changed since last review

Medium severity Expand the all framework input before validation

.agents/​skills/​igniteui-cli-ai-config-skills-refresh/​scripts/​sync-skills.mjs:27

all is advertised as a valid framework input, but this parser leaves it as ["all"], after which the unknown-framework check exits with an error. Expand that value to every source framework before validation.

Medium severity Validate main package peer ranges during targeted runs

.agents/​skills/​igniteui-cli-template-version-update/​scripts/​template-pins.mjs:175

When --package narrows the run (for example to igniteui-grid-lite), inScope excludes the framework's main package, so this loop never checks igniteui-angular's peer range. That contradicts the workflow's requirement to validate the main package even when it is not changing and can allow a targeted update that violates its peer dependency. Include main-package pins in metadata/peer validation while keeping them out of the apply set.

Low severity Correct PR classification for executable workflow changes

.agents/​skills/​igniteui-cli-template-version-update/​scripts/​template-pins.mjs:4

The PR description states that this is documentation-only, but this executable script can rewrite template pins with --apply (and the PR also adds an active GitHub Actions workflow). Update the description, change classification, and validation notes so reviewers and release tooling assess the operational changes accurately.

This issue also appears on line 31 of the same file.

Low severity Remove or correct the ineffective agent rules document

.claude/​agent-rules.md:4

The linked .claude/agents/ directory does not exist, and .agents/README.md explicitly says there are no custom agent files. This new rules document therefore has no actual agent scope; remove it or point it at the real .agents/skills/ scope and align its commit policy with AGENTS.md.

🧠 Review effort: Balanced

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The helper scripts have unresolved dependency-validation, synchronization, and response-decoding defects.

3 open findings
1 resolved since last review

🧠 Review effort: Balanced

Comment thread .agents/skills/igniteui-cli-ai-config-skills-refresh/scripts/sync-skills.mjs Outdated
Comment thread .agents/skills/igniteui-cli-mcp-tool/scripts/call-tool.mjs
Comment on lines +173 to +175
for (const p of inScope.filter((x) => isIgnite(x.name) && x.resolved)) {
checks.set(`${p.fw}|${p.name}|${p.resolved}|current`, { fw: p.fw, name: p.name, version: p.resolved, when: "current" });
if (updating(p)) checks.set(`${p.fw}|${p.name}|${p.target}|after`, { fw: p.fw, name: p.name, version: p.target, when: "after" });
Marina-L-Stoyanova and others added 3 commits October 16, 2026 13:26
Removed duplicate deletion and pruning of empty directories.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create custom agents for version update and component templates

5 participants