← ClaudeAtlas

update-gaialisted

Pull the latest GAIA release into this project without clobbering customizations. Three-way merge per file using .gaia/manifest.json classes. Trigger when the user clicks the statusline `Run /update-gaia` indicator or asks "update GAIA", "pull the latest GAIA", "apply the new GAIA release".
gaia-react/gaia · ★ 20 · AI & Automation · score 74
Install: claude install-skill gaia-react/gaia
Pull the latest GAIA release into this project without clobbering customizations. Does a three-way comparison per file (adopter / baseline / latest) and respects explicit classes in `.gaia/manifest.json`: - **`owned`**: GAIA controls fully. Overwrites silently if unchanged from baseline; prompts if drifted. - **`shared`**: GAIA seeds, you customize. Emits a `.gaia-merge/` patch for manual resolution on drift. - **`wiki-owned`**: GAIA-seeded concept/decision/module wiki pages. Same drift handling as `shared`. - **adopter-owned (implicit)**: anything not in the manifest, plus sentinels like `wiki/hot.md`, `wiki/log.md`, `CHANGELOG.md`, `.gaia/VERSION`, `.gaia/manifest.json`. Never touched. Backups land in `.gaia-backup/<timestamp>/`. Conflict patches land in `.gaia-merge/`. ## Pre-flight: Worktree check This wrapper changes `.gaia/VERSION` and opens a PR, both belong on the main checkout, not a per-SPEC worktree branch. If invoked from a linked worktree, reject hard with a message that surfaces the cached version state from main so the user knows whether a GAIA update is even pending. Detection (run this first, before anything else): ```bash . .gaia/scripts/main-only-lib.sh gaia_update_gaia_state_line() { local cache_file="$1" [ -f "$cache_file" ] && command -v jq >/dev/null 2>&1 || return 0 local gaia_current gaia_latest gaia_has_update gaia_current="$(jq -r '.gaiaCurrent // ""' "$cache_file" 2>/dev/null)" gaia_latest="$(jq -r '.gaiaLatest // ""' "$cache_file"