بنقرة واحدة
release
Prepare and execute a full OTGW-firmware release following the documented release process
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Prepare and execute a full OTGW-firmware release following the documented release process
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Publish an OTGW-firmware beta prerelease — bump _VERSION_PRERELEASE, push to otgw-1.x.x, tag, and let CI build + publish the GitHub prerelease
Drive the autonomous 2.0.0 ESP32-S3-only async + FreeRTOS migration (epic TASK-865). Runs a continuous workflow that audits stuck/finishable backlog tasks, then drains every actionable async-esp32s3 task back-to-back (implement -> build/eval -> adversarial review -> commit/push -> Discord) without waiting between tasks, then runs ONE end-of-loop ADR-evaluation pass that drafts Proposed ADRs for the run's architectural decisions, and can fan out to parallel worktree lanes. Use for one drain run of the migration loop (cron or manual).
Update all OTGW-firmware documentation in one sequential, backlog-tracked workflow
Generate a complete, self-contained design-system package for an embedded device's on-device web UI — one tokens file, one component library, a /design.html reference page, page-templates with sentinel-marked patch blocks, a Windows installer script (PS1 + .bat wrapper), and a handoff.md aimed at Claude Code for the markup edits and per-patch commits.
Generate a complete, self-contained design-system package for an embedded device's on-device web UI — one tokens file, one component library, a /design.html reference page, page-templates with sentinel-marked patch blocks, a Windows installer script (PS1 + .bat wrapper), and a handoff.md aimed at Claude Code for the markup edits and per-patch commits.
Guided rewrite of legacy-shaped ADRs into the canonical-seven-section template enforced by /adr-kit:lint. Promotes inline status / date lines to a
| name | release |
| description | Prepare and execute a full OTGW-firmware release following the documented release process |
| disable-model-invocation | true |
Prepare and execute a complete release of the OTGW-firmware project.
/release <version>
Example: /release 1.3.2
The version argument is the target release version (without v prefix). The previous version is auto-detected from the latest git tag.
Follow these phases in order. There are only 2 mandatory checkpoints (marked with CHECKPOINT). All other phases proceed automatically unless something unexpected happens.
Start every release by ensuring a clean working state and detecting the baseline.
dev: git checkout devgit status - if there are modified or untracked files, stage, commit, and push themgit pull - incorporate any remote changesgit push origin dev - ensure local and remote are in syncgit status must show nothing to commit, working tree cleangh release view --json tagName,name,publishedAt --jq '{tag: .tagName, title: .name, date: .publishedAt}'
Store the tag name (e.g., v1.3.2) and published date for use in later phases.git fetch --tags && git log <prev-tag> --oneline -1git log <prev-tag>..HEAD --oneline -- src/ | grep -v "CI: update version.h"
Check whether any architectural changes since the previous release require new or updated ADRs.
docs/adr/ for existing ADRs that may need their Related section updateddev before proceedingConditional stop: Only pause for user input if ADRs are actually needed. If no ADRs are required, report that and proceed automatically.
dev and push to remotemkdir -p .tmp
python build.py 2>&1 | tee .tmp/build_release.log | tail -10
echo "Exit: $?"
If exit code != 0: read .tmp/build_release.log for diagnosis, fix, retry. If exit code == 0: proceed — do NOT read the full log.No checkpoint. If the build succeeds, proceed automatically to Phase 3.
git checkout main && git pull origin maingit merge devConditional stop: Only pause if there are merge conflicts. Otherwise proceed.
On main, run the /update-docs workflow in release mode. This handles all documentation in a single efficient parallel pass — do not duplicate work here.
Invoke update-docs:
/update-docs --release <version>
The update-docs workflow (/.claude/skills/update-docs/SKILL.md) will:
RELEASE_NOTES_<version>.md, RELEASE_GITHUB_<version>.md, docs/BREAKING_CHANGES.md, and README What's NewDiscord context for contributor gathering:
812969634638725140914498730001072149924989767966425158384411356616720384 (number3nl)fuzzyduck3793 → fuzzyduck), except where removal makes the name ambiguousThe update-docs workflow returns without committing (release mode). All generated files are staged for the CHECKPOINT review.
CHECKPOINT 1: Present the categorized changes, contributor list, AND all generated documentation content to the user for review. Wait for approval before proceeding.
Proceed directly after Phase 4 approval. No additional confirmation needed.
main and push to remoteversion.h: Comment out _VERSION_PRERELEASE so the build produces a clean v<version> without -beta. Verify: grep -n "PRERELEASE" src/OTGW-firmware/version.hpython build.py 2>&1 | tee .tmp/build_release_final.log | tail -10
echo "Exit: $?"
Fix any issues. Read .tmp/build_release_final.log only on failure.main to remotev<version> - <Short Title>. Examples: v1.3.2 - File Explorer Reliability Fix, v1.4.0 - REST API v3 & Prometheus. Command: gh release create v<version> --target main --title "v<version> - <Short Title>" --notes-file RELEASE_GITHUB_<version>.md --draftgh release upload v<version> build/*.ino.bin build/*.littlefs.bin --clobbergh release view v<version> --json assets --jq '.assets[].name'gh release edit v<version> --draft=false --latestGET /api/v2/device/info#nederlandse-ondersteuning (channel ID: 815561033036333076)#english-support (channel ID: 931267109726593116)CHECKPOINT 2: Show both Discord messages to the user before sending.
git checkout dev && git merge mainversion.h: increment patch version, uncomment _VERSION_PRERELEASE and set to betaautoinc-semver.py to update derived stringsfeat: Bump version to v<next>-beta for developmentdevSometimes a user asks to correct text in an already-published release. Editing RELEASE_GITHUB_<version>.md in the repo does not update the GitHub release page automatically: the release body is a copy taken at gh release create time and lives on GitHub, not in the repo.
Whenever you update release notes, README, or the GitHub release body after publication, do all three in the same round:
RELEASE_NOTES_<version>.md, README.md, RELEASE_GITHUB_<version>.md) on main.main.gh release edit v<version> --notes-file RELEASE_GITHUB_<version>.mdmain back into dev so both branches reflect the correction: git checkout dev && git merge main && git push origin devSkipping step 3 leaves the repo and the GitHub release page out of sync. Skipping step 4 means the next beta cycle starts from stale release docs.
python build.py, artifacts uploaded via gh release uploaddocs/process/RELEASE_PROCESS.md at the start of every release for the latest process updatesRELEASE_GITHUB_<version>.md does NOT update the published release page. After any edit, run gh release edit v<version> --notes-file RELEASE_GITHUB_<version>.md to push the change to GitHub, then merge main back into dev so both branches carry the correction.