Skip to content

Commit aa6cbc2

Browse files
Merge branch 'ganastasov/add-agents' into simenoff/theming-agent-rules
2 parents 4680725 + 52f6f10 commit aa6cbc2

12 files changed

Lines changed: 2199 additions & 1692 deletions

.github/README.md

Lines changed: 400 additions & 0 deletions
Large diffs are not rendered by default.

.github/agents/bug-fixing-implementer-agent.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ Check the relevant skill file for component APIs and patterns:
3939
- Grid components → `skills/igniteui-angular-grids/SKILL.md`
4040
- Theming & styling → `skills/igniteui-angular-theming/SKILL.md`
4141

42-
Each skill file is a routing hub pointing to detailed reference files under its `references/` folder. **Read the relevant reference files in full** before modifying any component code.
43-
4442
---
4543

4644
## GREEN Phase — Fix the Bug

.github/agents/bug-fixing-orchestrator-agent.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,13 @@ projects/igniteui-angular/core/src/core/styles/ ← component SCSS themes
147147

148148
Run `npm start` if the bug involves UI behavior or user interaction to visually confirm the issue.
149149

150-
### Step 2 — Present a Scope Summary
150+
### Step 2 — Request Missing Context
151+
152+
If the report is missing information needed to reproduce or scope the bug safely, pause and ask for the missing context before routing any work.
153+
154+
Keep the follow-up short and specific.
155+
156+
### Step 3 — Present a Scope Summary
151157

152158
Present a brief scope summary to the user:
153159

@@ -166,7 +172,7 @@ Wait for user confirmation.
166172
If a demo/sample is relevant, ask explicitly:
167173
`Do you want a demo/sample update for this change? Yes / No`
168174

169-
### Step 3 — Route Work
175+
### Step 4 — Route Work
170176

171177
Delegate work only through isolated subagent execution when available. If isolated subagents are not available in the current environment, stop after investigation and require specialist work to continue in a new chat session with minimal context.
172178

@@ -192,11 +198,11 @@ If the user declined, skip that handoff and continue with the remaining agents.
192198

193199
If the bug is purely in theming or styling, route directly from `tdd-test-writer-agent` to `theming-styles-agent` and skip the general implementer.
194200

195-
### Step 4 — Verify Completeness
201+
### Step 5 — Verify Completeness
196202

197203
After all agents finish, check:
198204

199-
- Does the failing test now pass?
205+
- Does the newly added failing test now pass?
200206
- Were all affected areas covered?
201207
- Were public exports preserved or updated?
202208
- Were theming and style changes delegated when SCSS or theme wiring was affected?
@@ -225,7 +231,7 @@ Report what was done and any remaining items.
225231

226232
## Multi-branch Fixes
227233

228-
When a bug exists in multiple release branches:
234+
When a bug exists in multiple supported release branches:
229235
1. Target the fix at the **oldest affected branch** first.
230236
2. Cherry-pick the commit to each newer branch up to and including `master`.
231237
3. Create separate PRs for each cherry-pick.

