Skip to content

feat(ai-red-teaming): extensible guardrail policy table + teardown rule, release 1.16.3 - #146

Merged
rdheekonda merged 1 commit into
mainfrom
fix/airt-guardrail-policy-table
Sep 15, 2026
Merged

rdheekonda merged 1 commit into
mainfrom
fix/airt-guardrail-policy-table

Conversation

@rdheekonda

Copy link
Copy Markdown
Contributor

Summary

Follow-up to the ENG-8477 guardrail (1.16.2). Refactors the provisioning hook into a small policy table so new deny/redirect guardrails are one line each, and adds the natural sibling rule for teardown.

Rules (first match wins):

  1. shell dreadnode|dn env provision/create/... -> redirect to provision_environment
  2. shell dreadnode|dn env teardown/delete/destroy/... -> redirect to teardown_environment (destructive, tool-only)
  3. generic shell dreadnode|dn env ... -> redirect to the environment tools

Grounding / scope

I checked the AIRT skills: the only tool-only CLI mandate is dreadnode env ("never shell out to dreadnode env", in provisioning-and-lifecycle and error-troubleshooting). There is no skill forbidding other CLI, so the rules stay scoped to environment management only - legitimate usage like dn airt run is explicitly not blocked (covered by a test). Cross-cutting guardrails (destructive shell, SSRF, secret exfil) are intentionally left out here; they belong in the platform policy/permission layer so they apply to every agent, not just when this capability is enabled.

Changes

  • hooks/block_cli_provisioning.py - policy-table refactor + teardown rule
  • tests/test_block_cli_provisioning.py - add teardown redirect test; keep the dn airt run allow-list test
  • capability.yaml - 1.16.2 -> 1.16.3

Test plan

  • pytest tests/test_block_cli_provisioning.py - 5 passed
  • load_capability shows v1.16.3, hook loaded, 0 degraded, provision+teardown tools present (37 tools)

…teardown)

Refactor the provisioning guardrail into a small policy table so new deny/redirect
rules are one line. Add a teardown rule: shell `dreadnode|dn env teardown/delete/
destroy` is denied and redirected to the teardown_environment tool (destructive,
tool-only per the skills). Provision subcommands redirect to provision_environment;
a generic `dreadnode env` catch-all redirects to the environment tools. Scope stays
narrow - legitimate CLI like `dn airt run` is unaffected (no skill forbids it).
Bump to 1.16.3.
@rdheekonda
rdheekonda merged commit a61dca3 into main Sep 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant