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
.agents/skills/nmt-* — Codex skills (invoke with $nmt-…)
.claude/skills/nmt-* — Claude skills (invoke with /nmt-…)
- the
<!-- Next-Move-Theory-Rules:start … end --> block in AGENTS.md and CLAUDE.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
.agents/skills or .claude/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 line update-check: off, or the environment variable DO_NOT_TRACK or NMT_NO_UPDATE_CHECK is 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: add update-check: off to .nmt-config)."
Then run v="$(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 .agents/skills/. That is where the canon + skills must be refreshed.
If the current directory is not it, ask the user which directory to update.
If interactive input is unavailable, use the current directory and say so.
- 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:installed="$(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}"
Report the <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:
curl -fsSL https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/install.sh | bash
(Windows / PowerShell: irm 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 --short and 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
curl and git. 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 run bash install.sh --target <your-project-root>).
- Non-destructive. Your own
AGENTS.md / CLAUDE.md content 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 old nmt-upgrade folder from .agents/skills and .claude/skills
and installs nmt-update in its place, so you won't end up with both.
- Source of truth. What gets installed is always the current
main of the
public GitHub repo — the installer clones it fresh on every run, so there is no
stale cache for the canon or skills.
1---2name: nmt-update3description: Update an installed Next Move Theory setup to the latest published canon + skills by re-running the official one-command installer straight from the public GitHub repo (zamesin/Next-Move-Theory-Canon-and-Skills, branch main). It refreshes the canon, the nmt-* skills (both Codex and Claude), the marked rules block in AGENTS.md / CLAUDE.md, and the README in place. Idempotent and safe: it never touches your own files and never deletes unrelated skills. Use when the user says "update NMT", "update the skills", "get the latest canon", runs $nmt-update, or when another skill reports that a newer version is available. Defaults to English.4---56# nmt-update — update to the latest canon + skills78Re-runs the official Next Move Theory installer from the **project root**. The9installer clones the public repo10(`zamesin/Next-Move-Theory-Canon-and-Skills`, branch `main`) and refreshes,11**in place**:1213- `Next-Move-Theory-Canon/` — the canon14- `.agents/skills/nmt-*` — Codex skills (invoke with `$nmt-…`)15- `.claude/skills/nmt-*` — Claude skills (invoke with `/nmt-…`)16- the `<!-- Next-Move-Theory-Rules:start … end -->` block in `AGENTS.md` and `CLAUDE.md`17- `NextMoveTheory-README.md`1819It is **idempotent and safe** — it replaces the canon, skills, marked rules20block, and README in place, leaves your own files untouched (including anything21outside the markers), and does **not** delete unrelated skills already in22`.agents/skills` or `.claude/skills`. Everything it installs is downloaded from23the public GitHub repo.2425> **Count this run — optional; policy in `NextMoveTheory-README.md`, section "Updates & telemetry".**26> Skip this entirely if `.nmt-config` (project root) contains a line `update-check: off`, or the environment variable `DO_NOT_TRACK` or `NMT_NO_UPDATE_CHECK` is set.27> 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: add `update-check: off` to `.nmt-config`)."28> Then run `v="$(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.2930## Steps31321. **Locate the project root** — the folder that contains `Next-Move-Theory-Canon/`33 and/or `.agents/skills/`. That is where the canon + skills must be refreshed.34 If the current directory is not it, ask the user which directory to update.35 If interactive input is unavailable, use the current directory and say so.362. **Read the installed and the latest version.** The installed version sits in37 `.nmt-version`; the latest is the top entry of the changelog in the public38 GitHub repo:39 ```bash40 installed="$(grep -m1 -E '^[0-9]' .nmt-version 2>/dev/null)"41 latest="$(curl -fsSL --max-time 3 https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/CHANGELOG.md 2>/dev/null \42 | grep -m1 -E '^##[[:space:]]+[0-9]' | sed -E 's/^##[[:space:]]+([^[:space:]]+).*/\1/')"43 echo "installed=${installed:-unknown} latest=${latest:-unknown}"44 ```45 Report the `<installed> → <latest>` gap in one line. **If the fetch fails or46 times out, say so in one line and continue to step 3 anyway** — never block47 the update on the version check. If the two versions already match, say so48 and still run the install (it is idempotent, and it repairs a partial one).493. **Run the installer** from that directory:50 ```bash51 curl -fsSL https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/install.sh | bash52 ```53 (Windows / PowerShell: `irm https://raw.githubusercontent.com/zamesin/Next-Move-Theory-Canon-and-Skills/main/install.ps1 | iex`.)544. **Report what changed.** Show the installer's final summary. If the project is55 a git repo, run `git status --short` and list which canon files / skill folders56 were added or modified so the user sees exactly what the update pulled in. If57 the changelog was fetched in step 2, add a one-line summary per version newer58 than the one that was installed.595. **Confirm done.** Tell the user the update is complete and that any60 new/updated skills are available immediately (e.g. `$nmt-diagnose`,61 `$nmt-chat`). No restart is needed.6263## Notes6465- **Best-effort.** The installer needs `curl` and `git`. If either is missing,66 tell the user to install it, or to install by hand from67 https://github.com/zamesin/Next-Move-Theory-Canon-and-Skills (clone the repo68 and run `bash install.sh --target <your-project-root>`).69- **Non-destructive.** Your own `AGENTS.md` / `CLAUDE.md` content outside the70 `<!-- Next-Move-Theory-Rules:start … end -->` markers is preserved — the71 installer only ever rewrites what sits *between* the markers. Unrelated skills72 are left alone.73- **Renamed skill.** This skill used to be called `nmt-upgrade`. The installer74 removes the old `nmt-upgrade` folder from `.agents/skills` and `.claude/skills`75 and installs `nmt-update` in its place, so you won't end up with both.76- **Source of truth.** What gets installed is always the current `main` of the77 public GitHub repo — the installer clones it fresh on every run, so there is no78 stale cache for the canon or skills.