update-project
Tool
scripts/update-project.sh(script, Scripts). Bring a project made with GameFrame up to GameFrame's current version.
Run it as scripts/update-project.sh. Source on GitHub.
Its own help
This is the help text in the tool itself, as ./gameframe tool update-project prints it.
text
Bring a project made with GameFrame up to GameFrame's current version.
scripts/update-project.sh DIR [--plugin] [--agent LIST] [--dry-run]
A project normally gets GameFrame's skills, agents, gates and MCP servers from its Claude Code
plugin, and runs the toolkit through its own small `gameframe` launcher (new-project.sh makes
such projects). For those, this script only refreshes the launcher and the plugin settings.
An older project, or one made with new-project.sh --copy, holds a copy of GameFrame's toolkit,
skills, agents, gates and guides. For each file GameFrame provides:
- missing in the project: added;
- the same as GameFrame's: left alone;
- an older version of GameFrame's file (its exact contents are in GameFrame's git history):
replaced with the current one;
- changed in the project (contents GameFrame never had): kept, and listed at the end, so a
project's own edits are never lost.
The skills live in skills/, with the links .claude/skills and .agents/skills to it (a copy where
links cannot be made). An older project's skills in .claude/skills move to skills/ first.
--plugin moves such a project to the plugin: every copied file that is GameFrame's (current or
older) is removed, the project's changed copies are kept and listed, `gameframe` becomes the
launcher, and .claude/settings.json enables the plugin in place of the local gates. It then
lists the project's own files that still name a removed tool path.
--agent LIST names the coding agents the project is set up for, as in new-project.sh (claude,
codex, gemini, copilot, cursor, opencode, or all). Without it, the agents whose files the
project already has. Each agent's skill link, agents, gate hooks and MCP servers are added or
refreshed by scripts/clients.py; an agent left out keeps its files. With --plugin, only the
chosen agents' files are written again, since the old ones call the removed scripts/.
Every project also gets the game folder's safeguards when they are missing: the note
GAME-FILES-NOT-BUILD-OUTPUT.txt in its game folder (game/, or the older target/) and
.cargo/config.toml with target-dir = "build" (an existing .cargo/config.toml is kept, with a
warning when it builds into target/). A project whose game folders are still inside it is told
to run `gameframe home adopt`, which moves them into the GameFrame home and links them.
The project's own files (AGENTS.md, README.md, docs/FINDINGS.md, docs/CHECKLIST.md, docs/lore.md, labels/,
its code) are never touched. With --dry-run nothing is written. The project's git history shows
every change; commit it like any other.