A path allowlist is a declaration of directories and glob patterns that a process may touch. The most familiar version of this pattern is Git's own ignore machinery: a committed .gitignore applies to everyone who clones the repository, while .git/info/exclude applies only to one checkout and the global ignore file applies machine wide, and all three use the same pattern syntax per this walkthrough of Git ignore layers. That three level structure matters because it already teaches the lesson you need: scope belongs in the document, not in the code that reads it.
The important shift for agents is that Git ignore answers a version control question, not an access question. A file can be perfectly ignored by Git and still be read straight into an agent's context window, because most coding agents scan the local filesystem rather than the Git index as this guide to agent facing ignore files explains. Practitioners have watched this play out in the open: the Agent composer in one popular editor reported it could list and read the contents of a directory that both ignore files excluded according to the bug report thread. The conclusion is narrow and useful: your path allowlist has to be an agent policy in its own right, not a copy of .gitignore.
There is also a privilege problem underneath. An AI coding agent runs with the privileges of the person who launched it and presents the same credentials on the same machine, so credential based controls cannot tell agent and human apart as BeyondTrust's workflow documentation puts it. That is why the policy has to name the subject (an agent, not a user) and the action (reads a file, runs a process) explicitly.



