Appearance
Why It Matters
Wildcard tool grants make shared skills and instruction files much harder to review. Once frontmatter says every tool is allowed, the document stops expressing least privilege and becomes a much broader execution policy than most AI workflows actually need.
What Triggers
SEC355 applies to AI-native markdown surfaces with parsed frontmatter and triggers when any of these keys grants a literal wildcard tool token:
allowed-toolsallowed_toolstools
Examples that trigger:
allowed-tools: "*"allowed_tools: ["*"]- YAML list form with
tools:followed by- "*"
Examples that stay clean:
allowed-tools: Read, Write, Editallowed-tools: Bash(git:*), Read- files under fixture-like paths such as
tests/fixtures/
False Positives
This rule stays Preview because some shared AI repos still document wildcard tool access as a convenience default. The rule is guidance about least privilege and reviewability, not a claim that every such file is immediately exploitable.
Remediation
Replace wildcard access with an explicit allowlist of only the tools the workflow actually needs. If a skill really needs shell access, prefer a narrower scoped form such as Bash(git:*) instead of *.
How To Pass Lint
Prefer frontmatter like this:
yaml
allowed-tools: Read, Write, Bash(git:*)Avoid:
yaml
allowed-tools: "*"