# Nmt Update

> 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 Claude and Codex), the marked rules block in CLAUDE.md / AGENTS.md, and the README — all 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.

- Skill: `zamesin/nmt-update-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add zamesin/nmt-update-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zamesin/nmt-update-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zamesin (https://skillmd.com/u/zamesin)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/zamesin/nmt-update-2

---


# 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 in `CLAUDE.md` and `AGENTS.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 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

1. **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.
2. **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:
   ```bash
   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).
3. **Run the installer** from that directory:
   ```bash
   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`.)
4. **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.
5. **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 `CLAUDE.md` / `AGENTS.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 `.claude/skills` and `.agents/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.

