Fix daily-spdd-spec-planner tool denial limit exceeded - #41770
Merged
Conversation
…ads and improve prompt guidance Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix daily SPDD Spec Planner tool denial limit issue
Fix daily-spdd-spec-planner tool denial limit exceeded
Jun 26, 2026
pelikhan
marked this pull request as ready for review
June 26, 2026 18:22
Contributor
There was a problem hiding this comment.
Pull request overview
This PR addresses a regression where the daily-spdd-spec-planner workflow exceeded the Copilot SDK tool-denial threshold after adding spec fixtures under specs/ subdirectories, by expanding the bash allowlist and adding a regression test to ensure subdirectory spec reads remain permitted.
Changes:
- Extend the workflow’s bash allowlist to include
cat specs/**/*.mdso read-only inspection tools can access markdown specs in nestedspecs/directories. - Add explicit prompt guidance to prefer the allowed
find specs docs scratchpad -type f -name "*.md"command for discovery (avoiding denied root-levelglobusage). - Add a test assertion to prevent the
cat specs/**/*.mdallowlist entry from being removed in future edits.
Show a summary per file
| File | Description |
|---|---|
pkg/workflow/prompts_test.go |
Adds a regression assertion that the workflow includes cat specs/**/*.md in the bash allowlist. |
.github/workflows/daily-spdd-spec-planner.md |
Expands bash allowlist and adds prompt guidance to avoid denial-heavy discovery patterns. |
.github/workflows/daily-spdd-spec-planner.lock.yml |
Regenerated compiled lock file reflecting the updated allowlist entry. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 3/3 changed files
- Comments generated: 1
- Review effort level: Low
Comment on lines
130
to
+131
| 1. Emit exactly one `create_issue` item only after the full body is complete. | ||
| - Call the `create_issue` MCP tool directly with `title` and `body` fields — do not construct JSON payloads via bash, python3, or shell scripts. |
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
specs/forecast-compliance-fixtures/subdirectory (added June 26) pushed the workflow over the 5/5 tool-denial guardrail. The previous successful run had 4 denials; the new subdirectory file added a 5th.Denial breakdown from run 28251414746:
globon workspace root — no path pattern covered the workspace root directoryviewonspecs/forecast-compliance-fixtures/README.md—cat specs/*.mdonly extractsspecs/*.mdas a readable pattern; subdirectory files don't matchshell(python3 ...)— agent tried to construct issue JSON via Python instead of callingcreate_issueMCP directly → hit threshold, session abortedChanges:
Bash allowlist — add
cat specs/**/*.mdalongside the existingcat specs/*.md. The SDK permission handler extractsspecs/**/*.mdas a readable path pattern, which glob-matches any file in anyspecs/subdirectory.Prompt guidance — explicitly tell the agent to use the allowed
find specs docs scratchpad -type f -name "*.md"bash command for file discovery instead of theglobtool on the workspace root, and to call thecreate_issueMCP tool directly rather than building JSON payloads via shell/python3.Test — add assertion that
"cat specs/**/*.md"is present in the workflow to prevent regression when new spec subdirectories are added.