Key points
- There are two levels:
advisoryandstrict. An unsetgovernance_levelnormalizes tostrict. strictproceeds only on a clear allow. Violations, conflicts, uncertainty, and unsupported decisions all block.advisorylogs and warns; execution proceeds despite an evaluated policy concern.- Advisory never skips the evaluation. If no judgment can be obtained at all, because no model is available or the review call fails, the task fails closed at every level.
- Any value other than
advisoryorstrictis a validation error.
Field reference
advisorygovernance levelenforcementOptionalNot the default
Log and warn on an evaluated policy concern. Execution proceeds.
Example
governance_level: advisoryRules
- Advisory downgrades a judgment the model made. It never skips the evaluation: if no judgment can be obtained, the task still fails closed.
Evidence
pkg/models/policy_merge.go
strictgovernance levelenforcementOptionalDefault when unset
Proceed only on a clear allow. Violations, conflicts, uncertainty, and unsupported decisions all block.
Example
governance_level: strictRules
- An empty value normalizes to
strict. - Any value other than
advisoryorstrictis a validation error.
Evidence
pkg/models/policy_merge.go
Examples
governance_level: strict
knowledge_context:
- kind: policy
ref: platform/deploy-policy
required: true
steps:
- name: analyze
tasks:
- name: draft-summary
governance_level: advisory
goal: Draft a human-readable summary of the proposed change.How it works
The level can be set at pipeline, step, or task, with the most specific value winning. This lets a pipeline stay strict overall while one well-understood task runs advisory.
Governance interacts with Knowledge Context: the policy review is what produces the decision, and the governance level is what NopsAI does with it. Without blocking knowledge there is nothing to enforce.
Limits
Current behavior
- Lowering the governance level weakens fail-closed enforcement; it does not disable the policy review itself.
Implementation evidence
pkg/models/policy_merge.goLevel constants, normalization, and the strict default.

