Skip to content

feat(skills): package 16 Trail of Bits skills#466

Merged
JAORMX merged 1 commit intomainfrom
skills/trailofbits
Apr 17, 2026
Merged

feat(skills): package 16 Trail of Bits skills#466
JAORMX merged 1 commit intomainfrom
skills/trailofbits

Conversation

@JAORMX
Copy link
Copy Markdown
Collaborator

@JAORMX JAORMX commented Apr 17, 2026

Summary

Packages 16 security-focused agent skills from trailofbits/skills (CC-BY-SA-4.0) into Dockyard. All skills pinned to upstream commit e8cc5ba (main as of 2026-04-17).

This is the first of a planned vendor-by-vendor sweep of publicly-available hardened agent skills. A parallel survey of Chainguard's recently-announced Agent Skills catalog turned up no open-source content — their catalog is beta-gated behind contact sales — so there's nothing to repackage from them.

Skills added

Security analysis

  • agentic-actions-auditor — audits GitHub Actions workflows for AI-agent security holes (prompt injection, env-var intermediary, wildcard allowlists)
  • codeql, semgrep, sarif-parsing — classic SAST tooling from the static-analysis plugin
  • semgrep-rule-creator, semgrep-rule-variant-creator — authoring and porting custom Semgrep rules

Supply chain and defensive review

  • supply-chain-risk-auditor — dependency takeover/exploitation risk
  • insecure-defaults — fail-open configurations and hardcoded secrets
  • sharp-edges — footgun APIs and dangerous defaults
  • fp-check — false-positive verification with gate reviews
  • differential-review — security-focused PR/commit review
  • variant-analysis — finding bug variants across a codebase

Cryptographic verification

  • constant-time-analysis — timing side-channels across 12 languages
  • zeroize-audit — compiler-eliminated zeroization in C/C++/Rust
  • property-based-testing — PBT guidance across multiple languages

Malware analysis

  • yara-rule-authoring — YARA-X detection rule authoring

Skills intentionally excluded

TOB internal / narrow-audience plugins (debug-buttercup, culture-index, claude-in-chrome-troubleshooting, let-fate-decide, skill-improver, workflow-skill-design, etc.), fuzzing toolkits from testing-handbook-skills (15 skills — candidates for a follow-up PR if there's interest), blockchain-specific scanners from building-secure-contracts (11 skills — same), and trailmark (10 skills, TOB-specific workflow).

Security allowlists

All 16 carry one allowlist entry for MANIFEST_MISSING_LICENSE (INFO) — upstream licenses at the repo root under CC-BY-SA-4.0 rather than in per-skill SKILL.md frontmatter. Four skills carry additional per-skill entries for scanner false positives documented inline:

  • sarif-parsing / semgrepALLOWED_TOOLS_*_VIOLATION (scanner doesn't account for Bash covering grep/write transitively)
  • semgrep-rule-creatorYARA_code_execution_generic matching documented eval() examples the skill teaches you to detect
  • zeroize-auditPATH_TRAVERSAL_OPEN, YARA_coercive_injection_generic, DATA_EXFIL_SENSITIVE_FILES matching the word "secret" in a skill that audits zeroization of secrets

Test plan

  • task validate-skill -- skills/<name> against all 16 (all VALID)
  • Cisco AI Defense skill-scanner 2.0.9 against all 16 sources — all pass after allowlist
  • CI: Build Skill Artifacts workflow succeeds on this PR
  • CI: skill-scan-report surfaces only allowlisted findings
  • Post-merge: 16 OCI artifacts published under ghcr.io/stacklok/dockyard/skills/<name>:0.1.0

🤖 Generated with Claude Code

Adds spec.yaml entries for the broadly-applicable security skills from
trailofbits/skills (CC-BY-SA-4.0), pinned to commit e8cc5ba. Each skill
passes skill-scanner against the per-skill allowlist; the most common
allowlist entry (MANIFEST_MISSING_LICENSE) covers upstream's practice
of licensing at the repo root rather than in per-skill frontmatter.

Skills:
  - agentic-actions-auditor, codeql, semgrep, sarif-parsing,
    semgrep-rule-creator, semgrep-rule-variant-creator
  - supply-chain-risk-auditor, insecure-defaults, sharp-edges,
    fp-check, differential-review, variant-analysis
  - constant-time-analysis, zeroize-audit, property-based-testing
  - yara-rule-authoring
@github-actions
Copy link
Copy Markdown

🛡️ Skill Security Scan Results

✅ agentic-actions-auditor

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ codeql

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ constant-time-analysis

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ differential-review

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ fp-check

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ insecure-defaults

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ property-based-testing

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ sarif-parsing

  • Status: Passed
  • Findings: 2
  • Allowed (not blocking): 2
    • ALLOWED_TOOLS_WRITE_VIOLATION (Allowed: SKILL.md declares Bash in allowed-tools, which transitively permits filesystem writes (e.g. via redirection); the scanner flags bundled scripts as writing without recognizing Bash as the intended mechanism.)
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ semgrep

  • Status: Passed
  • Findings: 2
  • Allowed (not blocking): 2
    • ALLOWED_TOOLS_GREP_VIOLATION (Allowed: SKILL.md declares Bash in allowed-tools, which transitively covers regex search via shell tooling; the scanner does not account for this capability.)
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ semgrep-rule-creator

  • Status: Passed
  • Findings: 5
  • Allowed (not blocking): 5
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)
    • YARA_code_execution_generic (Allowed: Matches eval() example snippets in SKILL.md that illustrate vulnerability patterns a custom Semgrep rule should detect; these are documentation of target code, not executable paths within the skill.)
    • YARA_code_execution_generic (Allowed: Matches eval() example snippets in SKILL.md that illustrate vulnerability patterns a custom Semgrep rule should detect; these are documentation of target code, not executable paths within the skill.)
    • YARA_code_execution_generic (Allowed: Matches eval() example snippets in SKILL.md that illustrate vulnerability patterns a custom Semgrep rule should detect; these are documentation of target code, not executable paths within the skill.)
    • YARA_code_execution_generic (Allowed: Matches eval() example snippets in SKILL.md that illustrate vulnerability patterns a custom Semgrep rule should detect; these are documentation of target code, not executable paths within the skill.)

✅ semgrep-rule-variant-creator

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ sharp-edges

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ supply-chain-risk-auditor

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ variant-analysis

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ yara-rule-authoring

  • Status: Passed
  • Findings: 1
  • Allowed (not blocking): 1
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)

