Verified SOP & TutorialAudited Score 98/100

The Complete Production SOP: How to Deploy and Run Google Release Please Automated Release PRs in Autonomous AI Agents

Step-by-step SOP to install and run Google Release Please Automated Release PRs in Codex, Claude Code, and Cursor. Includes verified prompts and troubleshooting.

Target Runtimes:codexclaude-codecursorwindsurf
5 min read • Updated for 2026

Technical Overview & Architectural Context

Autonomous coding agents frequently stumble when provisioning semantic release infrastructure. When asked to configure changelog generation and automated release branching, agents typically hallucinate custom shell scripts, invent unsupported keys in `release-please-config.json`, or overwrite `.release-please-manifest.json` versions incorrectly. These misconfigurations result in stalled GitHub Action runs, broken Conventional Commit parses, and detached tag states in multi-package monorepos. The `release-please-automated-changelog` skill constrains agent execution within Google's formal Release Please specification. By explicitly enforcing manifest version mapping, exact schema formatting, and pinned Action declarations (`googleapis/release-please-action@v4`), the agent acts deterministically without invoking unnecessary shell scripts or needing network access during the local workspace configuration phase.

Prerequisites & Environment Requirements

Codex Desktop, Claude Code CLI, Cursor, or Windsurf installed with workspace access
Git 2.40+ configured with Conventional Commits history on main/master branch
GitHub repository write permissions to trigger Actions and manage pull requests

Verified Search Intents & Long-Tail Queries Solved

SEO Audit Score: 98/100

This operational tutorial is engineered to provide deterministic solutions for these developer search queries:

#install release-please-automated-changelog in cursor ide#claude code release please action manifest setup#codex desktop automated release pr google workflow#how to fix release-please-automated-changelog schema validation error#release-please manifest config generator for ai agents#github actions release please automation with windsurf#deterministic devops release pr agent sop

Step-by-Step Execution Playbook

1

Local Environment Setup & SKILL.md Mounting

Mount the release-please-automated-changelog skill into the agent's active configuration path.

Autonomous runtimes read agent capabilities via the `.agents/skills` standard. Mounting the verified `SKILL.md` establishes workspace write constraints (`fs_write: workspace`) while preventing the model from hallucinating dangerous shell commands (`shell_exec: false`).

Terminal Command
mkdir -p ~/.agents/skills/release-please-automated-changelog && cat << 'EOF' > ~/.agents/skills/release-please-automated-changelog/SKILL.md --- name: "release-please-automated-changelog" description: "Automate changelog generation and release pull requests using Google's Release Please." metadata: author: "Google" version: "1.0.0" runtime_compatibility: - "codex" - "claude-code" - "cursor" - "windsurf" triggers: - "configure release please action" - "automated release pr google" - "release-please manifest" permissions: fs_read: true fs_write: "workspace" shell_exec: false net_access: false --- EOF
~/.agents/skills/release-please-automated-changelog/SKILL.md
---
name: "release-please-automated-changelog"
description: "Automate changelog generation and release pull requests using Google's Release Please."
metadata:
  author: "Google"
  version: "1.0.0"
  runtime_compatibility:
    - "codex"
    - "claude-code"
    - "cursor"
    - "windsurf"
triggers:
  - "configure release please action"
  - "automated release pr google"
  - "release-please manifest"
permissions:
  fs_read: true
  fs_write: "workspace"
  shell_exec: false
  net_access: false
---
Production Pro-Tip

Setting `shell_exec: false` preserves tokens by forcing the agent to author `.json` and `.yml` files directly via file-system writes instead of invoking verbose subshells.

Sandbox Gotcha

In Cursor and Windsurf, ensure the skill path is placed in your project root at `.cursor/skills` or `.windsurf/skills` if user-global skill loading is disabled in IDE settings.

2

Config & Manifest Initialization

Instruct the agent to generate standard Release Please configuration and manifest files.

Release Please requires `release-please-config.json` defining package structure and `.release-please-manifest.json` tracking current release versions. The agent must pair these files accurately based on project type (e.g., node, python, or simple).

Terminal Command
test -f release-please-config.json || echo '{}' > release-please-config.json
release-please-config.json
{
  "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
  "packages": {
    ".": {
      "release-type": "node",
      "package-name": "my-app",
      "changelog-path": "CHANGELOG.md"
    }
  }
}
Production Pro-Tip

