Skip to content
Skills Library
Security · Review & audit

python-packaging-security-audit

/python-packaging-security-audit

Use this skill to evaluate the security of a Python package repository by orchestrating static analysis, binary scanning, and git history inspection sub-skills in parallel, then combining their results into a unified security report with a risk rating.

Repository
ai-helpers ↗
Licence
Apache-2.0
Last repository change
22.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 22.10.2026, without references to retired models or APIs.

Licence

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

What it does and when to use it

Use this skill to evaluate the security of a Python package repository by orchestrating static analysis, binary scanning, and git history inspection sub-skills in parallel, then combining their results into a unified security report with a risk rating.

Original author description

Use this skill to evaluate the security of a Python package repository by orchestrating static analysis, binary scanning, and git history inspection sub-skills in parallel, then combining their results into a unified security report with a risk rating.

How it works

  1. Inputs
  2. Step 1: Resolve Repository
  3. Step 2: Dispatch Parallel Audits
  4. Step 3: Combine Results
  5. Step 4: Cleanup
  6. Output Format
  7. Error Handling
Original SKILL.md headings · 168 lines, 844 words
SKILL.md preview
---
name: python-packaging-security-audit
description: Use this skill to evaluate the security of a Python package repository by orchestrating static analysis, binary scanning, and git history inspection sub-skills in parallel, then combining their results into a unified security report with a risk rating.
allowed-tools: Bash Read Grep Skill
---

# Python Packaging Security Audit

Orchestrates a comprehensive pre-onboarding security evaluation of Python
packages by dispatching three specialized sub-skills as parallel background
agents. Each agent writes its report section to an individual file; the
orchestrator reads all files and assembles the unified report.

## Inputs

- **repo_path** (optional): Local filesystem path to an already-cloned repository
- **package_name** (optional): Python package name — the skill will locate and clone the repository
- **hexora_results** (optional): File path to pre-computed hexora JSON output
  (`hexora-results.json`). Forwarded to the `python-packaging-static-audit`
  sub-skill.
- **binary_scan** (optional): File path to pre-computed binary scanner JSON output
  (`binary-scan.json`). Forwarded to the `python-packaging-binary-audit` sub-skill.
- **malcontent_results** (optional): File path to pre-computed malcontent JSON
  output (`malcontent-results.json`). Forwarded to the
  `python-packaging-binary-audit` sub-skill.

At least one of `repo_path` or `package_name` must be provided. If `repo_path`
is given and points to an existing directory, skip straight to Step 2. Otherwise,
use `package_name` to discover and clone the repository.

When pre-computed scan inputs are provided, `repo_path` is still needed for triage
context (reading source files to understand findings). Always use `--depth 50`
for cloning because the git-audit sub-skill runs its own git history commands
and needs sufficient commit history.

## Step 1: Resolve Repository

If you already have a local repository path, skip to Step 2.

Otherwise, use the python-packaging-source-finder skill to locate the upstream
repository URL:

```text
Skill: python-packaging-source-finder
Args: <package_name>
```

If the skill returns a URL with high or medium confidence, clone it locally with
enough history for the git scan:

```bash
CLONE_DIR=$(mktemp -d -t security-audit-XXXXXX)
git clone --depth 50 -- "<repository_url>" "$CLONE_DIR/repo"
```

Use `$CLONE_DIR/repo` as the repo path for Step 2.

If source-finder returns low confidence or no URL, stop and return a report with
risk rating `needs_review` stating that the source repository could not be
located.

## Step 2: Dispatch Parallel Audits

Create a working directory for the report files:

```bash
AUDIT_DIR=$(mktemp -d -t security-audit-results-XXXXXX)
```

Dispatch three background agents **in parallel**. Each agent invokes one sub-skill
and writes its findings to an individual file. The orchestrator does not need the
intermediate reasoning context — only the final report sections matter.

When pre-computed scan inputs are available, forward them to the corresponding
sub-skill so it skips tool execution and goes straight to triage.

**Agent 1 — Static Analysis:**

```text
Dispatch a background Agent that invokes the python-packaging-static-audit skill
with repo_path=<repo-path> and output_file=$AUDIT_DIR/static-audit.md.
If hexora_results is provided, also pass hexora_results=<path>.
Then exits.
```

**Agent 2 — Binary Scan:**

