Worktrunk Release Workflow
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
Select, run, and diagnose Oliphaunt local and GitHub CI qualification for code, package, extension, SDK, policy, workflow, or release changes.
$ npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install f0rr0/oliphaunt qualify-oliphaunt-change --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/f0rr0/oliphaunt.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/qualify-oliphaunt-change .claude/skills/qualify-oliphaunt-change && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "qualify-oliphaunt-change" agent skill from https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-change into .claude/skills/qualify-oliphaunt-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qualify-oliphaunt-change", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-changeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install f0rr0/oliphaunt qualify-oliphaunt-change --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f0rr0/oliphaunt.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/qualify-oliphaunt-change .agents/skills/qualify-oliphaunt-change && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qualify-oliphaunt-change" agent skill from https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-change into .agents/skills/qualify-oliphaunt-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qualify-oliphaunt-change", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install f0rr0/oliphaunt qualify-oliphaunt-change --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f0rr0/oliphaunt.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/qualify-oliphaunt-change .cursor/skills/qualify-oliphaunt-change && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "qualify-oliphaunt-change" agent skill from https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-change into .cursor/skills/qualify-oliphaunt-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qualify-oliphaunt-change", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/f0rr0/oliphaunt.git --path .codex/skills/qualify-oliphaunt-change--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install f0rr0/oliphaunt qualify-oliphaunt-change --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f0rr0/oliphaunt.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/qualify-oliphaunt-change .gemini/skills/qualify-oliphaunt-change && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "qualify-oliphaunt-change" agent skill from https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-change into .gemini/skills/qualify-oliphaunt-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qualify-oliphaunt-change", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install f0rr0/oliphaunt qualify-oliphaunt-changeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/f0rr0/oliphaunt.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/qualify-oliphaunt-change .github/skills/qualify-oliphaunt-change && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "qualify-oliphaunt-change" agent skill from https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-change into .github/skills/qualify-oliphaunt-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qualify-oliphaunt-change", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install f0rr0/oliphaunt qualify-oliphaunt-change --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f0rr0/oliphaunt.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/qualify-oliphaunt-change .opencode/skills/qualify-oliphaunt-change && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "qualify-oliphaunt-change" agent skill from https://github.com/f0rr0/oliphaunt/tree/main/.codex/skills/qualify-oliphaunt-change into .opencode/skills/qualify-oliphaunt-change/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qualify-oliphaunt-change", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
qualify-oliphaunt-changeSelect, run, and diagnose Oliphaunt local and GitHub CI qualification for code, package, extension, SDK, policy, workflow, or release changes.
Qualify Oliphaunt Change is an agent skill from f0rr0/oliphaunt. Select, run, and diagnose Oliphaunt local and GitHub CI qualification for code, package, extension, SDK, policy, workflow, or release changes. Use before merge/release, when checks are slow or duplicated, or when an exact commit must be proven publishable.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development. It works with GitHub and Rust. The repository describes itself as: Embedded Postgres inside your apps and tests. No Docker, Node.js, or server. As easy as SQLite. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 31b5803. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bashcargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Qualify Oliphaunt Change loads about 2.8k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,377 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from f0rr0/oliphaunt at commit 31b5803, republished under its MIT licence (© f0rr0). 1,377 words, ~2,839 tokens.
.claude/skills/qualify-oliphaunt-change/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use the repository graph to select work and require exact-SHA qualification for releases.
CI's release_products_json input selects stable product IDs and their Moon
task/dependency closure. Keep platform selectors at all; a focused platform
debug run cannot qualify publication. Empty product selection remains the
exhaustive audit. Selected-product records must cover every published product;
producer evidence still comes from the same candidate run.
Generated same-repository Release PRs and their merged main release commits
derive scope automatically from Release Please manifest changes. Main push
qualifies only after Plan and Required succeed; PR results cannot be published.
format-check, js-format-check, or
rust-format-check), lint, typecheck, and test tasks as applicable.
Inspect the owner's actual task definitions before selecting build,
package, test-consumer, test-integration, test-browser, or installed
device tests. Let Moon build declared prerequisites; task names alone do
not justify running every available lane.# Product/release metadata only:
moon run release-tools:metadata
# Release implementation changes:
moon run release-tools:test
# Release Please candidate ownership/version selection changes:
moon run release-tools:graph-unit
# Workflow and CI planning changes:
moon run ci-workflows:check
# Release metadata and release implementation tests:
bash tools/release/release-check.sh
# Extension catalog, recipe, carrier, or generated extension metadata only:
moon run extensions:lint extensions:testSelect only the checks whose inputs changed. release-tools:metadata validates
product versions, compatibility, carrier declarations and derived files;
release-tools:test exercises release behavior; graph-unit exercises the
pinned Release Please candidate integration. release-tools:check is their
local Moon aggregate. There is no separate policy test project. The Shell
aggregate runs metadata and release tests, not product compilation or installed
consumer qualification. CI's Checks / Policy job runs on Ubuntu and sets up
only capabilities needed by its selected tasks. Workflow planning, affectedness,
artifact-transfer and security checks belong to ci-workflows:check.
Publishers consume source qualification and frozen artifacts instead of
replaying source-only suites. Do not schedule both aggregates and their
constituent checks in the same lane.
tools/ci/ci_plan.mts writes target/graph/ci-plan.json; there is no
graph-tools Moon project. The adapter consumes Moon's selected tasks; its
behavioral tests do not replace planning against the actual candidate tree.
Ordinary source pushes, PR preparation and CI qualification do not select the
protected release-bootstrap environment. Bootstrap-token lifecycle findings
from the optional release-controls audit are setup/publication findings, not
source-qualification blockers. Preserve the actual CI ref, permission and
artifact checks; do not provision, remove or relabel registry credentials to
make an unrelated source run pass.
For source-acquisition policy or a source mirror_url, run
bash src/third-party/tools/source-fetch-core.test.sh and
bash src/third-party/tools/fetch-sources.sh production-all --validate-only, or the
complete owner task moon run source-inputs:test. The paired Shell test owns
actual Git/archive operations and invokes its TypeScript assertions once. Prove a
new endpoint with a live exact-commit fetch, but keep reachability out of the
deterministic unit gate. Qualification must show bounded canonical-to-mirror
failover, exact-pin rejection, canonical durable origin, and transactional
preservation of an existing checkout when every endpoint fails.
bash tools/ci/check-workflows.sh before waiting for CI. This is the
repository's exact pinned actionlint plus zizmor gate and its workflow
behavior tests; running actionlint alone is not sufficient. A disposable
credential-free workflow compiler probe is needed only when a release candidate
changes hosted-only job topology, permissions, protected environments, or
dispatch inputs. The local gate cannot prove hosted environment-secret
resolution or dispatch-time graph compilation.
Exercise macOS-executed Shell paths with the Bash actually selected by that
job, recording command -v bash and bash --version. shell: bash alone
does not establish a version. Normal release/Apple setup does not install
another Bash; the WASIX postmaster target job explicitly installs Homebrew
Bash. Keep focused Bash 3.2 behavioral checks for scripts claiming macOS
/bin/bash compatibility, including set -u empty-array behavior. Do not
impose the entire Linux release-tool suite on Bash 3.2. Syntax checks do not
replace actual Apple transport or publication-path behavior.requires-rust for Cargo, rustc, rustfmt, or another Rust-toolchain command;
requires-maintainer-tools for the pinned tools installed by
tools/dev/bootstrap-tools.sh; and requires-android-sdk for Android SDK work.
Use requires-swift for the portable Swift compiler; add requires-apple
only for Xcode, Apple frameworks, simulators or other Apple-only work.
Portable Swift source checks use the pinned Linux Swift setup.
Capabilities propagate through task dependencies. The planner keeps
capability-bearing checks grouped only with tasks requiring the same setup.*-latest alias; after changing an explicit runner pin, inspect the image delta and run the platform binary contract for every affected release target.For a WASIX Docker, APT snapshot, or bootstrap trust change, also run the product-owned fault test and source verifier before the expensive build:
bash src/third-party/tools/fetch-sources.sh wasix-runtime --verify-only
moon run liboliphaunt-wasix:build-orchestration-test liboliphaunt-wasix:testThen use liboliphaunt-wasix:compiler-output, runtime-portable and
runtime-aot for the actual selected producer proof. Optional PostgreSQL tools
and extensions have separate owner producers; do not restore those as core
runtime build prerequisites. For a Docker trust change, build the pinned
Dockerfile from a clean builder context. Require a
successful TLS-verified snapshot transaction and the exact declared wasixcc,
Clang, and Binaryen versions; a source/static check alone does not prove
that the pinned trust chain still reaches the snapshot service.
For an SDK change, run each affected
SDK's relevant source checks, test, and package tasks in one Moon invocation.
Their declared dependencies remain necessary; package does not silently rerun
unrelated source qualification. Set
MOON_BASE and MOON_HEAD, inspect affected SDK projects, and pass the exact
targets to moon run; a workspace-wide selector also selects non-SDK products.
Confirm ownership with moon query tasks --project <sdk-project> when changing
task topology. Never replace the product task with a narrower native command:
for example, cargo test -p oliphaunt --lib omits other Cargo targets selected
by the owner task. Carrier producers copy the canonical C header; real consumers
compile against it instead of running a separate layout gate. Add
the product's explicit runtime or installed-host tests when that proof is needed, and run
moon run extensions:lint extensions:test when an extension catalog or generated SDK
extension surface changes. Put new guarantees in a parsed schema/generated
contract where consumers require one, a clean-consumer package check, or a
product-owned behavioral test. Do
not qualify SDK behavior by grepping prose, test names, or
implementation-source spellings.
headSha; never accept “latest successful on branch.”format('{0}^', github.sha),
the dispatched commit's immutable sole parent. Never fall back to
origin/main for a main dispatch: after a merge that moving ref is the
dispatched head itself and turns release-intent validation into an invalid
self-comparison. Non-main diagnostic dispatches retain their explicit
comparison to current origin/main.pull_request.closed event is a runnerless cancellation tombstone. It
shares the PR concurrency group so merging cancels obsolete PR work, while
every root and always() aggregate job skips before runner allocation. It
cannot refund PR work that already completed. For an explicitly authorized
one-hosted-run recovery, keep CI disabled through every intermediate update
and the final merge, then enable it and manually dispatch exactly once from
the final main SHA. Do not also create a push run: non-PR runs for the same
SHA serialize rather than cancel one another.Qualified gate for that SHA, including required checks, builds, policy, tests, and selected E2E.--require-current-evidence for the candidate source digest.src/docs/maintainers/release.md: inspect Mach-O load commands, Android API/ELF
metadata, and Linux ELF symbol versions rather than inferring support from a
runner or package label.List commands and outcomes, skipped lanes with reasons, exact GitHub run/SHA, required gate state, produced artifact/lock evidence, WASIX lifecycle evidence when selected, and residual platform gaps. “Green CI” without exact-SHA and gate names is not release evidence.
© f0rr0, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .codex/skills/qualify-oliphaunt-change of f0rr0/oliphaunt.
Open the folder on GitHubat commit 31b5803
Qualify Oliphaunt Change next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Qualify Oliphaunt Change this skillf0rr0/oliphaunt | 105 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Worktrunk Release Workflowmax-sixty/worktrunk | 8.9k | — | ~6.9k | Automated safety check: Pass | Custom licence | |
| PR Cyclejaemk/cached | 2.1k | — | ~4.8k | Automated safety check: Notes | MIT | |
| PR Reviewjaemk/self_update | 961 | — | ~1.5k | Automated safety check: Notes | MIT | |
| PR Reviewjaemk/cached | 2.1k | — | ~2.5k | Automated safety check: Notes | MIT | |
| Rust Hygiene Audittsz-org/tsz | 572 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 |
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
jaemk/cached
PR review-and-update cycle — the orchestrator that takes a PR from review to resolved.
jaemk/self_update
Targeted, read-only review of a PR or checked-out branch. An agent skill from jaemk/self_update.
jaemk/cached
Targeted, read-only review of a PR or checked-out branch. An agent skill from jaemk/cached.
tsz-org/tsz
Run a deep DRY + code-hygiene audit of the Rust workspace and turn the findings into verified, deduplicated, hierarchical GitHub tech-debt issues.
shencangsheng/easydb_app
Resolve pull request code review comments end-to-end. An agent skill from shencangsheng/easydb_app.
f0rr0/oliphaunt
Prepare, audit, bootstrap, publish, verify, or recover Oliphaunt releases across GitHub, crates.io, npm, Maven Central, and SwiftPM.
f0rr0/oliphaunt
Add, update, or remove an Oliphaunt PostgreSQL contrib or external extension, including source pins, build recipes, target support, SDK metadata, release products, carrier identities, and package…
f0rr0/oliphaunt
Write, rewrite, audit, or redesign Oliphaunt developer documentation.
Categories
Select, run, and diagnose Oliphaunt local and GitHub CI qualification for code, package, extension, SDK, policy, workflow, or release changes. Qualify Oliphaunt Change is an agent skill from f0rr0/oliphaunt. Select, run, and diagnose Oliphaunt local and GitHub CI qualification for code, package, extension, SDK, policy, workflow, or release changes.
Qualify Oliphaunt Change fits situations like: development work in your project.
Run `npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a claude-code`. Or copy the skill folder (.codex/skills/qualify-oliphaunt-change in f0rr0/oliphaunt) into .claude/skills/qualify-oliphaunt-change in your project. Claude Code loads it when a task matches its description.
Run `npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a codex`. Or copy the skill folder (.codex/skills/qualify-oliphaunt-change in f0rr0/oliphaunt) into .agents/skills/qualify-oliphaunt-change in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add f0rr0/oliphaunt --skill qualify-oliphaunt-change -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qualify-oliphaunt-change, .gemini/skills/qualify-oliphaunt-change, .github/skills/qualify-oliphaunt-change and .opencode/skills/qualify-oliphaunt-change in your project.
Going by SKILL.md and its folder, Qualify Oliphaunt Change needs the command-line tools its instructions call (bash and cargo). Our summary lists: Docker.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Qualify Oliphaunt Change is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Qualify Oliphaunt Change: Worktrunk Release Workflow (max-sixty/worktrunk, 8.9k stars), PR Cycle (jaemk/cached, 2.1k stars), PR Review (jaemk/self_update, 961 stars) and PR Review (jaemk/cached, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
f0rr0 (a GitHub user) maintains it in f0rr0/oliphaunt, which has 105 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.
Source: f0rr0/oliphaunt on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.