chore(release): bump all public skills (#283)

* chore(skill): bump clawhub checker release

* chore(release): bump all public skills

* fix(release): require skillspector PR comments

* fix(release): align skill verification versions

* fix(release): checksum standalone release assets

* fix(release): narrow skillspector comment permissions
This commit is contained in:
davida-ps
2026-06-23 11:12:42 +03:00
committed by GitHub
parent 2a76509fcf
commit 6573ee9ecf
51 changed files with 281 additions and 59 deletions
+40 -3
View File
@@ -775,6 +775,35 @@ jobs:
cp "${skill_dir}/README.md" "${out_assets}/README.md"
fi
if ! add_release_asset_checksum "${out_assets}" "skill.json"; then
failures=$((failures + 1))
rm -rf "${staging_dir}"
echo "::endgroup::"
continue
fi
if ! add_release_asset_checksum "${out_assets}" "SKILL.md"; then
failures=$((failures + 1))
rm -rf "${staging_dir}"
echo "::endgroup::"
continue
fi
if [ -f "${out_assets}/README.md" ] && ! add_release_asset_checksum "${out_assets}" "README.md"; then
failures=$((failures + 1))
rm -rf "${staging_dir}"
echo "::endgroup::"
continue
fi
if ! jq -e . "${out_assets}/checksums.json" >/dev/null 2>&1; then
echo "::error::Generated checksums.json is invalid JSON after adding standalone release assets."
failures=$((failures + 1))
rm -rf "${staging_dir}"
echo "::endgroup::"
continue
fi
rm -rf "${staging_dir}"
echo "Prepared dry-run assets for ${tag}:"
@@ -828,21 +857,18 @@ jobs:
if: always() && github.event_name == 'pull_request' && needs.release.result != 'cancelled'
needs: release
runs-on: ubuntu-latest
continue-on-error: true
permissions:
actions: read
contents: read
issues: write
steps:
- name: Download SkillSpector reports
continue-on-error: true
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: skillspector-pr-reports
path: skillspector-pr-reports
- name: Comment SkillSpector reports
continue-on-error: true
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
@@ -1426,6 +1452,17 @@ jobs:
cp "$SKILL_PATH/README.md" release-assets/
fi
add_release_asset_checksum "skill.json"
add_release_asset_checksum "SKILL.md"
if [ -f release-assets/README.md ]; then
add_release_asset_checksum "README.md"
fi
if ! jq -e . "release-assets/checksums.json" >/dev/null 2>&1; then
echo "::error::Generated checksums.json is invalid JSON after adding standalone release assets."
exit 1
fi
rm -rf "$STAGING_DIR"
echo "=== checksums.json ==="
@@ -484,6 +484,13 @@ async function main() {
await cp(path.join(tempSkillDir, "README.md"), path.join(releaseAssetsDir, "README.md"));
}
for (const artifact of ["skill.json", "SKILL.md", "README.md"]) {
if (existsSync(path.join(releaseAssetsDir, artifact))) {
await addReleaseAssetChecksum({ releaseAssetsDir, manifest, asset: artifact });
}
}
await writeJson(path.join(releaseAssetsDir, "checksums.json"), manifest);
const { privateKeyPath, publicKeyPath } = await createSigningKeyPair(tempRoot);
await signFileBase64({
keyPath: privateKeyPath,
+17
View File
@@ -141,6 +141,23 @@ if [ -f "$SKILL_PATH/SKILL.md" ]; then
echo " ✓ Version updated to $VERSION"
echo "Updating release verification VERSION assignments in SKILL.md..."
VERSION_ASSIGNMENT_PATTERN='^VERSION="[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?"$'
if grep -qE "$VERSION_ASSIGNMENT_PATTERN" "$TEMP_DIR/SKILL.md"; then
sed -E "s|$VERSION_ASSIGNMENT_PATTERN|VERSION=\"$VERSION\"|g" "$TEMP_DIR/SKILL.md" > "$TEMP_DIR/SKILL.md.tmp"
if ! grep -qF "VERSION=\"$VERSION\"" "$TEMP_DIR/SKILL.md.tmp"; then
echo "Warning: VERSION assignment found but substitution may have failed" >&2
else
VERSION_ASSIGNMENT_COUNT=$(grep -cF "VERSION=\"$VERSION\"" "$TEMP_DIR/SKILL.md.tmp")
echo " ✓ Updated $VERSION_ASSIGNMENT_COUNT VERSION assignment(s)"
fi
mv "$TEMP_DIR/SKILL.md.tmp" "$TEMP_DIR/SKILL.md"
else
echo " No hardcoded release verification VERSION assignments found"
fi
echo "Updating hardcoded version URLs in SKILL.md to use tag $TAG..."
# Replace all hardcoded version URLs: download/SKILLNAME-vX.Y.Z(-prerelease)?/ -> download/TAG/
# This handles patterns like: download/clawsec-feed-v1.0.0/ or download/prompt-agent-v1.0.0-beta1/
+52 -5
View File
@@ -8,6 +8,7 @@ const validateSkillInstallDocsPath = new URL('./ci/validate_skill_install_docs.m
const installClawhubCliPath = new URL('./ci/install_clawhub_cli.sh', import.meta.url);
const patchClawhubPayloadPath = new URL('./ci/patch_clawhub_publish_payload.mjs', import.meta.url);
const guardClawhubSlugOwnerPath = new URL('./ci/guard_clawhub_slug_owner.sh', import.meta.url);
const releaseSkillScriptPath = new URL('./release-skill.sh', import.meta.url);
const workflow = await readFile(workflowPath, 'utf8');
const ciWorkflow = await readFile(ciWorkflowPath, 'utf8');
const clawhubLock = JSON.parse(await readFile(clawhubLockPath, 'utf8'));
@@ -15,6 +16,7 @@ const validateSkillInstallDocs = await readFile(validateSkillInstallDocsPath, 'u
const installClawhubCli = await readFile(installClawhubCliPath, 'utf8');
const patchClawhubPayload = await readFile(patchClawhubPayloadPath, 'utf8');
const guardClawhubSlugOwner = await readFile(guardClawhubSlugOwnerPath, 'utf8');
const releaseSkillScript = await readFile(releaseSkillScriptPath, 'utf8');
assert.match(
workflow,
@@ -220,6 +222,29 @@ for (const artifact of ['skill-card.md', 'permissions.json', 'install.md', 'skil
);
}
for (const artifact of ['skill.json', 'SKILL.md']) {
assert.match(
workflow,
new RegExp(
String.raw`cp [\s\S]*? "\$\{out_assets\}/${escapeRegExp(artifact)}"[\s\S]*?` +
String.raw`if ! add_release_asset_checksum "\$\{out_assets\}" "${escapeRegExp(artifact)}"; then`,
),
`PR dry-run validation must checksum standalone downloadable ${artifact} after copying it to release assets`,
);
}
assert.match(
workflow,
/if \[ -f "\$\{out_assets\}\/README\.md" \] && ! add_release_asset_checksum "\$\{out_assets\}" "README\.md"; then/,
'PR dry-run validation must checksum standalone downloadable README.md when it is shipped',
);
assert.match(
workflow,
/cp "\$SKILL_PATH\/skill\.json" release-assets\/skill\.json[\s\S]*add_release_asset_checksum "skill\.json"[\s\S]*add_release_asset_checksum "SKILL\.md"[\s\S]*add_release_asset_checksum "README\.md"/,
'Tag release validation must checksum standalone downloadable skill files before signing checksums.json',
);
assert.match(
workflow,
/add_release_asset_checksum "skill-card\.md"/,
@@ -253,26 +278,38 @@ assert.match(
assert.match(
workflow,
/comment-skillspector-report:[\s\S]*needs: release[\s\S]*issues: write[\s\S]*actions\/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8\.0\.1/,
'Skill release workflow must download generated SkillSpector reports in a separate PR comment job with comment permissions',
'Skill release workflow must download generated SkillSpector reports in a separate PR comment job with issue-comment permissions',
);
const commentJob = workflow.match(/[ ]{2}comment-skillspector-report:[\s\S]*?\n[ ]{2}[a-z][^:\n]*:/)?.[0] || "";
assert.match(
commentJob,
/issues: write/,
'SkillSpector PR comment publishing must request issues write permissions so report comments can be created',
);
assert.doesNotMatch(
commentJob,
/pull-requests: write/,
'SkillSpector PR comment publishing should not request redundant pull-requests write permissions',
'SkillSpector PR comment publishing must not broaden the token with pull-requests write permissions',
);
assert.match(
workflow,
/comment-skillspector-report:[\s\S]*if: always\(\) && github\.event_name == 'pull_request' && needs\.release\.result != 'cancelled'[\s\S]*Download SkillSpector reports[\s\S]*continue-on-error: true/,
/comment-skillspector-report:[\s\S]*if: always\(\) && github\.event_name == 'pull_request' && needs\.release\.result != 'cancelled'[\s\S]*Download SkillSpector reports/,
'SkillSpector PR comments must still run when the release dry-run produced reports but the release job failed later',
);
assert.match(
workflow,
/Comment SkillSpector reports[\s\S]*continue-on-error: true[\s\S]*actions\/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9\.0\.0/,
'SkillSpector PR comment publishing must not fail the release dry-run check',
/Comment SkillSpector reports[\s\S]*actions\/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9\.0\.0/,
'SkillSpector PR comment publishing must use the pinned GitHub script action',
);
assert.doesNotMatch(
commentJob,
/continue-on-error: true/,
'SkillSpector PR comment publishing must fail visibly when report artifacts or PR comments cannot be created',
);
assert.match(
@@ -316,6 +353,16 @@ assert.ok(
'Skill release workflow must accept every prerelease version format that release-skill.sh accepts',
);
assert.ok(
releaseSkillScript.includes(`VERSION_ASSIGNMENT_PATTERN='^VERSION="[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9.]+)?"$'`),
'release-skill.sh must detect hardcoded release verification VERSION assignments in SKILL.md',
);
assert.ok(
releaseSkillScript.includes('sed -E "s|$VERSION_ASSIGNMENT_PATTERN|VERSION=\\"$VERSION\\"|g"'),
'release-skill.sh must update hardcoded release verification VERSION assignments when bumping a skill',
);
assert.match(
workflow,
/clawhub_slug: \$\{\{ steps\.publishable\.outputs\.clawhub_slug \}\}/,
+28 -4
View File
@@ -1,5 +1,7 @@
import assert from "node:assert/strict";
import { createHash } from "node:crypto";
import { chmod, cp, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
import { existsSync } from "node:fs";
import { tmpdir } from "node:os";
import path from "node:path";
import { spawnSync } from "node:child_process";
@@ -7,6 +9,10 @@ import { spawnSync } from "node:child_process";
const tempRoot = await mkdtemp(path.join(tmpdir(), "clawsec-tag-release-sim-"));
const fakeSkillspector = path.join(tempRoot, "skillspector");
function sha256(buffer) {
return createHash("sha256").update(buffer).digest("hex");
}
async function prereleaseFixture(sourceSkillDir, version, fixtureGroup) {
const fixtureDir = path.join(tempRoot, fixtureGroup, path.basename(sourceSkillDir));
await cp(sourceSkillDir, fixtureDir, { recursive: true });
@@ -77,6 +83,24 @@ async function runSimulation({ skillDir, outputDir, expectedOriginal, expectedSi
assert.ok(file.length > 0, `${artifact} should not be empty`);
}
for (const artifact of ["skill.json", "SKILL.md", "skillspector-report.md"]) {
const file = await readFile(path.join(releaseAssetsDir, artifact));
assert.equal(
checksums.files[artifact]?.sha256,
sha256(file),
`${artifact} must be downloadable and covered by checksums.json`,
);
}
if (existsSync(path.join(releaseAssetsDir, "README.md"))) {
const file = await readFile(path.join(releaseAssetsDir, "README.md"));
assert.equal(
checksums.files["README.md"]?.sha256,
sha256(file),
"README.md must be downloadable and covered by checksums.json when shipped",
);
}
const archive = await readFile(path.join(releaseAssetsDir, `${expectedTag}.zip`));
assert.ok(archive.length > 0, "release archive should not be empty");
@@ -140,16 +164,16 @@ writeFileSync(process.argv[outputIndex + 1], "# Fake SkillSpector Report\\n\\nNo
await runSimulation({
skillDir: "skills/clawsec-suite",
outputDir: path.join(tempRoot, "stable"),
expectedOriginal: "0.1.11",
expectedSimulated: "0.1.12",
expectedOriginal: "0.1.12",
expectedSimulated: "0.1.13",
expectedAgent: "openclaw",
});
await runSimulation({
skillDir: "skills/hermes-traffic-guardian",
outputDir: path.join(tempRoot, "beta"),
expectedOriginal: "0.0.1-beta4",
expectedSimulated: "0.0.1-beta5",
expectedOriginal: "0.0.1-beta5",
expectedSimulated: "0.0.1-beta6",
expectedAgent: "hermes-agent",
});
+4 -4
View File
@@ -25,7 +25,7 @@ function runTrustPacket(skillDir, targetDir, tag) {
}
try {
const result = runTrustPacket("skills/clawsec-suite", outputDir, "clawsec-suite-v0.1.11");
const result = runTrustPacket("skills/clawsec-suite", outputDir, "clawsec-suite-v0.1.12");
assert.equal(
result.status,
@@ -41,10 +41,10 @@ try {
assert.match(skillCard, /## License\/Terms of Use/);
assert.match(skillCard, /AGPL-3\.0-or-later/);
assert.match(skillCard, /skillspector-report\.md/);
assert.match(skillCard, /clawsec-suite-v0\.1\.11/);
assert.match(skillCard, /clawsec-suite-v0\.1\.12/);
assert.equal(permissions.skill, "clawsec-suite");
assert.equal(permissions.version, "0.1.11");
assert.equal(permissions.version, "0.1.12");
assert.equal(permissions.platform, "openclaw");
assert.deepEqual(
permissions.required_binaries,
@@ -62,7 +62,7 @@ try {
const hermesResult = runTrustPacket(
"skills/hermes-attestation-guardian",
hermesOutputDir,
"hermes-attestation-guardian-v0.1.5",
"hermes-attestation-guardian-v0.1.6",
);
assert.equal(
hermesResult.status,
@@ -1,5 +1,11 @@
# Changelog
## [0.0.8] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.7] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: clawsec-clawhub-checker
version: 0.0.7
version: 0.0.8
description: ClawHub reputation checker for clawsec-suite. Adds a standalone reputation gate before guarded skill installation.
homepage: https://clawsec.prompt.security
clawdis:
@@ -61,7 +61,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="clawsec-clawhub-checker"
VERSION="0.0.4"
VERSION="0.0.8"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "clawsec-clawhub-checker",
"version": "0.0.7",
"version": "0.0.8",
"description": "ClawHub reputation checker for clawsec-suite. Adds a standalone reputation gate before guarded skill installation.",
"author": "abutbul",
"license": "AGPL-3.0-or-later",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## [0.0.11] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.10] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: clawsec-feed
version: 0.0.10
version: 0.0.11
description: Security advisory feed package for OpenClaw-related threats and vulnerabilities. The upstream feed is updated daily; local automation is handled by clawsec-suite or the operator.
homepage: https://clawsec.prompt.security
metadata: {"openclaw":{"emoji":"📡","category":"security"}}
@@ -96,7 +96,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="clawsec-feed"
VERSION="0.0.9"
VERSION="0.0.11"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "clawsec-feed",
"version": "0.0.10",
"version": "0.0.11",
"description": "Security advisory feed monitoring for AI agents. Subscribe to community-driven threat intelligence.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## [0.0.10] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.9] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: clawsec-nanoclaw
version: 0.0.9
version: 0.0.10
description: Use when checking for security vulnerabilities in NanoClaw skills, before installing new skills, or when asked about security advisories affecting the bot
---
@@ -217,7 +217,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="clawsec-nanoclaw"
VERSION="0.0.6"
VERSION="0.0.10"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "clawsec-nanoclaw",
"version": "0.0.9",
"version": "0.0.10",
"description": "ClawSec security suite for NanoClaw - Advisory feed monitoring, MCP tools for vulnerability checking, and Ed25519 signature verification for containerized WhatsApp bot agents",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## [0.0.7] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.6] - 2026-06-22
### Changed
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: clawsec-scanner
version: 0.0.6
version: 0.0.7
description: Automated vulnerability scanner for agent platforms. Performs dependency scanning (npm audit, pip-audit), multi-database CVE lookup (OSV, NVD, GitHub Advisory), SAST analysis (Semgrep, Bandit), and agent-specific static hook inspection for OpenClaw hooks.
homepage: https://clawsec.prompt.security
clawdis:
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "clawsec-scanner",
"version": "0.0.6",
"version": "0.0.7",
"description": "Automated vulnerability scanner for agent platforms. Performs dependency scanning (npm audit, pip-audit), multi-database CVE lookup (OSV, NVD, GitHub Advisory), SAST analysis (Semgrep, Bandit), and agent-specific static hook inspection for OpenClaw hooks.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## [0.1.12] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.1.11] - 2026-06-22
### Changed
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: clawsec-suite
version: 0.1.11
version: 0.1.12
description: ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.
homepage: https://clawsec.prompt.security
clawdis:
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "clawsec-suite",
"version": "0.1.11",
"version": "0.1.12",
"description": "ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## [0.0.9] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.8] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: clawtributor
version: 0.0.8
version: 0.0.9
description: Harness-neutral community incident reporting for AI agents. Contribute to collective security by reporting threats.
homepage: https://clawsec.prompt.security
platforms:
@@ -79,7 +79,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="clawtributor"
VERSION="0.0.7"
VERSION="0.0.9"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "clawtributor",
"version": "0.0.8",
"version": "0.0.9",
"description": "Harness-neutral community incident reporting for AI agents. Contribute to collective security by reporting threats.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.1.6] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.1.5] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: hermes-attestation-guardian
version: 0.1.5
version: 0.1.6
description: Hermes-only runtime security attestation and drift detection skill for operator-managed Hermes infrastructure.
homepage: https://clawsec.prompt.security
hermes:
@@ -31,7 +31,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="hermes-attestation-guardian"
VERSION="0.1.5"
VERSION="0.1.6"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
@@ -1,6 +1,6 @@
{
"name": "hermes-attestation-guardian",
"version": "0.1.5",
"version": "0.1.6",
"description": "Hermes-only runtime security attestation and drift detection skill. Generates deterministic posture artifacts, verifies integrity fail-closed, and classifies baseline drift severity.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.0.1-beta5] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.1-beta4] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: hermes-traffic-guardian
version: 0.0.1-beta4
version: 0.0.1-beta5
description: Hermes runtime traffic monitoring baseline for opt-in proxy inspection, egress detection, and attestation-aware traffic posture.
homepage: https://clawsec.prompt.security
author: prompt-security
@@ -31,7 +31,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="hermes-traffic-guardian"
VERSION="0.0.1-beta3"
VERSION="0.0.1-beta5"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hermes-traffic-guardian",
"version": "0.0.1-beta4",
"version": "0.0.1-beta5",
"description": "Hermes runtime traffic monitoring baseline for opt-in proxy inspection, egress detection, and attestation-aware traffic posture.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.0.1-beta5] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.1-beta4] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: nanoclaw-traffic-guardian
version: 0.0.1-beta4
version: 0.0.1-beta5
description: NanoClaw runtime traffic monitoring baseline for host-side proxy inspection with container-safe MCP and IPC status surfaces.
homepage: https://clawsec.prompt.security
author: prompt-security
@@ -30,7 +30,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="nanoclaw-traffic-guardian"
VERSION="0.0.1-beta3"
VERSION="0.0.1-beta5"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "nanoclaw-traffic-guardian",
"version": "0.0.1-beta4",
"version": "0.0.1-beta5",
"description": "NanoClaw runtime traffic monitoring baseline for host-side proxy inspection with container-safe MCP and IPC status surfaces.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.1.9] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.1.8] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: openclaw-audit-watchdog
version: 0.1.8
version: 0.1.9
description: Automated daily security audits for OpenClaw agents with DM delivery and optional email reporting. Runs deep audits, creates or updates a recurring cron job, and sends formatted reports to configured recipients.
homepage: https://clawsec.prompt.security
metadata:
@@ -81,7 +81,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="openclaw-audit-watchdog"
VERSION="0.1.7"
VERSION="0.1.9"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "openclaw-audit-watchdog",
"version": "0.1.8",
"version": "0.1.9",
"description": "Automated daily security audits for OpenClaw agents with DM delivery and optional email reporting. Creates or updates an unattended cron job and sends formatted reports to configured recipients.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.0.1-beta5] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.1-beta4] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: openclaw-traffic-guardian
version: 0.0.1-beta4
version: 0.0.1-beta5
description: OpenClaw runtime traffic monitoring baseline for opt-in HTTP/HTTPS proxy inspection, egress detection, inbound injection detection, and social-account policy review.
homepage: https://clawsec.prompt.security
author: prompt-security
@@ -31,7 +31,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="openclaw-traffic-guardian"
VERSION="0.0.1-beta3"
VERSION="0.0.1-beta5"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "openclaw-traffic-guardian",
"version": "0.0.1-beta4",
"version": "0.0.1-beta5",
"description": "OpenClaw runtime traffic monitoring baseline for opt-in HTTP/HTTPS proxy inspection, egress detection, inbound injection detection, and social-account policy review.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.0.6] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.5] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: picoclaw-security-guardian
version: 0.0.5
version: 0.0.6
description: Picoclaw security posture skill with advisory awareness, configuration drift detection, and supply-chain verification guidance.
homepage: https://clawsec.prompt.security
author: prompt-security
@@ -34,7 +34,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="picoclaw-security-guardian"
VERSION="0.0.4"
VERSION="0.0.6"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "picoclaw-security-guardian",
"version": "0.0.5",
"version": "0.0.6",
"description": "Picoclaw security posture skill with advisory awareness, configuration drift detection, and supply-chain verification guidance.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.0.5] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.4] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: picoclaw-self-pen-testing
version: 0.0.4
version: 0.0.5
description: Picoclaw-only local posture-review skill focused on read-only findings and safe operator remediation guidance.
homepage: https://clawsec.prompt.security
author: prompt-security
@@ -34,7 +34,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="picoclaw-self-pen-testing"
VERSION="0.0.3"
VERSION="0.0.5"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "picoclaw-self-pen-testing",
"version": "0.0.4",
"version": "0.0.5",
"description": "Picoclaw-only local posture-review skill focused on read-only findings and safe operator remediation guidance.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
@@ -1,5 +1,11 @@
# Changelog
## [0.0.1-beta5] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.1-beta4] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: picoclaw-traffic-guardian
version: 0.0.1-beta4
version: 0.0.1-beta5
description: Picoclaw runtime traffic monitoring baseline for lightweight AI gateway proxy inspection, egress detection, and posture integration.
homepage: https://clawsec.prompt.security
author: prompt-security
@@ -31,7 +31,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="picoclaw-traffic-guardian"
VERSION="0.0.1-beta3"
VERSION="0.0.1-beta5"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "picoclaw-traffic-guardian",
"version": "0.0.1-beta4",
"version": "0.0.1-beta5",
"description": "Picoclaw runtime traffic monitoring baseline for lightweight AI gateway proxy inspection, egress detection, and posture integration.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",
+6
View File
@@ -1,5 +1,11 @@
# Changelog
## [0.0.9] - 2026-06-23
### Changed
- Re-released skill metadata to run through the corrected normal tag publish pipeline without runtime changes.
## [0.0.8] - 2026-06-22
### Changed
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: soul-guardian
version: 0.0.8
version: 0.0.9
description: Drift detection + baseline integrity guard for agent workspace files with automatic alerting support
homepage: https://clawsec.prompt.security
metadata: {"openclaw":{"emoji":"👻","category":"security"}}
@@ -38,7 +38,7 @@ For standalone installs, verify the signed release manifest before trusting `SKI
set -euo pipefail
SKILL_NAME="soul-guardian"
VERSION="0.0.7"
VERSION="0.0.9"
REPO="prompt-security/clawsec"
TAG="${SKILL_NAME}-v${VERSION}"
BASE="https://github.com/${REPO}/releases/download/${TAG}"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "soul-guardian",
"version": "0.0.8",
"version": "0.0.9",
"description": "Drift detection and baseline integrity guard for agent workspace prompt files. Auto-restore critical files with tamper-evident audit logging.",
"author": "prompt-security",
"license": "AGPL-3.0-or-later",