Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/agent-engineering-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-engineering-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Agent-system design, orchestration, scheduling, external-agent, and evaluation workflow skills.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-engineering-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agent-engineering-skills-maintenance"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer-only Python tooling baseline for agent-engineering-skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-engineering-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/agent-portability-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-portability-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Skills for agent portability, ACP, A2A, Zed, Hermes, Codex plugin surfaces, and host adapter guidance.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-portability-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agent-portability-skills-maintenance"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer-only Python tooling baseline for Agent Portability Skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-portability-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/agentdeck/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agentdeck",
"version": "9.31.1",
"version": "9.31.2",
"description": "Local Codex runtime utilities for thread, hook, and app-server workflows.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/android-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "android-dev-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Android, Kotlin, Java, Gradle, Android Gradle Plugin, testing, lint, UI implementation, and release-readiness workflow skills.",
"author": {
"name": "Gale",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-creator-studio-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Human-facing and Computer Use-aware Apple Creator Studio workflows for Final Cut Pro editing, Motion templates, Compressor delivery, Logic Pro production, MainStage concert preparation, and GarageBand projects.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-dev-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Apple development workflows for Codex, including macOS privacy permissions, sandbox file access, entitlement diagnosis, virtualization, SwiftPM, Xcode, app extensions, media, provisioning, SwiftUI, AppKit, Safari, security, OpenAPI, and DocC.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "apple-dev-skills-maintainer"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer tooling for the apple-dev-skills repository"
requires-python = ">=3.10"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/cardhop-app/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cardhop-app",
"version": "9.31.1",
"version": "9.31.2",
"description": "Cardhop.app workflow guidance plus a bundled local MCP server for contact capture and updates on macOS.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/cardhop-app/mcp/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "cardhop-app-mcp"
version = "9.31.1"
version = "9.31.2"
requires-python = ">=3.13"
dependencies = [
"fastmcp>=3.0.2",
Expand Down
2 changes: 1 addition & 1 deletion plugins/cardhop-app/mcp/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/cloud-deployment-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cloud-deployment-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Codex skills for routing cloud deployment work through official provider plugins, MCP servers, CLIs, and a reusable Dockerized-service release and deployment contract.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/cloud-inference-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cloud-inference-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Cloud AI inference workflow skills for routing model serving, training, conversion, and GPU infrastructure work across Runpod, Hugging Face, AWS, Vast.ai, CoreWeave, and similar providers.",
"author": {
"name": "Gale",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "codebase-understanding-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Code-path exploration, call-site tracing, and evidence-based codebase explanation skills.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/cybersecurity-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cybersecurity-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Defensive cybersecurity, isolated Linux and macOS analysis labs, suspicious-content and malware analysis, macOS defense, vulnerability testing, pentesting, and incident response workflows.",
"skills": "./skills/",
"author": {
Expand Down
2 changes: 1 addition & 1 deletion plugins/documentation-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "documentation-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Documentation maintenance skills for README, contributor, agent, API, accessibility, architecture, and roadmap surfaces.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/documentation-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "documentation-skills-maintenance"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer-only Python tooling baseline for documentation-skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/documentation-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/dotnet-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "dotnet-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Codex skills for choosing, bootstrapping, building, testing, packaging, diagnosing, and maintaining .NET projects, including F# web applications, with F# and C# as equal first-party languages.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/game-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "game-dev-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Apple platform game development workflow skills for native Metal rendering, Game Porting Toolkit routing, MetalFX, GPU asset streaming, neural rendering, frameworks, input, haptics, and profiling.",
"author": {
"name": "Gale",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "messaging-collaboration-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Codex workflows for chat apps, bots, collaboration, iMessage, Apple notifications and Push to Talk, VoIP, and default communication-app planning.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/model-lab-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "model-lab-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Reproducible model training, evaluation, intervention, and runtime research workflows.",
"author": {
"name": "Gale"
Expand Down
2 changes: 1 addition & 1 deletion plugins/network-protocol-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "network-protocol-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Codex skills for choosing, planning, implementing, and diagnosing modern application transports and real-time networking protocols, including QUIC, HTTP/3, WebRTC, Media over QUIC, WebTransport-adjacent handoffs, protocol maturity checks, and stack-specific implementation routing.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/professional-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "professional-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Professional workflow skills for job search, career materials, and external professional services.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/professional-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "professional-skills-maintenance"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer-only Python tooling baseline for professional-skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/professional-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/python-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "python-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Bundled Python-focused Codex skills for uv bootstrapping, project implementation, diagnostics, packaging, tooling, CI, upgrades, FastAPI service maintenance, FastMCP service maintenance, and testing workflows.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/python-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "python-skills-maintainer"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer tooling for the python-skills repository"
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/python-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/repository-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "repository-skills",
"version": "9.31.1",
"version": "9.31.2",
"description": "Repository operations, GitHub settings, worktree, validation, and release workflow skills.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/repository-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "repository-skills-maintenance"
version = "9.31.1"
version = "9.31.2"
description = "Maintainer-only Python tooling baseline for repository-skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Install or refresh the reusable `maintain-project-repo` toolkit inside a general
- use the selected profile's `sync-shared.sh` for repo-local shared sync tasks
- use the selected profile's `release.sh --mode standard --operation prepare` from a feature branch or worktree when protected `main` owns the final release line
- for remote CI, review bots, deployment, or GitHub indexing, consume the emitted continuation packet and first reuse the live matching host-native continuation while the gate remains pending and healthy; do not delete/recreate it for an unchanged snapshot. Codex uses a same-thread heartbeat and Hermes uses an updated continuable `cronjob` with `deliver="origin"` and `attach_to_session=true`; pause/delete only when the gate resolves, fails, is cancelled, or changes identity
- on wakeup, run `--operation inspect` first; run `--operation advance` only if the branch, commit, PR, and tag identities still match the continuation packet. Treat pending review-bot status contexts such as CodeRabbit as a wait state, not permission to merge
- on wakeup, run `--operation inspect` first; run `--operation advance` only if the branch, commit, PR, and tag identities still match the continuation packet. Treat pending review-bot status contexts such as CodeRabbit as a wait state, not permission to merge, except when CodeRabbit explicitly reports that a quota, usage, rate, or review limit prevented it from producing a review; that diagnostic is non-blocking while every other check, finding, requested change, and comment remains gated
- use `scripts/repo-maintenance/release.sh --mode submodule` only when the repo is checked out as a submodule and the parent pointer update remains a separate follow-up
- treat SemVer tags with prerelease suffixes such as `vX.Y.Z-alpha.N`, `vX.Y.Z-beta.N`, `vX.Y.Z-rc.N`, or preview-style suffixes as GitHub prereleases; the release script passes `--prerelease` for those tags and rejects existing release objects whose prerelease metadata does not match the tag
- before claiming a release, publish, merge, or cleanup step is done, enumerate every local branch still not contained by the local base branch and account for each one as already preserved elsewhere, intentionally still in progress, newly archived, newly merged, or safe to delete
Expand Down Expand Up @@ -125,6 +125,7 @@ Install or refresh the reusable `maintain-project-repo` toolkit inside a general
- The generated GitHub Actions wrapper uses Node 24-compatible Actions versions, with `actions/checkout@v6.0.2` as the current validated floor. Newer stable official action versions are allowed and often preferred after checking release notes and running the relevant validation. Apple profiles report the runner-selected Xcode with shell commands instead of using the Node 20-based `maxim-lobanov/setup-xcode@v1` action.
- Standard release mode has bounded `prepare`, `inspect`, and `advance` operations. It never watches or polls remote state: it reuses a live matching host-native continuation while its gate is pending and healthy, creates/updates one only after it fires or becomes stale, resumes with `inspect`, and advances only after identity checks still match the packet. Every scheduled interval is at least five minutes.
- GitHub release creation preserves prerelease metadata for SemVer prerelease tags and fails clearly when an existing GitHub release object disagrees with the tag.
- GitHub release creation prefers checked-in `docs/releases/vX.Y.Z.md` notes, then `docs/releases/X.Y.Z.md`; it logs and falls back to GitHub-generated notes only when neither file exists.
- Treat branch accounting as a hard completion gate for release and cleanup work, not as follow-up tidying. If `git branch --no-merged <base>` reports local branches after a merge, account for each branch explicitly before deleting anything or reporting the workflow complete.
- Recommend `bootstrap-swift-package` or `bootstrap-xcode-app-project` when the repo still needs to be created.
- Recommend `sync-swift-package-guidance` or `sync-xcode-project-guidance` when AGENTS alignment is still the missing baseline after `maintain-project-repo` is present.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env sh

# Return success only when CodeRabbit explicitly reports that a review could
# not be produced because its quota, usage, or review limit was reached.
coderabbit_review_is_unavailable() {
source_name="$(printf '%s' "$1" | tr '[:upper:]' '[:lower:]')"
message="$(printf '%s' "$2" | tr '[:upper:]' '[:lower:]')"

case "$source_name" in
*coderabbit*)
;;
*)
return 1
;;
esac

case "$message" in
*quota*|*"usage limit"*|*"rate limit"*|*"review limit"*|*"limit reached"*)
return 0
;;
*)
return 1
;;
esac
}
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,38 @@ github_release_is_visible() {
gh release view "$tag_name" >/dev/null 2>&1
}

checked_in_release_notes_file() {
tag_name="$1"
version_name="${tag_name#v}"

for candidate in \
"$REPO_ROOT/docs/releases/$tag_name.md" \
"$REPO_ROOT/docs/releases/$version_name.md"; do
if [ -f "$candidate" ]; then
printf '%s\n' "$candidate"
return 0
fi
done

return 1
}

create_github_release_from_notes_or_generated() {
tag_name="$1"
prerelease_flag="${2:-}"

if notes_file="$(checked_in_release_notes_file "$tag_name")"; then
log "Creating GitHub release $tag_name from checked-in notes: $notes_file."
# shellcheck disable=SC2086
gh release create "$tag_name" --verify-tag --notes-file "$notes_file" $prerelease_flag
return 0
fi

log "No checked-in release notes found for $tag_name; using GitHub-generated release notes."
# shellcheck disable=SC2086
gh release create "$tag_name" --verify-tag --generate-notes $prerelease_flag
}

ensure_git_repo() {
git -C "$REPO_ROOT" rev-parse --is-inside-work-tree >/dev/null 2>&1 || die "maintain-project-repo must run inside a git worktree rooted at $REPO_ROOT."
}
Expand Down
Loading