{"data":{"skill":{"slug":"supercent-io-npm-git-install","name":"npm-git-install","icon":"📦","repo":"https://github.com/supercent-io/skills-template/tree/main/.agent-skills/npm-git-install/","status":"approved","author":"supercent-io","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"b2d66da9-ec53-4f09-bcf1-323bb93e106a","skill_id":"faea5af4-412c-4e8d-aec1-682dfea17960","version":6,"content_hash":"v3:3e4b6c31a74a3bd1a291c98cf585d720cb9fbc88:c76befc45af13e35e77269ef5188ab64cb223020e45ec77517f44cee586f9eb6:4c3cdf404a88482a652f113ae00e687ad8365c29e4dd5ef112c86338bb7199a5:736b696c6c732f737570657263656e742d696f2f6e706d2d6769742d696e7374616c6c:0d7a3bccb27a0731c517188e2393fa9a","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"This documentation-focused skill is not malicious, and many backtick detections are Markdown false positives. Remaining risks include GitHub package installs, lifecycle scripts, token authentication, .npmrc edits, global binary linking, and privileged troubleshooting commands.","remediation":[{"issue":"GitHub Git installs can execute unreviewed package code and lifecycle scripts.","severity":"high","suggestion":"Require users to verify repository trust, review package scripts, and pin tags or commit SHAs before installing, especially for global installs."},{"issue":"Token examples place GitHub credentials in URLs or npm configuration.","severity":"high","suggestion":"Avoid token-in-URL examples, warn about shell history and logs, and prefer least-privilege tokens or SSH with clear secret-handling guidance."},{"issue":"The guide recommends git credential.helper store for cached credentials.","severity":"high","suggestion":"Remove that recommendation or clearly warn that it can store credentials unencrypted; prefer OS keychain-backed helpers."},{"issue":"Troubleshooting examples use sudo and recursive ownership changes.","severity":"high","suggestion":"Lead with user-level npm prefixes, nvm, or local installs, and require explicit confirmation before any privileged system change."},{"issue":"SSH key setup shows reading from the ~/.ssh directory.","severity":"medium","suggestion":"Clarify that only public .pub files may be displayed, and never ask agents to inspect private SSH keys or include key material in logs."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":30,"line_start":28},{"file":"SKILL.md","line_end":34,"line_start":30},{"file":"SKILL.md","line_end":46,"line_start":34},{"file":"SKILL.md","line_end":50,"line_start":46},{"file":"SKILL.md","line_end":52,"line_start":50},{"file":"SKILL.md","line_end":56,"line_start":52},{"file":"SKILL.md","line_end":58,"line_start":56},{"file":"SKILL.md","line_end":66,"line_start":58},{"file":"SKILL.md","line_end":78,"line_start":66},{"file":"SKILL.md","line_end":82,"line_start":78},{"file":"SKILL.md","line_end":91,"line_start":82},{"file":"SKILL.md","line_end":97,"line_start":91},{"file":"SKILL.md","line_end":110,"line_start":97},{"file":"SKILL.md","line_end":116,"line_start":110},{"file":"SKILL.md","line_end":116,"line_start":116},{"file":"SKILL.md","line_end":117,"line_start":117},{"file":"SKILL.md","line_end":118,"line_start":118},{"file":"SKILL.md","line_end":134,"line_start":126},{"file":"SKILL.md","line_end":138,"line_start":134},{"file":"SKILL.md","line_end":147,"line_start":138},{"file":"SKILL.md","line_end":155,"line_start":147},{"file":"SKILL.md","line_end":165,"line_start":155},{"file":"SKILL.md","line_end":169,"line_start":165},{"file":"SKILL.md","line_end":179,"line_start":169},{"file":"SKILL.md","line_end":183,"line_start":179},{"file":"SKILL.md","line_end":186,"line_start":183},{"file":"SKILL.md","line_end":194,"line_start":186},{"file":"SKILL.md","line_end":203,"line_start":194},{"file":"SKILL.md","line_end":207,"line_start":203},{"file":"SKILL.md","line_end":216,"line_start":207},{"file":"SKILL.md","line_end":220,"line_start":216},{"file":"SKILL.md","line_end":228,"line_start":220},{"file":"SKILL.md","line_end":232,"line_start":228},{"file":"SKILL.md","line_end":238,"line_start":232},{"file":"SKILL.md","line_end":242,"line_start":238},{"file":"SKILL.md","line_end":249,"line_start":242},{"file":"SKILL.md","line_end":257,"line_start":249},{"file":"SKILL.md","line_end":264,"line_start":257},{"file":"SKILL.md","line_end":268,"line_start":264},{"file":"SKILL.md","line_end":274,"line_start":268},{"file":"SKILL.md","line_end":278,"line_start":274},{"file":"SKILL.md","line_end":280,"line_start":278},{"file":"SKILL.md","line_end":288,"line_start":280},{"file":"SKILL.md","line_end":294,"line_start":288},{"file":"SKILL.md","line_end":298,"line_start":294},{"file":"SKILL.md","line_end":317,"line_start":298},{"file":"SKILL.md","line_end":325,"line_start":317},{"file":"SKILL.md","line_end":334,"line_start":325},{"file":"SKILL.md","line_end":377,"line_start":334},{"file":"SKILL.md","line_end":377,"line_start":377}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":29,"line_start":29},{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":39,"line_start":39},{"file":"SKILL.md","line_end":42,"line_start":42},{"file":"SKILL.md","line_end":45,"line_start":45},{"file":"SKILL.md","line_end":57,"line_start":57},{"file":"SKILL.md","line_end":84,"line_start":84},{"file":"SKILL.md","line_end":129,"line_start":129},{"file":"SKILL.md","line_end":174,"line_start":174},{"file":"SKILL.md","line_end":178,"line_start":178},{"file":"SKILL.md","line_end":215,"line_start":215},{"file":"SKILL.md","line_end":237,"line_start":237},{"file":"SKILL.md","line_end":248,"line_start":248},{"file":"SKILL.md","line_end":260,"line_start":260},{"file":"SKILL.md","line_end":273,"line_start":273},{"file":"SKILL.md","line_end":290,"line_start":290},{"file":"SKILL.md","line_end":358,"line_start":358},{"file":"SKILL.md","line_end":359,"line_start":359},{"file":"SKILL.md","line_end":360,"line_start":360},{"file":"SKILL.md","line_end":361,"line_start":361},{"file":"SKILL.md","line_end":51,"line_start":51},{"file":"SKILL.md","line_end":130,"line_start":130},{"file":"SKILL.md","line_end":164,"line_start":164}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":90,"line_start":90},{"file":"SKILL.md","line_end":373,"line_start":373},{"file":"SKILL.md","line_end":374,"line_start":374},{"file":"SKILL.md","line_end":118,"line_start":118},{"file":"SKILL.md","line_end":160,"line_start":160},{"file":"SKILL.md","line_end":184,"line_start":184},{"file":"SKILL.md","line_end":199,"line_start":199},{"file":"SKILL.md","line_end":200,"line_start":200},{"file":"SKILL.md","line_end":201,"line_start":201},{"file":"SKILL.md","line_end":202,"line_start":202},{"file":"SKILL.md","line_end":118,"line_start":118},{"file":"SKILL.md","line_end":160,"line_start":160},{"file":"SKILL.md","line_end":184,"line_start":184},{"file":"SKILL.md","line_end":199,"line_start":199},{"file":"SKILL.md","line_end":200,"line_start":200},{"file":"SKILL.md","line_end":201,"line_start":201},{"file":"SKILL.md","line_end":202,"line_start":202},{"file":"SKILL.md","line_end":84,"line_start":84},{"file":"SKILL.md","line_end":85,"line_start":85},{"file":"SKILL.md","line_end":90,"line_start":90}]},{"factor":"env_access","evidence":[{"file":"SKILL.md","line_end":177,"line_start":177},{"file":"SKILL.md","line_end":178,"line_start":178},{"file":"SKILL.md","line_end":185,"line_start":185}]}],"critical_findings":[],"high_findings":[{"title":"sudo privilege escalation","locations":[{"file":"SKILL.md","line_end":196,"line_start":196}],"confidence":0.9,"description":"sudo chown -R $(whoami) /usr/local/lib/node_modules","review_kind":"capability","source_category":"external_commands","source_severity":"high","confidence_reasoning":"The command uses sudo to recursively change ownership under /usr/local/lib/node_modules. If followed without review, it changes system-owned package files and can weaken local integrity."},{"title":"sudo privilege escalation","locations":[{"file":"SKILL.md","line_end":212,"line_start":212}],"confidence":0.76,"description":"sudo apt-get install git","review_kind":"capability","source_category":"external_commands","source_severity":"high","confidence_reasoning":"The command installs system packages with sudo apt-get. This is a common setup step, but it grants elevated privileges and should require explicit user confirmation."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":174,"line_start":174}],"confidence":0.9,"description":"npm install git+https://<token>@github.com/owner/private-repo.git","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The install URL includes a GitHub token placeholder, which can leak through shell history, process listings, npm logs, or copied package metadata. The context is legitimate private repo access but the pattern is sensitive."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":178,"line_start":178}],"confidence":0.9,"description":"npm install git+https://${GITHUB_TOKEN}@github.com/owner/private-repo.git","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The install URL includes a GitHub token placeholder, which can leak through shell history, process listings, npm logs, or copied package metadata. The context is legitimate private repo access but the pattern is sensitive."},{"title":"Hidden file in home directory","locations":[{"file":"SKILL.md","line_end":184,"line_start":184}],"confidence":0.89,"description":"# ~/.npmrc","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The skill directs configuration in ~/.npmrc, a hidden file that commonly stores package registry credentials. Mishandling this file can expose tokens."},{"title":"Hidden file in home directory","locations":[{"file":"SKILL.md","line_end":201,"line_start":201}],"confidence":0.82,"description":"echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The guidance modifies or sources ~/.bashrc, a persistent shell startup file. Changing startup files can affect future shell behavior and should be reviewed."},{"title":"Hidden file in home directory","locations":[{"file":"SKILL.md","line_end":202,"line_start":202}],"confidence":0.82,"description":"source ~/.bashrc","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The guidance modifies or sources ~/.bashrc, a persistent shell startup file. Changing startup files can affect future shell behavior and should be reviewed."},{"title":"Hidden file access","locations":[{"file":"SKILL.md","line_end":184,"line_start":184}],"confidence":0.89,"description":"# ~/.npmrc","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The .npmrc path is security-sensitive because it may contain registry or GitHub tokens. The nearby example configures token-based authentication."},{"title":"Symlink creation","locations":[{"file":"SKILL.md","line_end":90,"line_start":90}],"confidence":0.78,"description":"ln -s ../lib/node_modules/repo/bin/cli.js /usr/local/bin/repo","review_kind":"capability","source_category":"filesystem","source_severity":"high","confidence_reasoning":"The example creates a symlink into /usr/local/bin, which can affect global command resolution. Although illustrative, this is a security-sensitive filesystem operation."},{"title":"Git platform tokens","locations":[{"file":"SKILL.md","line_end":177,"line_start":177}],"confidence":0.92,"description":"export GITHUB_TOKEN=ghp_xxxxxxxxxxxx","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The line handles GITHUB_TOKEN or passes it into npm/GitHub authentication. These values are secrets and can leak through logs, shell history, or configuration files if mishandled."},{"title":"Git platform tokens","locations":[{"file":"SKILL.md","line_end":178,"line_start":178}],"confidence":0.92,"description":"npm install git+https://${GITHUB_TOKEN}@github.com/owner/private-repo.git","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The line handles GITHUB_TOKEN or passes it into npm/GitHub authentication. These values are secrets and can leak through logs, shell history, or configuration files if mishandled."},{"title":"Git platform tokens","locations":[{"file":"SKILL.md","line_end":185,"line_start":185}],"confidence":0.92,"description":"//github.com/:_authToken=${GITHUB_TOKEN}","review_kind":"capability","source_category":"env_access","source_severity":"high","confidence_reasoning":"The line handles GITHUB_TOKEN or passes it into npm/GitHub authentication. These values are secrets and can leak through logs, shell history, or configuration files if mishandled."},{"title":"NPM config file (may contain tokens)","locations":[{"file":"SKILL.md","line_end":181,"line_start":181}],"confidence":0.9,"description":"### .npmrc Configuration","review_kind":"security","source_category":"sensitive","source_severity":"high","confidence_reasoning":"The skill includes .npmrc token configuration for GitHub access. .npmrc can contain package registry credentials, so this guidance is security-sensitive."},{"title":"NPM config file (may contain tokens)","locations":[{"file":"SKILL.md","line_end":184,"line_start":184}],"confidence":0.9,"description":"# ~/.npmrc","review_kind":"security","source_category":"sensitive","source_severity":"high","confidence_reasoning":"The skill includes .npmrc token configuration for GitHub access. .npmrc can contain package registry credentials, so this guidance is security-sensitive."},{"title":"Unreviewed GitHub Package Lifecycle Execution","locations":[{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":77,"line_start":73}],"confidence":0.88,"description":"The skill teaches npm installs from GitHub and explains that npm runs prepare scripts and registers global binaries. Installing unreviewed Git repositories can execute package code during installation.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The document explicitly combines GitHub install commands with npm prepare-script and global binary behavior. This is a clear supply-chain execution risk even though it is presented as legitimate package management guidance."},{"title":"Plaintext Git Credential Storage Guidance","locations":[{"file":"SKILL.md","line_end":225,"line_start":224}],"confidence":0.95,"description":"The troubleshooting section recommends git credential.helper store for cached credentials. That helper can save credentials unencrypted on disk, creating a credential exposure risk.","review_kind":"security","source_category":"semantic","source_severity":"high","confidence_reasoning":"The exact git credential.helper store command is present under credential caching. This is a known insecure storage option compared with OS keychain helpers."}],"medium_findings":[{"title":"Shell command substitution","locations":[{"file":"SKILL.md","line_end":196,"line_start":196}],"confidence":0.88,"description":"sudo chown -R $(whoami) /usr/local/lib/node_modules","review_kind":"capability","source_category":"external_commands","source_severity":"medium","confidence_reasoning":"The example uses $(whoami) inside a sudo chown command, so a shell expansion is performed before changing ownership. It is troubleshooting guidance, but it is still security-sensitive command execution."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":36,"line_start":36}],"confidence":0.84,"description":"npm install -g git+https://github.com/JEO-tech-ai/supercode.git#main","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":57,"line_start":57}],"confidence":0.84,"description":"npm install -g git+https://github.com/JEO-tech-ai/supercode.git#main --verbose","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":129,"line_start":129}],"confidence":0.84,"description":"\"supercode\": \"git+https://github.com/JEO-tech-ai/supercode.git#main\",","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":290,"line_start":290}],"confidence":0.84,"description":"npm install -g git+https://github.com/JEO-tech-ai/supercode.git#main","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters."},{"title":"SSH protocol URL","locations":[{"file":"SKILL.md","line_end":51,"line_start":51}],"confidence":0.78,"description":"npm install -g git+ssh://git@github.com:JEO-tech-ai/supercode.git#main","review_kind":"capability","source_category":"network","source_severity":"medium","confidence_reasoning":"The SSH Git URL is a real authenticated network install path for private or protected repositories. It is expected for the skill, but it depends on local SSH credentials and repository trust."},{"title":"SSH protocol URL","locations":[{"file":"SKILL.md","line_end":130,"line_start":130}],"confidence":0.78,"description":"\"my-package\": \"git+ssh://git@github.com:owner/repo.git#v1.0.0\",","review_kind":"capability","source_category":"network","source_severity":"medium","confidence_reasoning":"The SSH Git URL is a real authenticated network install path for private or protected repositories. It is expected for the skill, but it depends on local SSH credentials and repository trust."},{"title":"SSH protocol URL","locations":[{"file":"SKILL.md","line_end":164,"line_start":164}],"confidence":0.78,"description":"npm install git+ssh://git@github.com:owner/private-repo.git","review_kind":"capability","source_category":"network","source_severity":"medium","confidence_reasoning":"The SSH Git URL is a real authenticated network install path for private or protected repositories. It is expected for the skill, but it depends on local SSH credentials and repository trust."},{"title":"Hidden file access","locations":[{"file":"SKILL.md","line_end":201,"line_start":201}],"confidence":0.82,"description":"echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The example writes to or sources ~/.bashrc, which changes user shell startup behavior. It is a common setup step but still needs user review."},{"title":"Hidden file access","locations":[{"file":"SKILL.md","line_end":202,"line_start":202}],"confidence":0.82,"description":"source ~/.bashrc","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The example writes to or sources ~/.bashrc, which changes user shell startup behavior. It is a common setup step but still needs user review."}],"low_findings":[{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":29,"line_start":29}],"confidence":0.72,"description":"npm install git+https://github.com/<owner>/<repo>.git#<branch|tag|commit>","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":39,"line_start":39}],"confidence":0.72,"description":"npm install git+https://github.com/owner/repo.git#v1.0.0","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":42,"line_start":42}],"confidence":0.72,"description":"npm install git+https://github.com/owner/repo.git#abc1234","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":45,"line_start":45}],"confidence":0.72,"description":"npm install git+https://github.com/owner/repo.git","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":84,"line_start":84}],"confidence":0.72,"description":"git clone https://github.com/owner/repo.git /tmp/npm-xxx","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":237,"line_start":237}],"confidence":0.72,"description":"npm install git+https://... --verbose 2>&1 | tee npm-install.log","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":248,"line_start":248}],"confidence":0.72,"description":"npm install -g git+https://...","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":260,"line_start":260}],"confidence":0.72,"description":"npm install -g git+https://github.com/owner/repo.git#main","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."},{"title":"Hardcoded URL","locations":[{"file":"SKILL.md","line_end":273,"line_start":273}],"confidence":0.72,"description":"git ls-remote https://github.com/owner/repo.git HEAD","review_kind":"capability","source_category":"network","source_severity":"low","confidence_reasoning":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository."}],"dangerous_patterns":[],"files_scanned":2,"total_lines":388,"audit_model":"codex","audited_at":"2026-07-09T09:11:54.493+00:00","created_at":"2026-07-16T02:41:24.667363+00:00","static_findings":[{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":30,"severity":"medium","line_start":28},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":34,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":46,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":50,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":52,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":56,"severity":"medium","line_start":52},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":58,"severity":"medium","line_start":56},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":66,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":78,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":82,"severity":"medium","line_start":78},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":91,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":97,"severity":"medium","line_start":91},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":110,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":116,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| macOS/Linux | `/usr/local/lib/node_modules/` | `/usr/local/bin/` |","category":"external_commands","line_end":116,"severity":"medium","line_start":116},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Windows | `%AppData%\\npm\\node_modules\\` | `%AppData%\\npm\\` |","category":"external_commands","line_end":117,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| nvm (macOS) | `~/.nvm/versions/node/vX.X.X/lib/node_modules/` | `~/.nvm/versions/node/vX.X.X/bin/`","category":"external_commands","line_end":118,"severity":"medium","line_start":118},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":134,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":138,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":147,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":155,"severity":"medium","line_start":147},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":165,"severity":"medium","line_start":155},{"id":"external_commands:SKILL.md:165:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":169,"severity":"medium","line_start":165},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":179,"severity":"medium","line_start":169},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":183,"severity":"medium","line_start":179},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":186,"severity":"medium","line_start":183},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":194,"severity":"medium","line_start":186},{"id":"external_commands:SKILL.md:194:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":203,"severity":"medium","line_start":194},{"id":"external_commands:SKILL.md:203:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":207,"severity":"medium","line_start":203},{"id":"external_commands:SKILL.md:207:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":216,"severity":"medium","line_start":207},{"id":"external_commands:SKILL.md:216:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":220,"severity":"medium","line_start":216},{"id":"external_commands:SKILL.md:220:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":228,"severity":"medium","line_start":220},{"id":"external_commands:SKILL.md:228:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":232,"severity":"medium","line_start":228},{"id":"external_commands:SKILL.md:232:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":238,"severity":"medium","line_start":232},{"id":"external_commands:SKILL.md:238:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":242,"severity":"medium","line_start":238},{"id":"external_commands:SKILL.md:242:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":249,"severity":"medium","line_start":242},{"id":"external_commands:SKILL.md:249:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":257,"severity":"medium","line_start":249},{"id":"external_commands:SKILL.md:257:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":264,"severity":"medium","line_start":257},{"id":"external_commands:SKILL.md:264:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":268,"severity":"medium","line_start":264},{"id":"external_commands:SKILL.md:268:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":274,"severity":"medium","line_start":268},{"id":"external_commands:SKILL.md:274:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":278,"severity":"medium","line_start":274},{"id":"external_commands:SKILL.md:278:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":280,"severity":"medium","line_start":278},{"id":"external_commands:SKILL.md:280:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":288,"severity":"medium","line_start":280},{"id":"external_commands:SKILL.md:288:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":294,"severity":"medium","line_start":288},{"id":"external_commands:SKILL.md:294:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":298,"severity":"medium","line_start":294},{"id":"external_commands:SKILL.md:298:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":317,"severity":"medium","line_start":298},{"id":"external_commands:SKILL.md:317:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":325,"severity":"medium","line_start":317},{"id":"external_commands:SKILL.md:325:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Use Specific Version/Tag**: Pin version with `#v1.0.0` format","category":"external_commands","line_end":334,"severity":"medium","line_start":325},{"id":"external_commands:SKILL.md:334:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Depend on Latest Commit**: Use tags instead of `#main` in production","category":"external_commands","line_end":377,"severity":"medium","line_start":334},{"id":"external_commands:SKILL.md:377:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`#npm` `#git` `#github` `#install` `#package-management` `#node`","category":"external_commands","line_end":377,"severity":"medium","line_start":377},{"id":"external_commands:SKILL.md:196:shell-command-substitution","file":"SKILL.md","pattern":"Shell command substitution","snippet":"sudo chown -R $(whoami) /usr/local/lib/node_modules","category":"external_commands","line_end":196,"severity":"medium","line_start":196},{"id":"external_commands:SKILL.md:194:template-literal-with-command-substitution","file":"SKILL.md","pattern":"Template literal with command substitution","snippet":"```bash","category":"external_commands","line_end":203,"severity":"medium","line_start":194},{"id":"external_commands:SKILL.md:196:sudo-privilege-escalation","file":"SKILL.md","pattern":"sudo privilege escalation","snippet":"sudo chown -R $(whoami) /usr/local/lib/node_modules","category":"external_commands","line_end":196,"severity":"high","line_start":196},{"id":"external_commands:SKILL.md:212:sudo-privilege-escalation","file":"SKILL.md","pattern":"sudo privilege escalation","snippet":"sudo apt-get install git","category":"external_commands","line_end":212,"severity":"high","line_start":212},{"id":"network:SKILL.md:29:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://github.com/<owner>/<repo>.git#<branch|tag|commit>","category":"network","line_end":29,"severity":"low","line_start":29},{"id":"network:SKILL.md:36:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install -g git+https://github.com/JEO-tech-ai/supercode.git#main","category":"network","line_end":36,"severity":"low","line_start":36},{"id":"network:SKILL.md:39:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://github.com/owner/repo.git#v1.0.0","category":"network","line_end":39,"severity":"low","line_start":39},{"id":"network:SKILL.md:42:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://github.com/owner/repo.git#abc1234","category":"network","line_end":42,"severity":"low","line_start":42},{"id":"network:SKILL.md:45:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://github.com/owner/repo.git","category":"network","line_end":45,"severity":"low","line_start":45},{"id":"network:SKILL.md:57:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install -g git+https://github.com/JEO-tech-ai/supercode.git#main --verbose","category":"network","line_end":57,"severity":"low","line_start":57},{"id":"network:SKILL.md:84:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"git clone https://github.com/owner/repo.git /tmp/npm-xxx","category":"network","line_end":84,"severity":"low","line_start":84},{"id":"network:SKILL.md:129:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"\"supercode\": \"git+https://github.com/JEO-tech-ai/supercode.git#main\",","category":"network","line_end":129,"severity":"low","line_start":129},{"id":"network:SKILL.md:174:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://<token>@github.com/owner/private-repo.git","category":"network","line_end":174,"severity":"low","line_start":174},{"id":"network:SKILL.md:178:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://${GITHUB_TOKEN}@github.com/owner/private-repo.git","category":"network","line_end":178,"severity":"low","line_start":178},{"id":"network:SKILL.md:215:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"# https://git-scm.com/download/win","category":"network","line_end":215,"severity":"low","line_start":215},{"id":"network:SKILL.md:237:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install git+https://... --verbose 2>&1 | tee npm-install.log","category":"network","line_end":237,"severity":"low","line_start":237},{"id":"network:SKILL.md:248:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install -g git+https://...","category":"network","line_end":248,"severity":"low","line_start":248},{"id":"network:SKILL.md:260:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install -g git+https://github.com/owner/repo.git#main","category":"network","line_end":260,"severity":"low","line_start":260},{"id":"network:SKILL.md:273:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"git ls-remote https://github.com/owner/repo.git HEAD","category":"network","line_end":273,"severity":"low","line_start":273},{"id":"network:SKILL.md:290:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"npm install -g git+https://github.com/JEO-tech-ai/supercode.git#main","category":"network","line_end":290,"severity":"low","line_start":290},{"id":"network:SKILL.md:358:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [npm-install Official Documentation](https://docs.npmjs.com/cli/v9/commands/npm-install/)","category":"network","line_end":358,"severity":"low","line_start":358},{"id":"network:SKILL.md:359:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [How To Install NPM Packages Directly From GitHub](https://www.warp.dev/terminus/npm-install-from-","category":"network","line_end":359,"severity":"low","line_start":359},{"id":"network:SKILL.md:360:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [npm install from GitHub - Stack Overflow](https://stackoverflow.com/questions/17509669/how-to-ins","category":"network","line_end":360,"severity":"low","line_start":360},{"id":"network:SKILL.md:361:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Working with the npm registry - GitHub Docs](https://docs.github.com/packages/working-with-a-gith","category":"network","line_end":361,"severity":"low","line_start":361},{"id":"network:SKILL.md:51:ssh-protocol-url","file":"SKILL.md","pattern":"SSH protocol URL","snippet":"npm install -g git+ssh://git@github.com:JEO-tech-ai/supercode.git#main","category":"network","line_end":51,"severity":"medium","line_start":51},{"id":"network:SKILL.md:130:ssh-protocol-url","file":"SKILL.md","pattern":"SSH protocol URL","snippet":"\"my-package\": \"git+ssh://git@github.com:owner/repo.git#v1.0.0\",","category":"network","line_end":130,"severity":"medium","line_start":130},{"id":"network:SKILL.md:164:ssh-protocol-url","file":"SKILL.md","pattern":"SSH protocol URL","snippet":"npm install git+ssh://git@github.com:owner/private-repo.git","category":"network","line_end":164,"severity":"medium","line_start":164},{"id":"filesystem:SKILL.md:90:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"ln -s ../lib/node_modules/repo/bin/cli.js /usr/local/bin/repo","category":"filesystem","line_end":90,"severity":"high","line_start":90},{"id":"filesystem:SKILL.md:373:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [environment-setup](../environment-setup/SKILL.md)","category":"filesystem","line_end":373,"severity":"high","line_start":373},{"id":"filesystem:SKILL.md:374:path-traversal-sequence","file":"SKILL.md","pattern":"Path traversal sequence","snippet":"- [git-workflow](../git-workflow/SKILL.md)","category":"filesystem","line_end":374,"severity":"high","line_start":374},{"id":"filesystem:SKILL.md:118:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"| nvm (macOS) | `~/.nvm/versions/node/vX.X.X/lib/node_modules/` | `~/.nvm/versions/node/vX.X.X/bin/`","category":"filesystem","line_end":118,"severity":"high","line_start":118},{"id":"filesystem:SKILL.md:160:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"cat ~/.ssh/id_ed25519.pub","category":"filesystem","line_end":160,"severity":"high","line_start":160},{"id":"filesystem:SKILL.md:184:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"# ~/.npmrc","category":"filesystem","line_end":184,"severity":"high","line_start":184},{"id":"filesystem:SKILL.md:199:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"mkdir ~/.npm-global","category":"filesystem","line_end":199,"severity":"high","line_start":199},{"id":"filesystem:SKILL.md:200:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"npm config set prefix '~/.npm-global'","category":"filesystem","line_end":200,"severity":"high","line_start":200},{"id":"filesystem:SKILL.md:201:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc","category":"filesystem","line_end":201,"severity":"high","line_start":201},{"id":"filesystem:SKILL.md:202:hidden-file-in-home-directory","file":"SKILL.md","pattern":"Hidden file in home directory","snippet":"source ~/.bashrc","category":"filesystem","line_end":202,"severity":"high","line_start":202},{"id":"filesystem:SKILL.md:118:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"| nvm (macOS) | `~/.nvm/versions/node/vX.X.X/lib/node_modules/` | `~/.nvm/versions/node/vX.X.X/bin/`","category":"filesystem","line_end":118,"severity":"medium","line_start":118},{"id":"filesystem:SKILL.md:160:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"cat ~/.ssh/id_ed25519.pub","category":"filesystem","line_end":160,"severity":"medium","line_start":160},{"id":"filesystem:SKILL.md:184:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"# ~/.npmrc","category":"filesystem","line_end":184,"severity":"medium","line_start":184},{"id":"filesystem:SKILL.md:199:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"mkdir ~/.npm-global","category":"filesystem","line_end":199,"severity":"medium","line_start":199},{"id":"filesystem:SKILL.md:200:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"npm config set prefix '~/.npm-global'","category":"filesystem","line_end":200,"severity":"medium","line_start":200},{"id":"filesystem:SKILL.md:201:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc","category":"filesystem","line_end":201,"severity":"medium","line_start":201},{"id":"filesystem:SKILL.md:202:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"source ~/.bashrc","category":"filesystem","line_end":202,"severity":"medium","line_start":202},{"id":"filesystem:SKILL.md:84:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"git clone https://github.com/owner/repo.git /tmp/npm-xxx","category":"filesystem","line_end":84,"severity":"medium","line_start":84},{"id":"filesystem:SKILL.md:85:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"cd /tmp/npm-xxx","category":"filesystem","line_end":85,"severity":"medium","line_start":85},{"id":"filesystem:SKILL.md:90:symlink-creation","file":"SKILL.md","pattern":"Symlink creation","snippet":"ln -s ../lib/node_modules/repo/bin/cli.js /usr/local/bin/repo","category":"filesystem","line_end":90,"severity":"high","line_start":90},{"id":"env_access:SKILL.md:177:git-platform-tokens","file":"SKILL.md","pattern":"Git platform tokens","snippet":"export GITHUB_TOKEN=ghp_xxxxxxxxxxxx","category":"env_access","line_end":177,"severity":"high","line_start":177},{"id":"env_access:SKILL.md:178:git-platform-tokens","file":"SKILL.md","pattern":"Git platform tokens","snippet":"npm install git+https://${GITHUB_TOKEN}@github.com/owner/private-repo.git","category":"env_access","line_end":178,"severity":"high","line_start":178},{"id":"env_access:SKILL.md:185:git-platform-tokens","file":"SKILL.md","pattern":"Git platform tokens","snippet":"//github.com/:_authToken=${GITHUB_TOKEN}","category":"env_access","line_end":185,"severity":"high","line_start":185},{"id":"sensitive:SKILL.md:160:ssh-directory-access","file":"SKILL.md","pattern":"SSH directory access","snippet":"cat ~/.ssh/id_ed25519.pub","category":"sensitive","line_end":160,"severity":"critical","line_start":160},{"id":"sensitive:SKILL.md:160:ssh-private-key-file","file":"SKILL.md","pattern":"SSH private key file","snippet":"cat ~/.ssh/id_ed25519.pub","category":"sensitive","line_end":160,"severity":"critical","line_start":160},{"id":"sensitive:SKILL.md:181:npm-config-file-may-contain-tokens","file":"SKILL.md","pattern":"NPM config file (may contain tokens)","snippet":"### .npmrc Configuration","category":"sensitive","line_end":181,"severity":"high","line_start":181},{"id":"sensitive:SKILL.md:184:npm-config-file-may-contain-tokens","file":"SKILL.md","pattern":"NPM config file (may contain tokens)","snippet":"# ~/.npmrc","category":"sensitive","line_end":184,"severity":"high","line_start":184},{"id":"blocker:SKILL.md:196:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"sudo chown -R $(whoami) /usr/local/lib/node_modules","category":"blocker","line_end":196,"severity":"low","line_start":196}],"finding_verdicts":[{"id":"external_commands:SKILL.md:28:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:52:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:56:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:91:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:165:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:194:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:203:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:207:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:216:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:220:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:228:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:232:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:238:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:242:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:249:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:257:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:264:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:268:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:274:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:278:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:280:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:288:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:294:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:298:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:317:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:325:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:334:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:377:ruby-shell-backtick-execution","reason":"The snippet is Markdown code fencing or inline code in SKILL.md, not Ruby backtick execution. It does not execute by itself.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:196:shell-command-substitution","reason":"The example uses $(whoami) inside a sudo chown command, so a shell expansion is performed before changing ownership. It is troubleshooting guidance, but it is still security-sensitive command execution.","verdict":"confirmed","severity":"medium","confidence":0.88},{"id":"external_commands:SKILL.md:194:template-literal-with-command-substitution","reason":"The snippet is the opening Markdown fence for a shell example, not a JavaScript template literal. The command substitution appears on a later command and is adjudicated separately.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:SKILL.md:196:sudo-privilege-escalation","reason":"The command uses sudo to recursively change ownership under /usr/local/lib/node_modules. If followed without review, it changes system-owned package files and can weaken local integrity.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"external_commands:SKILL.md:212:sudo-privilege-escalation","reason":"The command installs system packages with sudo apt-get. This is a common setup step, but it grants elevated privileges and should require explicit user confirmation.","verdict":"confirmed","severity":"high","confidence":0.76},{"id":"network:SKILL.md:29:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:36:hardcoded-url","reason":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"network:SKILL.md:39:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:42:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:45:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:57:hardcoded-url","reason":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"network:SKILL.md:84:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:129:hardcoded-url","reason":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"network:SKILL.md:174:hardcoded-url","reason":"The install URL includes a GitHub token placeholder, which can leak through shell history, process listings, npm logs, or copied package metadata. The context is legitimate private repo access but the pattern is sensitive.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"network:SKILL.md:178:hardcoded-url","reason":"The install URL includes a GitHub token placeholder, which can leak through shell history, process listings, npm logs, or copied package metadata. The context is legitimate private repo access but the pattern is sensitive.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"network:SKILL.md:215:hardcoded-url","reason":"This is a documentation or download reference link, not an automated request or credential-bearing install command. The link itself does not create a security action.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:237:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:248:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:260:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:273:hardcoded-url","reason":"The line documents a GitHub network operation used by the skill. This is expected functionality, but it still requires external network access and trust in the referenced repository.","verdict":"confirmed","severity":"low","confidence":0.72},{"id":"network:SKILL.md:290:hardcoded-url","reason":"The skill gives a concrete GitHub repository install or dependency example that fetches code from a moving branch. npm Git installs can execute package lifecycle scripts, so repository trust matters.","verdict":"confirmed","severity":"medium","confidence":0.84},{"id":"network:SKILL.md:358:hardcoded-url","reason":"This is a documentation or download reference link, not an automated request or credential-bearing install command. The link itself does not create a security action.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:359:hardcoded-url","reason":"This is a documentation or download reference link, not an automated request or credential-bearing install command. The link itself does not create a security action.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:360:hardcoded-url","reason":"This is a documentation or download reference link, not an automated request or credential-bearing install command. The link itself does not create a security action.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:361:hardcoded-url","reason":"This is a documentation or download reference link, not an automated request or credential-bearing install command. The link itself does not create a security action.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:51:ssh-protocol-url","reason":"The SSH Git URL is a real authenticated network install path for private or protected repositories. It is expected for the skill, but it depends on local SSH credentials and repository trust.","verdict":"confirmed","severity":"medium","confidence":0.78},{"id":"network:SKILL.md:130:ssh-protocol-url","reason":"The SSH Git URL is a real authenticated network install path for private or protected repositories. It is expected for the skill, but it depends on local SSH credentials and repository trust.","verdict":"confirmed","severity":"medium","confidence":0.78},{"id":"network:SKILL.md:164:ssh-protocol-url","reason":"The SSH Git URL is a real authenticated network install path for private or protected repositories. It is expected for the skill, but it depends on local SSH credentials and repository trust.","verdict":"confirmed","severity":"medium","confidence":0.78},{"id":"filesystem:SKILL.md:90:path-traversal-sequence","reason":"The ../ sequence is a fixed relative symlink target in an illustrative npm internal-flow example, not user-controlled path traversal. The symlink operation itself is adjudicated separately.","verdict":"false_positive","confidence":0.87},{"id":"filesystem:SKILL.md:373:path-traversal-sequence","reason":"The ../ sequence appears in Markdown links to related skill documents. It is not filesystem traversal performed by the skill.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:SKILL.md:374:path-traversal-sequence","reason":"The ../ sequence appears in Markdown links to related skill documents. It is not filesystem traversal performed by the skill.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:SKILL.md:118:hidden-file-in-home-directory","reason":"The line only lists nvm installation paths in a platform table. It does not read, write, or expose hidden files.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:SKILL.md:160:hidden-file-in-home-directory","reason":"The command reads an SSH public key ending in .pub for manual GitHub registration, not a private key. This is sensitive-adjacent but not hidden secret extraction.","verdict":"false_positive","confidence":0.82},{"id":"filesystem:SKILL.md:184:hidden-file-in-home-directory","reason":"The skill directs configuration in ~/.npmrc, a hidden file that commonly stores package registry credentials. Mishandling this file can expose tokens.","verdict":"confirmed","severity":"high","confidence":0.89},{"id":"filesystem:SKILL.md:199:hidden-file-in-home-directory","reason":"The hidden path is a user-level npm prefix directory used to avoid sudo. It is not a credential file or suspicious hidden-file access.","verdict":"false_positive","confidence":0.86},{"id":"filesystem:SKILL.md:200:hidden-file-in-home-directory","reason":"The hidden path is a user-level npm prefix directory used to avoid sudo. It is not a credential file or suspicious hidden-file access.","verdict":"false_positive","confidence":0.86},{"id":"filesystem:SKILL.md:201:hidden-file-in-home-directory","reason":"The guidance modifies or sources ~/.bashrc, a persistent shell startup file. Changing startup files can affect future shell behavior and should be reviewed.","verdict":"confirmed","severity":"high","confidence":0.82},{"id":"filesystem:SKILL.md:202:hidden-file-in-home-directory","reason":"The guidance modifies or sources ~/.bashrc, a persistent shell startup file. Changing startup files can affect future shell behavior and should be reviewed.","verdict":"confirmed","severity":"high","confidence":0.82},{"id":"filesystem:SKILL.md:118:hidden-file-access","reason":"The line is a static table entry describing nvm paths. No hidden file is accessed or modified.","verdict":"false_positive","confidence":0.94},{"id":"filesystem:SKILL.md:160:hidden-file-access","reason":"The command targets an SSH public key with a .pub suffix, which is intended to be shared for key registration. I did not find evidence of private key access on this line.","verdict":"false_positive","confidence":0.82},{"id":"filesystem:SKILL.md:184:hidden-file-access","reason":"The .npmrc path is security-sensitive because it may contain registry or GitHub tokens. The nearby example configures token-based authentication.","verdict":"confirmed","severity":"high","confidence":0.89},{"id":"filesystem:SKILL.md:199:hidden-file-access","reason":"The hidden path is only a user npm installation prefix, not a secret file. The context is avoiding privileged global npm writes.","verdict":"false_positive","confidence":0.86},{"id":"filesystem:SKILL.md:200:hidden-file-access","reason":"The hidden path is only a user npm installation prefix, not a secret file. The context is avoiding privileged global npm writes.","verdict":"false_positive","confidence":0.86},{"id":"filesystem:SKILL.md:201:hidden-file-access","reason":"The example writes to or sources ~/.bashrc, which changes user shell startup behavior. It is a common setup step but still needs user review.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"filesystem:SKILL.md:202:hidden-file-access","reason":"The example writes to or sources ~/.bashrc, which changes user shell startup behavior. It is a common setup step but still needs user review.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"filesystem:SKILL.md:84:temp-directory-access","reason":"The /tmp path appears in a section explaining npm internal behavior, not a script that creates or trusts temporary files. I did not find a temp-file attack flow.","verdict":"false_positive","confidence":0.88},{"id":"filesystem:SKILL.md:85:temp-directory-access","reason":"The /tmp path appears in a section explaining npm internal behavior, not a script that creates or trusts temporary files. I did not find a temp-file attack flow.","verdict":"false_positive","confidence":0.88},{"id":"filesystem:SKILL.md:90:symlink-creation","reason":"The example creates a symlink into /usr/local/bin, which can affect global command resolution. Although illustrative, this is a security-sensitive filesystem operation.","verdict":"confirmed","severity":"high","confidence":0.78},{"id":"env_access:SKILL.md:177:git-platform-tokens","reason":"The line handles GITHUB_TOKEN or passes it into npm/GitHub authentication. These values are secrets and can leak through logs, shell history, or configuration files if mishandled.","verdict":"confirmed","severity":"high","confidence":0.92},{"id":"env_access:SKILL.md:178:git-platform-tokens","reason":"The line handles GITHUB_TOKEN or passes it into npm/GitHub authentication. These values are secrets and can leak through logs, shell history, or configuration files if mishandled.","verdict":"confirmed","severity":"high","confidence":0.92},{"id":"env_access:SKILL.md:185:git-platform-tokens","reason":"The line handles GITHUB_TOKEN or passes it into npm/GitHub authentication. These values are secrets and can leak through logs, shell history, or configuration files if mishandled.","verdict":"confirmed","severity":"high","confidence":0.92},{"id":"sensitive:SKILL.md:160:ssh-directory-access","reason":"The command reads ~/.ssh/id_ed25519.pub, a public key file used for account registration. I did not find evidence that the skill asks to read private SSH key material.","verdict":"false_positive","confidence":0.8},{"id":"sensitive:SKILL.md:160:ssh-private-key-file","reason":"The file name ends with .pub, so it is the public key, not the private key. The static private-key pattern overmatched the path.","verdict":"false_positive","confidence":0.97},{"id":"sensitive:SKILL.md:181:npm-config-file-may-contain-tokens","reason":"The skill includes .npmrc token configuration for GitHub access. .npmrc can contain package registry credentials, so this guidance is security-sensitive.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"sensitive:SKILL.md:184:npm-config-file-may-contain-tokens","reason":"The skill includes .npmrc token configuration for GitHub access. .npmrc can contain package registry credentials, so this guidance is security-sensitive.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"blocker:SKILL.md:196:system-reconnaissance","reason":"$(whoami) is used only to set ownership in a local permission-fix example. I did not find evidence of host reconnaissance or data exfiltration intent.","verdict":"false_positive","confidence":0.84}],"semantic_findings":[{"title":"Unreviewed GitHub Package Lifecycle Execution","severity":"high","locations":[{"file":"SKILL.md","line_end":36,"line_start":36},{"file":"SKILL.md","line_end":77,"line_start":73}],"confidence":0.88,"description":"The skill teaches npm installs from GitHub and explains that npm runs prepare scripts and registers global binaries. Installing unreviewed Git repositories can execute package code during installation.","confidence_reasoning":"The document explicitly combines GitHub install commands with npm prepare-script and global binary behavior. This is a clear supply-chain execution risk even though it is presented as legitimate package management guidance."},{"title":"Plaintext Git Credential Storage Guidance","severity":"high","locations":[{"file":"SKILL.md","line_end":225,"line_start":224}],"confidence":0.95,"description":"The troubleshooting section recommends git credential.helper store for cached credentials. That helper can save credentials unencrypted on disk, creating a credential exposure risk.","confidence_reasoning":"The exact git credential.helper store command is present under credential caching. This is a known insecure storage option compared with OS keychain helpers."}],"subject_marketplace_commit_sha":"3e4b6c31a74a3bd1a291c98cf585d720cb9fbc88","subject_content_hash":"c76befc45af13e35e77269ef5188ab64cb223020e45ec77517f44cee586f9eb6","subject_tree_hash":"4c3cdf404a88482a652f113ae00e687ad8365c29e4dd5ef112c86338bb7199a5","subject_plugin_path":"skills/supercent-io/npm-git-install","audit_payload_hash":"0d7a3bccb27a0731c517188e2393fa9a","confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":"3e4b6c31a74a3bd1a291c98cf585d720cb9fbc88","contentHash":"c76befc45af13e35e77269ef5188ab64cb223020e45ec77517f44cee586f9eb6","treeHash":"4c3cdf404a88482a652f113ae00e687ad8365c29e4dd5ef112c86338bb7199a5","pluginPath":"skills/supercent-io/npm-git-install","auditPayloadHash":"0d7a3bccb27a0731c517188e2393fa9a"},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"high","confirmedFindingCount":4,"capabilityReviewCount":31,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":true}}