skills/team/oss-vetting/SKILL.md
OSS library vetting and SBOM analysis for federal contractor environments (LANL/DOE/CUI). Use this skill when evaluating any open-source or third-party package for use in a federal contractor project — including NuGet packages, npm, PyPI, or any OSS library. Triggers include: vet this library, can we use X in LANL, is X approved for CUI systems, evaluate this NuGet package, generate an SBOM, supply chain risk, check this dependency, OSS assessment, 800-171 compliance for this package, C-SCRM review. Also trigger for any question about whether a library is safe, compliant, or appropriate for use on a government contract or CUI-adjacent system.
npx skillsauth add michaelalber/ai-toolkit oss-vettingInstall 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.
"On a federal contract, a dependency is not a convenience — it is an attack surface you inherited and a compliance liability you signed for. Vet it like both."
Producing an OSS Vetting Assessment Report for federal contractor use is a compliance act, not a checkbox. Every assessment is evaluated against four frameworks — understanding why each matters prevents shallow checkbox compliance:
| Framework | Role | |---|---| | EO 14028 | Creates the legal obligation — software on federal systems must be verifiably secure | | NIST SP 800-218 (SSDF) | Defines the process — how maintainers should build and respond to vulnerabilities | | NIST SP 800-171 Rev 2 | Sets the data-protection stakes — 110 controls for CUI systems; a vulnerable dep is a direct compliance liability | | NIST SP 800-161 (C-SCRM) | Governs provenance — where the software came from, who maintains it, whether the supply chain is auditable |
Non-Negotiable Constraints:
references/assessment-dimensions.md) halts approval pending waiver, regardless of other scores.Plain-language framework explanations for stakeholder briefings live in references/framework-glossary.md.
DETECT Gather inputs: package, version, ecosystem; target system + classification;
intended use; constraints. Missing context → ask. No report written yet.
RESEARCH Investigate the four dimension groups — identity/provenance, security posture,
development health (SSDF), supply chain (C-SCRM). Web search if available;
note limitations if air-gapped. Detail: references/assessment-dimensions.md.
SCORE Rate each dimension 1–5 (5 = lowest risk): security posture, supply chain
integrity, maintainership health, license compatibility, CUI suitability.
Each score cites evidence. Scale + dimensions: references/assessment-dimensions.md.
LICENSE Resolve SPDX identifier → risk tier (acceptable / review / disqualifying) and
note attribution + patent clauses. Full matrix: references/license-matrix.md.
SBOM Note SBOM availability and pick offline-capable tooling for the deployment context.
Tooling table + air-gap rules: references/assessment-dimensions.md.
REPORT Write the Confluence-ready report from references/report-template.md with a
clear recommendation: Approve / Approve with conditions / Reject.
Exit criteria: every dimension scored with cited evidence; license tier resolved; SBOM posture noted; a single explicit recommendation rendered; red flags surfaced and escalated if present.
<oss-vetting-state>
phase: DETECT | RESEARCH | SCORE | LICENSE | SBOM | REPORT | COMPLETE
package: [name@version]
ecosystem: nuget | pypi | npm | other
target_system: [name] (cui: true|false, yellow_network: true|false, air_gapped: true|false)
license_spdx: [id] | unknown
license_tier: acceptable | review | disqualifying | unresolved
dimension_scores: security=_ supply=_ maintainer=_ license=_ cui=_ (1–5, blank = not-yet-scored)
red_flags: [count] | none
recommendation: approve | approve-with-conditions | reject | pending
last_action: [description]
next_action: [description]
</oss-vetting-state>
references/report-template.md (Confluence-ready: header + classification marking,
executive summary, dimension scores, findings, license analysis, supply-chain/SBOM notes, mitigations, references).references/license-matrix.md.references/framework-glossary.md.Render as Confluence-ready Markdown: ## section headers, tables for scores and license data, inline
code for package names / CVE IDs / SPDX identifiers, a blockquote for the executive-summary callout,
and the classification marking as a bold header line at the top.
| Skill | Relationship |
|-------|-------------|
| supply-chain-audit | Run to scan the consuming project's full dependency tree once a package is approved. |
| dependency-mapper | Map where the vetted package sits in the project's dependency graph and its blast radius. |
| security-review-federal | Pairs the package assessment with a federal security review of the consuming system. |
| nuget-package-scaffold / pypi-package-scaffold | Apply vetting standards when authoring first-party packages, not just consuming third-party ones. |
development
Interviews the user relentlessly about a plan, decision, or idea — one question at a time, each with a recommended answer. Shared engine behind "grill-me" and "grill-with-docs". Use on any "grill" trigger phrase or to stress-test thinking. Do NOT use to build the plan; it ends at shared understanding, not implementation.
testing
Runs a relentless interview to sharpen a plan or design, capturing the decisions as ADRs and a glossary along the way. Use when the user wants to be grilled AND wants the session to leave durable domain documentation behind. Do NOT use for a throwaway stress-test with no artifacts; use grill-me instead.
tools
OWASP-based security review of Vue/TypeScript front-ends. Detects framework (Vite/Vue CLI/Nuxt), entry points, and data flows; scans the OWASP Top 10 (2025) mapped to Vue client-side risks (raw-HTML XSS via v-html, URL/protocol injection, bundled secrets, insecure token storage, dependency CVEs, missing CSP, open redirects, router guard bypass); emits an exec summary plus graded findings. Use to audit Vue for vulnerabilities. Not for architecture grading (vue-architecture-checklist).
tools
Analyzes legacy Vue codebases and produces actionable modernization plans. Primary migration paths include Options API to Composition API, Vue 2 to Vue 3, Vue CLI to Vite, JavaScript to TypeScript, Vue Test Utils/Karma/Mocha to Vitest + Vue Testing Library, legacy Vuex to Pinia, and removed-in-Vue-3 pattern cleanup (filters, event bus, `$listeners`). Does NOT perform the migration — assesses, quantifies risk, and plans.