Communityコーディング&開発github.com

openclaw-ghsa-maintainer

OpenClaw GHSAセキュリティアドバイザリとプライベートフォークの状態を検査、パッチ、検証、公開、または確認するスキルです。

openclaw-ghsa-maintainer とは?

このスキルは、GitHub Security Advisory (GHSA) の管理に特化したツールです。OpenClawリポジトリのセキュリティアドバイザリの状態確認、修正パッチの適用、検証、公開、およびプライベートフォークの管理を安全に行うための手順を提供します。主にgh CLIとjqを用いて、アドバイザリの取得、PATCHリクエストによる状態更新、公開後の確認までを一貫して実行します。このスキルは、安定版やベータ版のリリース作業には使用せず、GHSA関連のワークフローに限定されます。公開前にはプライベートフォークのPRが全てクローズされていること、必須フィールドが不足していないことなどのガードレールを遵守し、よくある失敗(HTTP 422エラー、エスケープされた改行文字、PATCHのシーケンス誤り)を回避するためのベストプラクティスも含まれています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/openclaw-ghsa-maintainer

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

OpenClaw GHSA Maintainer

このスキルは、リポジトリのセキュリティアドバイザリワークフロー専用です。一般的なリリース作業は release-openclaw-maintainer に委ねてください。

アドバイザリのガードレールを尊重する

  • リポジトリのアドバイザリをレビューまたは公開する前に、SECURITY.md を読んでください。
  • 公開アクションの前に必ず許可を求めてください。
  • このスキルはGHSA専用として扱ってください。安定版やベータ版のリリース作業には使用しないでください。

アドバイザリの状態を取得して確認する

現在のアドバイザリと最新の公開npmバージョンを取得します:

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

パッチを適用する前に、取得した出力を使ってアドバイザリの状態、リンクされたプライベートフォーク、脆弱性ペイロードの形状を確認してください。

プライベートフォークのPRがクローズされていることを確認する

公開前に、アドバイザリのプライベートフォークにオープンなPRがないことを確認します:

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

公開前にPRリストが空でなければなりません。

アドバイザリのMarkdownとJSONを安全に準備する

  • アドバイザリのMarkdownはheredocを使って一時ファイルに書き込みます。エスケープされた \n 文字列は使用しないでください。
  • PATCHペイロードのJSONは jq を使って構築し、手動エスケープされたシェルJSONは使用しないでください。

例のパターン:

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

PATCH呼び出しを正しい順序で適用する

  • 同じPATCH呼び出しで severity と cvss_vector_string を設定しないでください。
  • アドバイザリが両方のフィールドを必要とする場合は、別々の呼び出しを使用してください。
  • アドバイザリをPATCHして "state":"published" を設定することで公開します。個別の /publish エンドポイントはありません。

例の形状:

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

公開して成功を確認する

公開後、アドバイザリを再取得して以下を確認します:

  • state=published
  • published_at が設定されている
  • 説明にリテラルのエスケープされた \\n が含まれていない

確認パターン:

gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
jq -r .description < /tmp/ghsa.refetch.json | rg '\\\\n'

よくあるGHSAの落とし穴

  • 必須フィールドが不足しているか、プライベートフォークにまだオープンなPRがある場合、公開はHTTP 422で失敗します。
  • シェルでは正しく見えるペイロードでも、Markdownがエスケープされた改行文字で組み立てられていると間違っている可能性があります。
  • アドバイザリのPATCHシーケンスは重要です。GHSA APIの制約で必要な場合はフィールド更新を分離してください。
  • 公開前のハードニング/非公開コメントやドラフトテキストでは、生のコミットハッシュ、PRタイトル/番号、修正メカニズムの要約を避けるべきです。パッチが適用されたバージョンフィールドやリリース専用の表現を優先し、SHA、PR、実装ノートは内部証拠として保持してください。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

関連スキル