How to Generate Release Notes with OpenClaw in Paradime

Feb 26, 2026

Table of Contents

Automate Customer-Facing Release Notes with Paradime and OpenClaw

Every shipped feature deserves a changelog entry. Here's how to generate release notes automatically—no stale docs, no tribal knowledge, no missing context.

The Problem: Stale Docs, Missing Context, and Tribal Knowledge

Every data team has been there. A sprint closes, 14 pull requests merge, and the release notes are… an empty Confluence page with last quarter's date.

The symptoms are predictable:

  • Stale documentation — Changelogs written weeks after code shipped, if they're written at all. Details are fuzzy, nuance is lost, and the document drifts further from reality with every release.

  • Missing context — Stakeholders ask "what changed?" and the answer lives in a Slack thread that's already been archived. Customer success teams scramble to reverse-engineer feature announcements from commit messages.

  • Tribal knowledge — Only one engineer knows what the refactor-billing-v3 branch actually did. When that person is on vacation, the release note reads "misc improvements."

These aren't minor annoyances—they're compounding risks. Stale release notes erode customer trust. Missing context causes support tickets. Tribal knowledge creates single points of failure.

Figure 1: The vicious cycle of manual release notes—every skipped changelog compounds downstream confusion.

The fix isn't "write better docs." The fix is automation that generates customer-facing release notes the moment code ships, with categorization, context, and zero human intervention.

This guide walks you through exactly that workflow using Paradime and OpenClaw.

What Is Paradime?

Paradime is an AI-native data platform often described as "Cursor for Data." It replaces dbt Cloud™ with a unified environment for coding, shipping, and scaling data pipelines—spanning analytics and AI workloads.

The platform has three core pillars:

Pillar

What It Does

Code IDE

AI-assisted dbt™ and Python development with full lineage, data previews, and DinoAI integration. Cuts development time by 83%+.

Bolt

Production orchestration—schedules, CI/CD, API triggers, and webhook-based pipelines. Deploys jobs 50% faster than dbt Cloud™.

Radar

FinOps engine that reduces Snowflake and BigQuery warehouse costs.

For this workflow, we care most about Bolt—specifically its ability to trigger pipelines via API and run arbitrary Python scripts as part of a schedule.

Bolt supports four trigger types:

  1. Scheduled Run — Cron-based time triggers

  2. On Run Completion — Fires when another schedule finishes

  3. On Merge — Executes when code merges into a Git branch

  4. Bolt API — Programmatic triggers via REST API endpoints

That last one—Bolt API—is what makes this automation possible. You can call a Paradime endpoint from any external system (a GitHub Action, a CI pipeline, or an OpenClaw skill) to kick off a release notes generation job.

What Is OpenClaw?

OpenClaw is an open-source AI agent platform that runs on your own infrastructure. Originally known as Clawdbot, it connects to LLMs (like Anthropic's Claude or OpenAI's GPT) and integrates with messaging platforms—WhatsApp, Telegram, Discord, Slack, Microsoft Teams.

But OpenClaw's real power lies in its Skills system. A Skill is a directory containing a SKILL.md file that gives the LLM instructions and optionally includes scripts, tools, or API integrations. Skills can:

  • Execute shell commands and Python scripts

  • Call external REST APIs with managed credentials

  • Run on configurable schedules via cron

  • Gate behind environment variables (skills auto-disable when required keys are missing)

For this workflow, we'll build a custom OpenClaw skill that:

  1. Fetches merged PRs from GitHub since the last release tag

  2. Categorizes them (features, fixes, breaking changes)

  3. Generates polished, customer-facing release notes using the connected LLM

  4. Triggers a Paradime Bolt schedule to persist and distribute the output

Setup: openclaw-sdk + GitHub API

Prerequisites

