Repository navigation
fix(skill): reword instructions that static scanners flag as unsafe - #55
Merged
Merged
Conversation
SkillSpector (NVIDIA), which gates skill submissions to davila7/claude-code-templates, scored the skill 100/100 CRITICAL on static pattern matches. Every match was benign wording. Reword those lines without changing behavior. The score drops to 16 (LOW). - Rename "Output Rules" to "Response Style" (P6 prompt-extraction match). - Avoid "auto-execute", "without confirmation", "no approval", and "no consent" phrasing (EA2). - Drop the unpinned `npx skills add` from the version-mismatch hint and doctor.md (RP1). - Write the QUOTE_PERSIST_FAILED fix with "$HOME" and `chmod u=rwx,go=`, equivalent to `chmod 700` (PE2, RA2). - Describe the MCP `x402/error` key in prose. The two inline `_meta["x402/error"]` spans exceeded the parser's span limit (AE1). - Use a non-`api.` example host in x402 docs and the script docstring (E1). Bump the skill to 7.7.1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A local py_compile check left scripts/__pycache__ in the previous commit. Remove it and add a .gitignore so bytecode is never shipped. Skill scanners treat shipped bytecode as a blocking finding (SC8/SC9). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
yashovardhan
added a commit
to yashovardhan/claude-code-templates
that referenced
this pull request
Sep 30, 2026
Pull in MetaMask/agent-skills#55, which rewords instructions that SkillSpector misread as unsafe. Behavior is unchanged. The local SkillSpector score drops from 100 (CRITICAL) to 16 (LOW). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chaitanyapotti
approved these changes
Sep 30, 2026
6 of 8 tasks
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.
Motivation and Context
We submitted the skill to davila7/claude-code-templates#1032. Its required SkillSpector check (NVIDIA's static skill scanner, run with
--no-llm) scored the skill 100/100 CRITICAL, "DO NOT INSTALL", which blocks the merge. Every finding was a pattern match on harmless wording, not a real issue. This PR rewords those lines so the skill passes this and similar scanners, without changing behavior.Jira Link
N/A
Description
## Output Rulesheading## Response Style_meta["x402/error"]spans inx402.mdexceeded the parser's span limitx402/errorkey in_meta"--yes…", "Can run directly", "the approval record is missing", "does not prompt for consent"npx skills addin the version-mismatch hint anddoctor.mdmkdir -p ~/.metamask/… && chmod 700 …in theQUOTE_PERSIST_FAILEDfixmkdir -p "$HOME/.metamask/…" && chmod u=rwx,go= …, which does the same thinghttps://api.example.com/premiumexample URLshttps://paid.example.com/premiumThe meaning of every rule is unchanged.
resetstill needs explicit confirmation,--yesis still forbidden on re-quotes, and the protocol keys_meta["x402/payment"]and_meta["x402/payment-response"]are unchanged. The skill version is bumped to 7.7.1, with a CHANGELOG entry. A second commit adds a root.gitignorefor__pycache__/and*.pyc. Shipped bytecode is a blocking finding for these scanners (SC8/SC9), and a local compile check had left some in the first commit.Two MEDIUM findings remain on purpose:
allowed-tools: addingallowed-toolswould make Claude Code run those tools without asking permission, includingmmcommands that move funds. The only other field the scanner accepts, a top-levelpermissionskey, is not allowed by the Agent Skills spec.subprocesscall:x402_pay.pycallssubprocess.run(["mm", ...])with a fixed argument list and no shell.How has this been tested?
skillspector scan skills/metamask-agent-wallet --no-llm. This is the same command the claude-code-templates CI runs.claude plugin validate . --strictandclaude plugin validate .claude-plugin/plugin.json --strictpass.python3 -m py_compile scripts/x402_pay.pypasses. Only the docstring changed.Types of changes
Checklist
🤖 Generated with Claude Code