用途:仅审查 PowerShell 代码的语言与运行时约定,不定义审查范围(diff 还是整个代码库),也不做安全或架构分析,这些由 scope 与 cognitive 技能处理。目标是产出可聚合的标准格式发现列表。
主要能力:覆盖七个维度——高级函数与 cmdlet 约定([CmdletBinding()]、Verb-Noun 命名、已批准动词、begin/process/end 块);参数设计与校验(类型、Mandatory、ValueFromPipeline、参数集、ValidateSet/ValidatePattern/ValidateScript 是否自洽);错误处理语义(终止与非终止错误、-ErrorAction Stop、避免静默失败与空 catch);对象管道行为(内部流转优先对象而非格式化文本、避免用 Write-Host 输出数据);状态、作用域与严格模式(避免非预期全局副作用、偏好变量改动与未初始化变量);兼容性与可移植性(Windows PowerShell 5.1 与 PowerShell 7+ 差异、平台相关命令与路径处理);性能与可测试性(避免昂贵管道误用与重复数组拼接,便于 Pester 测试与依赖隔离)。
使用方式:由调用方提供代码范围(文件、目录或 diff)后执行;每条发现须携带 findings-list §5.1 要求的全部要素,分类为 language-powershell,并带 file:line 引用;不评审非 PowerShell 文件中的 PowerShell 专有规则,除非明确在范围内。示例:函数宣称支持管道输入却未声明 ValueFromPipeline——输出管道契约不匹配发现并建议参数属性加 process;risky 命令放在 try/catch 但未设 -ErrorAction Stop 导致非终止错误绕过 catch——输出无效错误处理发现;函数返回对象却在处理循环中用 Write-Host——输出混合展示与数据输出、损害自动化与可组合性的发现,建议诊断用 Write-Verbose/Write-Information。
适用场景:编排式审查中作为 PowerShell 项目的语言步骤;仅需语言/运行时约定检查;合并前检查参数契约、管道行为与错误语义。
限制:不选择或定义代码范围,不做安全分析(凭据处理、注入风险,应转 review-security),不做架构分析(应转 review-architecture),不承担完整编排审查;不得在缺少具体位置或可操作建议时给出结论。所有 PowerShell 发现发出后交给 orchestrate-code-review 聚合;发现安全问题应记录并建议转交。具体分类标识、命令与安装方式资料未提供。