Skip to content

feat(components/packages): add ai skills to workspace#4354

Draft
johnhwhite wants to merge 16 commits intomainfrom
add-skills-for-fixing-issues
Draft

feat(components/packages): add ai skills to workspace#4354
johnhwhite wants to merge 16 commits intomainfrom
add-skills-for-fixing-issues

Conversation

@johnhwhite
Copy link
Copy Markdown
Member

@johnhwhite johnhwhite commented Apr 1, 2026

AB#3932736

Summary by CodeRabbit

Release Notes

  • New Features
    • Added a new schematic that provides comprehensive development guidance documentation, including workflow instructions for debugging Angular migrations, test-driven development practices, and verification requirements before task completion. The schematic generates skill documentation files and evaluation test specifications for developer reference.

@johnhwhite johnhwhite added the risk level (author): 1 No additional bugs expected from this change label Apr 1, 2026
@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 1, 2026 15:22 — with GitHub Actions Inactive
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 1, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b77a33a2-b643-482e-9117-792e7f246955

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

A new Angular schematic named add-ai-skills is introduced, which generates skill documentation and reference guides into the .github/skills/ directory. The schematic is registered in collection.json and migrations.json, with supporting TypeScript implementation, schema definition, comprehensive skill documentation, reference guides, and evaluation test specifications.

Changes

Cohort / File(s) Summary
Schematic Configuration
libs/components/packages/collection.json, libs/components/packages/migrations.json, libs/components/packages/project.json
Registered new add-ai-skills schematic with factory and schema paths; extended build assets to include all schematic template files under src/schematics/**/files/**/*.
Schematic Implementation
libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.ts, libs/components/packages/src/schematics/migrations/update-14/add-ai-skills/add-ai-skills.ts
Created schematic entry points that load template files, normalize paths to .github, and apply file merge operations; migration entry delegates to ng-generate schematic.
Schema and Tests
libs/components/packages/src/schematics/ng-generate/add-ai-skills/schema.json, libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.spec.ts
Added JSON schema definition for schematic options; created Jest spec verifying SKILL.md file generation, content preservation, and idempotency under .github/skills/.
Primary Skill Documentation
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md, libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md, libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md
Added three comprehensive skill guides describing debugging workflows with four mandatory phases, Red-Green-Refactor TDD cycle, and verification protocols before completion claims.
Reference Documentation
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/*, libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/*
Added supporting reference guides covering Angular debugging patterns, condition-based waiting, defense-in-depth validation, root-cause tracing, testing patterns, and anti-patterns.
Evaluation Tests and Documentation
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md, libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/*, libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/*, libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/*
Added test specification documents including academic comprehension checks, behavioral scenarios, and pressure-test cases to evaluate skill adherence; included test runner instructions.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~18 minutes

Suggested reviewers

  • Blackbaud-SteveBrush

Poem

🐰 A schematic hops into the night,
With skills that guide developers right—
Debug with phases, test before you code,
And verify before you hit the road!
Four laws of wisdom, now at your feet.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and concisely summarizes the main change: adding AI skills to the workspace within the components/packages scope.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-skills-for-fixing-issues

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Apr 1, 2026

View your CI Pipeline Execution ↗ for commit 997219c

Command Status Duration Result
nx build code-examples-playground --baseHref=ht... ✅ Succeeded 1m 51s View ↗
nx build playground --baseHref=https://blackbau... ✅ Succeeded 1m 36s View ↗
nx build integration --baseHref=https://blackba... ✅ Succeeded 31s View ↗

☁️ Nx Cloud last updated this comment at 2026-04-07 14:37:52 UTC

@blackbaud-sky-build-user
Copy link
Copy Markdown
Collaborator

Storybook preview

Component Storybooks:

  • (no component storybooks affected in this pr)

Apps:

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 10

🧹 Nitpick comments (5)
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-1.md (1)

19-21: Add a language specifier to the fenced code block.

The static analysis tool flagged this code block as missing a language identifier. Since this shows a log/error message, consider adding text or log as the language specifier for consistency and to satisfy the linter.

Suggested fix
-```
+```text
 PaymentError: Connection timeout to payments.api.com
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-1.md
around lines 19 - 21, Add a language specifier to the fenced code block that
contains the error message "PaymentError: Connection timeout to
payments.api.com" in test-pressure-1.md by changing the opening backticks to
include a language (e.g., text or log) so the linter recognizes it as a
text/log block; locate the fenced block with that exact message and update the
opening fence only.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md (1)</summary><blockquote>

`15-21`: **Consider adding language specifiers to pseudo-code blocks.**

Multiple fenced code blocks containing "Gate Function" instructions and "Iron Laws" lack language specifiers. While the content is instructional pseudo-code rather than executable code, adding `text` or `plaintext` as the language identifier would satisfy the markdownlint rule (MD040) and improve consistency.

Affected blocks are at lines: 15, 58, 112, 163, 225, 245, 259, 354, 412.



<details>
<summary>Example fix for one block</summary>

```diff
-```
+```text
 1. NEVER test mock behavior
 2. NEVER add test-only methods to production classes
 ...
 ```
```
</details>


Also applies to: 58-66, 112-124

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md
around lines 15 - 21, Add a language specifier (e.g., text) to every fenced pseudo-code block in the file (the blocks containing the "Gate Function" instructions and the "Iron Laws" lists, including the blocks referenced at lines 15, 58, 112, 163, 225, 245, 259, 354, and 412) so they satisfy MD040; update each opening fence from to text while leaving the inner content unchanged and keep the closing as-is.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md (1)</summary><blockquote>

`30-32`: **Add language specifier to fenced code block.**

The error message block should have a language identifier for proper syntax highlighting and rendering. Consider using `text` or `console` as the language identifier.



<details>
<summary>📝 Proposed fix</summary>

```diff
-```
+```text
 NullInjectorError: No provider for SkyModalService!
 ```
```

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md
around lines 30 - 32, Update the fenced code block in root-cause-tracing.md that
contains the error text "NullInjectorError: No provider for SkyModalService!" to
include a language specifier (e.g., change totext or ```console) so the
block is rendered with proper syntax highlighting and formatting; locate the
block by searching for the exact error string and replace the opening fence
accordingly.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md (1)</summary><blockquote>

`269-285`: **Add language specifier to decision tree code block.**

The decision tree would render better with a language identifier. Consider using `text` or a tree-specific identifier if supported by the markdown processor.



<details>
<summary>📝 Proposed fix</summary>

```diff
-```
+```text
 Need to test a SKY UX component?
 ├── Harness exists in `@skyux/`*/testing?
