AGENT SKILL

frame-security-scan

Scan code (Python, JavaScript/TypeScript, Java, C#, C/C++) for security vulnerabilities with the open-source Frame CLI or its MCP server, triage the findings, generate and verify fixes, and re-scan. Use when the user asks to security-scan a repo or file, review taint or injection findings, or fix scan results.

License 许可
Apache-2.0
所属仓库
bg-szy/TOP-SKILLS
最近更新
2026-11-15
Stars
★ 6
Forks
0

01 前言 Front Matter

name
frame-security-scan
license
Apache-2.0
description
Scan code (Python, JavaScript/TypeScript, Java, C#, C/C++) for security vulnerabilities with the open-source Frame CLI or its MCP server, triage the findings, generate and verify fixes, and re-scan. Use when the user asks to security-scan a repo or file, review taint or injection findings, or fix scan results.

02 资源文件 1

03 SKILL.md 正文

Use this skill when the user wants a security scan of source code with Frame (github.com/lambdasec/frame), help reading the results, or fixes for the findings. Do not use it for general code review, dependency audits, or scanning code the user does not have the right to scan.

Frame is a command-line tool. The scan steps run locally in the user's shell; run them when the user asks and show the output. Ask first before any step that sends code to a network endpoint (the optional AI layer) or changes files (frame fix --in-place).

If the frame MCP server is connected (tools named scan, verify, fix, solve and so on), you can call those tools instead of the shell commands below. They take the same options and return the same JSON. The same rules apply: ask before ai=true, fix with in_place=true, or exploit.

1. Check that Frame is installed

Check whether Frame is already available:

frame --version
frame scan --help

If frame is not found, tell the user it is not installed. It is on PyPI as frame-security; the install command from the README is:

pip install "frame-security[scan]"

Show the user that command and let them run it, or run it only after they agree. Do not clone repositories or run anything from an unpinned source. Continue once Frame is installed.

2. Run a scan

frame scan app.py                          # one file
frame scan src/                            # a directory (every supported source file)
frame scan src/ -f json -o findings.json   # machine-readable, for later steps

Useful flags (confirmed in frame scan --help, Frame 1.0.0): --min-severity {critical,high,medium,low,info}, --fail-on {critical,high,medium,low,any,none} (default high, sets the exit code), -f {text,json,sarif}, -o FILE, --no-verify (faster, may add false positives), --timeout MS, -v, --changed [REF] (only files changed since REF), --baseline FILE and --write-baseline FILE (report only findings that are not in a saved baseline).

Languages: the symbolic frontends cover python, javascript, typescript, java, c, cpp and csharp; each file is analysed in the language its extension names, and -l narrows a directory scan. Other languages (for example php, ruby, go) get only the LLM detector under --ai, so say that if the user asks.

3. Optional AI layer

--ai adds LLM detection and LLM triage on top of the symbolic scan. --llm-detect and --llm-triage enable each half separately. It needs an OpenAI-compatible endpoint, set through environment variables from the README:

export FRAME_LLM_BASE_URL=http://localhost:8080/v1   # your endpoint
export FRAME_LLM_API_KEY=                            # empty for local servers
export FRAME_LLM_MODEL=<model name your endpoint serves>
export FRAME_LLM_REPO_ROOT=/path/to/repo             # lets it read other files in the repo
frame scan src/ --ai -f json -o findings.json

Before enabling it, tell the user that with a hosted endpoint, code snippets leave the machine, and get their agreement. A server running on their own machine keeps the code local. --model overrides FRAME_LLM_MODEL for one run.

4. Read the findings

Each finding has a type, severity, CWE ID (cwe_id), location (file, line, column), the function, the source variable, the sink type, and a confidence value. Report these as given. Do not invent severity or exploitability.

Separate the two tiers when you summarize:

  • Symbolic findings: the source is a real variable name from the code (for example u). The README says these are reported only when the taint flow is provably reachable.
  • LLM findings: the source is llm_detect or llm_verified (confirmed in the Frame source). llm_verified means the model's finding matched Frame's own sink model. llm_detect is a model opinion that has not been checked. Treat both as leads to read, not as proof.

5. Triage

Open each finding's location and read the code. Use references/triage-checklist.md. For every finding, tell the user one of: confirmed, likely false positive (with the reason, such as the value is validated or never reaches the sink), or needs the user's judgement. Never mark something safe only because the scanner's confidence is low.

6. Fix

frame fix src/ --guidance findings.json --diff

--guidance takes the findings JSON (a file path, or - for stdin). By default frame fix prints a unified diff and re-scans the patched code to check that the finding is gone; --no-verify turns that check off. Show the diff and read it yourself. Only add --in-place after the user agrees to have files changed, and make sure their work is committed or backed up first. frame fix needs the same FRAME_LLM_* endpoint.

7. Re-scan to confirm

frame scan src/ -f json -o findings-after.json

Compare with the earlier file. Report which findings are gone, which remain, and any new ones. frame verify findings.json -f json does this for you: it re-scans the files behind each earlier finding and marks it fixed, present, suppressed, uncertain or unverifiable. Run the project's tests if it has them, since a patch can close a finding and still break behavior.

Other ways to run Frame

Mention these only when they fit what the user is doing:

  • MCP server, so any MCP client can call Frame as tools: claude mcp add frame -- uvx frame-mcp (Claude Code), or uvx frame-mcp in other clients. Source: github.com/lambdasec/frame-mcp.
  • GitHub Action that uploads SARIF to code scanning: uses: lambdasec/frame-action@v1.
  • pre-commit hook: repo: https://github.com/lambdasec/frame, rev: v1.0.0, hook id: frame.

Benchmarks

Only cite numbers from the README, with their caveats. Example: on the Endor Labs corpus (193 vulnerabilities in 5 apps) the README gives Frame's full mode 0.67 recall at 0.51 precision, against 0.52 and 0.40 for Semgrep; the README also says that benchmark has caveats and the numbers use specific open models. Do not promise the user's code will get similar results.

Limits

Frame can miss vulnerabilities and can report false ones. A clean scan is not proof of safety. Say this in your summary.

04 同仓库更多 Skills

bg-szy
bg-szy/TOP-SKILLS

serpmaven

Scrape Google search results (SERP) to JSON with SERP Maven (serpmaven) - a real Chrome browser on a residential proxy with sticky sessions. Run it as a CLI, a Python library, a local HTTP search API (`serve`), an MCP server or a Docker image; set the proxy login, workers, pages and cost tracking. Use when the user wants Google results, rank tracking, a self-hosted SERP API, or live Google search for an AI agent.

★ 6
bg-szy
bg-szy/TOP-SKILLS

revnu-landing-page-audit

Find out why a landing page isn't turning visitors into signups, demos or sales. Audits one page against what the ad, post or search that sends people there promised, then checks the first screen, proof, call to action, friction and mobile. Returns at most 7 prioritized fixes, plus what is fine and what could not be checked; rewrites specific lines and fixes the page in the repo when asked. Never promises a conversion lift. Works without a Revnu account. Use when the user says or asks: "audit my landing page", "why isn't this page converting", "review my homepage", "my ads get clicks but no signups", "people bounce from the pricing page", "CRO review", "improve conversion rate", "is my hero section clear", "roast my landing page", "rewrite my headline", "what's wrong with this page", "landing page feedback", "make the signup page convert better". Not for SEO or AI-search audits, page speed engineering on its own, or building a new page from scratch.

★ 6
bg-szy
bg-szy/TOP-SKILLS

revnu-growth-context

Write down once who buys, what they're stuck on, what it costs, what proof you have and what you've already tried, so every growth task starts from facts instead of a questionnaire. Creates or updates .agents/revnu-growth.md from the repo, the live site and the user, and imports an existing product-marketing.md. Use when the user says "set up our marketing context", "who is our ideal customer", "write our ICP", "describe the product for marketing", "positioning doc", "what's our brand voice", "remember this about our customers", "log what we tried", "what have we learned from marketing", "we changed pricing, update the context", "update our growth notes", "summarize the business for the agent", "import my product-marketing.md", "start a growth doc", or before a first marketing, SEO, outreach or launch task when no context file exists. Works without a Revnu account.

★ 6
bg-szy
bg-szy/TOP-SKILLS

revnu-get-listed

Get onto the third-party pages AI answers and search cite when buyers ask for the best tool in your category: "best X" roundups, directories, review sites, GitHub awesome lists, community threads and comparison pages. Finds which ones are cited, ranks them by fit and effort, and drafts each submission, PR or pitch by the target's own rules. Use when the user says "get us listed", "which directories should we submit to", "how do we get into best-of lists", "why does ChatGPT recommend competitors and not us", "get mentioned in AI answers", "submit to awesome lists", "get on G2", "where are our competitors listed", "pitch listicle authors", "find backlink opportunities", "launch directories", "get into roundups", "Product Hunt alternatives", "where should we be listed", "get cited by Perplexity". Never submits, pays or posts without a yes. Works without a Revnu account.

★ 6
bg-szy
bg-szy/TOP-SKILLS

revnu-ai-readiness-audit

Audit whether your website gives ChatGPT, Perplexity, Claude, Gemini and Google's AI Overviews something worth quoting, and fix the pages that don't. Use when the user says or asks "is my site ready for AI search", "audit my site for AI answers", "AEO audit", "GEO audit", "why doesn't ChatGPT quote our pricing", "make our pages citable by AI", "do I need llms.txt", "does schema help with ChatGPT", "check our structured data", "is our content visible without JavaScript", "AI SEO audit", "optimize our homepage for AI answers", "LLM SEO check", "why does AI get our product wrong", "fix our site for AI Overviews". Checks fetchability and indexability, answers in the raw HTML, entity facts, schema (including JS-injected markup), headings, dates and llms.txt, then gives at most 10 prioritised fixes and edits the repo when asked. Works without a Revnu account.

★ 6
bg-szy
bg-szy/TOP-SKILLS

proxy-troubleshooting

Diagnose residential proxy failures, with NodeMaven's gateway as the reference - 407 with correct credentials, 406, 410, 500, a connection that hangs, ERR_TUNNEL_CONNECTION_FAILED in a browser, Playwright or Puppeteer ignoring proxy credentials, a sticky session that changes IP, geo-targeting that is silently ignored, passwords with special characters, and unexpected traffic from headless Chrome. Use when a proxy connection fails, returns the wrong location, or costs more traffic than expected.

★ 6