Skip to content

Dev Guard

Runtime authorization for coding-agent actions

Coding agents can modify repositories, install packages, run shell commands, and change infrastructure. Static permissions and IDE trust prompts do not evaluate whether this specific proposed action should execute now.

Dev Guard evaluates coding-agent actions before execution—comparing requested scope to proposed scope, binding patches, and returning ALLOW, REQUIRE_APPROVAL, or BLOCK with signed evidence.

Requested scope vs proposed scope

Hold or block when the agent expands beyond the files or paths the operator requested.

Patch hash binding

Bind evaluation and approvals to a hash of the proposed patch so the authorized change cannot drift.

Protected paths

Require approval or block writes under sensitive directories (auth, secrets, infrastructure).

File deletion

Treat destructive deletes as consequential by default.

Dependency changes

Evaluate package installs and lockfile mutations before they land.

Shell commands

Authorize or block shell execution based on command class and risk policy.

Git operations

Gate commit, push, force-push, and branch mutations.

Infrastructure operations

Evaluate infra-as-code applies and production deploys before they run.

Action schema and scope example

CONCEPTUAL ACTION SCHEMACoding-agent action metadata
{
  "action": "apply_patch",
  "requested_scope": ["src/auth/login.ts"],
  "proposed_paths": [
    "src/auth/login.ts",
    "src/database/schema.ts"
  ],
  "patch_hash": "sha256:…",
  "contains_deletion": false,
  "dependency_change": false,
  "shell_command": null
}
CONCEPTUAL ACTION SCHEMAScope expansion → REQUIRE_APPROVAL
Requested:  src/auth/login.ts
Proposed:   src/auth/login.ts
            src/database/schema.ts

Decision:   REQUIRE_APPROVAL
Reason:     The proposed change expands beyond the requested file scope.

Decision examples

ALLOW

In-scope patch

Agent applies a patch only to the requested file with no deletions or dependency changes.

REQUIRE_APPROVAL

Scope expansion

Agent proposes edits outside the requested path set, or touches a protected directory.

BLOCK

Prohibited operation

Policy forbids force-push to main, production deploy from an unapproved branch, or deletion of protected paths.

Integration status

Do not treat planned adapters as live. Labels match product reality.

IntegrationStatusNote
Runtime Evaluate APIAvailableHTTP API for pre-execution decisions.
Python SDKDesign-partner previewNot a public PyPI package.
Dev Guard core evaluationDesign-partner previewCoding-agent action schemas and scope checks.
Cursor adapterPlannedNot released. Do not assume universal Cursor enforcement.
Codex adapterPlannedNot released. Do not assume universal Codex enforcement.
DESIGN-PARTNER PREVIEWPython helper (preview)
# Design-partner preview — not a public PyPI package
from bobsentry import RuntimeClient  # preview import path

client = RuntimeClient(api_key=os.environ["BOBSENTRY_API_KEY"])
result = client.evaluate(action="apply_patch", metadata={...})
PLANNED ADAPTERIDE adapter (not released)
// Planned: editor/agent adapter hooks
// Status: PLANNED ADAPTER — design-partner discussions only
// Do not assume universal Cursor or Codex enforcement today.

Design-partner CTA

If you have a pre-execution hook for coding-agent actions, we want to hear from you.

By contacting us you agree we may use your message to respond. See our Privacy page.