fix(skills): vendor the support files the vendored skills point at
The vendored SKILL.md files were byte-identical to upstream, but the playbooks, templates and schemas they reference were left behind in the original repos, so a loading skill pointed at a file that does not exist anywhere in this repository. Vendored 1:1 into each skill directory (so they survive `cp -r skills/* ~/.hermes/skills/`): - plays/ for api-security-review, code-review-security, sca-audit, secrets-scan, web-security-review (OWASP/secure-agent-playbook) - templates/finding.md for the four OWASP skills that cite it - schemas/finding.schema.json for cve-triage, patch-prioritization, dependency-scanning (UnitOneAI/SecuritySkills) - docs/sarif-output.md, docs/fixer-policy.md and docs/normalized-json-output.md for dependency-scanning Path fixes, the only edit to vendored text: - the three UnitOneAI skills referenced ../../../schemas/ and ../../../docs/ which assumed upstream's skills/<category>/<skill>/ depth; this repo is flat, so the links now resolve inside the skill directory - safedeps told the agent to run <skill_dir>/../../check_deps.py while the script is vendored next to SKILL.md; corrected to <skill_dir>/check_deps.py and documented the script's exit codes (1 = finding, not a crash) - NOTICE.md records the new files, the path edits, and the remaining known gaps (hermaguard's kensei-pipeline references, the ASVS dataset citations, and hermaguard being behind upstream) Verified: every backticked path in every SKILL.md now resolves; check_deps.py runs from the installed location and returns live OSV.dev data ([email protected] -> 2 advisories); hermaguard's 46 tests still pass.
This commit is contained in:
1 parent
eba8bb1d94
commit
bb3fe21766
20 files changed
+4156
-11
No files matched your search
@@ -23,12 +23,12 @@ one, run the checker and use its real output instead of your own
|
||||
recollection of which versions are safe.
|
||||
|
||||
```bash
|
||||
python3 <skill_dir>/../../check_deps.py <package>@<version>:<ecosystem>
|
||||
python3 <skill_dir>/../../check_deps.py path/to/requirements.txt
|
||||
python3 <skill_dir>/check_deps.py <package>@<version>:<ecosystem>
|
||||
python3 <skill_dir>/check_deps.py path/to/requirements.txt
|
||||
```
|
||||
|
||||
(`<skill_dir>` is this file's directory; the script lives at the repo/plugin
|
||||
root as `check_deps.py`. Ecosystems: `npm`, `PyPI`, `Go`, `crates.io`,
|
||||
(`<skill_dir>` is this file's directory; the script is vendored next to this
|
||||
file, as `check_deps.py`. Ecosystems: `npm`, `PyPI`, `Go`, `crates.io`,
|
||||
`Maven`, etc. -- omit `:ecosystem` and it defaults to `npm`.)
|
||||
|
||||
The script prints one of two things per package, straight from OSV.dev:
|
||||
@@ -42,6 +42,11 @@ VULN npm:[email protected] -- 2 advisory(ies):
|
||||
|
||||
## What to do with the output
|
||||
|
||||
Exit code is `0` when every package is clean, `1` when at least one advisory
|
||||
was found, and `2` when OSV.dev was unreachable -- `1` is a finding, not a
|
||||
crash. (The manifest mode only accepts files named `requirements.txt`,
|
||||
`package.json`, `package-lock.json` or `go.mod`.)
|
||||
|
||||
1. If a package you're about to add/bump shows `VULN`, do not use that
|
||||
version. Use the version named in `fix:` instead (or newer).
|
||||
2. If no fixed version is listed, tell the user there's an open advisory
|
||||
|
||||
Reference in new issue
Block a user