marketplace/bundles/plan-marshall/skills/tools-permission-web/SKILL.md
Analyze and consolidate WebFetch domain permissions across projects with security research and validation
npx skillsauth add cuioss/plan-marshall tools-permission-webInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyzes WebFetch domains across global and project settings, researches domains for security, consolidates permissions, and provides recommendations.
Execution mode: Analyze permissions, research unknown domains, present recommendations, apply with user approval.
Prohibited actions:
Bash(*))Constraints:
AskUserQuestion tool with proper YAML structurescope - Which settings to analyze (global/local/both, default: both)
/tools-permission-web # Analyze all settings
/tools-permission-web scope=global
/tools-permission-web scope=local
Read: standards/trusted-domains.md Read: standards/domain-security-assessment.md
Loads trusted domains, security assessment patterns, and research methodology.
A. Read global settings (~/.claude/settings.json)
AskUserQuestion:
AskUserQuestion:
questions:
- question: "Global settings file not found. How would you like to proceed?"
header: "Global"
options:
- label: "Create default settings"
description: "Create a new ~/.claude/settings.json with defaults"
- label: "Skip global analysis"
description: "Continue with local settings only"
- label: "Abort"
description: "Cancel permission analysis"
multiSelect: false
B. Read local settings (./.claude/settings.local.json)
AskUserQuestion:
AskUserQuestion:
questions:
- question: "Local settings file not found. How would you like to proceed?"
header: "Local"
options:
- label: "Create default settings"
description: "Create a new .claude/settings.local.json with defaults"
- label: "Skip local analysis"
description: "Continue with global settings only"
- label: "Abort"
description: "Cancel permission analysis"
multiSelect: false
C. Extract all WebFetch permissions from both sources
AskUserQuestion:
AskUserQuestion:
questions:
- question: "Settings file has invalid JSON. How would you like to proceed?"
header: "JSON"
options:
- label: "Fix manually"
description: "Open the file and fix JSON syntax"
- label: "Skip this file"
description: "Continue without this settings file"
- label: "Abort"
description: "Cancel permission analysis"
multiSelect: false
D. Categorize domains:
A. Check for domain:* - If present globally, all specific domains are redundant
B. Find exact duplicates across global and local
C. Identify redundant patterns:
For each unknown domain:
A. Web research using WebSearch or WebFetch:
WebSearch: "domain-name.com reputation security"
WebFetch: https://domain-name.com (check if accessible)
B. Assess security using standards from web-permissions skill:
C. Determine categorization:
A. If domain: exists globally*:
Recommendation: Remove all specific domains (redundant)
- Remove {count} specific domains from global
- Remove {count} specific domains from local
B. If no domain:*:
Recommendations by Category:
MAJOR_DOMAINS ({count}):
> Move to global settings (docs.oracle.com, maven.apache.org, ...)
HIGH_REACH ({count}):
> Move to global settings (github.com, stackoverflow.com, ...)
PROJECT_SPECIFIC ({count}):
> Keep in local settings
SUSPICIOUS ({count}):
> Review for removal: {list with reasons}
WebFetch Permission Analysis
========================================
Global Settings:
- WebFetch permissions: {count}
- Universal access (domain:*): {yes/no}
Local Settings:
- WebFetch permissions: {count}
Total Unique Domains: {count}
By Category:
- Major domains: {count}
- High-reach domains: {count}
- Project-specific: {count}
- Suspicious: {count}
- Unknown: {count}
Duplicates Found: {count}
Redundant (if domain:* exists): {count}
Recommendations:
{detailed recommendations}
Present options using AskUserQuestion:
AskUserQuestion:
questions:
- question: "How would you like to apply the recommendations?"
header: "Apply"
options:
- label: "Apply all"
description: "Apply all recommended permission changes"
- label: "Review each change"
description: "Review and approve each change individually"
- label: "Skip"
description: "Display recommendations only, make no changes"
multiSelect: false
If "Apply all" or "Review each change":
Error handling:
AskUserQuestion:
AskUserQuestion:
questions:
- question: "Failed to write settings file. How would you like to proceed?"
header: "Write"
options:
- label: "Retry"
description: "Attempt the write again"
- label: "Skip file"
description: "Skip this file, continue with others"
- label: "Abort"
description: "Stop applying changes"
multiSelect: false
AskUserQuestion:
AskUserQuestion:
questions:
- question: "Failed to edit settings file. How would you like to proceed?"
header: "Edit"
options:
- label: "Retry"
description: "Attempt the edit again"
- label: "Skip change"
description: "Skip this change, continue with others"
- label: "Abort"
description: "Stop applying changes"
multiSelect: false
Display summary of changes made and final state:
WebFetch Permission Update Complete
========================================
Statistics:
- Domains analyzed: {domains_analyzed}
- Permissions added: {permissions_added}
- Permissions removed: {permissions_removed}
- Security checks performed: {security_checks_performed}
- Files read: {files_read}
- Files modified: {files_modified}
Final State:
- Global permissions: {count}
- Local permissions: {count}
- Total unique domains: {count}
Track throughout workflow:
domains_analyzed: Total unique domains discovered and analyzedpermissions_added: Count of new permissions added to settingspermissions_removed: Count of redundant/duplicate permissions removedsecurity_checks_performed: Count of unknown domains researchedfiles_read: Count of settings files successfully readfiles_modified: Count of settings files successfully updatedSecurity:
Consolidation:
User Control:
/marshall-steward - Permission management wizardplan-marshall:tools-permission-doctor skill - Permission analysisplan-marshall:tools-permission-fix skill - Permission fixestesting
A test skill for README generation
testing
A test skill with existing references
tools
Skill without references directory
development
Test skill with table-format references