Skip to main content
Glama

depguard_audit_workspace

Audit a cloned repository for auto-executing files that run on workspace open. Detect malicious IDE tasks, devcontainer commands, shell overrides, and git hooks before they compromise your session.

Instructions

MANDATORY: call this AFTER cloning a repository and BEFORE opening it in any IDE (VS Code, Cursor, JetBrains, etc.) or running direnv allow. Enumerates every file in the repo that auto-executes when the workspace opens: .vscode/tasks.json runOn:folderOpen, .vscode/settings.json shell overrides, .devcontainer lifecycle commands, .envrc, JetBrains run configurations, Makefile default targets, .gitattributes custom filter drivers, and committed git hooks. Classifies each as INFO / WARN / HIGH using FP-averse heuristics (benign npm run watch stays INFO; only curl|sh, base64 decode chains, credential paths, and obfuscation escalate). This is the technical defense against fake-interview / take-home-test malware campaigns where a coding-test repo compromises the developer's session before the IDE finishes loading.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the repository root to audit

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.15.2

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does so well: it discloses the classification scheme (INFO/WARN/HIGH), the FP-averse heuristic policy, and concrete escalation triggers (curl|sh, base64 chains, credential paths). It omits whether the operation is read-only or what permissions it needs, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the mandatory timing constraint, then the scope, then classification behavior, then the threat rationale. Dense but structured; the final threat-model sentence is motivational context that justifies urgency rather than padding, though it is the most expendable clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter audit tool with no output schema and no annotations, the description covers scope, timing, classification output, and heuristics thoroughly. The unstated return shape (findings list, counts) and read-only nature are minor remaining unknowns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter ('absolute path to the repository root') is fully documented in the schema. The description adds no syntax or format detail beyond what the schema states, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (enumerates/classifies) and resource (files that auto-execute on workspace open), with an explicit enumeration of the artifact types scanned. However, it never distinguishes itself from the many sibling audit tools (depguard_audit_project, depguard_audit_deep, depguard_audit_bulk, depguard_audit), leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong timing guidance: 'call this AFTER cloning ... BEFORE opening in any IDE or running direnv allow.' That is a clear when-to-use condition. It stops short of naming when NOT to use it or which sibling to prefer instead, so it falls short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.