agentic/code/frameworks/forensics-complete/skills/supply-chain-forensics/SKILL.md
SBOM analysis, build pipeline forensics, and dependency verification covering package integrity, build reproducibility, and CI/CD pipeline tampering
npx skillsauth add jmagly/aiwg supply-chain-forensicsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Investigates software supply chain compromise across three vectors: dependency integrity (packages and libraries), build pipeline tampering (CI/CD systems and build scripts), and SBOM-based composition analysis. Maps findings to SLSA (Supply-chain Levels for Software Artifacts) and MITRE ATT&CK techniques for supply chain attacks.
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
Supply chain attacks compromise software before it reaches users — through malicious packages, tampered build scripts, or poisoned CI/CD pipelines. These attacks are difficult to detect because the delivered artifact may appear legitimate. This skill applies systematic verification of components and build processes to identify tampering.
When triggered, this skill:
Identify project type and package ecosystem:
package-lock.json, yarn.lock, Cargo.lock, Pipfile.lock, go.sum, Gemfile.lock, pom.xml, build.gradleSBOM generation and analysis:
npx @cyclonedx/cyclonedx-npm --output-file sbom.jsoncyclonedx-bom -r -o sbom.jsoncyclonedx-gomod mod -json -o sbom.jsonDependency integrity verification:
package-lock.json integrity (sha512) fields against registry-published hashes
npm audit --json 2>/dev/null | jq '.vulnerabilities | keys[]'
Pipfile.lock against PyPI:
pip hash --algorithm sha256 <package>.whl
go.sum entries against module proxy checksums:
go mod verify
cargo verify-project and check Cargo.lock hash fieldsTyposquatting and dependency confusion detection:
Build script analysis:
Makefile, build.sh, .github/workflows/, .gitlab-ci.yml, Jenkinsfile, azure-pipelines.yml, buildkite.ymlcurl | sh patterns, outbound network calls during build
grep -rE 'curl.*(sh|bash)|wget.*sh|base64.*decode|eval.*\$\(' .github/workflows/
CI/CD pipeline tampering indicators:
git log --oneline -- .github/workflows/pull_request_target triggers with checkout of untrusted code — common privilege escalation vectorBuild reproducibility check:
reprotest or manual rebuild and hash comparisonSLSA level assessment:
Write findings document:
.aiwg/forensics/findings/supply-chain-forensics.mdsupply chain forensics
Runs against the current working directory.
sbom analysis ./sbom.json
dependency audit --ecosystem npm
build pipeline investigation .github/workflows/
.aiwg/forensics/findings/supply-chain-forensics.md.aiwg/forensics/evidence/sbom.json.aiwg/forensics/evidence/dependency-integrity.txtsupply_chain_forensics:
sbom_format: cyclonedx
sbom_version: "1.5"
typosquatting_distance: 2
check_osv: true
check_reproducibility: true
slsa_assessment: true
pinned_action_check: true
high_risk_patterns:
- "curl.*|.*sh"
- "wget.*sh"
- "base64.*-d.*|.*sh"
- "eval.*\\$\\("
- "pull_request_target"
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.