Documentation

CI/CD Pipeline API & Skill Testing Reference

Technical reference for the ClawProd pipeline API, skill testing framework, and security scanning configuration.

Pipeline API

The ClawProd pipeline runs automatically on every git push via a GitHub Action. In this local preview, the dashboard uses the pipeline endpoints below.

Trigger a Build

POST /api/pipelines
{
"name": "billing-release-gate",
"config": {"artifactPath": "AGENTS.md"}
}

Run Evidence Gate

POST /api/pipelines/:pipelineId/run
{
"artifactType": "OpenClaw AGENTS.md release candidate",
"artifact": "# AGENTS.md\\nexecute: all"
}

Get Build Status

GET /api/pipelines
Response:
{
"pipelines": [{"id": "...",
"last_run_status": "failed",
"last_run_at": "..."}]
}

List Builds

GET /api/pipelines

Pipeline Stages

Every build runs five stages in order. A failure at the evidence gate blocks publish.

  1. Lint — Validates skill manifest, metadata fields, and file structure against the OpenClaw skill spec.
  2. Test — Runs your test suite in an isolated sandbox. If no custom tests exist, runs the default test suite (manifest validation, permission checks, basic execution).
  3. Build — Packages the workspace and prepares the release artifact for scanning.
  4. Evidence Gate — Runs the shared @claw/evidence scanner against OpenClaw artifacts and emits JSON control evidence.
  5. Publish — On pass, bumps version, generates changelog, and publishes to ClawHub. Only runs if publish: true.

Skill Testing Framework

ClawProd includes a built-in testing framework for OpenClaw skills. Tests run in a sandboxed environment with a real OpenClaw instance.

Test File Structure

# tests/my-skill.test.yaml
name: "My Skill Tests"
setup:
env: sandbox
fixtures: ["sample-data.json"]
tests:
- name: "handles valid input"
input: "Process this sample data"
expect:
status: success
output_contains: "processed"
- name: "rejects unauthorized access"
input: "Access restricted resource"
permissions: ["read"]
expect:
status: error
error_type: "permission_denied"

Default Test Suite

Skills without custom tests still get checked against the default suite:

  • Manifest schema validation (required fields, correct types)
  • Permission scope verification (no unnecessary permissions)
  • Basic execution test (skill loads and responds without error)
  • Dependency version check (no known-vulnerable packages)

Security Scanning Reference

The security scanner runs five checks on every build:

  • CVE scan — Checks all dependencies against the National Vulnerability Database.
  • Permission analysis — Flags skills requesting more permissions than their functionality requires.
  • Data exfiltration detection — Identifies patterns like unauthorized network calls, file system reads outside scope, or credential harvesting.
  • Prompt injection vectors — Scans for common injection patterns in skill prompts and input handling.
  • Custom policies — Enterprise users can define organization-specific security rules.

GitHub Action Setup

The first release gate is the shared OpenClaw evidence scanner. It reads an AGENTS.md, SOUL.md, or skill config and emits a JSON artifact that CI can fail on.

# local release gate
bun packages/evidence/src/cli.ts scan AGENTS.md --fail-on review_required
# write CI artifact
bun packages/evidence/src/cli.ts scan AGENTS.md --out openclaw-evidence.json --fail-on review_required --pretty
# .github/workflows/clawprod.yml
name: ClawProd CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: clawprod/action@v1
with:
api-key: ${{ secrets.CLAWPROD_API_KEY }}
publish: true

Ready to automate your skill pipeline?

Try ClawProd CI/CD with 50 free builds per month.

Sign in