Files
dev-workflows/skills/NOTICE.md
T
Evandro Fonseca Junior bb3fe21766 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.
2026-09-14 07:40:21 -03:00

78 lines
4.8 KiB
Markdown

# Skills vendorizadas — origem e licença
Este diretório contém cópias vendorizadas (não forks, não submodules) das
skills de terceiros usadas pelo `wf-security-review`. Vendorizar em vez de só
linkar (como `docs/SKILLS.md` fazia antes) significa que `git clone
dev-workflows` já traz tudo funcional, sem passo manual de instalação externa.
Cada linha abaixo registra o commit exato de onde a cópia local foi tirada —
use isso pra checar se a origem teve atualização (`git log <sha>..HEAD` no
repo de origem, ou comparar datas).
| Skill | Origem | Commit vendorizado | Licença |
|---|---|---|---|
| `safedeps` | [Jeneidi/safedeps](https://github.com/Jeneidi/safedeps) | `3f4dd8d` (2026-06-29) | MIT |
| `sca-audit` | [OWASP/secure-agent-playbook](https://github.com/OWASP/secure-agent-playbook) | `79fea6b` (2026-06-02) | CC-BY-4.0 |
| `secrets-scan` | OWASP/secure-agent-playbook | `79fea6b` (2026-06-02) | CC-BY-4.0 |
| `code-review-security` | OWASP/secure-agent-playbook | `79fea6b` (2026-06-02) | CC-BY-4.0 |
| `api-security-review` | OWASP/secure-agent-playbook | `79fea6b` (2026-06-02) | CC-BY-4.0 |
| `web-security-review` | OWASP/secure-agent-playbook | `79fea6b` (2026-06-02) | CC-BY-4.0 |
| `cve-triage` | [UnitOneAI/SecuritySkills](https://github.com/UnitOneAI/SecuritySkills) | `70bc259` (2026-06-18) | MIT |
| `patch-prioritization` | UnitOneAI/SecuritySkills | `70bc259` (2026-06-18) | MIT |
| `dependency-scanning` | UnitOneAI/SecuritySkills | `70bc259` (2026-06-18) | MIT |
| `hermaguard` | [Sahil-SS9/hermaguard](https://github.com/Sahil-SS9/hermaguard) | `b491fbe` (2026-08-15) | MIT |
Licença CC-BY-4.0 (OWASP/secure-agent-playbook) exige atribuição — mantida
via a tabela acima e o link direto ao repo original em cada menção nos
READMEs. Nenhum conteúdo foi modificado em relação ao original; cópia 1:1
do diretório da skill, mais os arquivos de apoio que a própria skill
referencia (ver abaixo).
## Arquivos de apoio vendorizados
Os `SKILL.md` acima não são autossuficientes: eles apontam para playbooks,
templates e schemas que ficam em outros diretórios do repo de origem. A
primeira vendorização copiou só o `SKILL.md` e deixou esses arquivos para
trás — o resultado é que a skill carregava e apontava para um arquivo
inexistente. Eles foram trazidos junto, dentro do diretório de cada skill,
para que ela continue funcional depois de copiada sozinha:
| Arquivo | Skill(s) que referenciam | Origem |
|---|---|---|
| `plays/api-security-review.md` | `api-security-review` | OWASP/secure-agent-playbook `plugins/code-security-skills/plays/` |
| `plays/code-review-security.md` | `code-review-security` | idem |
| `plays/sca-audit.md` | `sca-audit` | idem |
| `plays/secrets-scan.md` | `secrets-scan` | idem |
| `plays/owasp-top10-web-review.md` | `web-security-review` | idem |
| `templates/finding.md` | `code-review-security`, `sca-audit`, `secrets-scan`, `web-security-review` | idem, `templates/` |
| `schemas/finding.schema.json` | `cve-triage`, `patch-prioritization`, `dependency-scanning` | UnitOneAI/SecuritySkills `schemas/` |
| `docs/sarif-output.md` | `dependency-scanning` | UnitOneAI/SecuritySkills `docs/` |
| `docs/fixer-policy.md` | `dependency-scanning` | UnitOneAI/SecuritySkills `docs/` |
| `docs/normalized-json-output.md` | `dependency-scanning` (linkado de `docs/sarif-output.md`) | UnitOneAI/SecuritySkills `docs/` |
Esses arquivos são cópias 1:1 do upstream. A única edição nos `SKILL.md` foi
nos caminhos: as referências `../../../schemas/…` e `../../../docs/…`
apontavam para a raiz do repo de origem, que tinha um nível a mais
(`skills/<categoria>/<skill>/`). Como aqui o diretório é plano
(`skills/<skill>/`), os links foram ajustados para o caminho relativo dentro
da própria skill, que é o que sobrevive a `cp -r skills/* ~/.hermes/skills/`.
## Lacunas conhecidas
- `hermaguard` referencia `governance/multi-gate-qa.md` e
`.github/workflows/hermaguard.yml`, que existem só no ambiente do autor
original (pipeline `kensei`), não no repo upstream. Não foram criados: são
contexto de integração, não dependência de execução da skill.
- Os playbooks citam controles ASVS em `data/asvs/*.md` (dataset do
OWASP/secure-agent-playbook). São citações informativas por check, não
arquivos que a skill precise abrir para rodar; o dataset inteiro (~90
arquivos) não foi vendorizado de propósito.
- `hermaguard` foi vendorizado no commit `b491fbe`; o upstream já avançou
(adicionou a ferramenta `hermaguard-trajectory` e `test_trajectory.py`). A
cópia local é internamente consistente (README, `pyproject.toml` e testes
batem entre si), mas está atrás do upstream.
Pra atualizar uma skill vendorizada: reclone o repo de origem, `diff -r`
contra o diretório aqui, copie por cima se houver mudança real, e atualize
o commit/data desta tabela.