用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/kdeldycke/dotfiles --skill av-false-positive命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Refresh the current Claude Code session's title (shown in /resume picker and terminal tab). Trigger on "rename session", "refresh session title", "update tab title", "set session title to ...".
Monitor CI tests, lint, autofix, docs, and Nuitka binary-build workflows, diagnose failures, fix code, commit, and loop until all stable jobs pass. Ignores unstable failures.
Create or update a competitive benchmark page (docs/benchmark.md) comparing the current project against alternatives in the same space. Checks maintenance status, feature accuracy, new candidates, and badge health.
基于 SOC 职业分类
正在显示 SKILL.md
| name | av-false-positive |
| description | Scan a release on VirusTotal and generate false positive submission instructions for flagged AV vendors. |
| compatibility | Designed for Claude Code. Recommended model: Opus. |
| allowed-tools | Bash Read Write Grep Glob Agent |
| argument-hint | [version] |
!gh repo view --json nameWithOwner --jq '.nameWithOwner' 2>/dev/null
!gh release view --json tagName --jq '.tagName' 2>/dev/null
!grep -m1 'license' pyproject.toml 2>/dev/null
!grep -m1 'name' pyproject.toml 2>/dev/null
!grep -A1 '\[project.urls\]' pyproject.toml 2>/dev/null | head -5
Scan release binaries on VirusTotal and generate per-vendor false-positive submission files for any flagged artifacts.
If $ARGUMENTS is empty, use the latest release tag from the context above. Otherwise treat $ARGUMENTS as the version (accept both 6.2.1 and v6.2.1; normalize to bare version for filenames, v-prefixed for tags per CLAUDE.md § Version formatting).
Detect the repository from the context (nameWithOwner). Extract the project name, license, and homepage URL from pyproject.toml.
Start from the scan history when present: docs/assets/virustotal-scans.csv holds one at-release snapshot per binary (tag, filename, SHA-256, scan date, per-category verdict counts), written by the release pipeline's scan-virustotal job. It identifies the flagged binaries of the target release without any API call, and the catalog in docs/binaries.md shows the same data at a glance. Fall back to listing release assets when the history has no records for the version:
$ gh release view v{VERSION} --json assets --jq '.assets[].name'
The release pipeline already uploaded every release binary at publication time, so a fresh upload is rarely needed. Per-engine detection details (which neither the CLI nor the scan history expose) always require querying the VT API directly via Python with the vt library. For a re-upload, use the scan-virustotal CLI command: it requires --tag and --binaries-dir, and --poll --records docs/assets/virustotal-scans.csv appends the fresh snapshot to the scan history (same-day re-scans replace their record; later dates accumulate, and the catalog keeps showing the earliest, at-release snapshot).
The VT API key comes from: $VIRUSTOTAL_API_KEY env var, or ask the user.
For each binary artifact (.bin, .exe):
gh release download.GET /api/v3/files/{sha256} to see if VT already has results.POST /api/v3/files.GET /api/v3/analyses/{id} until status == "completed".For each artifact, record:
https://www.virustotal.com/gui/file/{sha256}Also record the VT report URLs for the clean .whl and .tar.gz source distributions (used as evidence in every submission).
Print a markdown table:
| Artifact | Detections | VT report | Verdict |
|---|---|---|---|
filename | N/M | [link] | Clean / FP (engines) |
For each vendor in § Vendor definitions, check if any artifacts were flagged by that vendor's engine(s). If so, generate fp-submission-{vendor}.md at the project root.
Only generate a file for a vendor if at least one artifact was flagged by that vendor.
Each submission file must be optimized for copy-paste. The maintainer should be able to work through each submission without scrolling back or cross-referencing. Concretely:
## Submission N section with --- separators.All submission text blocks must derive project details from pyproject.toml and git metadata:
[project] name.[project] license.[project.urls].git config user.name or [project] authors.User-facing documentation of vendor portals, submission priority, and common issues is in docs/security.md § AV false-positive submissions.
Microsoft)## Submission N section per flagged binary.category == "malicious". Windows ARM64 binaries are typically not flagged by Microsoft (only by MaxSecure), so check before including.Wacatac variants): include them if detected.| Field | Value |
|---|---|
| Microsoft security product used to scan the file | Microsoft Defender Antivirus (Windows 10) or (Windows 11) |
| Company Name | Maintainer name from project metadata |
| Do you have a Microsoft support case number? | No |
| Select the file | Upload the exact filename |
| Should this file be removed from our database at a certain date? | No |
| What do you believe this file is? | Incorrectly detected as malware/malicious |
| Detection name | Exact detection name for this binary |
| Definition version | (leave blank) |
| Additional information | Paste the text below |
.whl and .tar.gz VT links, GitHub release link, project URL, PyPI URL, license, previous FP reference if found.microsoft.com and wdsiprod.westus.cloudapp.azure.com, sign back in, submit immediately. Also check the URL doesn't have a duplicated ?persona=SoftwareDeveloper&persona=SoftwareDeveloper parameter.BitDefender, ALYac, Arcabit, Emsisoft, GData, MicroWorld-eScan, VIPRE)BitDefender engine itself (not downstream).| Field | Value |
|---|---|
| Select the category | False Positive |
| Full Name | Maintainer name from project metadata |
| (user's email) | |
| Sample type | File |
| Attach a file | Upload the exact filename |
| Detection name | Exact detection name |
| Description | Paste the pre-written text |
| Sensitive files / Screenshot | Screenshot of the VT report page showing the BitDefender detection |
## Submission N section per binary.ESET-NOD32)samples@eset.cominfected).False positive: {detection_name} in {Project Name} {VERSION}Symantec).exe or .bin file uploads. The file upload field only accepts images, logs, and text files (for supporting evidence). Use hash submission instead.Binary 1:, Binary 2:) so the text remains readable even when flattened.Product Details:
| Field | Value |
|---|---|
| Which product were you using? | Symantec Endpoint Protection 16.x (avoid "Don't know": it maps to UNKNOWN in their tracking system) |
| When did the detection occur? | When downloading or uploading a file |
| Which type of detection? | Download/File Insight (Reputation Based Detection) (best match for ML.Attribute.* detections; avoid "Don't know") |
| Detection Name | Exact detection name |
Submission Details:
| Field | Value |
|---|---|
| Submission Type | Provide an MD5 or SHA-256 hash of a file |
| File Hash | SHA256 of first binary |
Additional Information (expand the collapsed section):
| Field | Value |
|---|---|
| Recurring False Positive? | Yes |
| Business Impact? | Medium |
| Application Type? | Third Party Application |
Then paste the description text listing all binaries with SHA256, VT links, clean source VT links, and GitHub release link.
Your Details:
| Field | Value |
|---|---|
| Contact Name | Maintainer name from project metadata |
| Email Address | (user's email) |
| Site ID Number | (leave blank) |
Avast, AVG)## Submission N section per binary with all details inline.Sophos)| Field | Value |
|---|---|
| First Name | Maintainer first name |
| Last Name | Maintainer last name |
| Country | (user's country) |
| Email Address | (user's email) |
| About You | Using a free product |
| Operating System | Windows |
| Why do you want to send this sample? | Paste the pre-written text |
| File | Upload the exact filename |
## Submission N section per binary.Every binary entry in every submission file must include:
https://www.virustotal.com/gui/file/{sha256}).whl and .tar.gz (as comparison evidence)https://github.com/{owner/repo}/releases/tag/v{VERSION})https://github.com/{owner/repo}/releases/download/v{VERSION}/{filename})Pre-written text blocks must mention: Nuitka --onefile compilation, open-source project, GitHub and PyPI URLs, license from pyproject.toml, and the previous FP issue reference if one was found in the repo's GitHub issues.
Sabsik, Wacatac) are the most impactful to fix.Download all artifacts that appear in any submission file to $TMPDIR using gh release download with --pattern flags. These are needed for manual upload to vendor portals.
Print a summary of what was generated:
fp-submission-*.md files were created (and which vendors were skipped because they had no detections)Suggest a follow-up for after the vendors process the reports: re-running scan-virustotal --tag v{VERSION} --binaries-dir {dir} --poll --records docs/assets/virustotal-scans.csv appends the post-submission snapshot to the scan history, keeping the delisting trajectory on record without altering the at-release numbers shown in docs/binaries.md.