fix: prevent tool denial failures in daily-agent-of-the-day-blog-writer - #43070
Merged
Conversation
- Add `wc *` and `expr *` to allowed bash commands so agent can count characters with `echo -n "..." | wc -c` instead of python3 - Strengthen tool restrictions: explicitly list ALL banned git commands (git checkout, git branch, git add, git commit, git push, git status) - Clarify there is no `read` tool; agent must use `cat` via bash instead - Provide concrete bash character-count example to prevent python3 usage - Recompile workflow lock file Closes #43066 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix Daily Agent of the Day blog writer tool denial limit
fix: prevent tool denial failures in daily-agent-of-the-day-blog-writer
Jul 3, 2026
pelikhan
approved these changes
Jul 3, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the daily-agent-of-the-day-blog-writer workflow instructions and compiled lockfile to reduce repeated tool-denial failures by steering the agent toward explicitly allowed bash utilities and away from disallowed/nonexistent tools.
Changes:
- Expanded the workflow’s bash allowlist to include
wcandexpr. - Strengthened agent instructions to avoid all
gitusage and clarified the absence of areadtool. - Recompiled the workflow to reflect the updated tool allowlist in the generated
.lock.yml.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/daily-agent-of-the-day-blog-writer.md | Updates tool allowlist and refines agent instructions to avoid disallowed tools and git usage. |
| .github/workflows/daily-agent-of-the-day-blog-writer.lock.yml | Regenerated lockfile reflecting the updated allowed tools (notably expr). |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 3
- Review effort level: Low
| - The `create_pull_request` patch must contain only text changes under `docs/src/content/docs/**`; never include binary assets in the PR patch — use `upload-asset` for those. | ||
| - Use only the enabled tools in this workflow (`bash`, `edit`, `agentic-workflows`, and safe-outputs). Do not call unsupported `read`/`shell` tools. | ||
| - Do not run git branch/stage/commit commands in `bash` (`git checkout -b`, `git add`, `git commit`, `git push`); `create_pull_request` handles branching and commit creation automatically. | ||
| - Use only the enabled tools in this workflow (`bash`, `edit`, `agentic-workflows`, and safe-outputs). Do not call unsupported `read`/`shell` tools — there is no `read` tool; use `bash` with `cat` to inspect file contents instead. |
| - Do not run git branch/stage/commit commands in `bash` (`git checkout -b`, `git add`, `git commit`, `git push`); `create_pull_request` handles branching and commit creation automatically. | ||
| - Use only the enabled tools in this workflow (`bash`, `edit`, `agentic-workflows`, and safe-outputs). Do not call unsupported `read`/`shell` tools — there is no `read` tool; use `bash` with `cat` to inspect file contents instead. | ||
| - Do not run **any** git commands in `bash` — this includes `git checkout`, `git branch`, `git add`, `git commit`, `git push`, `git status`, and any other `git *` sub-command. `create_pull_request` handles branching and commit creation automatically. | ||
| - To count characters in bash, use: `echo -n "your string" | wc -c` (not python3, not shell heredoc). |
| - Close with a short call to action pointing to `https://github.com/${{ github.repository }}`. | ||
| - Respect metadata limits before opening the PR: `seoDescription` <= 160 chars and `linkedPostText` <= 80 chars. | ||
| - Verify limits with a character count check before creating the PR; if either value is too long, revise and re-check. | ||
| - Verify limits using bash: `echo -n "your string" | wc -c`; if either value is too long, revise and re-check. |
This was referenced Jul 3, 2026
Contributor
|
🎉 This pull request is included in a new release. Release: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The blog writer workflow was hitting the 5/5 tool denial guardrail each run due to the agent attempting disallowed tools:
python3(for character counting), compoundcd && git ...commands,git -C ..., and the non-existentreadtool.Changes
wcandexprto bash allowlist — gives the agent a supported way to count characters (echo -n "..." | wc -c) instead of falling back topython3git checkout,git branch,git add,git commit,git push,git status, andgit *)readtool absence — the agent was callingread(path)to verify file writes; added explicit note that noreadtool exists andcatvia bash is the correct alternative