Build1 publisher3 min readPublished
Coding-agent hard limits belong in scoped credentials and CI checks outside the system prompt
Coding-agent teams should move their top three irreversible actions behind checks outside the model, a dev.to guide argues, because prompt rules are advice. The argument rests on how prompts are wired, and the post's own release advice weakens one of its three objections.
The Engineer · Build desk

What happened
- A dev.to post argues that safety rules in a coding agent's system prompt share one channel with user messages and tool output, so nothing enforces them separately.
- It proposes read-only tool defaults, with explicit and logged elevation for write, merge, deploy and secret access.
- Its suggested first step is to map every irreversible action one trusted agent workflow can take and move the top three behind an external check.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- constraint Once a limit lives in the credential, no rewording in a long session can get the agent to perform a force push its token lacks the permission for.
- cost Read-only defaults put a grant step in front of every write, merge, deploy and secret read, and a person or a policy engine has to process and log each one.
- capability When rules produce logged denies, a postmortem can name the control that failed, where an ignored prompt line leaves only odd behaviour to explain.
- decision Teams have to split one prompt file into two artifacts: style text the model reads, and must-not rules that CI or the runtime checks on its own.
The problem starts with the channel. A system prompt, the user's messages and the output of every tool call all land in the same context, and the post says the rules in that text have no separate enforcement path [4]. Models are trained to follow instructions and also to be helpful. When those goals collide, according to the post, helpful often wins [1]. A determined user, a long thread or a cleverly worded task can dilute or override a rule the team thought was hard-coded [2].
The quieter failure needs no adversary. Each change to tone, each new workflow and each block of pasted context edits the same text that was supposed to hold the policy [3]. "If your safety depends on the model remembering to behave, you don't have a control plane. You have a suggestion," the author wrote [14].
The fix is sound because it puts the rule where the model's output cannot change the result. If the agent's credentials cannot run git push --force or read production secrets, the prompt does not need to ask it to refuse [8]. Before a merge, a delete or any contact with production, the post puts a policy check or a human approval step in the way, one the model cannot skip by rephrasing the request [9].
For that to hold, the check has to sit on the only path to the action. A deny list on one tool does little if the same agent also holds a shell and a broad token. The post lists scoped credentials in its first bucket, next to allowlists and deny lists, and adds limits on repos, branches, environments and file paths [7]. In my view the credential is the stronger of those controls, because it binds the agent whichever tool it calls.
The operational objection is the weakest of the three. The post says a new prompt rule cannot go to 5% of agents, be measured against bad tool calls and roll back in one click, because changing a prompt usually means redeploying config for everyone [5]. Its own starter set then tells teams to ship a prompt-driven config behind progressive release: small, observable, reversible [18]. That describes a habit teams could change. The audit objection holds up better. An external control can log a deny, a blocked tool call or a failed policy check. A sentence the model ignored in a 2,000-token system message tends to surface only as "the agent did a weird thing" [6].
"Judgment without measurement is optimism," the author wrote [15]. The post does not report failure rates for prompt-only rules, or before-and-after figures from a team that moved them. Its instrumentation list is where those numbers would come from: blocked tool calls, policy denials, failed tests after agent pull requests, and rollback events [11].
The prompt keeps a job. Style, priorities and how to reason about the task stay in it [12]. I think that split is correct for any agent that can merge or deploy. The post's first step is small: map every irreversible action one trusted agent workflow can take, then move the top three behind an external check [13].
What to watch
- Published counts of blocked tool calls, policy denials and rollbacks from a team before and after it moved agent rules out of the prompt.
- Whether agent harnesses scope credentials down to branch and file path, the level of limit the post asks for.
- Whether teams start rolling out prompt-driven config to agent cohorts, which would remove the post's objection about all-at-once prompt changes.