git grep on the implementation and command paths), the GitHub CLI, PRFlow’s helpers and common text tools; add entries only for repository-specific commands. On the general cloud command workflow, the built-in gh api grant is Bash(gh api repos/{owner}/{repo}/*), which matches only a command whose endpoint comes first, unquoted, under repos/{owner}/{repo}/ (for example gh api repos/{owner}/{repo}/pulls/7 --jq .body). Its built-in list does not include gh issue create, gh issue comment, gh pr comment, gh pr create, env or export; a prompt extension that needs one re-adds it through prflow.allowed_tools. New built-in grants reach your repository when you re-run the installer (Cloud Updates).
Grant Commands per Path
List the leading command and arguments directly. Add the same entry under every path that needs it:npm test and npm run lint. Any other command stays denied.
The two shipped allowlists are independent. Neither inherits from the other. A command provisioned by setup.install can still be denied if it is absent from the active tier’s list.
Use the narrowest leading command that performs the needed check. No generated profile grants raw bash, sh, zsh, eval, exec, source or sudo, and nothing strips one the configuration adds — so adding one only widens the run’s reach, and a compound shell wrapper is not a supported invocation form.
Plan Grants Before the Work
Cloud workflows resolve grants at trigger time from the default branch. A pull request that adds its own permission cannot use that permission during the same run. The grant becomes effective after merge.
make verify, add Bash(make verify:*) here as well.