nmt-update — update to the latest canon + skills
Re-runs the official Next Move Theory installer from the project root. The
installer clones the public repo
(zamesin/Next-Move-Theory-Canon-and-Skills, branch main) and refreshes,
in place:
Next-Move-Theory-Canon/— the canon.claude/skills/nmt-*— Claude skills (invoke with/nmt-…).agents/skills/nmt-*— Codex skills (invoke with$nmt-…)- the
<!-- Next-Move-Theory-Rules:start … end -->block inCLAUDE.mdandAGENTS.md NextMoveTheory-README.md
It is idempotent and safe — it replaces the canon, skills, marked rules
block, and README in place, leaves your own files untouched (including anything
outside the markers), and does not delete unrelated skills already in
.claude/skills or .agents/skills. Everything it installs is downloaded from
the public GitHub repo.
Count this run — optional; policy in
NextMoveTheory-README.md, section "Updates & telemetry". Skip this entirely if.nmt-config(project root) contains a lineupdate-check: off, or the environment variableDO_NOT_TRACKorNMT_NO_UPDATE_CHECKis set. Otherwise, as your first action, tell the user in one line: "Counting this update run — only this skill's name and the installed version are sent (details: NextMoveTheory-README.md; disable: addupdate-check: offto.nmt-config)." Then runv="$(grep -m1 -E '^[0-9]' .nmt-version 2>/dev/null)"; curl -fsSL --max-time 2 "https://nextmovetheory.com/version?skill=nmt-update${v:+&v=$v}" >/dev/null 2>&1 || true— on any error or timeout, skip and move on; never retry, never block. This ping only counts the run; the update itself always downloads from GitHub.
Steps
- Locate the project root — the folder that contains
Next-Move-Theory-Canon/and/or.claude/skills/. That is where the canon + skills must be refreshed. If the current directory is not it, ask the user which directory to update. - Read the installed and the latest version. The installed version sits in
.nmt-version; the latest is the top entry of the changelog in the public GitHub repo:
Report theinstalled="$(grep -m1 -E '^[0-9]' .nmt-version 2>/dev/null)" latest="$(curl -fsSL --max-time 3 https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/CHANGELOG.md 2>/dev/null \ | grep -m1 -E '^##[[:space:]]+[0-9]' | sed -E 's/^##[[:space:]]+([^[:space:]]+).*/\1/')" echo "installed=${installed:-unknown} latest=${latest:-unknown}"<installed> → <latest>gap in one line. If the fetch fails or times out, say so in one line and continue to step 3 anyway — never block the update on the version check. If the two versions already match, say so and still run the install (it is idempotent, and it repairs a partial one). - Run the installer from that directory:
(Windows / PowerShell:curl -fsSL https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/install.sh | bashirm https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/install.ps1 | iex.) - Report what changed. Show the installer's final summary. If the project is
a git repo, run
git status --shortand list which canon files / skill folders were added or modified so the user sees exactly what the update pulled in. If the changelog was fetched in step 2, add a one-line summary per version newer than the one that was installed. - Confirm done. Tell the user the update is complete and that any
new/updated skills are available immediately (e.g.
/nmt-diagnose,/nmt-chat). No restart is needed.
Notes
- Best-effort. The installer needs
curlandgit. If either is missing, tell the user to install it, or to install by hand from https://github.com/zamesin/Next-Move-Theory-Canon-and-Skills (clone the repo and runbash install.sh --target <your-project-root>). - Non-destructive. Your own
CLAUDE.md/AGENTS.mdcontent outside the<!-- Next-Move-Theory-Rules:start … end -->markers is preserved — the installer only ever rewrites what sits between the markers. Unrelated skills are left alone. - Renamed skill. This skill used to be called
nmt-upgrade. The installer removes the oldnmt-upgradefolder from.claude/skillsand.agents/skillsand installsnmt-updatein its place, so you won't end up with both. - Source of truth. What gets installed is always the current
mainof the public GitHub repo — the installer clones it fresh on every run, so there is no stale cache for the canon or skills.