Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计异常

static-analysis静态分析

Agent Skill

static-analysis 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,175

周安装

48

GitHub Stars

25

下载量

376
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:static-analysis(静态分析)
来源仓库:https://github.com/oimiragieo/agent-studio
仓库路径:skills/static-analysis
安装命令:
npx skills add https://github.com/oimiragieo/agent-studio --skill static-analysis
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/oimiragieo/agent-studio --skill static-analysis

简介

static-analysis 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中快速定位候选结果。

  • 适用于代码质量检查、依赖扫描与潜在风险识别场景。
  • 通过 npx skills add 命令从 GitHub 仓库安装并使用。
  • 安装前需确认权限范围、维护状态及是否触发文件操作。
  • 建议结合原始 README 核验具体用法和功能边界。

SKILL.md

Static Analysis

Security Notice

AUTHORIZED USE ONLY: These skills are for DEFENSIVE security analysis and authorized research:

  • Authorized security assessments with written permission
  • Code review and quality assurance
  • CI/CD pipeline integration for automated security scanning
  • Compliance validation (SOC2, HIPAA, PCI-DSS)
  • Educational purposes in controlled environments

NEVER use for:

  • Scanning systems without authorization
  • Exploiting discovered vulnerabilities without disclosure
  • Circumventing security controls
  • Any illegal activities

Step 1: Environment Assessment

Before running any analysis, assess the target:

# Identify languages in the project
find . -type f -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.java" -o -name "*.go" -o -name "*.c" -o -name "*.cpp" -o -name "*.cs" -o -name "*.rb" | head -20

# Check for existing CodeQL database
ls -la .codeql/ 2>/dev/null || echo "No CodeQL database found"

# Check for existing Semgrep config
ls -la .semgrep.yml .semgrep/ 2>/dev/null || echo "No Semgrep config found"

# Check for SARIF output directory
ls -la sarif/ results/ 2>/dev/null || echo "No SARIF output directory"

Step 2: CodeQL Analysis

Database Creation

# Create CodeQL database for JavaScript/TypeScript
codeql database create codeql-db --language=javascript --source-root=.

# Create CodeQL database for Python
codeql database create codeql-db --language=python --source-root=.

# Multi-language database
codeql database create codeql-db --language=javascript,python --source-root=.

Running Queries

# Run standard security queries
codeql database analyze codeql-db \
  --format=sarifv2.1.0 \
  --output=results.sarif \
  codeql/javascript-queries:Security

# Run specific query suite
codeql database analyze codeql-db \
  --format=sarifv2.1.0 \
  --output=results.sarif \
  codeql/javascript-queries:codeql-suites/javascript-security-and-quality.qls

# Run custom query
codeql database analyze codeql-db \
  --format=sarifv2.1.0 \
  --output=results.sarif \
  ./custom-queries/

Key CodeQL Query Packs

LanguageSecurity PackQuality Pack
JavaScriptcodeql/javascript-queries:Securitycodeql/javascript-queries:Maintainability
Pythoncodeql/python-queries:Securitycodeql/python-queries:Maintainability
Javacodeql/java-queries:Securitycodeql/java-queries:Maintainability
Gocodeql/go-queries:Securitycodeql/go-queries:Maintainability
C/C++codeql/cpp-queries:Securitycodeql/cpp-queries:Maintainability

Step 3: Semgrep Analysis

Running Semgrep

# Run with default rules (auto-detect language)
semgrep scan --config=auto --sarif --output=semgrep-results.sarif

# Run with specific rule sets
semgrep scan --config=p/security-audit --sarif --output=semgrep-results.sarif

# Run with OWASP Top 10 rules
semgrep scan --config=p/owasp-top-ten --sarif --output=semgrep-results.sarif

# Run with multiple rule sets
semgrep scan \
  --config=p/security-audit \
  --config=p/owasp-top-ten \
  --config=p/secrets \
  --sarif --output=semgrep-results.sarif

# Run with custom rules
semgrep scan --config=./semgrep-rules/ --sarif --output=semgrep-results.sarif

Key Semgrep Rule Sets

Rule SetPurpose
p/security-auditComprehensive security checks
p/owasp-top-tenOWASP Top 10 vulnerability checks
p/secretsHardcoded secrets detection
p/ciCI-optimized rule set
p/defaultGeneral-purpose rules
p/r2c-security-auditTrail of Bits security rules
p/javascriptJavaScript-specific rules
p/typescriptTypeScript-specific rules
p/pythonPython-specific rules
p/golangGo-specific rules

Step 4: SARIF Output Processing

SARIF Structure

{
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/main/sarif-2.1/schema/sarif-schema-2.1.0.json",
  "version": "2.1.0",
  "runs": [{
    "tool": {
      "driver": {
        "name": "CodeQL",
        "rules": [...]
      }
    },
    "results": [{
      "ruleId": "js/sql-injection",
      "level": "error",
      "message": {
        "text": "This query depends on a user-provided value."
      },
      "locations": [{
        "physicalLocation": {
          "artifactLocation": { "uri": "src/api/users.js" },
          "region": { "startLine": 42, "startColumn": 5 }
        }
      }]
    }]
  }]
}

Parsing SARIF Results

# Count findings by severity
jq '[.runs[].results[] | .level] | group_by(.) | map({level: .[0], count: length})' results.sarif

