Skip to content

fix(skills): drop broad allowed-tools grant from research - #1206

Merged
boshu2 merged 3 commits into
mainfrom
fix/plugin-skill-allowed-tools
Oct 10, 2026
Merged

boshu2 merged 3 commits into
mainfrom
fix/plugin-skill-allowed-tools

Conversation

@boshu2

@boshu2 boshu2 commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Findings (Claude Code plugin marketplace validator, main @ f9c4b1c)

  • ALLOWED_TOOLS_BROAD: skills/research/SKILL.md pre-approves Bash (any shell command).
  • ALLOWED_TOOLS_UNSCOPED_WRITE: the same file pre-approves Write with no path scope.
  • RUNTIME_FETCH_EXEC (warning): skills/skill-eval/SKILL.md "contains a download-and-execute shell pattern".

Decision

This removes allowed-tools: Read, Grep, Glob, Bash, Write from research. research was the only one of 29 skills with this field. The skill body names its validate-output.sh scripts only as paths and never depends on running them unprompted, so normal permission prompts work as they do for the other 28 skills. The validator explicitly accepts dropping the field, and every consumer treats it as optional: validate-skill-schema.sh, skillshealth/evidence.go and skill-frontmatter.v1.schema.json.

skill-eval is unchanged. It contains no curl, wget, npx, uvx, pipe-to-shell or download step. The only plausible match is the word eval in claude plugin eval, a local Claude Code CLI shown as documentation. The validator's own text says a documentation-only match needs no change.

skills/using-gc/SKILL.md is unchanged because it reads no credentials. That hold comes from pairing it with .github/workflows/release.yml, and it clears when the workflow leaves the plugin tree in another lane.

Checks

  • bash scripts/validate-skill-schema.sh skills/research and the full-repo run: 29/29 pass
  • bash scripts/validate-skill-frontmatter.sh: 29/29 ok
  • bash skills/skill-builder/scripts/heal.sh --check --strict: clean
  • bash scripts/regen-all.sh: no projection changes. --check: "All generated projections are current."
  • ao gate check (fresh go install ./cmd/ao): fast/head 47 checks, 47 pass, 0 fail
  • claude plugin validate .: Validation passed
  • cd cli && go test ./internal/skillshealth/...: ok

The plugin marketplace validator flagged research's allowed-tools line
(ALLOWED_TOOLS_BROAD for unscoped Bash, ALLOWED_TOOLS_UNSCOPED_WRITE for
unscoped Write). No step in the skill needs unprompted execution, so the
grant is removed and research uses the normal permission prompts like
the other 28 skills.
@github-actions github-actions Bot added the skills label Oct 9, 2026
The pinned v2.13.1 (x/tools 0.49.0) cannot read go1.27 export data
("export data version 5 is greater than maximum supported version 4"),
so the go.lint gate failed on every PR after the toolchain bump in #1201.
v2.14.0 ships x/tools 0.50.0 and lints the tree clean (0 findings).
@github-actions github-actions Bot added the ci label Oct 10, 2026
boshu2 added a commit that referenced this pull request Oct 10, 2026
claude plugin validate warned that the unquoted placeholder can split on a
path containing spaces. Regenerated plugin/ after #1205 and #1206 merged.
boshu2 added a commit that referenced this pull request Oct 10, 2026
…1208)

## Why
Since #1201 moved `cli/go.mod` to `toolchain go1.27.2`, the pinned
golangci-lint v2.13.1 (x/tools 0.49.0) fails typecheck on every package:
`export data version 5 is greater than maximum supported version 4`.
That turned the `go.lint` gate red for any PR that runs the correctness
job (see #1206 CI, test 186 in `tests/scripts/check-go-lint.bats`).

## What
Pin bumped from v2.13.1 to v2.14.0 (x/tools 0.50.0) in
`scripts/golangci-lint-v2.sh` and the three workflows that install it.

## Checks
- `bash scripts/check-go-lint.sh` locally under `GOTOOLCHAIN=go1.27.2`:
`golangci-lint clean (0 findings)`.
- CI on this PR is the authoritative confirmation.
@boshu2
boshu2 merged commit 6a62d53 into main Oct 10, 2026
8 checks passed
@boshu2
boshu2 deleted the fix/plugin-skill-allowed-tools branch October 10, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant