Read a canary run
After a merge to main, Shaka opens a pull request in a sandbox repository
and checks the description you would see. A green run opened that pull
request and the automatic checks passed. A red run names the failed check
in the job log and the workflow summary, and links the Shaka commits it
covered.
Open the canary pull request and skim it. The checks catch broken
rendering. They do not decide whether the change was a good idea. The
pull request comment shows the body diff against the previous canary pull
request, plus time and spend. A missing amount stays UNKNOWN.
The description check requires the stats line from issue 899. Until that line ships, this check fails on purpose.
A run with the repository, model key, or token unset posts a notice and succeeds. Merging this workflow is safe before the setup below.
Manual runs start immediately and test the selected ref; choose main to
test merged code. A push waits until about an hour after the
previous agent start, including failed or cancelled attempts. A newer push cancels the run still in progress,
so the run that finishes uses the latest main.
Set it up once
Do this in the GitHub settings. This repository does not create the sandbox, set secrets, or change organization settings.
- Create an empty repository.
shakacode/shaka-canaryis a clear name. Set the default branch tomain. Keep other work out of it. - Copy
templates/shaka-canaryto that repository's root, commit, and push tomain. The.agents/shaka/files come fromshaka seam initwith reviewnoneand mergeask. Validation runs one Ruby file, with no gems. - In
shakacode/shaka, set the Actions variableSHAKA_CANARY_REPOtoowner/name. - Set the secret
SHAKA_CANARY_MODEL_KEYto a Cursor API key from the Cursor dashboard. Preflight receivesSHAKA_CANARY_MODEL_KEYto check that it is set. The agent step receives it asCURSOR_API_KEY. The separate Cursor installer step receives neither the model key nor the sandbox write token. - Set the secret
SHAKA_CANARY_TOKENto a user-owned personal access token that can clone the sandbox, push branches, and open and close pull requests.gh repo view OWNER/REPO --json viewerPermissionmust reportWRITEorADMIN. A blank permission failsdoctor --briefand the canary goes red. GitHub App installation tokens are unsupported here. If the token's user identity cannot be read, previous elapsed time staysUNKNOWN. Reviewer CLIs on the runner are a separate gap, issue 796. - Optionally set
SHAKA_CANARY_KEEPto how many open canary pull requests to keep. The default is 5. Older open pull requests are closed. - Use Actions → Canary → Run workflow to try it. Do not merge the canary
pull requests.
mainshould stay the template so every run repeats the same task: addfarewell, its test, and one docs line. Each Actions attempt uses the branch Shaka's claim command names forrun-ID-ATTEMPT, currentlyshaka-canary/ad-hoc-run-ID-ATTEMPT. Checks and cleanup ignore fork pull requests and branches outside that pattern.
Review is none in the template so the sandbox can finish without
reviewer CLIs. Turn review on after a reviewer key exists if you want the
canary to exercise that part of the workflow.