# List critical/error findings
jq '.runs[].results[] | select(.level == "error") | {rule: .ruleId, file: .locations[0].physicalLocation.artifactLocation.uri, line: .locations[0].physicalLocation.region.startLine, message: .message.text}' results.sarif

# Export findings to CSV
jq -r '.runs[].results[] | [.ruleId, .level, .locations[0].physicalLocation.artifactLocation.uri, .locations[0].physicalLocation.region.startLine, .message.text] | @csv' results.sarif > findings.csv

Step 5: Triage and Reporting

Severity Classification

SARIF LevelSeverityAction Required
errorCRITICAL/HIGHImmediate fix before merge
warningMEDIUMFix within sprint
noteLOWTrack and fix when convenient
noneINFORMATIONALReview and acknowledge

False Positive Assessment

For each finding, evaluate:

  1. Data flow: Does user-controlled data actually reach the sink?
  2. Sanitization: Is input validated/sanitized before use?
  3. Context: Is the vulnerable pattern in test code or production?
  4. Reachability: Can the vulnerable code path be triggered?
  5. Impact: What is the actual exploitability?

Report Template

## Static Analysis Report

**Date**: YYYY-MM-DD
**Tools**: CodeQL vX.X, Semgrep vX.X
**Scope**: [project/directory]

### Summary

| Severity | Count | Fixed | False Positive | Remaining |
| -------- | ----- | ----- | -------------- | --------- |
| CRITICAL | X     | X     | X              | X         |
| HIGH     | X     | X     | X              | X         |
| MEDIUM   | X     | X     | X              | X         |
| LOW      | X     | X     | X              | X         |

### Critical Findings

1. **[Rule ID]**: [Description]
   - File: [path:line]
   - Impact: [description]
   - Remediation: [code fix]

### Recommendations

- [Prioritized list of actions]

Step 6: CI/CD Integration

GitHub Actions Integration

name: Static Analysis
on: [push, pull_request]
jobs:
  codeql:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: github/codeql-action/init@v3
        with:
          languages: javascript
      - uses: github/codeql-action/analyze@v3
        with:
          output: sarif-results
          upload: true

  semgrep:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: returntocorp/semgrep-action@v1
        with:
          config: >-
            p/security-audit
            p/owasp-top-ten
          generateSarif: '1'
      - uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: semgrep.sarif

OWASP Mapping

OWASP CategoryCodeQL QueriesSemgrep Rules
A01: Broken Access ControlSecurity/CWE-284p/owasp-top-ten
A02: Cryptographic FailuresSecurity/CWE-327p/secrets
A03: InjectionSecurity/CWE-089, CWE-078p/security-audit
A07: Auth FailuresSecurity/CWE-287p/owasp-top-ten
A09: Logging FailuresSecurity/CWE-117p/security-audit
A10: SSRFSecurity/CWE-918p/owasp-top-ten

Related Skills

Agent Integration

  • security-architect (primary): Security assessments and threat modeling
  • code-reviewer (secondary): Automated code review augmentation
  • penetration-tester (secondary): Vulnerability verification
  • qa (secondary): Quality gate enforcement

Iron Laws

  1. NEVER deploy to production without running both Semgrep and CodeQL analysis
  2. ALWAYS create a fresh CodeQL database — stale databases miss recently added code
  3. NEVER suppress a finding without documenting the false positive rationale in a code comment
  4. ALWAYS block on CRITICAL/HIGH findings in CI/CD; never merge with unresolved critical issues
  5. NEVER run analysis on test/fixture directories — always exclude non-production code paths

Anti-Patterns

Anti-PatternWhy It FailsCorrect Approach
Using outdated CodeQL databaseAnalysis misses code added since last buildAlways create a fresh database before each analysis run
Using generic rule suitesGeneric rules miss language-specific security patternsUse language-specific security suites (e.g., codeql/javascript-queries:Security)
Suppressing findings without rationaleCreates silent security debt and audit gapsDocument false positive reason in code comment before suppressing
Scanning test/fixture codeFalse positives from intentionally vulnerable test codeExclude test/ and fixture/ directories from all scans
Not re-running after fixesRemediation not confirmed; same finding recursAlways re-run analysis after each fix to verify resolution

Memory Protocol (MANDATORY)

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md
  • Issue found -> .claude/context/memory/issues.md
  • Decision made -> .claude/context/memory/decisions.md
ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

Snyk + Semgrep MCP Integration

When Snyk MCP server is configured, call directly:

  • snyk_test_project — dependency vulnerability report with CVSS scores
  • snyk_code_test — SAST scan (OWASP Top 10 patterns)
  • snyk_iac_test — IaC security issues (Terraform, K8s, Helm)
  • snyk_monitor — enroll project for continuous monitoring

When semgrep/mcp server is configured:

  • semgrep_scan — run rule registry against codebase
  • semgrep_search — semantic code pattern search

Combined Security Pipeline

semgrep scan --config=auto --json > .claude/context/tmp/semgrep.json
snyk test --json > .claude/context/tmp/snyk.json

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.28%
按下载量换算140

Claude

30.76%
按下载量换算116

Cursor

17.9%
按下载量换算67

Gemini CLI

9.62%
按下载量换算36

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills