@@ -123,14 +123,54 @@ Pull Requests must:
123123
124124A contribution is complete when:
125125
126- - all tests pass (` Invoke-Pester -Path ./tests ` )
127- - no architecture rules are violated (see ` docs/01-architecture.md ` )
126+ - all tests pass (` pwsh -NoProfile -File ./tools/Invoke-IdlePesterTests.ps1 ` )
127+ - static analysis passes (` pwsh -NoProfile -File ./tools/Invoke-IdleScriptAnalyzer.ps1 ` )
128+ - no architecture rules are violated (see ` docs/advanced/architecture.md ` )
128129- public APIs are documented (comment-based help for exported functions)
129130- documentation is updated where required:
130131 - README.md (only high-level overview + pointers)
131132 - docs/ (usage/concepts/examples)
132133 - provider/step module READMEs if behavior/auth changes
133134
135+ ## Local quality checks
136+
137+ IdLE provides canonical scripts under ` tools/ ` so you can reproduce the same checks locally that CI runs.
138+
139+ ### Run tests (Pester)
140+
141+ Run the test suite:
142+
143+ - ` pwsh -NoProfile -File ./tools/Invoke-IdlePesterTests.ps1 `
144+
145+ To generate CI-like artifacts (test results + coverage) under ` artifacts/ ` :
146+
147+ - ` pwsh -NoProfile -File ./tools/Invoke-IdlePesterTests.ps1 -CI `
148+
149+ Outputs:
150+
151+ - ` artifacts/test-results.xml ` (NUnitXml)
152+ - ` artifacts/coverage.xml ` (coverage report)
153+
154+ ### Run static analysis (PSScriptAnalyzer)
155+
156+ Run PSScriptAnalyzer using the repository settings:
157+
158+ - ` pwsh -NoProfile -File ./tools/Invoke-IdleScriptAnalyzer.ps1 `
159+
160+ To generate CI-like artifacts under ` artifacts/ ` (including SARIF for GitHub Code Scanning):
161+
162+ - ` pwsh -NoProfile -File ./tools/Invoke-IdleScriptAnalyzer.ps1 -CI `
163+
164+ Outputs:
165+
166+ - ` artifacts/pssa-results.json ` (summary)
167+ - ` artifacts/pssa-results.sarif ` (SARIF)
168+
169+ The rule set is defined in ` PSScriptAnalyzerSettings.psd1 ` at the repository root.
170+ The runner pins tool versions for deterministic CI results; update pins intentionally and document the change in the PR.
171+
172+ > Note: ` artifacts/ ` is a build output folder and should not be committed.
173+
134174---
135175
136176## Generated cmdlet reference (platyPS)
@@ -253,11 +293,6 @@ To fix a failing PR:
253293
254294Repository maintainers should configure branch protection so that required status checks include this workflow.
255295
256-
257-
258-
259-
260-
261296## Documentation
262297
263298Keep docs short and linkable:
@@ -269,7 +304,7 @@ Keep docs short and linkable:
269304Key links:
270305
271306- Docs map: ` docs/00-index.md `
272- - Architecture: ` docs/01- architecture.md `
307+ - Architecture: ` docs/advanced/ architecture.md `
273308- Examples: ` docs/02-examples.md `
274309- Coding & in-code documentation rules: ` STYLEGUIDE.md `
275310
0 commit comments