Skip to content

Experiment: can Bash be trimmed from allowed-tools in pre-fetch-only skills? #4

Description

@chrispezza

skill-audit flagged that several skills grant Bash while their bodies never shell out — but pre-fetched !... context execution may itself require the grant, so trimming blindly could break every skill's context loading.

The experiment (needs any logged-in claude CLI; the desktop app session cannot run claude -p):

  1. Create a scratch project with .claude/skills/probe-withbash/SKILL.md and .claude/skills/probe-nobash/SKILL.md, identical except allowed-tools: Bash, Read vs allowed-tools: Read. Body of each:
---
name: probe-nobash
description: Internal test probe. Use only when explicitly invoked.
allowed-tools: Read
---
Pre-fetched: !`echo PROBE_NOBASH_EXECUTED`

Reply with exactly one line: the pre-fetched value shown above if it is the word-output of the command (starts with PROBE_), or the text RAW-COMMAND-VISIBLE if you see an unexecuted command/backticks instead.
  1. From that directory: claude -p "/probe-withbash" then claude -p "/probe-nobash".
  2. If BOTH print their PROBE_*_EXECUTED marker, the Bash grant is not required for pre-fetch and can be trimmed from pre-fetch-only skills (both pr-descriptions, component-scaffold). If the nobash probe shows the raw command, the grant is required — close this issue documenting that and keep the grants.

Tracked in docs/ROADMAP.md open decisions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions