Skip to content

fix(scripts): add grouped link-lang console diagnostics and failure summary#661

Merged
WilliamBerryiii merged 4 commits intomicrosoft:mainfrom
AhmedMustafa249:bug/add-per-issue-details-for-Link-lang
Feb 19, 2026
Merged

fix(scripts): add grouped link-lang console diagnostics and failure summary#661
WilliamBerryiii merged 4 commits intomicrosoft:mainfrom
AhmedMustafa249:bug/add-per-issue-details-for-Link-lang

Conversation

@AhmedMustafa249
Copy link
Contributor

@AhmedMustafa249 AhmedMustafa249 commented Feb 18, 2026

Pull Request

Description

  • print per-file and per-issue link-lang findings in terminal output
  • add workflow JSON-based failure details while preserving exit behavior
  • extend Pester assertions for issue and no-issue output paths

Related Issue(s)

Fixes #629

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update

Infrastructure & Configuration:

  • GitHub Actions workflow
  • Linting configuration (markdown, PowerShell, etc.)
  • Security configuration
  • DevContainer configuration
  • Dependency update

Other:

  • Script/automation (.ps1, .sh, .py)
  • Other (please describe):

Testing

  • npm run lint:links (with planted language links in markdown files): Returns console output with details about the affected files, line numbers and URL information

  • Test run shows:

🔍 Checking for URLs with language paths...
Found 4 URLs with 'en-us' language paths

📄 .github/CUSTOM-AGENTS.md
  ⚠️ Line 430: https://docs.microsoft.com/en-us/azure
📄 .github/PULL_REQUEST_TEMPLATE.md
  ⚠️ Line 43: https://docs.microsoft.com/en-us/azure
📄 CODE_OF_CONDUCT.md
  ⚠️ Line 28: https://docs.microsoft.com/en-us/azure
📄 SECURITY.md
  ⚠️ Line 106: https://docs.microsoft.com/en-us/azure
WARNING: WARNING [.github/CUSTOM-AGENTS.md:430] URL contains language path: https://docs.microsoft.com/en-us/azure
WARNING: WARNING [.github/PULL_REQUEST_TEMPLATE.md:43] URL contains language path: https://docs.microsoft.com/en-us/azure
WARNING: WARNING [CODE_OF_CONDUCT.md:28] URL contains language path: https://docs.microsoft.com/en-us/azure
WARNING: WARNING [SECURITY.md:106] URL contains language path: https://docs.microsoft.com/en-us/azure
❌ Link language check failed with 4 issue(s) in 4 file(s).

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)
  • Tests added for new functionality (if applicable)

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Skill structure validation: npm run validate:skills
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege
…ummary

- print per-file and per-issue link-lang findings in terminal output
- add workflow JSON-based failure details while preserving exit behavior
- extend Pester assertions for issue and no-issue output paths
@AhmedMustafa249 AhmedMustafa249 marked this pull request as ready for review February 18, 2026 10:59
@AhmedMustafa249 AhmedMustafa249 requested a review from a team as a code owner February 18, 2026 10:59
@katriendg katriendg requested a review from Copilot February 18, 2026 12:55
Copy link
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

This PR adds per-issue console diagnostics to the link-lang check script and enhances the workflow's failure step to display detailed violation information. Previously, when the link-lang check failed in GitHub Actions, contributors only saw a count summary with no details about which files, lines, or URLs were problematic. This change brings the link-lang check output in line with other linting scripts like PSScriptAnalyzer by adding grouped, per-file console output.

Changes:

  • Added grouped per-file and per-issue console output to Invoke-LinkLanguageCheck.ps1 using Write-Host calls
  • Enhanced the workflow's failure step to parse and display JSON results with file, line, and URL details
  • Extended Pester tests to verify console output for both issue-found and no-issue code paths

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
scripts/linting/Invoke-LinkLanguageCheck.ps1 Added grouped Write-Host output showing file names and individual violations, following the PSScriptAnalyzer pattern; moved $uniqueFiles calculation earlier for reuse in JSON output
.github/workflows/link-lang-check.yml Replaced generic failure message with JSON-based detailed output showing per-issue file/line/URL information, with defensive fallbacks for malformed data
scripts/tests/linting/Invoke-LinkLanguageCheck.Tests.ps1 Added Write-Host mock capturing and assertions for both success and failure paths, verifying per-file and per-issue console output
@katriendg
Copy link
Contributor