```text
Dispatch a background Agent that invokes the python-packaging-binary-audit skill
with repo_path=<repo-path> and output_file=$AUDIT_DIR/binary-audit.md.
If binary_scan is provided, also pass binary_scan=<path>.
If malcontent_results is provided, also pass malcontent_results=<path>.
Then exits.
```

**Agent 3 — Git History:**

```text
Dispatch a background Agent that invokes the python-packaging-git-audit skill
with repo_path=<repo-path> and output_file=$AUDIT_DIR/git-audit.md, then exits.
```

Wait for all three agents to complete before proceeding.

## Step 3: Combine Results

Read each output file. The first line of each file contains `RISK_RATING:<value>`.
Extract the risk rating and the markdown report section from each file.

If a file is missing or empty, treat that phase as `risk_rating = needs_review`
and state in the report section that the sub-skill did not produce output.

Assign the **overall risk rating** as the worst (most severe) rating across all
phases:

- **no_issues** — All sub-skills returned no_issues
- **low_risk** — Worst sub-skill rating is low_risk
- **needs_review** — At least one sub-skill returned needs_review
- **critical** — At least one sub-skill returned critical

Precedence: **critical > needs_review > low_risk > no_issues**

## Step 4: Cleanup

Clean up temporary directories:

```bash
rm -rf -- "${AUDIT_DIR}"

if [ -n "${CLONE_DIR}" ] && [[ "${CLONE_DIR}" == "${TMPDIR:-/tmp}"/* ]]; then
  rm -rf -- "${CLONE_DIR}"
else
  echo "ERROR: refusing to delete '${CLONE_DIR}' -- not under temp dir" >&2
fi
```

## Output Format

Produce the following markdown report. When there are no findings, collapse to just
the header, risk rating (`no_issues`), summary, and a statement that no issues were found.

```markdown
# Security Assessment: {package-name}

**Risk Rating:** {no_issues | low_risk | needs_review | critical}
**Summary:** {1-2 sentence summary}

{Hexora Static Analysis section from static-audit.md}

{Binary Scan section from binary-audit.md}

{Git History Analysis section from git-audit.md}

## Recommendations

- {Bulleted list of specific actions based on findings across all phases}
```

## Error Handling

**Never abort the audit because a single tool is missing.** Each sub-skill
handles missing tools (hexora, malcontent) by returning a degraded report
section with `risk_rating = needs_review` instead of failing. The orchestrator
must always dispatch all three agents and combine whatever results are available.

| Scenario | Behavior |
|----------|----------|
| Source-finder returns low confidence or no URL | Stop; report `needs_review` stating source repo could not be located |
| git clone fails | Stop; report `needs_review` stating repo could not be cloned |
| A sub-skill output file is missing or empty | Include a note in that section; treat that phase as `needs_review` |
| A sub-skill reports tool unavailable | Include its degraded output in the report; treat that phase as `needs_review` |
| All sub-skills return no_issues | Report overall `no_issues` |

Versions

The database has no other skills named python-packaging-security-audit.

Database snapshot: 13.11.2026 · package version 6939900ce2c2 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100security-audit
    Use when a Python package needs a security audit before RHAI pipeline onboarding. Triages pre-computed scan outputs and optional source URL, then writes a Markdown report and machine-readable risk verdict.
  • 98repo-security-scan
    Use when asked to audit a git repository for security issues, check for secrets or credentials in code, scan for dependency vulnerabilities, or review a repo's security posture. Use instead of writing ad-hoc scanning scripts. Covers Python, Node.js, Go, Rust, and shell projects.
  • 89code-security-audit
    Comprehensive code security audit toolkit combining OWASP Top 10 vulnerability scanning, dependency analysis, secret detection, SSL/TLS verification, AI Agent security checks, and automated security scoring. Use when auditing codebases, scanning for vulnerabilities, detecting…
  • 86skill-086
    Use when working with security scanning security hardening
  • 100static-analysis-sweep
    Use to run real static analysis over a diff or repo before shipping — Semgrep, CodeQL, secret scanning, dependency CVEs — and triage the findings into what must be fixed now versus noise. Trigger before a release or PR merge, during a security review, or when the user asks to…
  • 90trailofbits-security
    Security-focused static analysis and code auditing skills from Trail of Bits. Includes CodeQL deep analysis, Semgrep scanning, and SARIF result processing. Use when performing security audits, running static analysis, scanning for vulnerabilities, or processing scan results.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.