Repository navigation
Show which tool calls the @claude workflow denied - #396
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #396 +/- ##
=======================================
Coverage 92.07% 92.07%
=======================================
Files 394 394
Lines 24896 24896
=======================================
Hits 22922 22922
Misses 1974 1974 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
On #390, Claude could not run the tests or local_check.sh, although both are allowed. The action hides Claude's output, so the log only gave a count of 3 denials. A new step prints the denied calls from the execution file. Allowed commands match by prefix, so the prompt now asks Claude to run the checks from the repository root without cd or a wrapper. tail and head are allowed for trimming output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ddaspit
force-pushed
the
ddaspit/claude-show-denials
branch
from
October 6, 2026 14:39
bce79d0 to
529b25c
Compare
This comment has been minimized.
This comment has been minimized.
A denied multi-line command printed raw, so a line starting with "::" could issue a workflow command, and a denied Write or Edit put file content in the public log. The step now prints only the command, path, URL or pattern, encoded as one JSON line. It can no longer fail a run that Claude finished. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Public API, optional dependency, published-wheel surface, Findings: F1 addressed, F2 addressed, F3 addressed, F4 withdrawn. Reviewed at 154b3b0 |
ddaspit
added a commit
to sillsdev/machine
that referenced
this pull request
Oct 6, 2026
The action hides Claude's output, so the log only gave a count of denied tool calls. A new step prints each denied call's tool and command. Claude is also told that allowed commands match by prefix, so it runs dotnet and ./local_check.sh from the repository root without cd or a wrapper. tail and head are allowed so it can trim test output. Ports sillsdev/machine.py#396. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ddaspit
added a commit
to sillsdev/machine
that referenced
this pull request
Oct 6, 2026
The action hides Claude's output, so the log only gave a count of denied tool calls. A new step prints each denied call's tool and command. Claude is also told that allowed commands match by prefix, so it runs dotnet and ./local_check.sh from the repository root without cd or a wrapper. tail and head are allowed so it can trim test output. Ports sillsdev/machine.py#396. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Quick summary
The @claude workflow log now lists the tool calls that were denied, not just how many. Claude is also told how to run the checks so they match the allowed commands. Only
claude.ymlchanges.Where to look
On #390, Claude could not run the tests,
black,flake8or./local_check.sh --agent-strict. The run already allowedBash(poetry run:*)andBash(./local_check.sh:*), so the calls must have taken a form those rules do not match, such as a pipe, acd, or a wrapper liketimeout. The action hides Claude's output, so the log only sayspermission_denials_count: 3.execution_fileand prints each denied call's tool and command, cut at 300 characters. It does not turn onshow_full_output, which would put tool output in the log of a public repo.poetry runand./local_check.shfrom the repository root, withoutcdor a wrapper.tailandheadare allowed, so Claude can trim test output in a pipe. Both only read.Validation
.github/workflows/claude.ymlwith PyYAML. It parsed.git diff --check-- clean.jqfilter, becausejqis not installed here. The ubuntu runners include it../local_check.sh. This PR only changes a workflow file.🤖 Generated with Claude Code
This change is