Skills

Openclaw Ghsa Maintainer

Maintainer workflow for OpenClaw GitHub Security Advisories (GHSA).

Install

npx skills add SafeAI-Lab-X/ClawKeeper --skill openclaw-ghsa-maintainer -g -a claude-code -y
Category
Security
Updated
3mo ago
License
See repository
Context cost
Lightabout 638 tokens
Runs scripts
No, instructions only

What it does

Maintainer workflow for OpenClaw GitHub Security Advisories (GHSA). Use when Codex needs to inspect, patch, validate, or publish a repo advisory, verify private-fork state, prepare advisory Markdown or JSON payloads safely, handle GHSA API-specific publish constraints, or confirm advisory publish success.

OpenClaw GHSA Maintainer

Use this skill for repo security advisory workflow only. Keep general release work in openclaw-release-maintainer.

Respect advisory guardrails

  • Before reviewing or publishing a repo advisory, read SECURITY.md.
  • Ask permission before any publish action.
  • Treat this skill as GHSA-only. Do not use it for stable or beta release work.

Fetch and inspect advisory state

Fetch the current advisory and the latest published npm version:

gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
npm view openclaw version --userconfig "$(mktemp)"

Use the fetch output to confirm the advisory state, linked private fork, and vulnerability payload shape before patching.

Verify private fork PRs are closed

Before publishing, verify that the advisory's private fork has no open PRs:

fork=$(gh api /repos/openclaw/openclaw/security-advisories/<GHSA> | jq -r .private_fork.full_name)
gh pr list -R "$fork" --state open

The PR list must be empty before publish.

Prepare advisory Markdown and JSON safely

  • Write advisory Markdown via heredoc to a temp file. Do not use escaped \n strings.
  • Build PATCH payload JSON with jq, not hand-escaped shell JSON.

Example pattern:

cat > /tmp/ghsa.desc.md <<'EOF'
<markdown description>
EOF

jq -n --rawfile desc /tmp/ghsa.desc.md \
  '{summary,severity,description:$desc,vulnerabilities:[...]}' \
  > /tmp/ghsa.patch.json

Apply PATCH calls in the correct sequence

  • Do not set severity and cvss_vector_string in the same PATCH call.
  • Use separate calls when the advisory requires both fields.
  • Publish by PATCHing the advisory and setting "state":"published". There is no separate /publish endpoint.

Example shape:

gh api -X PATCH /repos/openclaw/openclaw/security-advisories/<GHSA> \
  --input /tmp/ghsa.patch.json

Publish and verify success

After publish, re-fetch the advisory and confirm:

Read the whole SKILL.md on GitHub

More in Security