Repository navigation
feat(rules): flag subagents that omit tools (CSDK-115) - #273
Open
ivanpaghubasan wants to merge 3 commits into
Open
ivanpaghubasan wants to merge 3 commits into
ivanpaghubasan wants to merge 3 commits into
Conversation
A .claude/agents/ subagent with no tools: key and no disallowedTools: entries inherits all tools available to subagents. Schema 27 is provisional.
ivanpaghubasan
requested review from
ericksondelacruz,
jhumel-code and
sairenchristianbuerano
October 21, 2026 05:22
sairenchristianbuerano
approved these changes
Oct 21, 2026
sairenchristianbuerano
approved these changes
Oct 21, 2026
ivanpaghubasan
marked this pull request as ready for review
October 23, 2026 09:59
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.
Summary
Adds CSDK-115 (subagent scope, severity high, confidence 0.75) and the predicate
subagent_inherits_all_tools. A subagent in a.claude/agents/directory with notools:key and nodisallowedTools:entries inherits all tools available to subagents, per the Claude Code subagents documentation.SubagentDefgains two in-memory fields (json:"-", so report JSON is unchanged):ToolsOmitted(thetoolskey is absent;tools: []and an emptytools:count as declared) andCanonical(found under.claude/agents/). The predicate skips files found by the frontmatter-shape fallback.Includes unit, policy and scanner tests, the
subagent-tools-inheritcorpus fixture, and updates to COVERAGE, ARCHITECTURE andschema.yaml.Schema number is provisional
The schema number is set to 27. Whichever of the open PRs merges later (#261 OBS-009..012, #264 CI-001..005, or this one) merges main in and renumbers in
schema_version.go, the fixturemanifest.yamland the rulesmanifest.yaml, then rerunsgo test ./...andscripts/check-rules-sync.sh.Verification
go test ./...: all packages pass.testdata/corpus/subagent-tools-inheritwith the rules branch as the pack: one CSDK-115 finding, on.claude/agents/inheritor.md.scripts/check-rules-sync.sh: in sync (133 files compared).Maintainer notes