en un clic
pr-workflow
// Create pull requests for esphome/aioesphomeapi. Use when creating PRs, submitting changes, or preparing contributions.
// Create pull requests for esphome/aioesphomeapi. Use when creating PRs, submitting changes, or preparing contributions.
| name | pr-workflow |
| description | Create pull requests for esphome/aioesphomeapi. Use when creating PRs, submitting changes, or preparing contributions. |
| allowed-tools | Read, Bash, Glob, Grep |
When creating a pull request for esphome/aioesphomeapi, follow
these steps. Repo-wide conventions live in
CLAUDE.md; this skill summarises the parts
that matter at PR-creation time.
There is no fork in this workflow — origin already points at
esphome/aioesphomeapi. Always re-fetch first so the branch is
based on the latest main:
git fetch origin
git checkout -b <branch-name> origin/main
Before creating a PR, read .github/PULL_REQUEST_TEMPLATE.md and
fill in every section. The template asks for:
Bugfix,
New feature, Breaking change,
Code quality improvements to existing code or addition of tests,
or Other. Pick the one a future release-notes reader would
expect; release-drafter slots PRs by label
(breaking-change, new-feature, bugfix, enhancement,
documentation, dependencies).fixes <link> syntax if
applicable.api.proto
is modified (see step 3).The protocol is defined firmware-side. If the PR modifies
aioesphomeapi/api.proto, the matching change MUST land in
esphome/esphome first; link the esphome PR in the body and tick
the "linked pull request has been made to esphome" checkbox. After
modifying the proto, regenerate the bindings with the docker image
documented in CLAUDE.md
so api_pb2.py stays in sync with the protobuf runtime version.
Co-Authored-By: Claude trailer. Project preference.Read .github/PULL_REQUEST_TEMPLATE.md from the repo at
PR-creation time and use it verbatim as the body — do not
reproduce, paraphrase, or trim the template anywhere else, or it
will silently drift out of sync as the template evolves.
When filling in the template:
<!-- ... --> prompt comments with the actual prose
for that section. Do not delete anything else.- [ ].--body-file, never --body "..." with
shell-escaping.git push -u origin <branch-name>
# Read .github/PULL_REQUEST_TEMPLATE.md, fill it in as above,
# write the result to a temp file, then:
gh pr create --repo esphome/aioesphomeapi --base main \
--title "Imperative subject under 70 chars" \
--body-file /tmp/pr-body.md
The keep-the-checklist-honest rule applies — only tick a checklist box you've actually verified. "Tests have been added" is verified by pointing at the new test file in the diff; "linked PR to esphome" is verified by clicking the link.
CI runs ruff (lint + format), the test matrix, and the file-glob
labeller (.github/workflows/labeler.yml only auto-labels
dependencies based on changed files; the other release-drafter
labels — bugfix, new-feature, breaking-change,
enhancement, documentation — are applied by maintainers from
the Types-of-changes tick). If a maintainer relabels, that's not
a sign your tick was wrong — it's the editorial slotting for the
release notes.