Always provide the `$schema` URL in JSON configs; modern LLM context parsers validate syntax against the schema automatically, eliminating invalid key hallucinations.

Sandbox Gotcha

Do not leave `.release-please-manifest.json` missing package paths declared in `release-please-config.json`, or the GitHub Action will throw an unmatched package error.

3

GitHub Actions Workflow Provisioning

Inject the official Release Please Action workflow into `.github/workflows/release.yml`.

Release Please requires a workflow triggered on commits to the target branch. The agent generates the workflow with necessary permissions (`contents: write`, `pull-requests: write`) so the action can create branches and PRs automatically.

.github/workflows/release.yml
name: Release Please

on:
  push:
    branches:
      - main

permissions:
  contents: write
  pull-requests: write

jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - uses: googleapis/release-please-action@v4
        with:
          config-file: release-please-config.json
          manifest-file: .release-please-manifest.json
Production Pro-Tip

Pin to `@v4` explicitly. Older `@v3` actions fail when parsing modern manifest configurations and require legacy input params.

Sandbox Gotcha

The default repository `GITHUB_TOKEN` must have 'Read and write permissions' enabled under Repository Settings > Actions > General > Workflow permissions.

4

Verification, Linting & Output Quality Gate

Verify JSON syntax and manifest key alignment before committing changes.

Before completing the session, the skill executes a validation checklist: checking that `.release-please-manifest.json` versions match `package.json` (or language equivalent) and validating YAML syntax.

Terminal Command
node -e 'JSON.parse(require("fs").readFileSync("release-please-config.json")); JSON.parse(require("fs").readFileSync(".release-please-manifest.json")); console.log("Manifests valid!")'
Production Pro-Tip

Run `git diff --staged` before prompting the agent to mark the task complete to ensure no extra root configs were altered.

Sandbox Gotcha

If the repository uses tag prefixes (e.g., `v1.0.0`), ensure `release-type` or `include-component-in-tag` matches existing repository tag patterns.

Real-World Scenario: Automating Monorepo SemVer Releases with Google Release Please

Tested Trigger Prompt (Feed directly into Codex, Claude, or Cursor):

“Set up automated release PRs using Google Release Please for our Node.js workspace. We need release-please manifest configuration tracking the root package at version 1.2.0 and the GitHub Action workflow on the main branch.”

Deterministic Agent Verification Pipeline:
Identifies trigger 'release-please manifest' and loads skill `release-please-automated-changelog`.
Generates `release-please-config.json` with `release-type: node` targeting root `.`.
Generates `.release-please-manifest.json` setting `".": "1.2.0"`.
Creates `.github/workflows/release.yml` with `googleapis/release-please-action@v4` with required write permissions.
Validates JSON formatting and confirms no shell commands or external network resources were executed.

Runtime Troubleshooting & Failure Modes

Error: HttpError: Resource not accessible by integration (403) on pull-requests:write

Root Cause: The default GitHub GITHUB_TOKEN has read-only permissions by default, preventing Release Please from opening the automated release pull request.

Resolution Command / Fix:
# Add permissions block explicitly inside .github/workflows/release.yml:
permissions:
  contents: write
  pull-requests: write
Error: Error: Path . in config release-please-config.json was not found in manifest .release-please-manifest.json

Root Cause: A key disparity between packages declared in the config and entries recorded in the manifest file.

Resolution Command / Fix:
# Ensure .release-please-manifest.json includes every path defined in config:
{
  ".": "1.0.0"
}

Frequently Asked Questions (Google Release Please Automated Release PRs SOP)

Q:Can I use Google Release Please Automated Release PRs across Codex, Claude Code, and Cursor simultaneously?

Yes. The skill conforms to the universal SKILL.md specification supported across Codex, Claude Code, Cursor, and Windsurf, operating on shared JSON/YAML configurations.

Q:How does Google Release Please Automated Release PRs prevent context window overflow during long agent sessions?

By constraining instructions to declarative file creation (`release-please-config.json`, `.release-please-manifest.json`, and workflow YAML), preventing unnecessary tool invocation and context bloat.

Q:Does this skill require escalated root or container permissions?

No. The skill possesses a security score of 98/100, requires zero network calls during local setup, and enforces `fs_write: workspace` strictly within your project directory.

Ready to equip your autonomous agent with Google Release Please Automated Release PRs?

Copy the complete audited SKILL.md specification or download the 1-click zip bundle directly from our verified registry.

Get 1-Click Install Spec