/rhiza:update¶
Sync the repo to a template release and open a PR containing only template-owned files.
The optional argument pins an explicit template version tag; it defaults to the template's latest release.
Only template files are touched
The sync records exactly which paths it materialized in .rhiza/template.lock's
files list. That list — plus .rhiza/template.yml and the lock itself — is the
complete set /update stages. It never runs git add --all, so your own source,
tests, and dependencies are never swept into a template PR. Anything else that
changed is left in the working tree and reported.
What it does¶
- Preconditions — follows install-uv first (the
sync runs through
uv run), then confirms the repo is rhiza-managed (.rhiza/template.ymlexists) and the working tree is clean. Notes the branch you started on, the default branch, and the hosting platform. - Resolves the target ref — the given tag, or the latest release of the
template repo named in
template.yml(so a fork bumps to its own tags, notjebel-quant/rhiza's). Major-version jumps require confirmation. - Branches off the up-to-date default branch, then bumps the
refin.rhiza/template.ymland commits.profiles:,templates:and the rest are left alone — switching a platform profile is a separate, deliberate change, not something a version bump does. - Runs the bundled
plugin/scripts/sync.pyand interprets its exit code: 0 clean, 1 synced-with-conflicts (expected, not fatal), 2 a real failure that stops the run with nothing applied. - Resolves conflicts with
plugin/scripts/resolve_conflicts.py, which takes the upstream (template) side of every marker block. A*.rejfile is reported, never applied, and stops the run for a human — though the merge no longer produces one, since nothing runsgit apply --rejectany more. - Stages only the lock's
files, commits, and opens the PR/MR throughplugin/scripts/platform_cli.py, which maps the operation ontogh pr createorglab mr create— they differ in subcommand, flag names, and whether a body can come from a file at all. - Reports and returns to the branch you started on.
Notes¶
- No gates, no scorecard, no issues.
/updatesyncs; run/rhiza:qualitywhen you want the 1–10 scorecard. In particular it never runsmake fmt, which would rewrite the repo's own files and violate the template-only rule. - Bumps the template content version (
ref/template-branch). /rhiza:statusshows what's synced afterwards.
Reference¶
| Source | plugin/skills/update/SKILL.md |
| Invocation | /rhiza:update [version e.g. v1.2.0] (optional; defaults to the template's latest release) |
| Model-invocable | yes |
| Allowed tools | Bash(git*), Bash(gh*), Bash(glab*), Bash(uv*), Bash(cat*), Bash(grep*), Read, Edit, AskUserQuestion |