nightly
Skill490 starsChanged 8 days agoMITView on GitHub
Cut or check Runner nightlies — one workflow for macOS, Windows and Linux, one public prerelease per channel (nightly from main, preview-nightly auto-cut from listed umbrella branches), shared stamp, and separate stable feeds
2 other projects use a version of this.
Adopted by
Most recently taken up by
- mlflow/mlflowtheir own version, first seen Nov 1, 2026
- wrg32786/aigent-ostheir own version, first seen Oct 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- mlflow/mlflow★ 29ksame name
- wrg32786/aigent-os★ 25same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- bugSkill
- featureSkill
- releaseSkill
- screenshotsSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
If the Runner MCP is reachable, report running missions from mission_list_summary.
- Very specific: line 38
Stable isolation: verify gh api repos/yicheng47/runner/releases/latest --jq .tag_name still identifies the current production release …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Nightly
One nightly.yml dispatch builds macOS, Windows and Linux ARM64/x86_64 by default (platform=all) from one SHA and UTC stamp. platform=macos, platform=windows or platform=linux selects one platform family. Legacy platform=both retains macOS+Windows only. One rolling public nightly prerelease serves macOS DMGs, a signed Sparkle appcast, Windows x64 installers, matching minisign signatures, and Linux architecture-labelled tar/deb packages. Linux packages have matching minisign signatures and support verified in-app updates. macOS and Windows each keep two builds by stamp, and Linux keeps one build per architecture, independently on that release. Production feeds and releases/latest stay separate. Contract: docs/arch/arch.md §14 and docs/arch/windows.md.
An explicit request to run authorizes that workflow dispatch. Reading or editing this skill and check do not authorize dispatch. Nightly is a rolling development channel identified by its commit; official version tags are separate, and no nightly crate-version bump is needed. Commit, push, merge, tagging, direct release mutation, app launch/restart, and installation require the user's explicit instruction. Record only observed results; never invent a successful cut or a PC smoke result.
Usage
/nightly [run [all|both|macos|windows|linux] [preview] | check [all|both|macos|windows|linux] [preview]] — no action means run; omitted platform means all; preview selects the preview nightly (see Preview nightly).
run [platform]
- Preflight — stop on any failure and report it.
git fetch origin; require branchmain, a clean tree (git status --shortempty), andgit rev-parse main origin/mainequal. Capture the fullorigin/mainSHA. Do not push local commits without instruction.- Check for any queued or running nightly of the same channel, including other platforms:
gh run list --workflow nightly.yml --limit 30 --json databaseId,status,displayTitle,headSha. Stop if such a run is not completed; all platforms share their channel's concurrency group (nightlyorpreview-nightly), so a dispatch cancels the entire older run of that channel. A run of the other channel does not block. main's CI is not a gate (Jason, 2026-10-25): code reachesmainonly through pull requests whose required checks passed, and the publish job does not wait for CI. A later push tomaincancelling that commit's CI run therefore cannot block a cut.- If the Runner MCP is reachable, report running missions from
mission_list_summary. A successful cut can produce a nightly update offer and a Windows background download. Installation/restart remains a separate user action and interrupts live PTYs.
- Dispatch:
gh workflow run nightly.yml --ref mainfor all platforms, or append-f platform=macos/-f platform=windows/-f platform=linux(bothis the legacy Mac+Windows selection). Find the new run withgh run list --workflow nightly.yml --branch main --limit 5 --json databaseId,status,headSha,displayTitle,createdAt; require the selectedNightly (<platform>)title, creation after dispatch, andheadShaequal to preflight. If the source changed during dispatch, report the mismatch and do not claim the intended cut succeeded. - Watch:
gh run watch <id> --exit-status. On failure, inspectgh run view <id> --log-failedand report the failing step. A failed/cancelled selected build prevents publication of both platforms on abothrun. Failure or cancellation during publication can leave some files uploaded; report the cut incomplete and do not automatically retry. - Verify: run
checkfor the selected platform(s), using this run's exact commit-based identity, stamp, and SHA. The shared identity is inprepare's build-identity outputs/log and the successful publication job summary. Require the whole run to have succeeded, not just one build job. - Record: nothing in
docs/. The workflow run, thenightlytag and the release's assets and notes are the record of a cut;docs/impls/archive/504-nightly-channel-unification.mdis the archived program record and keeps only its own first-cut section. Report installed upgrade/PC results only after observing them or receiving them from Jason. - Report: shared identity, run result, download links, changes included, and any installed-upgrade checks still pending. macOS nightlies update through Sparkle; Windows and Linux nightlies use their in-app updaters. Do not install or restart any app from this skill without explicit instruction.
check [platform]
This is read-only and does not dispatch. Read recent nightly.yml runs with gh run list --workflow nightly.yml --branch main --limit 10 --json databaseId,status,conclusion,headSha,createdAt,displayTitle. An all run applies to every platform; a legacy both run applies to macOS and Windows; a later single-platform cut may mean their assets now have different stamps on the same release. The nightly tag points at the last published cut, so git fetch origin refs/tags/nightly:refs/tags/nightly then git log nightly..origin/main --oneline describes what a new cut would pick up; the release notes list what the current cut has beyond the latest official release. A single-platform cut moves the tag too, so an unselected platform’s assets can be older than the tag: read their stamps from the filenames.
Read gh release view nightly --json isPrerelease,isDraft,assets once; require isPrerelease=true, isDraft=false, every selected platform’s expected filenames, and at most two timestamped installers and two DMGs independently. Require the shared notes from script/nightly-release-notes.md when checking the publish workflow; release notes cover installation and updates on all platforms. Sort by trailing YYYYMMDD.HHMM stamp, not by the version prefix. All apps display Nightly (<sha>), independently of the crate version. The UTC stamp orders artifacts and updates; the short commit identifies their source. For example, a Windows artifact identity is nightly.abc1234.20260908.0100.
- macOS /
nightly: requireRunner-Nightly-<sha>.<stamp>-arm64.dmgandappcast.xml. Check anonymous DMG access withcurl --silent --show-error --fail --head --location <asset-url>; download and parse the appcast. Its single signed enclosure must point to that DMG athttps://github.com/yicheng47/runner/releases/download/nightly/, with the expected stamp, seven-character commit as its short version, andarm64hardware requirement. Sparkle supplies the app name in its native alert; Runner’s own update display isNightly (<sha>). The release page ishttps://github.com/yicheng47/runner/releases/tag/nightly. - Windows /
nightly: requireRunner-Setup-nightly.<sha>.<stamp>-x64.exeand its exact.sig; anonymous access must succeed for both athttps://github.com/yicheng47/runner/releases/download/nightly/. Installers/signatures prune together. Portable ZIPs are retired. The release page ishttps://github.com/yicheng47/runner/releases/tag/nightly. - Linux /
nightly: requireRunner_nightly.<sha>.<stamp>_linux-<x64|arm64>.tar.gzand.debwith an exact matching.sigfor each package on both architectures; verify anonymous access for all four packages and four signatures. Keep only the newest stamp per architecture, pruning both formats and their signatures together. Linux-only cuts leave appcast and Windows installer/signatures untouched. Packages are signed with the updater trust key; validate package metadata/ELF architecture and consultdocs/arch/linux.mdfor native validation gaps. - Stable isolation: verify
gh api repos/yicheng47/runner/releases/latest --jq .tag_namestill identifies the current production release (0.8.2 when #502 was implemented), not a nightly. Do not report a real installed update or production Sparkle check as tested merely because release metadata is correct.
Preview nightly
An umbrella branch, which reaches main only when its program lands, gets installable test builds from the separate rolling preview-nightly release, so nightly keeps tracking main. The channel is reused by every umbrella; the current list is on.push.branches in .github/workflows/preview-nightly.yml, which holds the placeholder no-umbrella-branch while no umbrella is running. A new umbrella's branch replaces it.
- Automatic cut: every push to a listed branch that changes more than
docs/**and**/*.mddispatchesnightly.ymlon that branch withchannel=preview-nightlyandplatform=all. Missions land on an umbrella by fast-forward, so there is no merge commit to test as onmain. A push event runs the workflow file of the pushed commit, so an umbrella is cut only once it containspreview-nightly.ymland the channel-awarenightly.yml: catch it up withmainfirst. - Opt in or out: add or remove the branch in that one list, in a pull request to
mainthat the umbrella then picks up. The pull request that lands an umbrella onmainremoves its branch from the list in the same change; when it was the last one, that pull request deletespreview-nightly.ymlinstead, and the next umbrella restores it from history with its own branch. The workflow tests check the list's shape, not its entries, and skip the trigger checks while the file is absent, so neither change touches them. The prepare job reads the list from the dispatched commit and refusespreview-nightlyfrom any branch not in it, including every branch when the file is absent or the list empty, andnightlyfrom any branch butmain. List exact branch names, not patterns: the guard matches names exactly. - Manual
run preview: the preflight capturesgit rev-parse origin/<umbrella>instead of requiringmain; no local checkout of the umbrella is needed. Dispatchgh workflow run nightly.yml --ref <umbrella> -f channel=preview-nightly, plus-f platform=…for one platform family, and find the run with--branch <umbrella>and the titlePreview Nightly (<platform>). - Check: release and tag
preview-nightly; macOSRunner-Preview-Nightly-<sha>.<stamp>-arm64.dmgandappcast.xml, WindowsRunner-Setup-preview-nightly.<sha>.<stamp>-x64.exeand its.sig, LinuxRunner_preview-nightly.<sha>.<stamp>_linux-<x64|arm64>.tar.gzand.debwith their.sigs, all underhttps://github.com/yicheng47/runner/releases/download/preview-nightly/, with the same retention asnightly. The notes end withscript/preview-nightly-release-notes.md, the apps displayPreview Nightly (<sha>), andgit log preview-nightly..origin/<umbrella> --onelinedescribes what a new cut would pick up. - Switching: preview builds share the app identity and data with every other channel and update only from
preview-nightly. Installing a nightly or stable build by hand moves an install to that channel; on Linux, APT sees a nightly deb of the same release as a downgrade from a preview deb.
Notes
nightly.ymlis dispatch-only.nightly-on-merge.ymldispatches an all-platform nightly for each pull request merged intomainthat changes more thandocs/and Markdown files; a direct push tomainruns CI alone, so a directly pushed code change needs a manualrun. Nightlies need no crate-version bump or relationship to the next official version. Onepublishjob validates selected artifacts, uploads the DMG before its appcast and the installer before its signature, checks public downloads, then prunes. All uploads targetnightly, and one public verification reads that release before any platform prunes. A single-platform cut leaves the other platform’s assets/feed and retention untouched. An upload or download failure reports the cut incomplete and prevents all pruning.- Nightly and production use
com.wycstudios.runner/Runner.appon macOS and retain~/Library/Application Support/com.wycstudios.runner/. Installing a nightly over Runner switches it to the nightly feed; installing a stable DMG switches it back. Windows and Linux follow the same install-to-switch rule. Public prereleases can be found by browsing, while production installs read their separate stable feed. - One-time transition: Jason installs the first unified Mac DMG over
Runner.app, then deletesRunner Nightly.appby hand; its old bundle id cannot update through Sparkle to the new one. The PC also needs a manual install because its existing build readsnightly-win. After the PC readsnightly, Jason deletes the oldnightly-winrelease and tag by hand. There is no transition mirror; neitherrunnorcheckreads or writes that release. Dormant Windows installs reinstall fromnightlyafter it is deleted. These manual steps still require explicit authorization. - Production releases remain a different path: tag
vX.Y.Zat a bareX.Y.Zcrate version →release.ymlbuilds a draft; publishing is the human's switch. Do not tag from this skill.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

