title: CVE tooling status: stable kind: feature mode: infra source: > README.md § Skill families (security) and AGENTS.md § Linking CVEs. Implemented in tools/cve-tool-vulnogram/generate-cve-json/, tools/cve-org/, and the security-cve-allocate skill. acceptance:
Turns a tracking issue into a CVE allocation and a paste-ready CVE 5.x JSON record — the machine half of the security lifecycle's allocation step. Deterministic (no model calls) so the output is reproducible and reviewable.
tools/cve-tool-vulnogram/generate-cve-json/ — a uv run script that parses an issue‘s template fields (multiple credits, multiple reference URLs, >= X, < Y version ranges) and emits containers.cna JSON matching Vulnogram’s export shape, plus the Vulnogram #json paste URL.tools/cve-tool-vulnogram/oauth-api/ — a uv project exposing three console scripts (vulnogram-api-setup, vulnogram-api-record-update, vulnogram-api-check) that POST CVE 5.x JSON to the Vulnogram HTTP API via an ASF-OAuth session cookie, replacing the copy-paste-into-#source flow. The skill detects session expiry via vulnogram-api-check and falls back to the manual paste path when the session is not configured or expired.tools/cve-org/ — CVE.org / CVE-services helpers.security-cve-allocate — walks the (PMC-gated) allocation form, then updates the tracker and regenerates the attached JSON via generate-cve-json --attach.cveprocess.apache.org/...) and any tracker-repo URLs are filtered out of references[] before serialising — they are OAuth-gated / private.generate-cve-json emits valid CVE 5.x JSON from a tracking issue.references[].--attach refreshes the JSON on the tracking issue.uv run --project tools/cve-tool-vulnogram/generate-cve-json --group dev pytest uv run --project tools/cve-tool-vulnogram/oauth-api --group dev pytest
stable; drift appears if the CVE 5.x schema or Vulnogram export shape changes upstream — caught by the tool's own tests.