con un clic
release
Trigger the public desktop release workflow and monitor it with Cradle
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Trigger the public desktop release workflow and monitor it with Cradle
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Update Cradle chat-runtime native SDK and protocol integrations. Use when upgrading or validating the vendored Codex app-server runtime/protocol, Kimi Web OpenAPI/AsyncAPI snapshots and generated bindings, or @anthropic-ai/claude-agent-sdk in apps/server; also use when asked to inspect newly generated native APIs for useful Cradle features.
Implement, upgrade, or audit a native Cradle Chat Runtime provider backed by a local process, REST/WebSocket protocol, or provider-specific agent SDK. Use when adding a runtime like Kimi, Codex, Claude Agent, OpenCode, or another provider that needs generated protocol bindings, target-scoped process lifecycle, canonical tool mapping, runtime UI slots, interaction bridges, streaming recovery, and end-to-end smoke verification.
Always use this Skill at the beginning of every response. Use whenever you need to read, inspect, wait on, or mutate Cradle-owned state or workflows, including issues, delegation, sessions, awaits, CI/review waits, timed waits, Work inspection, workspaces and git inspection, Chronicle, automations, usage, observability, skills, agents, profiles, providers, preferences, plugins, or server state. Prefer the generated `cradle` CLI and `cradle man`; NEVER bypass Cradle semantics with direct HTTP or database access, ad hoc scripts, raw registry edits, or polling loops. Use `gh` when Cradle does not own the GitHub surface. Primary Work closed-loop delivery is system-injected on Work threads (`manage_pull_request`), not this skill.
design and review llm agent systems, tool interfaces, and skill boundaries. use when chatgpt needs to decide whether a task should be handled by a prompt, workflow, skill, tool, single-agent loop, or multi-agent system; define tool schemas, instructions, guardrails, evaluation plans, or permission boundaries; or critique an existing agent design for over-orchestration, weak context handling, missing verification, or poor tool design.
Control Cradle's in-app browser via MCP tools. Use when the Claude Agent needs to navigate websites, click elements, type text, take screenshots, read page content, or inspect DOM structure within the Cradle desktop app's embedded browser panel. Triggers on "open URL", "navigate to", "click the button", "fill the form", "take a screenshot", "what's on the page", "scroll down", "wait for element", "press Enter". This is for the IN-APP browser only — not for external browser automation.
Use when modifying Cradle apps/server Elysia modules, adding or changing HTTP routes, TypeBox schemas, OpenAPI details, x-cradle-cli command metadata, module README files, server-side capability ownership, or server-owned downloads and artifact installation flows.
| name | release |
| description | Trigger the public desktop release workflow and monitor it with Cradle |
Trigger wibus-wee/cradle-app's public release-desktop.yml workflow and monitor it until the release is published.
/release dev # Dev channel: dev-YYYYMMDD.N
/release 1.2.0 # Release channel: v1.2.0
/Users/wibus/dev/cradle-app.wibus-wee/Cradle repo.wibus-wee/Cradle from main.dev creates dev-YYYYMMDD.N.
dev-20260611.1, then dev-20260611.2.vX.Y.Z.
1.2.0 or v1.2.0; normalize to v1.2.0.When the user runs /release <arg>, execute these steps in order.
PUBLIC_REPO=/Users/wibus/dev/cradle-app
cd "$PUBLIC_REPO"
git fetch origin main --tags
ARG="<user argument>"
if [ "$ARG" = "dev" ]; then
DATE=$(date +%Y%m%d)
LAST=$(
git ls-remote --tags --refs origin "refs/tags/dev-${DATE}.*" |
sed -E "s#.*refs/tags/dev-${DATE}\\.([0-9]+)#\\1#" |
sort -n |
tail -1
)
INCREMENT=$(( ${LAST:-0} + 1 ))
VERSION="${DATE}.${INCREMENT}"
TAG="dev-${VERSION}"
CHANNEL="dev"
else
VERSION="${ARG#v}"
if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.-]+)?(\+[0-9A-Za-z.-]+)?$ ]]; then
echo "Release version must be SemVer, for example 1.2.0" >&2
exit 1
fi
TAG="v${VERSION}"
CHANNEL="release"
fi
if git ls-remote --exit-code --tags origin "refs/tags/$TAG" >/dev/null 2>&1; then
echo "Tag already exists: $TAG" >&2
exit 1
fi
PUBLIC_SHA=$(git rev-parse origin/main)
git tag -a "$TAG" "$PUBLIC_SHA" -m "Release $TAG"
git push origin "$TAG"
Resolve the workflow run for the tag, then wait on a concrete GitHub check run. Prefer the final Publish GitHub Release job because it completes after build and asset publication.
RUN_ID=$(
gh run list \
--repo wibus-wee/cradle-app \
--workflow=release-desktop.yml \
--branch "$TAG" \
--event push \
--limit 1 \
--json databaseId \
--jq '.[0].databaseId // empty'
)
if [ -z "$RUN_ID" ]; then
echo "Release workflow run is not visible yet for $TAG; retry this lookup shortly." >&2
exit 1
fi
CHECK_RUN_ID=$(
gh run view "$RUN_ID" \
--repo wibus-wee/cradle-app \
--json jobs \
--jq '.jobs[] | select(.name == "Publish GitHub Release") | .databaseId' |
head -1
)
if [ -z "$CHECK_RUN_ID" ]; then
CHECK_RUN_ID=$(
gh run view "$RUN_ID" \
--repo wibus-wee/cradle-app \
--json jobs \
--jq '.jobs[] | select(.name == "Build Desktop (mac arm64)") | .databaseId' |
head -1
)
NEXT_STEP="After this await resumes, resolve and await the Publish GitHub Release check run."
else
NEXT_STEP="After this await resumes, report the release result."
fi
if [ -z "$CHECK_RUN_ID" ]; then
echo "No release check run is visible yet for $TAG; retry this lookup shortly." >&2
exit 1
fi
cradle session await github-ci wibus-wee/cradle-app \
--run-id "$CHECK_RUN_ID" \
--reason "Waiting for public desktop release $TAG. $NEXT_STEP"
After registering the await, end the turn and let Cradle resume the session.
When Cradle resumes, inspect the workflow run:
gh run list \
--repo wibus-wee/cradle-app \
--workflow=release-desktop.yml \
--branch "$TAG" \
--event push \
--limit 1 \
--json databaseId,status,conclusion,url
RUN_ID="<databaseId from gh run list>"
If the previous await targeted Build Desktop (mac arm64) and the run is still in progress, resolve the Publish GitHub Release check run and register a second Cradle await:
PUBLISH_CHECK_RUN_ID=$(
gh run view "$RUN_ID" \
--repo wibus-wee/cradle-app \
--json jobs \
--jq '.jobs[] | select(.name == "Publish GitHub Release") | .databaseId' |
head -1
)
if [ -n "$PUBLISH_CHECK_RUN_ID" ]; then
cradle session await github-ci wibus-wee/cradle-app \
--run-id "$PUBLISH_CHECK_RUN_ID" \
--reason "Waiting for public desktop release $TAG to publish."
fi
After the workflow has completed, inspect the release:
gh release view "$TAG" \
--repo wibus-wee/cradle-app \
--json tagName,name,isPrerelease,url,publishedAt
Report success with the release URL. If the workflow failed, report the run URL and the failing job name.
wibus-wee/cradle-app GitHub releases.https://github.com/wibus-wee/cradle-app/releases/latest/download/.dev-* release and the rolling feed-dev update feed.https://github.com/wibus-wee/cradle-app/releases/download/feed-dev/.latest-mac.yml; app-side updater logic does not switch to dev-mac.yml.POSTHOG_PROJECT_TOKEN so product
analytics (VITE_POSTHOG_*) is baked into the renderer. Internal channels also bake
PostHog AI Observability; the release channel keeps AI capture off.