Thank you @AhmedMustafa249 you are on fire! I'm adding Copilot as a first pass reviewer to address any top of mind before our reviews.

@codecov-commenter
Copy link

codecov-commenter commented Feb 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.43%. Comparing base (de5cfd6) to head (6da3de0).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #661      +/-   ##
==========================================
- Coverage   85.43%   85.43%   -0.01%     
==========================================
  Files          23       23              
  Lines        4668     4674       +6     
==========================================
+ Hits         3988     3993       +5     
- Misses        680      681       +1     
Flag Coverage Δ
pester 85.43% <100.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
scripts/linting/Invoke-LinkLanguageCheck.ps1 86.76% <100.00%> (+1.28%) ⬆️

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
@WilliamBerryiii
Copy link
Member

I'm going to resolve the build problem on this so we can get it merged. Thanks @AhmedMustafa249 for the contribution here ... solid delivery!

WilliamBerryiii and others added 2 commits February 19, 2026 13:22
- add missing BOM for non-ASCII encoded test file containing emoji characters

🔧 - Generated by Copilot
@WilliamBerryiii WilliamBerryiii merged commit 4d6871f into microsoft:main Feb 19, 2026
19 checks passed
WilliamBerryiii pushed a commit that referenced this pull request Feb 20, 2026
���� I have created a release *beep* *boop*
---


##
[3.0.0](hve-core-v2.3.10...hve-core-v3.0.0)
(2026-02-20)


### ⚠ BREAKING CHANGES

