home / skills / laurigates / claude-plugins / release-please-standards
This skill helps configure and validate release-please standards, ensuring proper workflow setup, manifest, and config for automated semantic releases.
npx playbooks add skill laurigates/claude-plugins --skill release-please-standardsReview the files below or copy the command above to add this skill to your agents.
---
model: haiku
created: 2025-12-16
modified: 2026-02-06
reviewed: 2025-12-16
name: release-please-standards
description: |
Release-please standards and configuration. Use when configuring release-please
workflows, checking release automation compliance, or when the user mentions
release-please, automated releases, or version management.
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
---
# Release-Please Standards
## Version: 2025.1
Standard release-please configuration for automated semantic versioning and changelog generation.
## Standard Configuration
### GitHub Actions Workflow
**File**: `.github/workflows/release-please.yml`
```yaml
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:
token: ${{ secrets.MY_RELEASE_PLEASE_TOKEN }}
```
### Configuration Files
**File**: `release-please-config.json`
```json
{
"packages": {
".": {
"release-type": "node",
"changelog-sections": [
{"type": "feat", "section": "Features"},
{"type": "fix", "section": "Bug Fixes"},
{"type": "perf", "section": "Performance"},
{"type": "deps", "section": "Dependencies"},
{"type": "docs", "section": "Documentation", "hidden": true},
{"type": "chore", "section": "Miscellaneous", "hidden": true}
]
}
},
"plugins": ["node-workspace"]
}
```
**File**: `.release-please-manifest.json`
```json
{
".": "0.0.0"
}
```
Note: Version `0.0.0` is a placeholder - release-please updates this automatically.
## Project Type Variations
### Node.js Frontend/Backend
- release-type: `node`
- plugins: `node-workspace`
- Updates: `package.json` version field
### Python Service
- release-type: `python`
- Updates: `pyproject.toml` version field, `__version__` in code
### Infrastructure (Helm)
- release-type: `helm`
- Updates: `Chart.yaml` version field
### Multi-package Repository
```json
{
"packages": {
"packages/frontend": {
"release-type": "node",
"component": "frontend"
},
"packages/backend": {
"release-type": "node",
"component": "backend"
}
},
"plugins": [
"node-workspace",
{
"type": "linked-versions",
"groupName": "workspace",
"components": ["frontend", "backend"]
}
]
}
```
## Required Components
### Minimum Requirements
1. **Workflow file**: `.github/workflows/release-please.yml`
- Uses `googleapis/release-please-action@v4`
- Token: `MY_RELEASE_PLEASE_TOKEN` secret
- Triggers on push to `main`
2. **Config file**: `release-please-config.json`
- Valid release-type for project
- changelog-sections defined
3. **Manifest file**: `.release-please-manifest.json`
- Lists all packages with current versions
### Token Configuration
The workflow uses `MY_RELEASE_PLEASE_TOKEN` secret (not `GITHUB_TOKEN`) because:
- Allows release PRs to trigger other workflows
- Enables CI checks on release PRs
- Maintains proper audit trail
## Compliance Checking
### Status Levels
| Status | Condition |
|--------|-----------|
| PASS | All three files present with valid configuration |
| WARN | Files present but using deprecated action version |
| FAIL | Missing required files or invalid configuration |
### Validation Rules
1. **Workflow validation**:
- Action version: `v4` (warn if older)
- Token: Must use secret, not hardcoded
- Trigger: Must include `push` to `main`
2. **Config validation**:
- release-type: Must be valid (node, python, helm, simple)
- changelog-sections: Must include feat and fix
3. **Manifest validation**:
- Must be valid JSON
- Packages must match config
## Protected Files
**IMPORTANT**: Release-please manages these files automatically:
- `CHANGELOG.md` - Never edit manually
- Version fields in `package.json`, `pyproject.toml`, `Chart.yaml`
- `.release-please-manifest.json` - Only edit for initial setup
See `release-please-protection` skill for enforcement.
## Conventional Commits
Release-please requires conventional commit messages:
| Prefix | Release Type | Example |
|--------|--------------|---------|
| `feat:` | Minor | `feat: add user authentication` |
| `fix:` | Patch | `fix: correct login timeout` |
| `feat!:` | Major | `feat!: redesign API` |
| `BREAKING CHANGE:` | Major | In commit body |
## Installation
1. Create workflow file
2. Create config file
3. Create manifest file
4. Add `MY_RELEASE_PLEASE_TOKEN` to repository secrets
5. Ensure pre-commit has conventional-pre-commit hook
## Troubleshooting
### Release PR Not Created
- Check conventional commit format
- Verify workflow has correct permissions
- Ensure token has write access
### Version Not Updated
- Check manifest file is valid JSON
- Verify release-type matches project
- Review release-please logs in Actions
### CI Not Running on Release PR
- Token must be PAT, not GITHUB_TOKEN
- Verify workflow trigger includes pull_request
This skill codifies Release-Please standards and a vetted configuration for automated semantic versioning, changelog generation, and multi-package workflows. It helps teams set up and validate release-please workflows, enforce required files and tokens, and map behavior to common project types (Node, Python, Helm).
The skill inspects repository files and workflow configuration to verify presence and validity of three required artifacts: the GitHub Actions workflow, release-please-config.json, and .release-please-manifest.json. It checks action version, token usage, triggers, release-type values, changelog sections, and manifest consistency. It reports PASS/WARN/FAIL status and offers concrete remediation steps for common errors.
Why use MY_RELEASE_PLEASE_TOKEN instead of GITHUB_TOKEN?
A PAT in MY_RELEASE_PLEASE_TOKEN allows release PRs to execute CI and trigger other workflows; GITHUB_TOKEN is restricted and blocks those actions.
What causes a FAIL status in compliance checks?
FAIL occurs when required files are missing or invalid JSON/configuration, release-type is unsupported, or packages in the manifest don’t match the config.