Thank you for contributing to PowerShellScriptingNew. To maintain a high-quality, accessible, and consistent experience, please follow these guidelines.
- Table of Contents
- Development Standards
- ScriptLauncher UI Standards
- Accessibility
- Documentation
- Testing & Linting
- Commit & PR Guidelines
- Use Australian English (EN-AU) in documentation and comments.
- Prefer modular, reusable code; avoid large monolithic scripts.
- Include clear headers in scripts/modules (purpose, parameters, returns, last updated).
- Avoid hardcoded credentials or secrets; use secure stores.
- Follow existing folder and naming conventions.
- Commands-only menus: Use WPF
Commandon menu items; avoid duplicateClick + Commandwiring. - Single-press Esc close: Implement
HwndSource.AddHookwith ESC handling (WM_KEYDOWN/WM_SYSKEYDOWN VK_ESCAPE) for all dialog windows to close immediately regardless of focused control. - Owner assignment: Open modal dialogs with
Owner = MainWindowfor consistent modality and focus. - No global ESC interceptors: Do not add thread-level ESC handlers; handle Esc at the dialog level.
- Keyboard accessibility: Provide access keys on buttons and consistent Tab navigation.
- Ensure UI and docs are accessible to screen readers; avoid colour-only cues.
- Use clear, descriptive text for actions and statuses.
- Provide keyboard shortcuts and access keys.
- Keep README up to date when major features change.
- Add or update
.website/content if present; prefer relative links. - Include usage examples and prerequisites in script/module headers.
- Run
dotnet build(ScriptLauncher) orPSScriptAnalyzer(PowerShell) before PR. - Validate single-press Esc and menu behaviours in all dialogs.
- Fix warnings or document exceptions in
KNOWNISSUES.md.
- Use clear, descriptive commit messages.
- Reference issues when applicable.
- Include screenshots/GIFs for UI changes.
- Update documentation alongside code changes.