A system prompt rule that was ignored until moved to a tool description

For months our engineering agent prompt contained the explicit instruction: “Never run queries without an explicit LIMIT clause.” The assistant routinely violated this instruction when diagnosing production replicas.

// In tool definition JSON schema:
{
  "name": "run_read_query",
  "description": "Execute a SELECT query against the read replica. CRITICAL: Query MUST include LIMIT 100 or less, or the database driver will reject the call with an error.",
  "parameters": {
    "sql": {
      "type": "string",
      "description": "SQL query ending in an explicit LIMIT clause."
    }
  }
}

Language models pay dramatically higher attention to tool descriptions and parameter schemas at the point of tool invocation than to rules buried in generic system prompts. Moving the constraint to the tool description reduced violations from 24% to zero.