Skip to content

Document and test allowed-tools patterns in CONTRIBUTING.md #22

@krisrowe

Description

@krisrowe

Summary

Before adding allowed-tools frontmatter to skills, we need:

  1. Verified syntax — Test that scoped patterns like Bash(git*) actually work in Claude Code vs plain Bash vs no declaration. Use claude -p in /tmp/ to compare behavior with and without.

  2. Documented patterns in CONTRIBUTING.md — Add a section covering:

    • allowed-tools syntax and semantics (additive only, no restriction)
    • Scoped Bash patterns: Bash(git*), Bash(gh*) vs broad Bash
    • When to use scoped vs broad vs no declaration
    • Examples and links to Claude Code docs
  3. Per-skill rationale — Determine whether CONTRIBUTING.md works at subdirectory level in Claude Code / Gemini CLI for per-skill design decisions. If not, define a convention (e.g., DESIGN.md or a section in CONTRIBUTING.md linking to skills by name). Cannot use README.md at skill level — that's published on echoskill.ai.

  4. Testing methodology — Document how to test skill effectiveness:

    • claude -p calls in /tmp/ test directories
    • Compare with and without allowed-tools
    • Verify scoped patterns actually scope (does Bash(git*) block Bash(rm*)?)
    • Document results alongside the pattern docs

Context

Started adding allowed-tools to all skills in PR branch review-skill-tool-approvals. Paused because:

  • Broad Bash is too permissive — need scoped patterns
  • The scoped syntax (Bash(git*)) is underdocumented in develop-skill
  • No evidence yet that scoped patterns work as expected
  • Need CONTRIBUTING.md patterns before applying across 14 skills

Blocked by

  • Testing: need verified results before committing changes
  • setup-agent-context skill should reference this CONTRIBUTING.md guidance

Related

  • Branch review-skill-tool-approvals has 4 skills partially edited + Chris→Bob fix in pre-publish-privacy-review
  • The develop-skill skill mentions allowed-tools: Bash, Read but doesn't cover scoping

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions