Skip to main content
These aren’t bugs in TealTiger — they’re misaligned usage patterns that break determinism, weaken governance, or create compliance gaps.

1. Developers Defining Their Own Governance

Anti-pattern: Application code sets enforcement rules, cost limits, or safety controls.
Why it’s bad: No separation of duties. Developers can weaken controls. No audit trail of who authorized the policy. Fails SOC 2 / ISO 42001 requirements. Do this instead: Governance team signs policy bundles. Developers load them without modification. See Governance at Scale.

2. Permanent MONITOR Mode

Anti-pattern: Deploying in MONITOR mode and never graduating to ENFORCE.
Why it’s bad: Governance is never actually enforced. Violations are logged but agents proceed unchecked. You have audit evidence of violations you chose not to prevent. Do this instead: Use MONITOR for 1-2 weeks during rollout, then switch to ENFORCE. Set a calendar reminder.

3. Ignoring PENDING Decisions

Anti-pattern: Not implementing the approval workflow for approval_required actions.
Why it’s bad: Approval gates exist for high-risk actions. Ignoring them means no human oversight for sensitive operations. Do this instead: Handle PENDING explicitly — hold execution until approveDecision() or rejectDecision() is called.

4. Using fail_open for Security Workloads

Anti-pattern: Setting fail_behavior: 'fail_open' when governance failures should block.
Why it’s bad: If a governance module crashes, requests pass through without evaluation. An attacker could intentionally trigger module failures to bypass governance. Do this instead: Use fail_closed (the default). Only use fail_open for non-security workloads where availability is more important than governance.

5. Skipping NHI Registration

Anti-pattern: Running agents without registered identities.
Why it’s bad: Without NHI, there’s no scope enforcement, no lifecycle management, no attestation. Any process can impersonate any agent. No accountability in audit trails. Do this instead: Register every agent with explicit scopes, environment constraints, and attestation. See NHI Governance.

6. Hardcoding Policies in Application Code

Anti-pattern: Defining governance rules inline in application source code.
Why it’s bad: No versioning, no signing, no separation of duties. Developers can change governance rules in any PR. No audit trail of policy changes. Do this instead: Use signed policy bundles loaded at runtime. Policy changes go through the governance team’s review process.

7. Evaluating After Execution

Anti-pattern: Calling evaluate() after the action has already been performed.
Why it’s bad: You can’t un-delete a database, un-send an email, or un-leak a secret. Post-execution governance is audit, not enforcement. Do this instead: Always evaluate BEFORE execution. The decision determines whether execution proceeds.

8. Disabling Audit in Production

Anti-pattern: Turning off audit logging to reduce noise or save storage.
Why it’s bad: No evidence for compliance reviews. No forensics capability during incidents. No proof that governance was enforced. Fails every audit framework. Do this instead: Always keep audit enabled. Use redaction modes to minimize sensitive data. Forward to SIEM for correlation.

9. Using LLMs to Make Governance Decisions

Anti-pattern: Calling an LLM to decide whether an action should be allowed.
Why it’s bad: LLM outputs are non-deterministic. Same input can produce different decisions. Not auditable, not reproducible, not testable. Adds latency and cost to the governance path. Do this instead: TealTiger’s governance is deterministic by design. Same input + same policy = same decision. Use TealClassifier for ML-assisted detection, but the final decision is always rule-based.

10. Attempting to Bypass FREEZE Rules

Anti-pattern: Trying to disable or work around FREEZE rules programmatically.
Why it’s bad: FREEZE rules exist because the governance team determined these actions must NEVER happen. Attempting to bypass them is a security event that gets logged and alerted. Do this instead: If a FREEZE rule is blocking legitimate work, escalate to the governance team. They can modify the rule through the proper signing process.

Summary


Best Practices

What to do instead

Governance at Scale

Enterprise operating model