Skip to main content
Drako enforces 97 deterministic rules across 16 categories. Every rule runs offline using AST analysis — no LLM in the evaluation loop. The same code produces the same result on every run.

Scoring

Scores start at 100 and points are deducted per finding, with per-severity caps to prevent one category from dominating.
SeverityPoints per findingCap
CRITICAL−15−60
HIGH−8−40
MEDIUM−3−20
LOW−1−10
Additional category-level caps apply to Framework-Specific (−30 max) and Determinism (−25 max) findings. Grades: A (90–100) · B (75–89) · C (60–74) · D (40–59) · F (0–39)
Only vulnerability findings affect the score. Recommendations are displayed in the report but do not lower your governance score.

Rule categories

CategoryRulesWhat it catches
SecuritySEC-001 → SEC-011Hardcoded keys, prompt injection, code execution, filesystem/network access
GovernanceGOV-001 → GOV-011No audit logging, no HITL, self-modifying prompts, no fallback
ComplianceCOM-001 → COM-005EU AI Act Art. 9, 11, 12, 14 gaps
DeterminismDET-001 → DET-007Temperature not set, no timeout, no retry, no iteration limit, no seed
Vendor ConcentrationVCR-001 → VCR-003Same vendor across model + framework + cloud + governance layers
Framework-SpecificFW-001 → FW-010CrewAI delegation risks, AutoGen code exec defaults, LangGraph state issues
Operational BoundariesODD-001 → ODD-004No boundary definition, unrestricted tools, no spend cap
MagnitudeMAG-001 → MAG-003No spend cap, no rate limit, unclassified data access
IdentityID-001 → ID-003Static credentials, shared credentials, no identity
Multi-AgentMULTI-001 → MULTI-004No topology, circular deps, no conflict protection
HooksHOOK-001 → HOOK-003No pre-action validation, no session-end gate
VersioningCV-001 → CV-002No policy versioning, no audit policy reference
FinOpsFIN-001 → FIN-003No cost tracking, single model for all tasks, no cache
ResilienceRES-001 → RES-002No fallback for critical ops, no state preservation
A2AA2A-001 → A2A-003No A2A auth, unvalidated inter-agent input
Best PracticesBP-001 → BP-005Outdated framework, no tests, too many tools

Category notes

These rules detect when your model, framework, and governance stack all come from the same vendor — flagging audit independence risk that vendor-affiliated tools have no incentive to report. For example, using OpenAI models, the OpenAI Agents SDK, and Azure-hosted infrastructure creates a concentration risk that generic security tools won’t flag.
These rules detect known governance gaps in the frameworks you use, including default configurations that ship in an insecure state:
FrameworkRulesWhat’s flagged
CrewAIFW-001 → FW-003Unsafe code execution, memory isolation, delegation risks
LangGraphFW-004 → FW-005Unrestricted ToolNode, no checkpointing
AutoGenFW-006 → FW-007LocalCommandLineCodeExecutor, no output validation
Semantic KernelFW-008 → FW-009Auto-imported plugins, no cost guard
PydanticAIFW-010Untyped tool returns
Rules are only triggered when the relevant framework is detected in your project.
The Determinism score is calculated independently from the Governance score, using only DET-* findings. This gives engineering teams a focused view of behavioral reproducibility separate from security posture.Common determinism findings include: LLM temperature not set, no timeout configured, no retry logic, no iteration limit, and no seed parameter.

TypeScript and JavaScript support

Installing the TypeScript extension adds 17 additional rules covering SEC, GOV, COM, DET, and ODD categories for TypeScript and JavaScript agent projects:
pip install drako[typescript]
Supported frameworks for TypeScript/JavaScript scanning: LangChain.js, Vercel AI SDK, Mastra, and AutoGen.js.
Run drako scan . --details to see code snippets, fix suggestions, and relevant standards references (CWE, OWASP, EU AI Act) for each finding.

Build docs developers (and LLMs) love