Files
OpenMesh/coworker/personas/builtin/dep-audit/skills/dependency-audit/SKILL.md
zhaolei 6f402ffcee
Some checks failed
CI / pytest (push) Has been cancelled
CI / gui-unit (push) Has been cancelled
CI / gui-e2e (push) Has been cancelled
feat: OpenMesh 基础平台与 MD/PDF 转换技能
- 后端: coworker 智能体框架, WS API, 文件上传, 附件处理
- 前端: Open WebUI, 文件全量走 upload API (含 MD/TXT/JSON 等文本类)
- 技能: md-to-office (pandoc + wkhtmltopdf)
- 修复: 上传文件路径丢失, Agent 搜索浪费, 输出文件跑到 uploads/
- 打包: PyInstaller one-dir, 预打包 pandoc/wkhtmltopdf/chromium
2026-09-13 23:41:04 +08:00

1.5 KiB

name, description
name description
dependency-audit Scan lockfiles for vulnerable dependencies and triage by real reachability

Audit the project's dependencies and separate what's exploitable from what's noise.

  1. Identify the ecosystems present (package-lock.json / pnpm-lock.yaml / yarn.lock, requirements*.txt / uv.lock / poetry.lock, go.sum, Cargo.lock, pyproject).
  2. Pick scanners that are present (check first; ask before installing):
    • osv-scanner --lockfile <each lockfile> --format json (best cross-ecosystem)
    • npm audit --json / pip-audit -f json / trivy fs --scanners vuln . -f json
  3. Deduplicate advisories across scanners (key on advisory id + package), then triage each one by reading the code:
    • Direct or transitive? (npm ls <pkg>, pipdeptree -r -p <pkg> or grep imports)
    • Is the vulnerable functionality actually used here? Grep for the affected API; an unreachable advisory in a dev-only tool is LOW no matter its CVSS.
    • Verdict per advisory: fix-now / fix-soon / accept-with-note, one line of why.
  4. Map each fix-now to its smallest closing upgrade (advisory metadata's fixed-in version); note when only a major closes it and what the migration entails.
  5. Deliver: an audit table (advisory · package · direct? · reachable? · verdict · smallest fix) ordered by real priority — then hand off to safe-upgrade-pr for the actual upgrades. Offer a CI guard (e.g. an osv-scanner step) so new advisories surface on PRs instead of in the next audit.