fix(qqbot): tighten bundled skill guardrails#98032
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 30, 2026, 1:32 AM ET / 05:32 UTC. Summary PR surface: Source +75, Tests +109, Docs +25. Total +209 across 9 files. Reproducibility: yes. source inspection gives a high-confidence behavior path: current main accepts DELETE calls through Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the QQBot guardrails only after a maintainer explicitly accepts the fail-closed DELETE contract and either documents the upgrade impact or confirms no shipped compatibility path is needed for existing QQBot tool callers. Do we have a high-confidence way to reproduce the issue? Yes, source inspection gives a high-confidence behavior path: current main accepts DELETE calls through Is this the best way to solve the issue? Unclear. The implementation is a coherent safety hardening path, but the best product solution depends on maintainer acceptance of a compatibility-sensitive fail-closed tool contract for existing QQBot callers. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 85ee71223f0d. Label changesLabel justifications:
Evidence reviewedPR surface: Source +75, Tests +109, Docs +25. Total +209 across 9 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Merged via squash.
|
(cherry picked from commit 56c2d63)
(cherry picked from commit 56c2d63)
What Problem This Solves
CLAW-434 tracks official OpenClaw plugins that should publish without suspicious ClawHub/ClawScan warnings while preserving intended behavior. QQBot still needed source-side cleanup for bundled skill wording and guardrails after the Matrix fix landed.
Why This Change Was Made
This keeps QQBot's intended channel, media, and reminder capabilities, but makes the agent-facing contract safer and clearer:
confirmed=truefor QQ channel DELETE requests, andbulkConfirmed=truefor deleting all announcements.allcannot bypass the bulk-delete confirmation guard.This is source-only. It does not deploy, publish, or bump any QQBot package/plugin version.
User Impact
QQBot keeps the same intended capabilities, but agents get clearer guardrails before scheduling reminders, handling media, showing profile images, or mutating/deleting QQ channel resources. Accidental destructive deletes are blocked unless the user-confirmed target is represented in the tool call.
Evidence
SKILLSPECTOR_PROVIDER=openai clawscan extensions/qqbot/skills/qqbot-channel --scanner skillspector --scanner clawscan-static --output /tmp/claw-434-qqbot-channel-after-autoreview.json->issues_found: 0; SkillSpector issues0, static findings0, recommendationSAFE.SKILLSPECTOR_PROVIDER=openai clawscan extensions/qqbot/skills/qqbot-remind --scanner skillspector --scanner clawscan-static --output /tmp/claw-434-qqbot-remind-after-autoreview.json->issues_found: 0; SkillSpector issues0, static findings0, recommendationSAFE.SKILLSPECTOR_PROVIDER=openai clawscan extensions/qqbot/skills/qqbot-media --scanner skillspector --scanner clawscan-static --output /tmp/claw-434-qqbot-media-after-autoreview.json->issues_found: 0; SkillSpector issues0, static findings0, recommendationSAFE.clawscan extensions/qqbot --scanner clawscan-static --output /tmp/claw-434-qqbot-root-static-after-autoreview.json->issues_found: 0.node scripts/run-vitest.mjs extensions/qqbot/src/engine/tools/channel-api.test.ts extensions/qqbot/src/bridge/tools/remind.test.ts extensions/qqbot/src/engine/tools/remind-logic.test.ts-> 3 files / 48 tests passed.node_modules/.bin/oxfmt --check extensions/qqbot/src/bridge/tools/channel.ts extensions/qqbot/src/bridge/tools/remind.ts extensions/qqbot/src/engine/tools/channel-api.ts extensions/qqbot/src/engine/tools/channel-api.test.ts extensions/qqbot/src/engine/tools/remind-logic.ts-> passed.git diff --check-> passed..agents/skills/autoreview/scripts/autoreview --mode local --prompt "Review the QQBot ClawScan cleanup after fixes..."-> clean, no accepted/actionable findings.No ClawHub deploy or package rescan was run from this PR.