✅ zeroize-audit

  • Status: Passed
  • Findings: 4
  • Allowed (not blocking): 4
    • MANIFEST_MISSING_LICENSE (Allowed: trailofbits/skills is licensed CC-BY-SA-4.0 at the repository root; upstream does not embed a license field in per-skill SKILL.md frontmatter.)
    • PATH_TRAVERSAL_OPEN (Allowed: tools/generate_poc.py writes generated PoC sources to an operator-supplied output directory with filenames derived from internal finding metadata; no externally controlled path input.)
    • YARA_coercive_injection_generic (Allowed: Matches the phrase 'secret argument' in tools/scripts/check_llvm_patterns.py where it labels compiler-detected patterns; the skill audits zeroization of secrets so references to the word 'secret' are expected.)
    • DATA_EXFIL_SENSITIVE_FILES (Allowed: tools/scripts/check_rust_asm.py reads a JSON config of Rust symbol names to audit; 'secrets_path' is the skill's internal config file path, not exfiltration of user secrets.)

Summary: Scanned 16 skill(s), all passed security checks. ✅

@JAORMX JAORMX merged commit fbf07bb into main Apr 17, 2026
53 checks passed
@JAORMX JAORMX deleted the skills/trailofbits branch April 17, 2026 09:56
This was referenced Apr 17, 2026
JAORMX added a commit that referenced this pull request Apr 20, 2026
Packages 18 agent skills from getsentry/skills (Apache-2.0) into Dockyard,
all pinned to upstream commit 94ea2a2 (main as of 2026-04-20).

Second vendor in the per-vendor skills sweep after #466 (Trail of Bits).

Security / review (strong fit with Dockyard's existing security catalog):
- security-review — OWASP-style vulnerability review with confidence scoring
- gha-security-review — GitHub Actions pwn-request/expression-injection audits
- skill-scanner — scans other skills for injection, malicious code, overreach
- find-bugs — diff-scoped bug/security/quality review with checklist
- code-review — Sentry engineering-practice code review
- claude-settings-audit — settings.json permission audit from detected stack
- django-access-review — Django access-control and IDOR investigation
- django-perf-review — validated Django performance review

Skill authoring and workflow:
- skill-writer — create/improve agent skills per the Agent Skills spec
- prompt-optimizer — eval-driven prompt optimization with family adapters
- agents-md — minimal AGENTS.md / CLAUDE.md maintenance
- doc-coauthoring — structured three-stage doc co-authoring workflow
- code-simplifier — clarity-first refactoring without behavior change

Git and PR workflow:
- commit — Sentry conventional-commit format with issue references
- create-branch — Sentry naming-convention branch creation
- pr-writer — Sentry-style PR titles and why-focused descriptions
- iterate-pr — CI-passing loop with LOGAF-ranked feedback handling
- gh-review-requests — team-filtered review-request notifications

Skills excluded (Sentry-internal or narrow): brand-guidelines,
blog-writing-guide, sred-project-organizer, sred-work-summary,
typing-exclusion-worker, presentation-creator.

Security allowlists:
All 18 skills carry a MANIFEST_MISSING_LICENSE entry — upstream licenses
are set at the repo root (Apache-2.0) rather than as SPDX identifiers in
per-skill SKILL.md frontmatter.

Three security-oriented skills carry additional entries for scanner
false positives where the skill teaches attack patterns it is designed
to detect:
- gha-security-review: PIPELINE_TAINT_FLOW (curl|bash examples in
  reference docs, flagged by the scanner itself as instructional)
- iterate-pr: RESOURCE_ABUSE_INFINITE_LOOP (bounded-retry poll loop in
  scripts/monitor_pr_checks.py with timeout and exit conditions)
- skill-scanner: OBFUSCATION_BASE64_LARGE, PROMPT_INJECTION_UNRESTRICTED_MODE,
  YARA_prompt_injection_unicode_steganography (the skill documents each
  pattern it teaches other scanners to detect)

All 18 skills pass 'task validate-skill' locally, and all 18 pass
'task scan-skill' with only allowlisted findings.

Refs #478
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JAORMX added a commit that referenced this pull request Apr 20, 2026
Packages 8 supply-chain security skills from SocketDev/skills (MIT) into
Dockyard, all pinned to upstream commit 25879b0 (main as of 2026-04-02).

Third vendor in the per-vendor skills sweep after #466 (Trail of Bits)
and #498 (Sentry). Socket.dev is a supply-chain security vendor; these
skills complement Dockyard's existing supply-chain-risk-auditor.

Scanning and inspection:
- socket-scan — SBOM, vuln, malware, license audit + cdxgen fallback
- socket-inspect — package-research workflow (scores, alerts, CVEs, alts)

Setup:
- socket-setup — CLI install, auth, CI and Dockerfile integration

Dependency fixing (socket-fix umbrella + 4 sub-skills):
- socket-fix — orchestrator (Fix All tiered / Fix Package modes)
- socket-dep-cleanup — remove a single unused dependency
- socket-dep-patch — apply Socket binary-level patches in place
- socket-dep-replace — swap or inline a dependency
- socket-dep-upgrade — socket fix with one-at-a-time version bumps

Note: the socket-fix sub-skills reference `skills/_shared/verify-build.md`
from the upstream repo. The OCI packager only bundles files under
spec.path, so that shared reference file will not ship with the artifact.
The skills still work from their SKILL.md; the shared reference is
supplementary guidance.

Security allowlists:
All 8 skills carry MANIFEST_MISSING_LICENSE — upstream is MIT at the
repo root rather than per-skill SPDX in SKILL.md frontmatter.

socket-setup also allowlists PIPELINE_TAINT_FLOW: the skill's
prerequisites cite the official nvm installer (`curl ... | bash`) as a
documentation example. The scanner itself flags it as 'uses a
well-known installer URL — likely a standard installation'.

All 8 skills pass `task validate-skill` and `task scan-skill`.

Refs #476
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JAORMX added a commit that referenced this pull request Apr 20, 2026
Packages 18 agent skills from getsentry/skills (Apache-2.0) into Dockyard,
all pinned to upstream commit 94ea2a2 (main as of 2026-04-20).

Second vendor in the per-vendor skills sweep after #466 (Trail of Bits).

Security / review (strong fit with Dockyard's existing security catalog):
- security-review — OWASP-style vulnerability review with confidence scoring
- gha-security-review — GitHub Actions pwn-request/expression-injection audits
- skill-scanner — scans other skills for injection, malicious code, overreach
- find-bugs — diff-scoped bug/security/quality review with checklist
- code-review — Sentry engineering-practice code review
- claude-settings-audit — settings.json permission audit from detected stack
- django-access-review — Django access-control and IDOR investigation
- django-perf-review — validated Django performance review

Skill authoring and workflow:
- skill-writer — create/improve agent skills per the Agent Skills spec
- prompt-optimizer — eval-driven prompt optimization with family adapters
- agents-md — minimal AGENTS.md / CLAUDE.md maintenance
- doc-coauthoring — structured three-stage doc co-authoring workflow
- code-simplifier — clarity-first refactoring without behavior change

Git and PR workflow:
- commit — Sentry conventional-commit format with issue references
- create-branch — Sentry naming-convention branch creation
- pr-writer — Sentry-style PR titles and why-focused descriptions
- iterate-pr — CI-passing loop with LOGAF-ranked feedback handling
- gh-review-requests — team-filtered review-request notifications

Skills excluded (Sentry-internal or narrow): brand-guidelines,
blog-writing-guide, sred-project-organizer, sred-work-summary,
typing-exclusion-worker, presentation-creator.

Security allowlists:
All 18 skills carry a MANIFEST_MISSING_LICENSE entry — upstream licenses
are set at the repo root (Apache-2.0) rather than as SPDX identifiers in
per-skill SKILL.md frontmatter.

Three security-oriented skills carry additional entries for scanner
false positives where the skill teaches attack patterns it is designed
to detect:
- gha-security-review: PIPELINE_TAINT_FLOW (curl|bash examples in
  reference docs, flagged by the scanner itself as instructional)
- iterate-pr: RESOURCE_ABUSE_INFINITE_LOOP (bounded-retry poll loop in
  scripts/monitor_pr_checks.py with timeout and exit conditions)
- skill-scanner: OBFUSCATION_BASE64_LARGE, PROMPT_INJECTION_UNRESTRICTED_MODE,
  YARA_prompt_injection_unicode_steganography (the skill documents each
  pattern it teaches other scanners to detect)

All 18 skills pass 'task validate-skill' locally, and all 18 pass
'task scan-skill' with only allowlisted findings.

Refs #478

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
JAORMX added a commit that referenced this pull request Apr 20, 2026
Packages 8 supply-chain security skills from SocketDev/skills (MIT) into
Dockyard, all pinned to upstream commit 25879b0 (main as of 2026-04-02).

Third vendor in the per-vendor skills sweep after #466 (Trail of Bits)
and #498 (Sentry). Socket.dev is a supply-chain security vendor; these
skills complement Dockyard's existing supply-chain-risk-auditor.

Scanning and inspection:
- socket-scan — SBOM, vuln, malware, license audit + cdxgen fallback
- socket-inspect — package-research workflow (scores, alerts, CVEs, alts)

Setup:
- socket-setup — CLI install, auth, CI and Dockerfile integration

Dependency fixing (socket-fix umbrella + 4 sub-skills):
- socket-fix — orchestrator (Fix All tiered / Fix Package modes)
- socket-dep-cleanup — remove a single unused dependency
- socket-dep-patch — apply Socket binary-level patches in place
- socket-dep-replace — swap or inline a dependency
- socket-dep-upgrade — socket fix with one-at-a-time version bumps

Note: the socket-fix sub-skills reference `skills/_shared/verify-build.md`
from the upstream repo. The OCI packager only bundles files under
spec.path, so that shared reference file will not ship with the artifact.
The skills still work from their SKILL.md; the shared reference is
supplementary guidance.

Security allowlists:
All 8 skills carry MANIFEST_MISSING_LICENSE — upstream is MIT at the
repo root rather than per-skill SPDX in SKILL.md frontmatter.

socket-setup also allowlists PIPELINE_TAINT_FLOW: the skill's
prerequisites cite the official nvm installer (`curl ... | bash`) as a
documentation example. The scanner itself flags it as 'uses a
well-known installer URL — likely a standard installation'.

All 8 skills pass `task validate-skill` and `task scan-skill`.

Refs #476

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants