Skip to main content
Policy 是 Huoban 的印坊规矩:它声明副作用、审批和权限边界。Policy 与 Profile 分离;上下文提示不是可执行授权。 设计背景见 Policy 模型

字段

三个条件数组都没有 minItemsuniqueItemswhen 只要求至少出现一个条件属性,因此 { sideEffects: [] } 能通过 schema;当前仓库没有 rule evaluator 赋予它执行语义。 标准副作用列表见 Skill 副作用枚举

合法示例

对应 source example:examples/policies/safe-defaults.yaml

当前 CLI 行为

从 Profile 派生

当前命令只支持 derive policy。它读取第一个 name: risk layer 的非空 data.requiresApproval 数组,去重后生成一条 requireApproval rule,并设置:
输出 conditions 为 PolicyDerived=TruePolicyNeedsReview=True。生成结果需要 review。

Explain 与 Preflight

explain 输出 unknown-side-effect 默认值和 rule 摘要。Preflight 只检查 Flow、Run、Profile 或 Trust 关联的 Policy 对象是否可解析;它不匹配 rule、不计算优先级,也不执行 allow/deny/approval。

验证边界

  • schema 不定义 rule 顺序、冲突消解、deny 优先级或默认 enforcement 行为。
  • trustLevels 只验证为字符串,不与 Trust.spec.level 枚举联动。
  • unknownSideEffect 字段存在不代表当前 runtime 已检测未知副作用。
  • Run.status.observedSideEffects 是执行事实;Policy rules 是声明,两者当前没有 evaluator 连接。
  • PreflightReady=True 不是 Policy allow。

相邻概念边界

常见错误

  • 声称 denyrequireApprovalallow 已有标准优先级;当前 source 未实现 evaluator。
  • when 中增加路径、命令、模型或正则字段。
  • trustLevels 误写成单个字符串。
  • 把 Profile risk layer 直接当成生效 Policy,而不生成并 review Policy 对象。
  • 认为 Policy 引用能解析就表示规则已应用。
  • 把 Preflight readiness 当作权限授权。