* **skills:** migrate PR reference generation to self-contained skill
([#669](#669))
* restructure RPI collection to HVE Core naming convention
([#668](#668))

### ✨ Features

* **agents:** add agile-coach agent
([#562](#562))
([de8d86c](de8d86c))
* **agents:** add DT coach agent with tiered instruction loading
([#656](#656))
([206d3a7](206d3a7))
* **agents:** add product manager advisor and UX/UI designer agents
([#627](#627))
([539eb8a](539eb8a))
* **agents:** add system architecture reviewer for design trade-offs and
ADR creation ([#626](#626))
([de5cfd6](de5cfd6))
* **build:** pin devcontainer image and align tool parity
([#704](#704))
([6258b1c](6258b1c))
* **design-thinking:** add manufacturing industry context template
([#682](#682))
([ce864bf](ce864bf))
* **instructions:** add DT coaching state protocol for session
persistence ([#654](#654))
([5a5be4e](5a5be4e))
* **instructions:** add dt-coaching-identity ambient instruction
([#642](#642))
([6209a0d](6209a0d))
* **instructions:** add dt-method-01-deep for advanced scope
conversation techniques
([#673](#673))
([cc92ef9](cc92ef9))
* **instructions:** add dt-method-03-deep for advanced input synthesis
techniques ([#676](#676))
([0079a4f](0079a4f))
* **instructions:** add dt-method-09-deep instructions for Method 9
advanced coaching
([#703](#703))
([150b2a6](150b2a6))
* **instructions:** add dt-method-sequencing ambient instruction
([#650](#650))
([e465b2f](e465b2f))
* **instructions:** add dt-quality-constraints and design-thinking
collection ([#645](#645))
([17002bd](17002bd))
* **instructions:** add DT-to-RPI handoff contract specification
([#679](#679))
([87f9962](87f9962))
* **instructions:** add energy industry context template
([#687](#687))
([41088d8](41088d8))
* **instructions:** add healthcare industry context template
([#686](#686))
([b2d5281](b2d5281))
* **instructions:** add Method 1 Scope Conversations coaching knowledge
([#651](#651))
([93e2d48](93e2d48))
* **instructions:** add Method 2 Design Research coaching knowledge
([#652](#652))
([30f7f3b](30f7f3b))
* **instructions:** add Method 3 Input Synthesis coaching knowledge
([#653](#653))
([1efdb7d](1efdb7d))
* **instructions:** add Method 7 High-Fidelity Prototypes coaching
instruction ([#666](#666))
([9233eab](9233eab))
* **instructions:** add pull request instructions for PR generation
workflow ([#706](#706))
([73d23eb](73d23eb))
* **instructions:** create DT curriculum content (9 modules)
([#690](#690))
([9f7378f](9f7378f)),
closes [#617](#617)
* **instructions:** create dt-method-02-deep.instructions.md
([#700](#700))
([4d4d0ca](4d4d0ca))
* **instructions:** create dt-method-06-lofi-prototypes.instructions.md
([#684](#684))
([4d5f757](4d5f757))
* **instructions:** create dt-method-07-deep.instructions.md
([#678](#678))
([d3ec70d](d3ec70d))
* **instructions:** Create dt-method-08-deep.instructions.md
([#683](#683))
([d9e1115](d9e1115))
* **instructions:** create dt-method-08-testing.instructions.md
([#681](#681))
([3008ad8](3008ad8))
* **instructions:** create dt-method-09-iteration.instructions.md
([#685](#685))
([9d7f4f5](9d7f4f5))
* **instructions:** create dt-rpi-research-context.instructions.md
([#689](#689))
([34c7b89](34c7b89))
* **instructions:** create manufacturing reference learning scenario
([#692](#692))
([1bd3994](1bd3994))
* **instructions:** Design Thinking Method 4 brainstorming instruction
file ([#664](#664))
([06f90b0](06f90b0))
* **prompts:** add DT start-project prompt for coaching initialization
([#657](#657))
([ce583d5](ce583d5))
* **prompts:** add dt-resume-coaching prompt for session recovery
([#665](#665))
([11b93cb](11b93cb))
* **prompts:** create dt-handoff-problem-space.prompt.md
([#688](#688))
([277963d](277963d))
* **scripts:** add collection-level maturity field with validation,
gating, and notices
([#697](#697))
([7b1c8e8](7b1c8e8))
* **scripts:** add per-violation CI annotations and colorized console
output ([#637](#637))
([bd7d512](bd7d512))
* **skills:** edit SKILL frontmatter schema, add CI validation, and
documentation ([#625](#625))
([0138a78](0138a78))
* **skills:** mandate unit testing and document language support
([#636](#636))
([9263617](9263617))
* **skills:** migrate PR reference generation to self-contained skill
([#669](#669))
([cf8805f](cf8805f))


### 🐛 Bug Fixes

* **collections:** migrate artifacts into collection-based
subdirectories
([#658](#658))
([dfa5261](dfa5261))
* **instructions:** optimize Phase 1 DT token budgets and close
[#564](https://github.com/microsoft/hve-core/issues/564)/[#565](https://github.com/microsoft/hve-core/issues/565)
gaps ([#675](#675))
([4f42f00](4f42f00))
* **scripts:** add CI annotations and step summary to copyright header
check ([#638](#638))
([5fa6328](5fa6328))
* **scripts:** add grouped link-lang console diagnostics and failure
summary ([#661](#661))
([4d6871f](4d6871f))
* **scripts:** add per-violation Write-Host and Write-CIAnnotation
output to Test-DependencyPinning
([#640](#640))
([9d3b71d](9d3b71d))
* **scripts:** align agent frontmatter schema with VS Code spec
([#469](#469))
([254d445](254d445))
* **scripts:** optimize PSScriptAnalyzer linting performance in WSL2
([#667](#667))
([f120b93](f120b93))
* **scripts:** stabilize YAML display key ordering in collection
manifest ([#701](#701))
([73c0d2c](73c0d2c))
* **scripts:** use text stubs for plugin links when symlinks unavailable
([#695](#695))
([d7650a3](d7650a3))
* **skills:** fix powershell test coverage in pr-reference skill
([#699](#699))
([408e6b7](408e6b7))


### 📚 Documentation

* **dt:** add Method 5 Concepts and Method 6 Lo-Fi Prototypes
instructions ([#693](#693))
([cfdcf11](cfdcf11))
* **hve-guide:** add role-based guides and project lifecycle
documentation ([#663](#663))
([17a85da](17a85da))


### ♻️ Refactoring

* restructure RPI collection to HVE Core naming convention
([#668](#668))
([120dde0](120dde0))
* **scripts:** consolidate duplicate logging into shared SecurityHelpers
module ([#655](#655))
([627a877](627a877))
* **scripts:** use shared SecurityHelpers and CIHelpers modules in
security scripts
([#705](#705))
([3a0baa7](3a0baa7))


### 🔧 Maintenance

* **deps-dev:** bump markdownlint-cli2 from 0.20.0 to 0.21.0 in the
npm-dependencies group
([#609](#609))
([1486dd7](1486dd7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: hve-core-release-please[bot] <254602402+hve-core-release-please[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

5 participants