```

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md
around lines 269 - 285, The fenced decision-tree code block lacks a language
specifier; update the triple-backtick opening for the block that begins with
"Need to test a SKY UX component?" to include a language identifier (e.g.,
change totext) so the markdown renderer treats it as plain text and
preserves the tree formatting; ensure you only modify the opening fence for that
code block in angular-testing-patterns.md.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md (1)</summary><blockquote>

`18-20`: **Add language specifier to fenced code block.**

The text block would benefit from a language identifier for consistent rendering across markdown processors.



<details>
<summary>📝 Proposed fix</summary>

```diff
-```
+```text
 NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
 ```
```

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md
around lines 18 - 20, Update the fenced code block in SKILL.md to include a
language specifier (e.g., change the triple backticks to ```text) so the block
containing "NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST" is rendered
consistently across Markdown processors; locate the fenced block in the
migration-resolver SKILL.md and add the language label immediately after the
opening backticks.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Inline comments:
In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/angular-debugging.md:

  • Around line 69-71: Two fenced code blocks in
    migration-resolver/references/angular-debugging.md are missing a language token;
    change the opening backticks from totext for the block containing
    "constructor → ngOnChanges → ngOnInit → ngAfterContentInit → ngAfterViewInit →
    ngOnDestroy" and the block starting with "ComponentHarness (Angular CDK) └──
    SkyComponentHarness (@skyux/core/testing)" so markdownlint MD040 is resolved;
    locate those exact blocks and add the language token "text" to each opening
    fence.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/condition-based-waiting.md:

  • Line 39: The snippet calls waitFor without the required description parameter;
    update the call to pass a short descriptive string as the first argument (e.g.,
    a message like "waiting for getResult to be defined") and keep the predicate
    (the getResult check) as the second argument so the call matches the declared
    waitFor(description, predicate) signature; apply the same fix to the other
    occurrences referencing waitFor/getResult in this file.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md:

  • Around line 37-39: In SKILL.md update all unlabeled fenced code blocks to
    include language identifiers to satisfy markdownlint MD040: add text for plain text blocks containing phrases like "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST", the blocks around the <Good> and <Bad> examples (use typescript
    for the TypeScript example and ```text for the explanatory lines), and the final
    block containing "Production code → test exists and failed first Otherwise → not
    TDD"; apply the same change to the other occurrences referenced (around the
    other unlabeled fences noted) so every triple-backtick fence has an appropriate
    language tag.
  • Line 411: Update the broken skill link: change the markdown link that uses
    label fix-bugs and currently points to ../migration-resolver/SKILL.md so it
    points to the correct skill target (e.g., ../fix-bugs/SKILL.md) ensuring the
    link label fix-bugs remains the same and the link target matches the actual
    skill folder/file.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md:

  • Around line 150-154: Update the link text in SKILL.md so it matches the target
    skill directory name: change the link label "fix-bugs" to "migration-resolver"
    for the entry that points to ../migration-resolver/SKILL.md (the line starting
    with "- fix-bugs") so the displayed text
    and the actual directory name are consistent with the adjacent skill links.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-behavioral-overlay.md:

  • Around line 47-49: The Markdown file contains a fenced code block with an
    error message that violates MD040 by missing a language tag; open the file
    libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-behavioral-overlay.md,
    locate the fenced block that currently contains "Error: Expected exactly one
    match for SkyConfirmHarness, but found 0." and change the opening fence from totext so the block is explicitly marked as plain text (addressing the MD040
    lint warning).

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-2.md:

  • Around line 13-15: The Markdown code fence containing the error message
    "Error: Expected exactly one match for SkyConfirmHarness, but found 0." is
    unlabeled and triggers MD040; update that fenced snippet to include a language
    identifier (for example add "text" after the opening to becometext) so
    the snippet is properly labeled and the MD040 lint warning is resolved.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md:

  • Around line 9-24: The code block in README.md uses a fenced block without a
    language, causing MD040; update the opening fence for the tree block to include
    a language identifier (e.g., change the triple backticks to "```text") so the
    fence is recognized and linting passes; locate the fenced block in
    libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md
    and modify the opening backticks accordingly.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md:

  • Around line 11-19: The fenced terminal output block in
    test-partial-verification.md is missing a language label causing MD040 failures;
    update the fence to include a language (e.g., "text") for the block that starts
    with "$ npx nx lint my-lib" so it becomes text ... and ensure the content
    and closing fence remain unchanged.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md:

  • Around line 37-39: The fenced error block showing "error TS2304: Cannot find
    name 'computed'." in test-premature-success.md lacks a language token and
    triggers MD040; update that fenced code block to include a language identifier
    (e.g., add "text" after the opening ), so the snippet like the TS error (TS2304) referencing 'computed' is formatted as text ... ``` to satisfy
    markdownlint.

Nitpick comments:
In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md:

  • Around line 30-32: Update the fenced code block in root-cause-tracing.md that
    contains the error text "NullInjectorError: No provider for SkyModalService!" to
    include a language specifier (e.g., change totext or ```console) so the
    block is rendered with proper syntax highlighting and formatting; locate the
    block by searching for the exact error string and replace the opening fence
    accordingly.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md:

  • Around line 18-20: Update the fenced code block in SKILL.md to include a
    language specifier (e.g., change the triple backticks to ```text) so the block
    containing "NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST" is rendered
    consistently across Markdown processors; locate the fenced block in the
    migration-resolver SKILL.md and add the language label immediately after the
    opening backticks.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md:

  • Around line 269-285: The fenced decision-tree code block lacks a language
    specifier; update the triple-backtick opening for the block that begins with
    "Need to test a SKY UX component?" to include a language identifier (e.g.,
    change totext) so the markdown renderer treats it as plain text and
    preserves the tree formatting; ensure you only modify the opening fence for that
    code block in angular-testing-patterns.md.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md:

  • Around line 15-21: Add a language specifier (e.g., text) to every fenced pseudo-code block in the file (the blocks containing the "Gate Function" instructions and the "Iron Laws" lists, including the blocks referenced at lines 15, 58, 112, 163, 225, 245, 259, 354, and 412) so they satisfy MD040; update each opening fence from to text while leaving the inner content unchanged and keep the closing as-is.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-1.md:

  • Around line 19-21: Add a language specifier to the fenced code block that
    contains the error message "PaymentError: Connection timeout to
    payments.api.com" in test-pressure-1.md by changing the opening backticks to
    include a language (e.g., text or log) so the linter recognizes it as a
    text/log block; locate the fenced block with that exact message and update the
    opening fence only.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: defaults

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `c0fbb043-1243-41e9-bdc3-fd63395f2e20`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between b8ebc73aad46021a87892e841521b7d212663269 and e1c8d1cc2103adfc9a38f74dc25a4e9e01290726.

</details>

<details>
<summary>📒 Files selected for processing (27)</summary>

* `libs/components/packages/collection.json`
* `libs/components/packages/migrations.json`
* `libs/components/packages/project.json`
* `libs/components/packages/src/schematics/migrations/update-14/add-ai-skills/add-ai-skills.ts`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.spec.ts`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.ts`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/angular-debugging.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/condition-based-waiting.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/defense-in-depth.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/schema.json`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-academic.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-behavioral-overlay.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-1.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-2.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-3.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-code-first-resistance.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-harness-preference.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-new-feature.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md`
* `libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment thread libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds an add-ai-skills schematic (and migration) to distribute AI “skill” markdown documents into a consuming workspace’s .github/skills/ folder, plus internal repo-only evaluation prompts for those skills.

Changes:

  • Introduces the add-ai-skills generator and update-14 migration wiring.
  • Adds skill content markdown for debugging, TDD, and verification (with references).
  • Adds repo-only evaluation prompts under src/schematics/.../tests/ and updates packaging globs.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 17 comments.

Show a summary per file
File Description
libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.ts Implements schematic to copy files/ content into .github/ while filtering out /evals/.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.spec.ts Adds schematic tests validating copied outputs and overwrite behavior.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/schema.json Adds schema for the new schematic.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md Adds debugging skill documentation (systematic investigation + Angular/SKY UX specifics).
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md Adds debugging reference on tracing root causes.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/defense-in-depth.md Adds debugging reference on layered validation.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/condition-based-waiting.md Adds debugging reference on replacing arbitrary sleeps with condition-based waits.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/angular-debugging.md Adds Angular-specific debugging reference (CD, DI, lifecycle, overlays).
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md Adds TDD skill documentation (red/green/refactor + SKY UX harness/testing guidance).
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md Adds reference patterns for TestBed + harness usage and mocking guidance.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md Adds reference catalog of testing anti-patterns (ng-mocks, DOM queries, etc.).
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md Adds verification discipline skill (run commands + show evidence before “done”).
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md Documents structure and how to run internal eval prompts.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-academic.md Adds academic eval prompt for debugging skill.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-behavioral-overlay.md Adds behavioral eval prompt about overlay harness loader usage.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-1.md Adds pressure eval prompt for emergency production fix scenario.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-2.md Adds pressure eval prompt about flaky harness test + sunk cost.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/fix-bugs/test-pressure-3.md Adds pressure eval prompt about authority/social pressure.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md Adds behavioral eval prompt ensuring verification happens before success claims.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md Adds behavioral eval prompt ensuring lint-only is treated as insufficient verification.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-new-feature.md Adds behavioral eval prompt to implement a harness method via TDD.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-harness-preference.md Adds behavioral eval prompt preferring harnesses over DOM queries for modals.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-code-first-resistance.md Adds behavioral eval prompt checking for TDD “iron law” pushback.
libs/components/packages/src/schematics/migrations/update-14/add-ai-skills/add-ai-skills.ts Adds update-14 migration that runs the new external schematic.
libs/components/packages/project.json Ensures schematic files/** content is included in the package output.
libs/components/packages/migrations.json Registers the new add-ai-skills migration.
libs/components/packages/collection.json Registers the new add-ai-skills generator in the schematics collection.

…-issues

* origin/main:
  fix(components/forms): mark file attachment as `touched` on deletion (#4343) (#4352)
@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 1, 2026 16:05 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (5)
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md (1)

9-24: ⚠️ Potential issue | 🟡 Minor

Label the structure tree fence with a language.

The opening fence should include a language token (e.g., text) to satisfy MD040.

Suggested fix
-```
+```text
 tests/
 ├── migration-resolver/                           # Systematic debugging skill
 │   ├── test-academic.md                # Comprehension: can Claude quote the skill accurately?
@@
-```
+```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md`
around lines 9 - 24, The Markdown code fence in the README.md tests tree lacks a
language token which triggers MD040; update the opening triple-backtick for the
tree (the fenced block showing tests/ ├── migration-resolver/ ...) to include a
language (e.g., ```text) so the block becomes ```text and keep the closing ```
unchanged.
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-2.md (1)

13-15: ⚠️ Potential issue | 🟡 Minor

Label the fenced error output block with a language token.

The code fence should include a language (for example text) to satisfy MD040.

Suggested fix
-```
+```text
 Error: Expected exactly one match for SkyConfirmHarness, but found 0.
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-2.md
around lines 13 - 15, The fenced error output block in test-pressure-2.md lacks
a language token causing MD040; update the code fence that currently contains
"Error: Expected exactly one match for SkyConfirmHarness, but found 0." to
include a language tag such as text (i.e., change totext) so the block
is labeled and the lint rule passes.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md (1)</summary><blockquote>

`37-39`: _⚠️ Potential issue_ | _🟡 Minor_

**Specify a language for the fenced TypeScript error block.**

This block is missing a fence language and triggers MD040.

<details>
<summary>Suggested fix</summary>

```diff
-```
+```text
 error TS2304: Cannot find name 'computed'.
 ```
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md
around lines 37 - 39, The fenced code block showing the TypeScript error ("error
TS2304: Cannot find name 'computed'.") is missing a language tag and triggers
MD040; fix it by adding a fence language (e.g., change the opening totext or ```ts) for the block that contains the error message so the markdown
linter no longer flags it—locate the block containing the literal "error TS2304:
Cannot find name 'computed'." and add the chosen language after the backticks.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md (1)</summary><blockquote>

`11-19`: _⚠️ Potential issue_ | _🟡 Minor_

**Add a fence language to the terminal output block.**

This unlabeled fence will fail MD040 checks.

<details>
<summary>Suggested fix</summary>

```diff
-```
+```text
 $ npx nx lint my-lib
 
 > nx run my-lib:lint
 
 Linting "my-lib"...
 
 All files pass linting.
 ```
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md
around lines 11 - 19, The markdown code fence in the file
test-partial-verification.md is missing a language label which triggers MD040;
update the unlabeled fenced block (the terminal output block in
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md)
by adding a language tag such as "text" after the opening triple backticks so
the block becomes ```text and the lint check will pass.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md (1)</summary><blockquote>

`37-39`: _⚠️ Potential issue_ | _🟡 Minor_

**Add language labels to fenced code blocks (MD040).**

These code fences are still unlabeled and can fail markdownlint in strict docs pipelines.

 
<details>
<summary>Suggested fix</summary>

```diff
-```
+```text
 NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
 ```

@@
-```
+```text
 Production code → test exists and failed first
 Otherwise → not TDD
 ```
```
</details>


Also applies to: 425-428

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md
around lines 37 - 39, The markdown contains unlabeled fenced code blocks that
trigger MD040; update the unlabeled backtick fences in SKILL.md that wrap the
lines "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST" and the block starting
"Production code → test exists and failed first" (and the similar occurrence
around lines 425-428) to use a language label (e.g., "text") so they become
text ... ; locate the two unlabeled triple-backtick blocks in the file and
add the "text" label to each opening fence to satisfy markdownlint.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Inline comments:
In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md:

  • Around line 18-20: Two fenced code blocks in SKILL.md are missing language
    identifiers (MD040); update both fenced blocks that contain "NO FIXES WITHOUT
    ROOT CAUSE INVESTIGATION FIRST" and the later block around the "For EACH
    component boundary:" list to include a language tag (e.g., ```text) after the
    opening backticks so the Markdown linter recognizes the language; locate those
    exact fenced blocks in SKILL.md and add the language identifier to each opening

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-1.md`:
- Around line 19-21: The fenced code block containing "PaymentError: Connection
timeout to payments.api.com" is unlabeled and triggers MD040; update the fence
to include a language identifier by changing the opening triple backticks to
"```text" so the block reads ```text followed by the error line and then the
closing ```; ensure the spacing/indentation of the snippet content remains the
same.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-new-feature.md`:
- Line 61: The evaluator is checking for a non-existent selector
`.sky-input-box-error-text`; update the test prompt in test-new-feature.md
(references to the error selector at lines around the current diff) to accept
the actual error rendering used by the input-box: check for `<sky-form-errors>`
and/or projected `.sky-error-label` or `.sky-error-indicator` instead of
`.sky-input-box-error-text`, and adjust the evaluator language so it validates
either the presence of sky-form-errors or the projected error label/indicator
selectors.

---

Duplicate comments:
In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md`:
- Around line 37-39: The markdown contains unlabeled fenced code blocks that
trigger MD040; update the unlabeled backtick fences in SKILL.md that wrap the
lines "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST" and the block starting
"Production code → test exists and failed first" (and the similar occurrence
around lines 425-428) to use a language label (e.g., "text") so they become
```text ... ```; locate the two unlabeled triple-backtick blocks in the file and
add the "text" label to each opening fence to satisfy markdownlint.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-2.md`:
- Around line 13-15: The fenced error output block in test-pressure-2.md lacks a
language token causing MD040; update the code fence that currently contains
"Error: Expected exactly one match for SkyConfirmHarness, but found 0." to
include a language tag such as text (i.e., change ``` to ```text) so the block
is labeled and the lint rule passes.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md`:
- Around line 9-24: The Markdown code fence in the README.md tests tree lacks a
language token which triggers MD040; update the opening triple-backtick for the
tree (the fenced block showing tests/ ├── migration-resolver/ ...) to include a
language (e.g., ```text) so the block becomes ```text and keep the closing ```
unchanged.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md`:
- Around line 11-19: The markdown code fence in the file
test-partial-verification.md is missing a language label which triggers MD040;
update the unlabeled fenced block (the terminal output block in
libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md)
by adding a language tag such as "text" after the opening triple backticks so
the block becomes ```text and the lint check will pass.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md`:
- Around line 37-39: The fenced code block showing the TypeScript error ("error
TS2304: Cannot find name 'computed'.") is missing a language tag and triggers
MD040; fix it by adding a fence language (e.g., change the opening ``` to
```text or ```ts) for the block that contains the error message so the markdown
linter no longer flags it—locate the block containing the literal "error TS2304:
Cannot find name 'computed'." and add the chosen language after the backticks.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5f55a311-906d-4188-94a9-a000db119044

📥 Commits

Reviewing files that changed from the base of the PR and between e1c8d1c and 6c2e24b.

📒 Files selected for processing (16)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.spec.ts
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.ts
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-academic.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-behavioral-overlay.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-1.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-2.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-3.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-code-first-resistance.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-harness-preference.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-new-feature.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md
✅ Files skipped from review due to trivial changes (5)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-3.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-behavioral-overlay.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-code-first-resistance.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-harness-preference.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.ts

…-issues

* origin/main:
  fix(components/packages): add dragula dependencies to project-level package.json for library projects (#4356)
@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 1, 2026 16:55 — with GitHub Actions Inactive
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (3)
libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md (1)

425-428: ⚠️ Potential issue | 🟡 Minor

Add a language label to this fenced block.

The fence opened at Line 425 is unlabeled; this can trip markdownlint MD040 in strict docs checks. Use a plain-text label for this block.

Suggested fix
-```
+```text
 Production code → test exists and failed first
 Otherwise → not TDD
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md
around lines 425 - 428, The fenced code block in SKILL.md containing "Production
code → test exists and failed first / Otherwise → not TDD" is missing a language
label which triggers MD040; update that triple-backtick fence to use a
plain-text label (e.g., ```text) so the block becomes a labeled text code block
and re-run linting to confirm the MD040 warning is resolved.


</details>

</blockquote></details>
<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md (1)</summary><blockquote>

`11-11`: _⚠️ Potential issue_ | _🟡 Minor_

**Specify a standard fence language identifier.**

The fenced code block uses `terminaloutput` which is not recognized by markdownlint, triggering MD040. Use `text` instead.

<details>
<summary>Proposed fix</summary>

```diff
-```terminaloutput
+```text
 $ npx ng lint
 
 Linting "my-lib"...
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md
at line 11, Replace the nonstandard fenced code block language identifier
"terminaloutput" with the standard "text" in the test-partial-verification.md
file; locate the fence that begins with ```terminaloutput and change it to

libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md (1)

37-37: ⚠️ Potential issue | 🟡 Minor

Specify a standard fence language identifier.

The fenced code block uses terminaloutput which is not recognized by markdownlint, triggering MD040. Use text instead.

Proposed fix
-```terminaloutput
+```text
 error TS2304: Cannot find name 'computed'.
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In
@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md
at line 37, Replace the nonstandard fenced code block language identifier
"terminaloutput" with the standard "text" in the test file's fenced block that
contains "error TS2304: Cannot find name 'computed'." — locate the fenced block
using the identifier terminaloutput and change it to text so markdownlint MD040
is satisfied.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md (1)</summary><blockquote>

`343-346`: **Qualify or source the hard performance percentages.**

The exact numbers (`95% vs 40%`, `15–30 minutes vs 2–3 hours`) read as measured claims but have no cited source. Consider framing them as anecdotal/internal observations or linking supporting data to avoid overstating certainty.  


<details>
<summary>Suggested wording</summary>

```diff
-From debugging sessions:
-
-- Systematic approach: 15-30 minutes to fix
-- Random fixes approach: 2-3 hours of thrashing
-- First-time fix rate: 95% vs 40%
-- New bugs introduced: Near zero vs common
+From internal debugging experience (anecdotal, context-dependent):
+
+- Systematic approach: often much faster to resolution
+- Random-fixes approach: often leads to longer thrashing cycles
+- First-time fix rate: typically higher with systematic investigation
+- Regressions introduced: typically lower when root cause is confirmed first
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md`
around lines 343 - 346, The statistic lines in SKILL.md ("15-30 minutes", "2-3
hours", "95% vs 40%") are presented as measured claims without sourcing; either
add a citation/link to supporting data or reword them as anecdotal/internal
observations (e.g., "typically", "our experience", or "in our internal testing")
to avoid overstating certainty—update the bullet list in the SKILL.md block
accordingly and ensure the altered wording or added reference clearly replaces
the raw percentages and times.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md`:
- Around line 425-428: The fenced code block in SKILL.md containing "Production
code → test exists and failed first / Otherwise → not TDD" is missing a language
label which triggers MD040; update that triple-backtick fence to use a
plain-text label (e.g., ```text) so the block becomes a labeled text code block
and re-run linting to confirm the MD040 warning is resolved.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md`:
- Line 11: Replace the nonstandard fenced code block language identifier
"terminaloutput" with the standard "text" in the test-partial-verification.md
file; locate the fence that begins with ```terminaloutput and change it to
```text so markdownlint MD040 is satisfied and the snippet remains unchanged.

In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md`:
- Line 37: Replace the nonstandard fenced code block language identifier
"terminaloutput" with the standard "text" in the test file's fenced block that
contains "error TS2304: Cannot find name 'computed'." — locate the fenced block
using the identifier terminaloutput and change it to text so markdownlint MD040
is satisfied.

---

Nitpick comments:
In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md`:
- Around line 343-346: The statistic lines in SKILL.md ("15-30 minutes", "2-3
hours", "95% vs 40%") are presented as measured claims without sourcing; either
add a citation/link to supporting data or reword them as anecdotal/internal
observations (e.g., "typically", "our experience", or "in our internal testing")
to avoid overstating certainty—update the bullet list in the SKILL.md block
accordingly and ensure the altered wording or added reference clearly replaces
the raw percentages and times.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 94c1c8d4-ceea-4fd8-8466-adaf82e66ff8

📥 Commits

Reviewing files that changed from the base of the PR and between 6c2e24b and c3249cc.

📒 Files selected for processing (14)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/angular-debugging.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-behavioral-overlay.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-1.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-2.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-new-feature.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-partial-verification.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/verification-before-completion/test-premature-success.md
✅ Files skipped from review due to trivial changes (10)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-1.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/testing-antipatterns.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-behavioral-overlay.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/README.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/migration-resolver/test-pressure-2.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/angular-debugging.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/root-cause-tracing.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-test-driven-development/references/angular-testing-patterns.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/tests/skyux-test-driven-development/test-new-feature.md
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/skyux-verification-before-completion/SKILL.md

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 27 out of 27 changed files in this pull request and generated 7 comments.

Comment thread libs/components/packages/collection.json
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 27 out of 27 changed files in this pull request and generated 4 comments.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/condition-based-waiting.md`:
- Around line 90-105: The example uses component.results() but never defines
component; after creating the TestBed component instance (the
TestBed.createComponent(SearchComponent) call) assign the component instance to
a local variable (e.g., const component = fixture.componentInstance;) so the
fakeAsync test can call component.results(); update the snippet around the
SearchComponent fixture creation to include that assignment.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cdf0f8f7-ff07-4ec1-acae-11aa78d858e4

📥 Commits

Reviewing files that changed from the base of the PR and between c3249cc and e5c5557.

📒 Files selected for processing (2)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.spec.ts
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/files/skills/migration-resolver/references/condition-based-waiting.md
✅ Files skipped from review due to trivial changes (1)
  • libs/components/packages/src/schematics/ng-generate/add-ai-skills/add-ai-skills.schematic.spec.ts

@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 1, 2026 19:20 — with GitHub Actions Inactive
@johnhwhite johnhwhite marked this pull request as ready for review April 1, 2026 19:23
…-issues

* origin/main:
  chore: release 14.0.0-beta.2 (#4358)
  fix(migrations): add dragula to `allowedNonPeerDependencies` in ng-package.json (#4357)
@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 1, 2026 19:32 — with GitHub Actions Inactive
…-issues

* origin/main:
  chore: release 14.0.0 (#4360)
  ci: release 14.0.0 (#4361)
  feat: release 14.0.0 (#4359)
@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 2, 2026 22:39 — with GitHub Actions Inactive
@Blackbaud-SteveBrush Blackbaud-SteveBrush self-assigned this Apr 3, 2026
@johnhwhite johnhwhite marked this pull request as draft April 3, 2026 14:23
…-issues

* origin/main:
  chore: release 14.0.1 (#4368)
  fix(components/i18n): add support for `ng-packagr@21.2.2` (#4370)
  fix: add missing docs for `skyux-stylelint/no-sky-theme-imports` and `skyux-eslint/no-sky-selectors` rules (#4365)
  chore: replace `@trivago/prettier-plugin-sort-imports` with `prettier-plugin-organize-imports` (#4223)
  chore: 14.0.0 changelog (#4363)
@johnhwhite johnhwhite temporarily deployed to e2e-team-members April 7, 2026 14:32 — with GitHub Actions Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk level (author): 1 No additional bugs expected from this change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants