Rego is the declarative policy language used by Open Policy Agent (OPA). This tile covers writing and testing Rego policies for Kubernetes admission control, Terraform and infrastructure-as-code plan validation, Docker container authorization, HTTP API authorization, RBAC and role-based access control, data filtering, metadata annotations with opa inspect, and OPA policy testing with opa test.
96
94%
Does it follow best practices?
Impact
97%
1.18xAverage score across 32 eval scenarios
Low
Low-risk findings worth noting
rules.md covers language-wide style and correctness rules. This skill indexes
deeper, domain-specific reference material — worked examples and patterns for
particular OPA use cases. Read the file for the domain you're working in
before writing policy code in that area.
Kubernetes admission control — webhook policies and OPA Gatekeeper
ConstraintTemplate policies. Image registry validation, resource
requirements, label enforcement, security standards, hostname conflict
prevention.
→ references/kubernetes-admission-control.md
Infrastructure as code — Terraform plan validation (raw Terraform and HCP Terraform/Enterprise input structures) and AWS CloudFormation hook policies. Encryption requirements, required tags, security group validation, multi-region compliance. → references/infrastructure-as-code.md
HTTP API authorization — JWT-authenticated API gateway policies. Hierarchical authorization, method-based permissions, path-based authorization. → references/http-api-authorization.md
default rule := value tier-based fallbacks) →
references/http-api-rate-limiting.mdAccess control models — RBAC, ABAC, separation of duty, time-based and location-based access. → references/access-control-models.md
Metadata annotations — # METADATA blocks, entrypoints, severity
classification, schema validation, opa inspect.
→ references/metadata-annotations.md
Regal linter compliance — focused guides per Regal rule category, for
when a specific lint rule needs more context than rules.md gives:
prefer-snake-case, avoid-get-and-list-prefix,
rule-name-repeats-package) →
references/regal-naming-conventions.mdprefer-some-in-iteration, mixed-iteration) →
references/regal-iteration-style.mduse-in-operator) →
references/regal-membership-operators.mdexternal-reference, zero-arity-function) →
references/regal-function-style.mdtrailing-default-rule, default-over-else) →
references/regal-defaults.mdprefer-set-or-object-rule,
boolean-assignment) →
references/regal-boolean-structure.mdobject.keys, comprehension-term-assignment) →
references/regal-comprehensions.mdnot-equals-in-loop, sprintf-arguments-mismatch) →
references/regal-bugs.mdfile-missing-test-suffix, test-outside-test-package) →
references/regal-testing-style.mdprefer-package-imports, redundant-alias) →
references/regal-imports.mdmissing-metadata, detached-metadata,
no-defined-entrypoint) →
references/regal-annotations.md.tessl-plugin
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
skills
rego-domain-reference
references