Project / Agent 与工程
PowerShell Reliability Framework
给 AI 生成的 PowerShell 加可靠性检查。
可移植的 Agent Skill:Probe → Classify → Rule Check → Propose(-WhatIf) → Verify,配套机器可读规则、正反例与评分基准。
v0.1.0-alpha.4
Overview 项目概述
PowerShell Reliability Framework(PRF)是一份可移植的 Agent Skill,在生成、审查或执行 PowerShell 之前强制走一条可靠性协议。
Motivation 为什么创建
LLM 直接生成 PowerShell 并执行,常见失败是环境假设、破坏性参数、编码与引号差异,以及缺少验证。PRF 把这些检查前移,而不是等脚本失败后再补。
Architecture 关键架构
- 入口是 SKILL.md:Probe → Classify(R/W/D/N/C) → Draft → Rule Check → Propose(-WhatIf) → Confirm → Execute → Verify → Report。
- 知识库覆盖对象管道、PowerShell 5.1/7.x 差异、安全规则、企业模式、反模式与 here-string 语法。
- rules/reliability-rules.yaml 提供机器可读规则;examples/ 提供正反例对照;benchmark/cases.json 提供评分案例。
- rules/routing-labels.yaml 为每条规则增加审阅中的风险/主题标签;L0 门禁检查词表、依赖、语料顺序与 rules_blob 绑定。
Capabilities 已实现能力
- v0.1 仓库包含 109 条规则、110 个基准案例、12 组正反例与 6 份知识文档;其中 16 条为常驻规则。
- alpha.3 为全部规则增加审阅中的路由标签 sidecar,审计基准引用(329 → 244),改用 KS/KC/AP 知识编号,加入 9 条规则 backlog,并新增 Windows PowerShell 5.1 CI 通道。
- alpha.4 因杀毒软件误报,把 SEC-006/009/019/023 的 bad 示例改成不可直接执行的描述,刷新 rules_blob 并对齐安全声明;规则与检测语义未变。
- L0 包完整性校验 validate.py 与 L1 规则/示例一致性自检 rule-selftest.py。
- 可移植到支持 Agent Skills 的宿主,并提供目标机器环境探针脚本。
Limitations 已知限制
- v0.1 是 Skill 包,还不是静态分析器或沙箱执行器。
- PSScriptAnalyzer 集成与自定义规则计划在 v0.2;沙箱执行计划在 v0.3。
- README 明确说明:在首次双盲基准完成前,不声称测量到的有效性。
- examples/bad 中的攻击形态仅作负样本,不应执行。
- 仍是 alpha:规则、标签与基准引用在 0.1.0 前可能变化;L2 模型 A/B 尚未运行,Windows 通道也还没有字节级编码探针。
- 旧版规则库副本仍可能被杀毒软件误报;benchmark 与知识文档仍会在文字中提及相同 cmdlet,替换副本也不保证扫描器一定停止报警。
Validation 测试与验证
- alpha.4 在本地通过 L0(路由标签、知识 ID、包完整性)、L1 自检(37 条含模式规则,0 FAIL)、L3 解析(25/25 个 .ps1)、pwsh 7.6.9 PSScriptAnalyzer 与 actionlint。
- GitHub Actions 上两个 job 均在 main @ 6f66946 通过;Windows job 运行于 Windows PowerShell 5.1.26100.33648。路由召回保持 244/244 与 101/101(含依赖闭包)。
- 基准案例数量和路由召回是仓库数据,不代表真实场景效果;L2 模型 A/B 对比尚未运行。