.github/agents/feature-implementer-agent.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,12 @@ Add JSDoc on every new or changed public member with `@param`, `@returns`, and `
106106

107107
---
108108

109+
## Agent Skills
110+
111+
Update component agent skills if you need to guide other agents on how to use the newly added feature.
112+
113+
---
114+
109115
## What You Do NOT Do
110116

111117
- Do not modify component SCSS or theme infrastructure — the `theming-styles-agent` handles that.

.github/agents/feature-orchestrator-agent.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,13 @@ projects/igniteui-angular/core/src/core/styles/ ← component SCSS themes
132132
- Whether styles or component themes are affected
133133
- Which test suite to use (grid vs non-grid)
134134

135-
### Step 2 — Present a Scope Summary
135+
### Step 2 — Request Missing Context
136+
137+
If the request is missing information needed to discover scope safely, pause and ask for the missing context before routing any work.
138+
139+
Keep the follow-up short and specific.
140+
141+
### Step 3 — Present a Scope Summary
136142

137143
Present a brief scope summary to the user:
138144

@@ -150,7 +156,7 @@ Wait for user confirmation.
150156
If a demo/sample is relevant, ask explicitly:
151157
`Do you want a demo/sample update for this feature? Yes / No`
152158

153-
### Step 3 — Route Work
159+
### Step 4 — Route Work
154160

155161
Delegate work only through isolated subagent execution when available. If isolated subagents are not available in the current environment, stop after scope discovery and require specialist work to continue in a new chat session with minimal context.
156162

@@ -183,7 +189,7 @@ If the user declined, skip that handoff and continue with the remaining agents.
183189
If the feature is purely theming or styling, route directly from `tdd-test-writer-agent` to `theming-styles-agent` and skip the general
184190
implementer.
185191

186-
### Step 4 — Verify Completeness
192+
### Step 5 — Verify Completeness
187193

188194
After all agents finish, check:
189195

.github/agents/migration-agent.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ You create **`ng update` migration schematics** for breaking changes in Ignite U
1818

1919
## When to Create Migrations
2020

21-
- API removed or renamed
21+
- API removed, renamed, or deprecated
2222
- Type or enum member renamed
2323
- Selector deprecated or changed
2424
- Component/directive moved to a different entry point

.github/agents/tdd-test-writer-agent.md

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,26 @@ You are an independent specialist, not a plan executor. Read the user's request
2121
## How You Work
2222

2323
1. **Read the original request** — understand the real behavior being added, changed, or fixed.
24-
2. **Read the existing component source and spec files**understand the current implementation, current coverage, and the best place to extend tests.
25-
3. **Decide the smallest meaningful test set**for a small change, prefer **1 or 2 focused tests** that prove different behavior contracts.
26-
4. **Write the tests**prefer **2 small meaningful tests that cover different things** over 1 oversized test or many near-duplicate tests.
27-
5. Add a **third test only** if it proves a clearly distinct contract that the first 1 or 2 tests do not cover.
28-
6. **Run the tests** — confirm they fail for the intended missing behavior.
24+
2. **Identify the task type**determine whether the request is a **bug fix** or a **feature implementation**.
25+
3. **Read the existing component source and spec files**understand the current implementation, current coverage, and the best place to extend tests.
26+
4. **Decide the test scope based on task type**for a **bug fix**, focus on reproducing the issue and proving the fix with the smallest useful test set; for a **feature implementation**, cover the meaningful contracts of the new behavior while keeping the test set focused.
27+
5. **Write focused failing tests** that prove the intended behavior.
28+
6. **Run the tests** — confirm they fail for the intended missing functionality, or for existing functionality that does not function as intended.
2929

3030
You may collapse multiple requirements into fewer tests when one test can prove the contract clearly.
31-
Do not add extra scenarios or extra tests unless they are explicitly requested, clearly required by the feature contract, or needed for accessibility or backward compatibility.
31+
32+
Do not add extra scenarios unless they are explicitly requested, clearly required by the feature contract, or needed for accessibility or backward compatibility.
3233

3334
---
3435

3536
## Rules
3637

37-
1. **Default to the smallest useful test set.**
38-
- For a small additive change or bug fix, prefer **1 or 2 focused tests**.
39-
- Prefer **2 focused tests that cover different behaviors** over 1 oversized test.
40-
- Add a **third test only** if it proves a clearly distinct contract that the first 1 or 2 tests do not cover.
41-
- Do **not** write more than **3 new tests total** unless the user explicitly asks for broader coverage.
38+
1. **Choose test count based on task type.**
39+
- For a **bug fix**, prefer **1 or 2 focused tests**.
40+
- Add a **third bug-fix test only** if it proves a clearly distinct contract that the first 1 or 2 tests do not cover.
41+
- Do **not** write more than **3 new bug-fix tests total** unless the user explicitly asks for broader coverage.
42+
- For a **feature implementation**, add the meaningful tests needed to cover the feature contract.
43+
- Keep feature test sets focused, avoid unnecessary scenario matrices, and prefer distinct tests over repetition.
4244
2. **Prefer behavior-focused tests over API existence checks.**
4345
- Test observable behavior, emitted events, rendered state, or accessibility state.
4446
- Do not add tests whose only purpose is to verify that a symbol is exported, a member exists, or a property is publicly accessible.
@@ -52,7 +54,7 @@ Do not add extra scenarios or extra tests unless they are explicitly requested,
5254
- No shared mutable state.
5355
- No execution-order dependency.
5456
6. **Never write production code.**
55-
- Only test code in this phase.
57+
- Only test code in this phase to ensure the test does not give false negatives. The test MUST fail if the functionality is missing, or not behaving as intended.
5658

5759
---
5860

@@ -88,10 +90,11 @@ For bug fixes, write a test that reproduces the broken behavior — it must fail
8890

8991
Default to the smallest useful test set.
9092

91-
- Prefer **1 or 2 meaningful tests** for a small additive behavior or bug fix.
92-
- Prefer **2 smaller tests that cover different contracts** over **1 large test** that tries to verify everything.
93-
- Add a **third test only** when it proves a clearly distinct behavior that the first 1 or 2 tests do not cover.
94-
- **Maximum: 3 new tests total.**
93+
- For **bug fixes**, prefer **1 or 2 meaningful tests**.
94+
- For **bug fixes**, add a **third test only** when it proves a clearly distinct behavior that the first 1 or 2 tests do not cover.
95+
- For **bug fixes**, **maximum: 3 new tests total** unless the user explicitly asks for broader coverage.
96+
- For **feature implementations**, add the meaningful tests needed to cover the feature contract.
97+
- For **both** prefer smaller tests that cover distinct contracts over 1 large test that tries to verify everything.
9598
- Do not generate scenario matrices unless the user explicitly requests broad scenario coverage.
9699
- Do not split one small behavior into many tiny repetitive tests.
97100

@@ -152,9 +155,9 @@ Before finishing:
152155

153156
1. Run the smallest relevant test suite.
154157
2. Confirm the new tests fail for the intended missing behavior.
155-
3. Confirm the test set stays small and meaningful:
156-
- prefer 1 or 2 tests
157-
- add a 3rd only if it proves a clearly distinct contract
158+
3. Confirm the test set matches the task:
159+
- for **bug fixes**, prefer 1 or 2 tests and add a 3rd only if it proves a clearly distinct contract
160+
- for **feature implementations**, ensure the tests meaningfully cover the feature without padding or repetition
158161
4. Confirm you did not write production code.
159162

160163
---

AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ css-naming-convention.md ← CSS naming rules
5656
- Add JSDoc with `@param`, `@returns`, and `@example` on every new public member.
5757
- Add or update `ng update` migrations for true breaking changes such as removals, renames, moved entry points, selector changes, or incompatible default-behavior changes.
5858
- Update the component `README.md` when the public API surface changes.
59+
- Update relevant Agent skills if a change is significant and/or you need to tell other agents how to use the newly introduced feature.
5960
- Consider demo/sample updates in `src/app/` for user-visible changes.
6061
- Update `CHANGELOG.md` for new features, deprecations, breaking changes, and notable user-visible fixes when they fit the existing changelog section structure.
6162

@@ -120,6 +121,9 @@ Feature implementation is handled by a set of specialized agents in `.github/age
120121
| `migration-agent` | `migration-agent.md` | Creates `ng update` migration schematics for breaking changes |
121122
| `changelog-agent` | `changelog-agent.md` | Updates `CHANGELOG.md` following repo conventions |
122123

124+
Feature and bug orchestrators route work in this order:
125+
TDD → implementer → README (if needed) → migration (if breaking) → changelog (if needed).
126+
123127
## Commit Message Conventions
124128

125129
When creating or suggesting a commit message, follow this format:

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ All notable changes for each version of this project will be documented in this
99
- `IgxCombo`, `IgxSimpleCombo`
1010
- Introduced the `selectionChanged` event for both components. The event is not cancelable and is emitted after the selection is committed and the component state is updated.
1111

12+
## 21.1.3
13+
14+
### Security Fixes
15+
- Bumped `jspdf` dependency to `4.2.1` to address a security vulnerability present in earlier versions.
16+
1217
## 21.1.0
1318

1419
### New Features

0 commit comments

Comments
 (0)