Before building the automation, ensure you have:

  • OpenClaw installed and running (curl -fsSL https://openclaw.ai/install.sh | bash)

  • Python 3.9+ with uv for dependency management

  • A GitHub Personal Access Token with repo scope

  • Paradime API credentials (API Key + API Secret with "Bolt Schedules Admin" capability)

  • An LLM provider API key configured in OpenClaw (Anthropic, OpenAI, etc.)

Step 1: Generate Paradime API Keys

  1. In Paradime, navigate to Account Settings → Workspace Settings

  2. Scroll to the bottom and click Generate API Keys

  3. Name the key (e.g., release-notes-bot)

  4. Grant the Bolt schedules admin capability

  5. Store the API_KEY, API_SECRET, and API_ENDPOINT securely

Step 2: Create a GitHub Personal Access Token

  1. Go to github.com/settings/tokens

  2. Generate a fine-grained or classic token with repo scope

  3. Store the token as GITHUB_TOKEN

Step 3: Create the OpenClaw Skill Directory

Step 4: Configure Environment Variables in OpenClaw

Add your credentials to ~/.openclaw/.env:

Or configure them in ~/.openclaw/openclaw.json using the skill-scoped configuration:

Security note: OpenClaw's skill-scoped env values are injected only during skill execution and cleared when the agent run ends—no shell leakage.

Figure 2: Setup checklist—four steps to get your environment ready for the release notes automation.

Script: Fetch, Categorize, and Generate Release Notes

This is the core automation. The Python script performs three jobs:

  1. Fetch merged PRs from GitHub since the last release tag

  2. Categorize each PR as a feature, fix, or breaking change

  3. Generate customer-facing release notes in Markdown

The SKILL.md File

Create ~/.openclaw/workspace/skills/release-notes-generator/SKILL.md:

Arguments

  • --owner: GitHub organization or user (required)

  • --repo: Repository name (required)

  • --output: Output file path (default: release_notes.md)

  • --trigger-bolt: If provided, triggers the named Paradime Bolt schedule after generation

Example

How the Categorization Works

Figure 3: PR categorization logic—labels take priority over title pattern matching for more accurate classification.

Env Vars: GITHUB_TOKEN, OPENCLAW_API_KEY

The automation depends on a small set of environment variables. Here's the full reference:

Variable

Where It's Used

How to Get It

GITHUB_TOKEN

Python script → GitHub API calls

GitHub Settings → Personal Access Tokens. Requires repo scope.

OPENCLAW_API_KEY

OpenClaw → LLM provider authentication

Your LLM provider's API key (Anthropic, OpenAI, etc.). Configured in ~/.openclaw/openclaw.json under the provider config.

PARADIME_API_KEY

Python script → Paradime Bolt API

Paradime Account Settings → Workspace Settings → Generate API Keys. Requires "Bolt Schedules Admin" capability.

PARADIME_API_SECRET

Python script → Paradime Bolt API

Generated alongside PARADIME_API_KEY.

PARADIME_API_ENDPOINT

Python script → Paradime Bolt API

Provided when generating API keys. Workspace-specific GraphQL endpoint.

Setting Variables in Paradime (for Bolt Schedules)

If you want the Bolt schedule itself to have access to GITHUB_TOKEN:

  1. Navigate to Settings → Workspaces → Environment Variables

  2. In the Bolt Schedules section, click Add New

  3. Enter GITHUB_TOKEN as the Key and your token as the Value

  4. Click Save 💾

These variables are injected into every Bolt schedule run. You can also override them at the individual schedule level.

Setting Variables in OpenClaw

OpenClaw resolves environment variables with the following precedence (highest to lowest):

  1. Process environment (parent shell/daemon)

  2. .env in working directory

  3. Global .env at ~/.openclaw/.env

  4. Config env block in ~/.openclaw/openclaw.json

  5. Login-shell import (opt-in)

For skill-scoped secrets, use the openclaw.json approach shown in the Setup section—it ensures credentials are only available during skill execution.

Bolt Schedule: API Trigger on Release

Now let's wire the automation so that a release event in GitHub triggers the entire pipeline.

Step 1: Create the Bolt Schedule in Paradime

  1. In Paradime, navigate to Bolt → Create Schedule

  2. Name it release-notes-pipeline

  3. Set the trigger type to Scheduled Run and click the OFF button to disable the time-based trigger—this makes it an API-only schedule

  4. Add your commands:

  5. Save the schedule

Step 2: Trigger from OpenClaw (Manual)

Ask your OpenClaw agent:

"Generate release notes for paradime-io/analytics-pipeline"

The skill will execute, fetch PRs, generate notes, and optionally trigger the Bolt schedule.

Step 3: Trigger from GitHub Actions (Automated)

Create .github/workflows/release-notes.yml in your repository:

Step 3b: Trigger via Paradime Python SDK

For more control, use the Python SDK in your CI pipeline:

Figure 4: End-to-end sequence—from release event to published release notes, fully automated.

Monitoring and Debugging

Once the automation is running, you need visibility into what's happening at each stage.

Monitoring Bolt Runs

Paradime provides comprehensive monitoring for Bolt schedule runs:

  1. Schedule List View — Navigate to Bolt in Paradime to see all schedules with their latest run status

  2. Run History — Click into any schedule to see a detailed list of all executions, including Run ID, status (Success/Error/Skipped), trigger source, branch, timestamp, and duration

  3. Execution Time History — A graphical view of the last 30 days showing success/error rates and duration trends

  4. Run Log Details — Click any Run ID to see command-by-command console output, artifacts (run_results.json, manifest.json), and timing breakdowns

Setting Up Webhooks for Alerting

Configure Paradime webhooks to get notified on run completion:

  1. Navigate to Account Settings → Webhooks

  2. Click + Add Endpoint

  3. Enter your notification endpoint URL (Slack webhook, PagerDuty, etc.)

  4. Select the bolt.run.completed event

The webhook payload includes full execution details plus query fields for extracting raw console logs and artifacts per dbt™ command.

Monitoring OpenClaw

For the OpenClaw side of the pipeline:

Troubleshooting Common Issues

Issue 1: GitHub API Rate Limiting

Symptom: The script fails with a 403 or 429 response.

Cause: GitHub's REST API allows 5,000 requests/hour for authenticated users. Large repos with hundreds of PRs may exhaust this.

Fix:

  • Ensure GITHUB_TOKEN is set (unauthenticated requests are limited to 60/hour)

  • Use pagination efficiently (the script already does this)

  • For very large repos, narrow the time window by checking the tag date

Issue 2: Bolt Schedule Doesn't Trigger

Symptom: The trigger_run() call returns successfully but the schedule doesn't execute.

Cause: The schedule is disabled, or the API key lacks the required capability.

Fix:

  • Verify the schedule exists and is active in the Bolt UI

  • Confirm your API key has the Bolt Schedules Admin capability (not just Metadata Viewer)

  • Check that the schedule name matches exactly (case-sensitive)

Issue 3: OpenClaw Skill Not Loading

Symptom: Asking the agent to generate release notes produces no response or a generic fallback.

Cause: Missing environment variables, incorrect directory structure, or the skill wasn't indexed.

Fix:

  1. Verify the skill directory exists at ~/.openclaw/workspace/skills/release-notes-generator/

  2. Confirm SKILL.md has valid YAML frontmatter

  3. Check that required env vars are set:

  4. Refresh skills: ask the agent "refresh skills" or restart the gateway

  5. Run diagnostics:

Issue 4: PRs Not Being Categorized Correctly

Symptom: All PRs land in the "Other" category.

Cause: PRs lack conventional labels and titles don't match expected patterns.

Fix:

  • Enforce conventional commit prefixes in PR titles (feat:, fix:, breaking:...)

  • Add GitHub labels (feature, bug, breaking-change) to your PR workflow

  • Extend the CATEGORY_PATTERNS dictionary in the script to match your team's naming conventions

Issue 5: OpenClaw Gateway Won't Start

Symptom: openclaw status reports the gateway as not running.

Fix: Run the triage sequence:

Common causes:

  • gateway.mode not set to "local" → run openclaw configure

  • Port conflict (EADDRINUSE) → change the gateway port in config

  • Missing authentication for non-loopback bind → set a gateway token

Figure 5: Troubleshooting decision tree—quickly identify which component needs attention.

Wrapping Up

Manual release notes are a documentation debt that compounds with every sprint. The workflow in this guide eliminates that debt entirely:

  1. OpenClaw provides the AI agent layer—a skill that can be invoked manually ("generate release notes for our repo") or scheduled via cron

  2. GitHub API supplies the raw data—merged PRs, authors, labels, timestamps

  3. Pattern-based categorization sorts changes into features, fixes, breaking changes, and other

  4. Paradime Bolt orchestrates the pipeline in production—triggered via API, monitored through run history, and integrated with your existing notification stack via webhooks

The result is near-100% coverage: every merged PR appears in the changelog, correctly categorized, with attribution—the moment a release ships.

What This Workflow Replaces

Before

After

Stale Confluence pages updated weeks late

Release notes generated the instant a release is published

"Ask Sarah, she knows what that branch did"

Every PR is fetched, categorized, and attributed automatically

Missing context for customer success teams

Customer-facing Markdown with features, fixes, and breaking changes clearly separated

Manual copy-paste from Git logs

One command or one GitHub event triggers the entire pipeline

Next Steps

  • Customize the categories — Add your team's label conventions to the CATEGORY_PATTERNS dictionary

  • Enrich with LLM summaries — Pipe the raw PR data through OpenClaw's connected LLM to generate plain-English descriptions for non-technical stakeholders

  • Distribute automatically — Use Paradime Bolt webhooks to push the generated notes to Slack, email, or your documentation site on bolt.run.completed

  • Version bump automation — Extend the script to automatically create a new GitHub release with the generated notes as the body

Ship code. Ship notes. Ship confidence.

Paradime documentation: docs.paradime.io · OpenClaw documentation: docs.openclaw.ai · OpenClaw GitHub: github.com/openclaw/openclaw

Interested to Learn More?
Try Out the Free 14-Days Trial

Stop Managing Pipelines. Start Shipping Them.

Join the teams that replaced manual dbt™ workflows with agentic AI. Free to start, no credit card required.

Stop Managing Pipelines. Start Shipping Them.

Join the teams that replaced manual dbt™ workflows with agentic AI. Free to start, no credit card required.

Stop Managing Pipelines. Start Shipping Them.

Join the teams that replaced manual dbt™ workflows with agentic AI. Free to start, no credit card required.

Copyright © 2026 Paradime Labs, Inc. Made with ❤️ in San Francisco ・ London

*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.

Copyright © 2026 Paradime Labs, Inc. Made with ❤️ in San Francisco ・ London

*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.

Copyright © 2026 Paradime Labs, Inc. Made with ❤️ in San Francisco ・ London

*dbt® and dbt Core® are federally registered trademarks of dbt Labs, Inc. in the United States and various jurisdictions around the world. Paradime is not a partner of dbt Labs. All rights therein are reserved to dbt Labs. Paradime is not a product or service of or endorsed by dbt Labs, Inc.